altos: Complete cc1200 driver
[fw/altos] / src / drivers / ao_cc1200.h
index 987f9bdaf70d553ebdd827c262902561ca2c4fad..b04775fdc964f87d0fdb6794e79245c14a4f932d 100644 (file)
@@ -27,7 +27,7 @@
 #define  CC1200_IOCFG_GPIO_INV         6
 #define  CC1200_IOCFG_GPIO_CFG         0
 #define  CC1200_IOCFG_GPIO_CFG_RXFIFO_THR      0
-#define  CC1200_IOCFG_GPIO_CFG_RXFIFO_THR_PKT  1       
+#define  CC1200_IOCFG_GPIO_CFG_RXFIFO_THR_PKT  1
 #define  CC1200_IOCFG_GPIO_CFG_TXFIFO_THR      2
 #define  CC1200_IOCFG_GPIO_CFG_TXFIFO_THR_PKT  3
 #define  CC1200_IOCFG_GPIO_CFG_RXFIFO_OVERFLOW 4
 #define  CC1200_IOCFG_GPIO_CFG_EXT_OSC_EN              60
 #define  CC1200_IOCFG_GPIO_CFG_MASK    0x3f
 
-#define CC1200_IOCFG3          0x00
 #define CC1200_IOCFG2          0x01
 #define CC1200_IOCFG1          0x02
 #define CC1200_IOCFG0          0x03
 
 #define CC1200_DEVIATION_M     0x0a
 #define CC1200_MODCFG_DEV_E    0x0b
-#define CC1200_MODCFG_DEV_E_MODEM_MODE         6
+#define  CC1200_MODCFG_DEV_E_MODEM_MODE                6
 #define  CC1200_MODCFG_DEV_E_MODEM_MODE_NORMAL         0
 #define  CC1200_MODCFG_DEV_E_MODEM_MODE_DSSS_REPEAT    1
 #define  CC1200_MODCFG_DEV_E_MODEM_MODE_DSSS_PN                2
 #define  CC1200_MODCFG_DEV_E_MODEM_MODE_CARRIER_SENSE  3
 #define  CC1200_MODCFG_DEV_E_MODEM_MODE_MASK           3
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT         3
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_2_FSK           0
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_2_GFSK          1
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_ASK_OOK         3
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_4_FSK           4
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_4_GFSK          5
-#define CC1200_MODCFG_DEV_E_MOD_FORMAT_MASK            7
-#define CC1200_MODCFG_DEV_E_DEV_E              0
-#define CC1200_MODCFG_DEV_E_DEV_E_MASK         7
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT                3
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_2_FSK          0
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_2_GFSK         1
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_ASK_OOK                3
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_4_FSK          4
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_4_GFSK         5
+#define  CC1200_MODCFG_DEV_E_MOD_FORMAT_MASK           7
+#define  CC1200_MODCFG_DEV_E_DEV_E             0
+#define  CC1200_MODCFG_DEV_E_DEV_E_MASK                7
 
 #define CC1200_DCFILT_CFG      0x0c
 #define CC1200_PREAMBLE_CFG1   0x0d
 #define  CC1200_MDMCFG0_VITERBI_EN             2
 
 #define CC1200_SYMBOL_RATE2    0x13
-#define CC1200_SYMBOL_RATE2_DATARATE_E                 4
-#define CC1200_SYMBOL_RATE2_DATARATE_E_MASK            0xf
-#define CC1200_SYMBOL_RATE2_DATARATE_M_19_16           0
-#define CC1200_SYMBOL_RATE2_DATARATE_M_19_16_MASK      0xf
+#define  CC1200_SYMBOL_RATE2_DATARATE_E                        4
+#define  CC1200_SYMBOL_RATE2_DATARATE_E_MASK           0xf
+#define  CC1200_SYMBOL_RATE2_DATARATE_M_19_16          0
+#define  CC1200_SYMBOL_RATE2_DATARATE_M_19_16_MASK     0xf
 
 #define CC1200_SYMBOL_RATE1    0x14
 #define CC1200_SYMBOL_RATE0    0x15
 #define CC1200_WOR_EVENT0_LSB  0x24
 #define CC1200_RXDCM_TIME      0x25
 #define CC1200_PKT_CFG2                0x26
+#define  CC1200_PKT_CFG2_BYTE_SWAP_EN  6
+#define  CC1200_PKT_CFG2_FG_MODE_EN    5
 #define  CC1200_PKT_CFG2_CCA_MODE      2
 #define  CC1200_PKT_CFG2_CCA_MODE_ALWAYS_CLEAR         0
 #define  CC1200_PKT_CFG2_CCA_MODE_RSSI_THRESHOLD       1
 #define  CC1200_PKT_CFG2_PKT_FORMAT_MASK               3
 
 #define CC1200_PKT_CFG1                0x27
+#define  CC1200_PKT_CFG1_FEC_EN                7
 #define  CC1200_PKT_CFG1_WHITE_DATA    6
-#define  CC1200_PKT_CFG1_ADDR_CHECK_CFG        4
+#define  CC1200_PKT_CFG1_PN9_SWAP_EN   5
+#define  CC1200_PKT_CFG1_ADDR_CHECK_CFG        3
 #define  CC1200_PKT_CFG1_ADDR_CHECK_CFG_NONE           0
 #define  CC1200_PKT_CFG1_ADDR_CHECK_CFG_CHECK          1
 #define  CC1200_PKT_CFG1_ADDR_CHECK_CFG_00_BROADCAST   2
 #define  CC1200_PKT_CFG1_ADDR_CHECK_CFG_00_FF_BROADCAST        3
 #define  CC1200_PKT_CFG1_ADDR_CHECK_CFG_MASK           3
-#define  CC1200_PKT_CFG1_CRC_CFG       2
+#define  CC1200_PKT_CFG1_CRC_CFG       1
 #define  CC1200_PKT_CFG1_CRC_CFG_DISABLED              0
 #define  CC1200_PKT_CFG1_CRC_CFG_CRC16_INIT_ONES       1
 #define  CC1200_PKT_CFG1_CRC_CFG_CRC16_INIT_ZEROS      2
 #define  CC1200_PKT_CFG1_CRC_CFG_MASK                  3
-#define  CC1200_PKT_CFG1_BYTE_SWAP_EN  1
 #define  CC1200_PKT_CFG1_APPEND_STATUS 0
 
 #define CC1200_PKT_CFG0                0x28
 #define  CC1200_PKT_CFG0_UART_SWAP_EN  0
 
 #define CC1200_RFEND_CFG1      0x29
+#define  CC1200_RFEND_CFG1_RXOFF_MODE  4
+#define  CC1200_RFEND_CFG1_RXOFF_MODE_IDLE     0
+#define  CC1200_RFEND_CFG1_RXOFF_MODE_FSTXON   1
+#define  CC1200_RFEND_CFG1_RXOFF_MODE_TX       2
+#define  CC1200_RFEND_CFG1_RXOFF_MODE_RX       3
+#define  CC1200_RFEND_CFG1_RX_TIME     1
+#define  CC1200_RFEND_CFG1_RX_TIME_INFINITE    7
+#define  CC1200_RFEND_CFG1_RX_TIME_QUAL        0
 #define CC1200_RFEND_CFG0      0x2a
+#define  CC1200_RFEND_CFG0_CAL_END_WAKE_UP_EN  6
+#define  CC1200_RFEND_CFG0_TXOFF_MODE          4
+#define  CC1200_RFEND_CFG0_TXOFF_MODE_IDLE     0
+#define  CC1200_RFEND_CFG0_TXOFF_MODE_FSTXON   1
+#define  CC1200_RFEND_CFG0_TXOFF_MODE_TX       2
+#define  CC1200_RFEND_CFG0_TXOFF_MODE_RX       3
+#define  CC1200_RFEND_CFG0_TERM_ON_BAD_PACKET_EN 3
+#define  CC1200_RFEND_CFG0_ANT_DIV_RX_TERM_CFG 0
 #define CC1200_PA_CFG1         0x2b
 #define CC1200_PA_CFG0         0x2c
 #define CC1200_ASK_CFG         0x2d
 #define CC1200_PKT_LEN         0x2e
 
-#define CC1200_EXTENDED        0x2f
+#define CC1200_EXTENDED                0x2f
 
 /* Command strobes */
 #define CC1200_SRES            0x30
 #define CC1200_ECG_CFG         (CC1200_EXTENDED_BIT | 0x04)
 #define CC1200_MDMCFG2         (CC1200_EXTENDED_BIT | 0x05)
 
-# define CC1200_MDMCFG2_ASK_SHAPE      6
-# define CC1200_MDMCFG2_SYMBOL_MAP_CFG 4
-# define CC1200_MDMCFG2_UPSAMPLER_P    1
-# define CC1200_MDMCFG2_CFM_DATA_EN    0
+#define  CC1200_MDMCFG2_ASK_SHAPE      6
+#define  CC1200_MDMCFG2_ASK_SHAPE_8            0
+#define  CC1200_MDMCFG2_ASK_SHAPE_16           1
+#define  CC1200_MDMCFG2_ASK_SHAPE_32           2
+#define  CC1200_MDMCFG2_ASK_SHAPE_128          3
+#define  CC1200_MDMCFG2_SYMBOL_MAP_CFG 4
+#define  CC1200_MDMCFG2_SYMBOL_MAP_CFG_MODE_0  0
+#define  CC1200_MDMCFG2_SYMBOL_MAP_CFG_MODE_1  1
+#define  CC1200_MDMCFG2_SYMBOL_MAP_CFG_MODE_2  2
+#define  CC1200_MDMCFG2_SYMBOL_MAP_CFG_MODE_3  3
+#define  CC1200_MDMCFG2_UPSAMPLER_P    1
+#define  CC1200_MDMCFG2_UPSAMPLER_P_1          0
+#define  CC1200_MDMCFG2_UPSAMPLER_P_2          1
+#define  CC1200_MDMCFG2_UPSAMPLER_P_4          2
+#define  CC1200_MDMCFG2_UPSAMPLER_P_8          3
+#define  CC1200_MDMCFG2_UPSAMPLER_P_16         4
+#define  CC1200_MDMCFG2_UPSAMPLER_P_32         5
+#define  CC1200_MDMCFG2_UPSAMPLER_P_64         6
+#define  CC1200_MDMCFG2_CFM_DATA_EN    0
 
 #define CC1200_EXT_CTRL                (CC1200_EXTENDED_BIT | 0x06)
 #define CC1200_RCCAL_FINE      (CC1200_EXTENDED_BIT | 0x07)
 #define CC1200_PARTNUMBER      (CC1200_EXTENDED_BIT | 0x8f)
 #define CC1200_PARTVERSION     (CC1200_EXTENDED_BIT | 0x90)
 #define CC1200_SERIAL_STATUS   (CC1200_EXTENDED_BIT | 0x91)
-#define CC1200_RX_STATUS       (CC1200_EXTENDED_BIT | 0x92)
-#define CC1200_TX_STATUS       (CC1200_EXTENDED_BIT | 0x93)
+#define CC1200_MODEM_STATUS1   (CC1200_EXTENDED_BIT | 0x92)
+#define  CC1200_MODEM_STATUS1_SYNC_FOUND       7
+#define  CC1200_MODEM_STATUS1_RXFIFO_FULL      6
+#define  CC1200_MODEM_STATUS1_RXFIFO_THR       5
+#define  CC1200_MODEM_STATUS1_RXFIFO_EMPTY     4
+#define  CC1200_MODEM_STATUS1_RXFIFO_OVERFLOW  3
+#define  CC1200_MODEM_STATUS1_RXFIFO_UNDERFLOW 2
+#define  CC1200_MODEM_STATUS1_PQT_REACHED      1
+#define  CC1200_MODEM_STATUS1_PQT_VALID                0
+
+#define CC1200_MODEM_STATUS0   (CC1200_EXTENDED_BIT | 0x93)
+#define  CC1200_MODEM_STATUS0_FEC_RX_OVERFLOW  6
+#define  CC1200_MODEM_STATUS0_SYNC_SENT                4
+#define  CC1200_MODEM_STATUS0_TXFIFO_FULL      3
+#define  CC1200_MODEM_STATUS0_TXFIFO_THR       2
+#define  CC1200_MODEM_STATUS0_TXFIFO_OVERFLOW  1
+#define  CC1200_MODEM_STATUS0_TXFIFO_UNDERFLOW 0
+
 #define CC1200_MARC_STATUS1    (CC1200_EXTENDED_BIT | 0x94)
-# define CC1200_MARC_STATUS1_NO_FAILURE                0
-# define CC1200_MARC_STATUS1_RX_TIMEOUT                1
-# define CC1200_MARC_STATUS1_RX_TERMINATION    2
-# define CC1200_MARC_STATUS1_EWOR_SYNC_LOST    3
-# define CC1200_MARC_STATUS1_MAXIMUM_LENGTH    4
-# define CC1200_MARC_STATUS1_ADDRESS           5
-# define CC1200_MARC_STATUS1_CRC               6
-# define CC1200_MARC_STATUS1_TX_FIFO_OVERFLOW  7
-# define CC1200_MARC_STATUS1_TX_FIFO_UNDERFLOW 8
-# define CC1200_MARC_STATUS1_RX_FIFO_OVERFLOW  9
-# define CC1200_MARC_STATUS1_RX_FIFO_UNDERFLOW 10
-# define CC1200_MARC_STATUS1_TX_ON_CCA_FAILED  11
-# define CC1200_MARC_STATUS1_TX_FINISHED       0x40
-# define CC1200_MARC_STATUS1_RX_FINISHED       0x80
+#define  CC1200_MARC_STATUS1_NO_FAILURE                0
+#define  CC1200_MARC_STATUS1_RX_TIMEOUT                1
+#define  CC1200_MARC_STATUS1_RX_TERMINATION    2
+#define  CC1200_MARC_STATUS1_EWOR_SYNC_LOST    3
+#define  CC1200_MARC_STATUS1_MAXIMUM_LENGTH    4
+#define  CC1200_MARC_STATUS1_ADDRESS           5
+#define  CC1200_MARC_STATUS1_CRC               6
+#define  CC1200_MARC_STATUS1_TX_FIFO_OVERFLOW  7
+#define  CC1200_MARC_STATUS1_TX_FIFO_UNDERFLOW 8
+#define  CC1200_MARC_STATUS1_RX_FIFO_OVERFLOW  9
+#define  CC1200_MARC_STATUS1_RX_FIFO_UNDERFLOW 10
+#define  CC1200_MARC_STATUS1_TX_ON_CCA_FAILED  11
+#define  CC1200_MARC_STATUS1_TX_FINISHED       0x40
+#define  CC1200_MARC_STATUS1_RX_FINISHED       0x80
 #define CC1200_MARC_STATUS0    (CC1200_EXTENDED_BIT | 0x95)
 #define CC1200_PA_IFAMP_TEST   (CC1200_EXTENDED_BIT | 0x96)
 #define CC1200_FSRF_TEST       (CC1200_EXTENDED_BIT | 0x97)