Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * atusb.h - Definitions shared between kernel and ATUSB firmware
0004  *
0005  * Written 2013 by Werner Almesberger <werner@almesberger.net>
0006  *
0007  * (at your option) any later version.
0008  *
0009  * This file should be identical for kernel and firmware.
0010  * Kernel: drivers/net/ieee802154/atusb.h
0011  * Firmware: ben-wpan/atusb/fw/include/atusb/atusb.h
0012  */
0013 
0014 #ifndef _ATUSB_H
0015 #define _ATUSB_H
0016 
0017 #define ATUSB_VENDOR_ID 0x20b7  /* Qi Hardware*/
0018 #define ATUSB_PRODUCT_ID 0x1540 /* 802.15.4, device 0 */
0019                 /*     -- -         - */
0020 
0021 #define ATUSB_BUILD_SIZE 256    /* maximum build version/date message length */
0022 
0023 /* Commands to our device. Make sure this is synced with the firmware */
0024 enum atusb_requests {
0025     ATUSB_ID            = 0x00, /* system status/control grp */
0026     ATUSB_BUILD,
0027     ATUSB_RESET,
0028     ATUSB_RF_RESET          = 0x10, /* debug/test group */
0029     ATUSB_POLL_INT,
0030     ATUSB_TEST,         /* atusb-sil only */
0031     ATUSB_TIMER,
0032     ATUSB_GPIO,
0033     ATUSB_SLP_TR,
0034     ATUSB_GPIO_CLEANUP,
0035     ATUSB_REG_WRITE         = 0x20, /* transceiver group */
0036     ATUSB_REG_READ,
0037     ATUSB_BUF_WRITE,
0038     ATUSB_BUF_READ,
0039     ATUSB_SRAM_WRITE,
0040     ATUSB_SRAM_READ,
0041     ATUSB_SPI_WRITE         = 0x30, /* SPI group */
0042     ATUSB_SPI_READ1,
0043     ATUSB_SPI_READ2,
0044     ATUSB_SPI_WRITE2_SYNC,
0045     ATUSB_RX_MODE           = 0x40, /* HardMAC group */
0046     ATUSB_TX,
0047     ATUSB_EUI64_WRITE       = 0x50, /* Parameter in EEPROM grp */
0048     ATUSB_EUI64_READ,
0049 };
0050 
0051 enum {
0052     ATUSB_HW_TYPE_100813,   /* 2010-08-13 */
0053     ATUSB_HW_TYPE_101216,   /* 2010-12-16 */
0054     ATUSB_HW_TYPE_110131,   /* 2011-01-31, ATmega32U2-based */
0055     ATUSB_HW_TYPE_RZUSB,    /* Atmel Raven USB dongle with at86rf230 */
0056     ATUSB_HW_TYPE_HULUSB,   /* Busware HUL USB dongle with at86rf212 */
0057 };
0058 
0059 /*
0060  * Direction    bRequest        wValue      wIndex  wLength
0061  *
0062  * ->host   ATUSB_ID        -       -   3
0063  * ->host   ATUSB_BUILD     -       -   #bytes
0064  * host->   ATUSB_RESET     -       -   0
0065  *
0066  * host->   ATUSB_RF_RESET      -       -   0
0067  * ->host   ATUSB_POLL_INT      -       -   1
0068  * host->   ATUSB_TEST      -       -   0
0069  * ->host   ATUSB_TIMER     -       -   #bytes (6)
0070  * ->host   ATUSB_GPIO      dir+data    mask+p# 3
0071  * host->   ATUSB_SLP_TR        -       -   0
0072  * host->   ATUSB_GPIO_CLEANUP  -       -   0
0073  *
0074  * host->   ATUSB_REG_WRITE     value       addr    0
0075  * ->host   ATUSB_REG_READ      -       addr    1
0076  * host->   ATUSB_BUF_WRITE     -       -   #bytes
0077  * ->host   ATUSB_BUF_READ      -       -   #bytes
0078  * host->   ATUSB_SRAM_WRITE    -       addr    #bytes
0079  * ->host   ATUSB_SRAM_READ     -       addr    #bytes
0080  *
0081  * host->   ATUSB_SPI_WRITE     byte0       byte1   #bytes
0082  * ->host   ATUSB_SPI_READ1     byte0       -   #bytes
0083  * ->host   ATUSB_SPI_READ2     byte0       byte1   #bytes
0084  * ->host   ATUSB_SPI_WRITE2_SYNC   byte0       byte1   0/1
0085  *
0086  * host->   ATUSB_RX_MODE       on      -   0
0087  * host->   ATUSB_TX        flags       ack_seq #bytes
0088  * host->   ATUSB_EUI64_WRITE   -       -   #bytes (8)
0089  * ->host   ATUSB_EUI64_READ    -       -   #bytes (8)
0090  */
0091 
0092 #define ATUSB_REQ_FROM_DEV  (USB_TYPE_VENDOR | USB_DIR_IN)
0093 #define ATUSB_REQ_TO_DEV    (USB_TYPE_VENDOR | USB_DIR_OUT)
0094 
0095 #endif /* !_ATUSB_H */