blob: 61636827cedec19d0af67189a4c8458471f6dc3b [file] [log] [blame]
/* ieee802154_cc1200_regs.h - Registers definition for TI CC1200 */
/*
* Copyright (c) 2017 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __IEEE802154_CC1200_REGS_H__
#define __IEEE802154_CC1200_REGS_H__
/* Access types (see Section 3.2) */
#define CC1200_ACCESS_RD BIT(7)
#define CC1200_ACCESS_WR (0x00)
#define CC1200_ACCESS_BURST BIT(6)
/* Configuration registers (see Section 12 for the details) */
#define CC1200_REG_IOCFG3 (0x00)
#define GPIO3_ATRAN BIT(7)
#define GPIO3_INV BIT(6)
#define GPIO3_CFG(_cfg_) (_cfg_ & 0x3F)
#define CC1200_REG_IOCFG2 (0x01)
#define GPIO2_ATRAN BIT(7)
#define GPIO2_INV BIT(6)
#define GPIO2_CFG(_cfg_) (_cfg_ & 0x3F)
#define CC1200_REG_IOCFG1 (0x02)
#define GPIO1_ATRAN BIT(7)
#define GPIO1_INV BIT(6)
#define GPIO1_CFG(_cfg_) (_cfg_ & 0x3F)
#define CC1200_REG_IOCFG0 (0x03)
#define GPIO0_ATRAN BIT(7)
#define GPIO0_INV BIT(6)
#define GPIO0_CFG(_cfg_) (_cfg_ & 0x3F)
#define CC1200_REG_SYNC3 (0x04)
#define CC1200_REG_SYNC2 (0x05)
#define CC1200_REG_SYNC1 (0x06)
#define CC1200_REG_SYNC0 (0x07)
#define CC1200_REG_SYNC_CFG1 (0x08)
#define SYNC_MODE(_cfg_) (_cfg_ & 0xE0)
#define SYNC_THR(_cfg_) (_cfg_ & 0x1F)
#define CC1200_REG_SYNC_CFG0 (0x09)
#define AUTO_CLEAR BIT(5)
#define RX_CONFIG_LIMITATION BIT(4)
#define PQT_GATING_EN BIT(3)
#define EXT_SYNC_DETECT BIT(2)
#define STRICT_SYNC_CHECK(_cfg_) (_cfg_ & 0x03)
#define CC1200_REG_DEVIATION_M (0x0A)
#define CC1200_REG_MODCFG_DEV_E (0x0B)
#define MODEM_MODE(_cfg_) (_cfg_ & 0xC0)
#define MOD_FORMAT(_cfg_) (_cfg_ & 0x38)
#define DEV_E(_cfg_) (_cfg_ & 0x07)
#define CC1200_REG_DCFILT_CFG (0x0C)
#define DCFILT_FREEZE_COEFF BIT(6)
#define DCFILT_BW_SETTLE(_cfg_) (_cfg_ & 0x38)
#define DCFILT_BW(_cfg_) (_cfg_ & 0x07)
#define CC1200_REG_PREAMBLE_CFG1 (0x0D)
#define NUM_PREAMBL(_cfg_) (_cfg_ & 0x3C)
#define PREAMBLE_WORD(_cfg_) (_cfg_ & 0x03)
#define CC1200_REG_PREAMBLE_CFG0 (0x0E)
#define PQT_EN BIT(7)
#define PQT_VALID_TIMEOUT(_cfg_) (_cfg_ & 0x70)
#define PQT(_cfg_) (_cfg_ & 0x0F)
#define CC1200_REG_IQIC (0x0F)
#define IQIC_EN BIT(7)
#define IQIC_UPDATE_COEFF_EN BIT(6)
#define IQIC_BLEN_SETTLE(_cfg_) (_cfg_ & 0x30)
#define IQIC_BLEN(_cfg_) (_cfg_ & 0x0C)
#define IQIC_IMGCH_LEVEL_THR(_cfg_) (_cfg_ & 0x03)
#define CC1200_REG_CHAN_BW (0x10)
#define ADC_CIC_DECFACT(_cfg_) (_cfg_ & 0xC0)
#define BB_CIC_DECFAC(_cfg_) (_cfg_ & 0x3F)
/* Is it mentioned anywhere apart from chapter 12? No known address at least
* #define CC1200_REG_MDMCFG2 ()
* #define ASK_SHAPE(_cfg_) (_cfg_ & 0xC0)
* #define SYMBOL_MAP_CFG(_cfg_) (_cfg_ & 0x30)
* #define UPSAMPLER_P(_cfg_) (_cfg_ & 0x0E)
* #define CFM_DATA_EN BIT(0)
*/
#define CC1200_REG_MDMCFG1 (0x11)
#define CARRIER_SENSE_GATE BIT(7)
#define FIFO_EN BIT(6)
#define MANCHESTER_EN BIT(5)
#define INVERT_DATA_EN BIT(4)
#define COLLISION_DETECT_EN BIT(3)
#define DVGA_GAIN(_cfg_) (_cfg_ & 0x06)
#define SINGLE_ADC_EN BIT(0)
#define CC1200_REG_MDMCFG0 (0x12)
#define TRANSPARENT_MODE_EN BIT(6)
#define TRANSPARENT_INTFACT(_cfg_) (_cfg_ & 0x30)
#define DATA_FILTER_EN BIT(3)
#define VITERBI_EN BIT(2)
#define CC1200_REG_SYMBOL_RATE2 (0x13)
#define SRATE_E(_cfg_) (_cfg_ & 0xF0)
#define SRATE_M_19_16(_cfg_) (_cfg_ & 0x0F)
#define CC1200_REG_SYMBOL_RATE1 (0x14)
#define CC1200_REG_SYMBOL_RATE0 (0x15)
#define CC1200_REG_AGC_REF (0x16)
#define CC1200_REG_AGC_CS_THR (0x17)
#define CC1200_REG_AGC_GAIN_ADJUST (0x18)
#define CC1200_REG_AGC_CFG3 (0x19)
#define AGC_SYNC_BEHAVIOUR(_cfg_) (_cfg_ & 0xE0)
#define AGC_MIN_GAIN(_cfg_) (_cfg_ & 0x1F)
#define CC1200_REG_AGC_CFG2 (0x1A)
#define START_PREVIOUS_GAIN_EN BIT(7)
#define FE_PERFORMANCE_MODE(_cfg_) (_cfg_ & 0x60)
#define AGC_MAX_GAIN(_cfg_) (_cfg_ & 0x1F)
#define CC1200_REG_AGC_CFG1 (0x1B)
#define RSSI_STEP_THR BIT(6)
#define AGC_WIN_SIZE(_cfg_) (_cfg_ & 0x38)
#define AGC_SETTLE_WAIT(_cfg_) (_cfg_ & 0x07)
#define CC1200_REG_AGC_CFG0 (0x1C)
#define AGC_HYST_LEVEL(_cfg_) (_cfg_ & 0xC0)
#define AGC_SLEWRATE_LIMIT(_cfg_) (_cfg_ & 0x30)
#define RSSI_VALID_CNT(_cfg_) (_cfg_ & 0x0C)
#define AGC_ASK_DECAY(_cfg_) (_cfg_ & 0x03)
#define CC1200_REG_FIFO_CFG (0x1D)
#define CRC_AUTOFLUSH BIT(7)
#define FIFO_THR(_cfg_) (_cfg_ & 0x7F)
#define CC1200_REG_DEV_ADDR (0x1E)
#define CC1200_REG_SETTLING_CFG (0x1F)
#define FS_AUTOCAL(_cfg_) (_cfg_ & 0x18)
#define LOCK_TIME(_cfg_) (_cfg_ & 0x06)
#define FSREG_TIME BIT(0)
#define CC1200_REG_FS_CFG (0x20)
#define FS_LOCK_EN BIT(4)
#define FSD_BANDSELECT(_cfg_) (_cfg_ & 0x0F)
#define CC1200_REG_WOR_CFG1 (0x21)
#define WOR_RES(_cfg_) (_cfg_ & 0xC0)
#define WOR_MODE(_cfg_) (_cfg_ & 0x38)
#define EVENT1(_cfg_) (_cfg_ & 0x07)
#define CC1200_REG_WOR_CFG0 (0x22)
#define RX_DUTY_CYCLE_MODE(_cfg_) (_cfg_ & 0xC0)
#define DIV_256HZ_EN BIT(5)
#define EVENT2_CFG(_cfg_) (_cfg_ & 0x18)
#define RC_MODE(_cfg_) (_cfg_ & 0x06)
#define RC_PD BIT(0)
#define CC1200_REG_WOR_EVENT0_MSB (0x23)
#define CC1200_REG_WOR_EVENT0_LSB (0x24)
#define CC1200_REG_RXDCM_TIME (0x25)
#define CC1200_REG_PKT_CFG2 (0x26)
#define BYTE_SWAP_EN BIT(6)
#define FG_MODE_EN BIT(5)
#define CCA_MODE(_cfg_) (_cfg_ & 0x1C)
#define CCA_ALWAYS_CLEAR (0)
#define CCA_RSSI_BELOW (1 << 2)
#define CCA_NO_RX (2 << 2)
#define CCA_RSSI_BELOW_NO_RX (3 << 2)
#define CCA_RSSI_BELOW_ETSI_LBT (4 << 2)
#define PKT_FORMAT(_cfg_) (_cfg_ & 0x03)
#define PKT_FORMAT_NORMAL_MODE (0)
#define PKT_FORMAT_SYNCHRONOUS_MODE (1)
#define PKT_FORMAT_RANDOM_MODE (2)
#define PKT_FORMAT_TRANSPARENT_MODE (3)
#define CC1200_REG_PKT_CFG1 (0x27)
#define FEC_EN BIT(7)
#define WHITE_DATA BIT(6)
#define PN9_SWAP_EN BIT(5)
#define ADDR_CHECK_CFG(_cfg_) (_cfg_ & 0x18)
#define ADDR_NO_CHK (0)
#define ADDR_CHK_NO_BROADCAST (1 << 3)
#define ADDR_CHK_BROADCAST_00 (2 << 3)
#define ADDR_CHK_BROADCAST_FF (3 << 3)
#define CRC_CFG(_cfg_) (_cfg_ & 0x06)
#define CRC_NONE (0)
#define CRC_FFFF (1 << 1)
#define CRC_0000 (2 << 1)
#define CRC_1D0F (3 << 1)
#define APPEND_STATUS BIT(0)
#define CC1200_REG_PKT_CFG0 (0x28)
#define LENGTH_CONFIG(_cfg_) (_cfg_ & 0x60)
#define LENGTH_FIXED (0)
#define LENGTH_VAR_1 (1 << 5)
#define LENGTH_INFINITE (2 << 5)
#define LENGTH_VAR_2 (3 << 5)
#define PKT_BIT_LEN(_cfg_) (_cfg_ & 0x1C)
#define UART_MODE_EN BIT(1)
#define UART_SWAP_EN BIT(0)
#define CC1200_REG_RFEND_CFG1 (0x29)
#define RXOFF_MODE(_cfg_) (_cfg_ & 0x30)
#define RX_TIME(_cfg_) (_cfg_ & 0x0E)
#define RX_TIME_QUAL BIT(0)
#define CC1200_REG_RFEND_CFG0 (0x2A)
#define CAL_END_WAKE_UP_EN BIT(6)
#define TXOFF_MODE(_cfg_) (_cfg_ & 0x30)
#define TERM_ON_BAD_PACKET_EN BIT(3)
#define ANT_DIV_RX_TERM_CFG(_cfg_) (_cfg_ & 0x07)
/* Common RFEND tx/rx mode */
#define RFEND_TXRX_MODE_IDLE (0)
#define RFEND_TXRX_MODE_FSTXON (1 << 4)
#define RFEND_TXRX_MODE_TX (2 << 4)
#define RFEND_TXRX_MODE_RX (3 << 4)
#define CC1200_REG_PA_CFG1 (0x2B)
#define PA_RAMP_SHAPE_EN BIT(6)
#define PA_POWER_RAMP_MASK (0x3F)
#define CC1200_REG_PA_CFG0 (0x2C)
#define FIRST_IPL(_cfg_) (_cfg_ & 0xE0)
#define SECOND_IPL(_cfg_) (_cfg_ & 0x1C)
#define RAMP_SHAPE(_cfg_) (_cfg_ & 0x03)
#define CC1200_REG_ASK_CFG (0x2D)
#define AGC_ASK_BW(_cfg_) (_cfg_ & 0xC0)
#define ASK_DEPTH(_cfg_) (_cfg_ & 0x3F)
#define CC1200_REG_PKT_LEN (0x2E)
#define CC1200_REG_EXTENDED_ADDRESS (0x2F)
/* Command strobes */
#define CC1200_INS_SRES (0x30)
#define CC1200_INS_SFSTXON (0x31)
#define CC1200_INS_SXOFF (0x32)
#define CC1200_INS_SCAL (0x33)
#define CC1200_INS_SRX (0x34)
#define CC1200_INS_STX (0x35)
#define CC1200_INS_SIDLE (0x36)
#define CC1200_INS_SAFC (0x37)
#define CC1200_INS_SWOR (0x38)
#define CC1200_INS_SPWD (0x39)
#define CC1200_INS_SFRX (0x3A)
#define CC1200_INS_SFTX (0x3B)
#define CC1200_INS_SWORRST (0x3C)
#define CC1200_INS_SNOP (0x3D)
/* Memory access */
#define CC1200_MEM_DMA (0x3E)
#define CC1200_MEM_STD (0x3F)
/* FIFO access */
#define CC1200_REG_TXFIFO (0x3F)
#define CC1200_REG_RXFIFO (0x3F)
/* Configuration registers (Extended register space) */
#define CC1200_REG_IF_MIX_CFG (0x00)
#define CC1200_REG_FREQOFF_CFG (0x01)
#define CC1200_REG_TOC_CFG (0x02)
#define CC1200_REG_MARC_SPARE (0x03)
#define CC1200_REG_ECG_CFG (0x04)
#define CC1200_REG_MDMCFG2 (0x05)
#define CC1200_REG_EXT_CTRL (0x06)
#define CC1200_REG_RCCAL_FINE (0x07)
#define CC1200_REG_RCCAL_COARSE (0x08)
#define CC1200_REG_RCCAL_OFFSET (0x09)
#define CC1200_REG_FREQOFF1 (0x0A)
#define CC1200_REG_FREQOFF0 (0x0B)
#define CC1200_REG_FREQ2 (0x0C)
#define CC1200_REG_FREQ1 (0x0D)
#define CC1200_REG_FREQ0 (0x0E)
#define CC1200_REG_IF_ADC2 (0x0F)
#define CC1200_REG_IF_ADC1 (0x10)
#define CC1200_REG_IF_ADC0 (0x11)
#define CC1200_REG_FS_DIG1 (0x12)
#define CC1200_REG_FS_DIG0 (0x13)
#define CC1200_REG_FS_CAL3 (0x14)
#define CC1200_REG_FS_CAL2 (0x15)
#define CC1200_REG_FS_CAL1 (0x16)
#define CC1200_REG_FS_CAL0 (0x17)
#define CC1200_REG_FS_CHP (0x18)
#define CC1200_REG_FS_DIVTWO (0x19)
#define CC1200_REG_FS_DSM1 (0x1A)
#define CC1200_REG_FS_DSM0 (0x1B)
#define CC1200_REG_FS_DVC1 (0x1C)
#define CC1200_REG_FS_DVC0 (0x1D)
#define CC1200_REG_FS_LBI (0x1E)
#define CC1200_REG_FS_PFD (0x1F)
#define CC1200_REG_FS_PRE (0x20)
#define CC1200_REG_FS_REG_DIV_CML (0x21)
#define CC1200_REG_FS_SPARE (0x22)
#define CC1200_REG_FS_VCO4 (0x23)
#define CC1200_REG_FS_VCO3 (0x24)
#define CC1200_REG_FS_VCO2 (0x25)
#define CC1200_REG_FS_VCO1 (0x26)
#define CC1200_REG_FS_VCO0 (0x27)
#define CC1200_REG_GBIAS6 (0x28)
#define CC1200_REG_GBIAS5 (0x29)
#define CC1200_REG_GBIAS4 (0x2A)
#define CC1200_REG_GBIAS3 (0x2B)
#define CC1200_REG_GBIAS2 (0x2C)
#define CC1200_REG_GBIAS1 (0x2D)
#define CC1200_REG_GBIAS0 (0x2E)
#define CC1200_REG_IFAMP (0x2F)
#define CC1200_REG_LNA (0x30)
#define CC1200_REG_RXMIX (0x31)
#define CC1200_REG_XOSC5 (0x32)
#define CC1200_REG_XOSC4 (0x33)
#define CC1200_REG_XOSC3 (0x34)
#define CC1200_REG_XOSC2 (0x35)
#define CC1200_REG_XOSC1 (0x36)
#define CC1200_REG_XOSC0 (0x37)
#define CC1200_REG_ANALOG_SPARE (0x38)
#define CC1200_REG_PA_CFG3 (0x39)
/* All addresses in between are unused ones */
#define CC1200_REG_WOR_TIME1 (0x64)
#define CC1200_REG_WOR_TIME0 (0x65)
#define CC1200_REG_WOR_CAPTURE1 (0x66)
#define CC1200_REG_WOR_CAPTURE0 (0x67)
#define CC1200_REG_BIST (0x68)
#define CC1200_REG_DCFILTOFFSET_I1 (0x69)
#define CC1200_REG_DCFILTOFFSET_I0 (0x6A)
#define CC1200_REG_DCFILTOFFSET_Q1 (0x6B)
#define CC1200_REG_DCFILTOFFSET_Q0 (0x6C)
#define CC1200_REG_IQIE_I1 (0x6D)
#define CC1200_REG_IQIE_I0 (0x6E)
#define CC1200_REG_IQIE_Q1 (0x6F)
#define CC1200_REG_IQIE_Q0 (0x70)
#define CC1200_REG_RSSI1 (0x71)
#define CC1200_REG_RSSI0 (0x72)
#define RSSI(_reg_) ((_reg_ & 0x78) >> 3)
#define CARRIER_SENSE BIT(2)
#define CARRIER_SENSE_VALID BIT(1)
#define RSSI_VALID BIT(0)
#define CC1200_REG_MARCSTATE (0x73)
#define CC1200_REG_LQI_VAL (0x74)
#define CC1200_REG_PQT_SYNC_ERR (0x75)
#define CC1200_REG_DEM_STATUS (0x76)
#define CC1200_REG_FREQOFF_EST1 (0x77)
#define CC1200_REG_FREQOFF_EST0 (0x78)
#define CC1200_REG_AGC_GAIN3 (0x79)
#define CC1200_REG_AGC_GAIN2 (0x7A)
#define CC1200_REG_AGC_GAIN1 (0x7B)
#define CC1200_REG_AGC_GAIN0 (0x7C)
#define CC1200_REG_CFM_RX_DATA_OUT (0x7D)
#define CC1200_REG_CFM_RX_DATA_IN (0x7E)
#define CC1200_REG_ASK_SOFT_RX_DATA (0x7F)
#define CC1200_REG_RNDGEN (0x80)
#define CC1200_REG_MAGN2 (0x81)
#define CC1200_REG_MAGN1 (0x82)
#define CC1200_REG_MAGN0 (0x83)
#define CC1200_REG_ANG1 (0x84)
#define CC1200_REG_ANG0 (0x85)
#define CC1200_REG_CHFILT_I2 (0x86)
#define CC1200_REG_CHFILT_I1 (0x87)
#define CC1200_REG_CHFILT_I0 (0x88)
#define CC1200_REG_CHFILT_Q2 (0x89)
#define CC1200_REG_CHFILT_Q1 (0x8A)
#define CC1200_REG_CHFILT_Q0 (0x8B)
#define CC1200_REG_GPIO_STATUS (0x8C)
#define CC1200_REG_FSCAL_CTRL (0x8D)
#define CC1200_REG_PHASE_ADJUST (0x8E)
#define CC1200_REG_PARTNUMBER (0x8F)
#define CC1200_REG_PARTVERSION (0x90)
#define CC1200_REG_SERIAL_STATUS (0x91)
#define CC1200_REG_MODEM_STATUS1 (0x92)
#define CC1200_REG_MODEM_STATUS0 (0x93)
#define CC1200_REG_MARC_STATUS1 (0x94)
#define CC1200_REG_MARC_STATUS0 (0x95)
#define CC1200_REG_PA_IFAMP_TEST (0x96)
#define CC1200_REG_FSRF_TEST (0x97)
#define CC1200_REG_PRE_TEST (0x98)
#define CC1200_REG_PRE_OVR (0x99)
#define CC1200_REG_ADC_TEST (0x9A)
#define CC1200_REG_DVC_TEST (0x9B)
#define CC1200_REG_ATEST (0x9C)
#define CC1200_REG_ATEST_LVDS (0x9D)
#define CC1200_REG_ATEST_MODE (0x9E)
#define CC1200_REG_XOSC_TEST1 (0x9F)
#define CC1200_REG_XOSC_TEST0 (0xA0)
#define CC1200_REG_AES (0xA1)
#define CC1200_REG_MDM_TEST (0xA2)
/* All addresses in between are unused ones */
#define CC1200_REG_RXFIRST (0xD2)
#define CC1200_REG_TXFIRST (0xD3)
#define CC1200_REG_RXLAST (0xD4)
#define CC1200_REG_TXLAST (0xD5)
#define CC1200_REG_NUM_TXBYTES (0xD6)
#define CC1200_REG_NUM_RXBYTES (0xD7)
#define CC1200_REG_FIFO_NUM_TXBYTES (0xD8)
#define CC1200_REG_FIFO_NUM_RXBYTES (0xD9)
#define CC1200_REG_RXFIFO_PRE_BUF (0xDA)
/* All addresses in between are unused ones */
#define CC1200_REG_AES_WORKSPACE (0xE0)
/* Useful values
***************
*/
/* GPIO signals - See Section 3.4.1.1
* Note: some signals are only available on certain GPIO
* thus the number CC1200_GPIOn_(...) on some which
* tells the GPIO line where that signal is valid.
*/
#define CC1200_GPIO_SIG_RXFIFO_THR (0)
#define CC1200_GPIO_SIG_RXFIFO_THR_PKT (1)
#define CC1200_GPIO_SIG_TXFIFO_THR (2)
#define CC1200_GPIO_SIG_TXFIFO_THR_PKT (3)
#define CC1200_GPIO_SIG_RXFIFO_OVERFLOW (4)
#define CC1200_GPIO_SIG_TXFIFO_UNDERFLOW (5)
#define CC1200_GPIO_SIG_PKT_SYNC_RXTX (6)
#define CC1200_GPIO_SIG_CRC_OK (7)
#define CC1200_GPIO_SIG_SERIAL_CLK (8)
#define CC1200_GPIO_SIG_SERIAL_RX (9)
#define CC1200_GPIO_SIG_PQT_REACHED (11)
#define CC1200_GPIO_SIG_PQT_VALID (12)
#define CC1200_GPIO_SIG_RSSI_VALID (13)
#define CC1200_GPIO3_SIG_RSSI_UPDATE (14)
#define CC1200_GPIO2_SIG_RSSI_UPDATE (14)
#define CC1200_GPIO1_SIG_AGC_HOLD (14)
#define CC1200_GPIO0_SIG_AGC_UPDATE (14)
#define CC1200_GPIO3_SIG_CCA_STATUS (15)
#define CC1200_GPIO2_SIG_TXONCCA_DONE (15)
#define CC1200_GPIO1_SIG_CCA_STATUS (15)
#define CC1200_GPIO0_SIG_TXONCCA_FAILED (15)
#define CC1200_GPIO_SIG_CARRIER_SENSE_VALID (16)
#define CC1200_GPIO_SIG_CARRIER_SENSE (17)
#define CC1200_GPIO3_SIG_DSSS_CLK (18)
#define CC1200_GPIO2_SIG_DSSS_DATA0 (18)
#define CC1200_GPIO1_SIG_DSSS_CLK (18)
#define CC1200_GPIO0_SIG_DSSS_DATA1 (18)
#define CC1200_GPIO_SIG_PKT_CRC_OK (19)
#define CC1200_GPIO_SIG_MCU_WAKEUP (20)
#define CC1200_GPIO_SIG_SYNC_LOW0_HIGH1 (21)
#define CC1200_GPIO0_SIG_AES_COMMAND_ACTIVE (22)
#define CC1200_GPIO_SIG_LNA_PA_REG_PD (23)
#define CC1200_GPIO_SIG_LNA_PD (24)
#define CC1200_GPIO_SIG_PA_PD (25)
#define CC1200_GPIO_SIG_RX0TX1_CFG (26)
#define CC1200_GPIO_SIG_IMAGE_FOUND (28)
#define CC1200_GPIO_SIG_CLKEN_CFM (29)
#define CC1200_GPIO_SIG_CFM_TX_DATA_CLK (30)
#define CC1200_GPIO_SIG_RSSI_STEP_FOUND (33)
#define CC1200_GPIO3_SIG_AES_RUN (34)
#define CC1200_GPIO2_SIG_AES_RUN (34)
#define CC1200_GPIO1_SIG_RSSI_STEP_EVENT (34)
#define CC1200_GPIO0_SIG_RSSI_STEP_EVENT (34)
#define CC1200_GPIO1_SIG_LOCK (35)
#define CC1200_GPIO0_SIG_LOCK (35)
#define CC1200_GPIO_SIG_ANTENNA_SELECT (36)
#define CC1200_GPIO_SIG_MARC_2PIN_STATUS_1 (37)
#define CC1200_GPIO_SIG_MARC_2PIN_STATUS_0 (38)
#define CC1200_GPIO2_SIG_TXFIFO_OVERFLOW (39)
#define CC1200_GPIO0_SIG_RXFIFO_UNDERFLOW (39)
#define CC1200_GPIO3_SIG_MAGN_VALID (40)
#define CC1200_GPIO2_SIG_CHFILT_VALID (40)
#define CC1200_GPIO1_SIG_RCC_CAL_VALID (40)
#define CC1200_GPIO0_SIG_CHFILT_STARTUP_VALID (40)
#define CC1200_GPIO3_SIG_COLLISION_FOUND (41)
#define CC1200_GPIO2_SIG_SYNC_EVENT (41)
#define CC1200_GPIO1_SIG_COLLISION_FOUND (41)
#define CC1200_GPIO0_SIG_COLLISION_EVENT (41)
#define CC1200_GPIO_SIG_PA_RAMP_UP (42)
#define CC1200_GPIO3_SIG_CRC_FAILED (43)
#define CC1200_GPIO2_SIG_LENGTH_FAILED (43)
#define CC1200_GPIO1_SIG_ADDR_FAILED (43)
#define CC1200_GPIO0_SIG_UART_FRAMING_ERROR (43)
#define CC1200_GPIO_SIG_AGC_STABLE_GAIN (44)
#define CC1200_GPIO_SIG_AGC_UPDATE (45)
#define CC1200_GPIO3_SIG_ADC_CLOCK (46)
#define CC1200_GPIO2_SIG_ADC_Q_DATA_SAMPLE (46)
#define CC1200_GPIO1_SIG_ADC_CLOCK (46)
#define CC1200_GPIO0_SIG_ADC_I_DATA_SAMPLE (46)
#define CC1200_GPIO_SIG_HIGHZ (48)
#define CC1200_GPIO_SIG_EXT_CLOCK (49)
#define CC1200_GPIO_SIG_CHIP_RDYn (50)
#define CC1200_GPIO_SIG_HW0 (51)
#define CC1200_GPIO_SIG_CLOCK_40K (54)
#define CC1200_GPIO_SIG_WOR_EVENT0 (55)
#define CC1200_GPIO_SIG_WOR_EVENT1 (56)
#define CC1200_GPIO_SIG_WOR_EVENT2 (57)
#define CC1200_GPIO_SIG_XOSC_STABLE (59)
#define CC1200_GPIO_SIG_EXT_OSC_EN (60)
/* Chip status - See Section 3.1.2 */
#define CC1200_STATUS_CHIP_NOT_READY BIT(7)
#define CC1200_STATUS_IDLE (0x00)
#define CC1200_STATUS_RX (0x01 << 4)
#define CC1200_STATUS_TX (0x02 << 4)
#define CC1200_STATUS_FSTXON (0x03 << 4)
#define CC1200_STATUS_CALIBRATE (0x04 << 4)
#define CC1200_STATUS_SETTLING (0x05 << 4)
#define CC1200_STATUS_RX_FIFO_ERROR (0x06 << 4)
#define CC1200_STATUS_TX_FIFO_ERROR (0x07 << 4)
#define CC1200_STATUS_MASK (0x70)
/* Appended FCS - See Section 8 */
#define CC1200_FCS_LEN (2)
#define CC1200_FCS_CRC_OK BIT(7)
#define CC1200_FCS_LQI_MASK (0x7F)
/* ToDo: supporting 802.15.4g will make this header of a different size */
#define CC1200_PHY_HDR_LEN (1)
#endif /* __IEEE802154_CC1200_REGS_H__ */