| /* ieee802154_cc1200_regs.h - Registers definition for TI CC1200 */ | 
 |  | 
 | /* | 
 |  * Copyright (c) 2017 Intel Corporation. | 
 |  * | 
 |  * SPDX-License-Identifier: Apache-2.0 | 
 |  */ | 
 |  | 
 | #ifndef ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC1200_REGS_H_ | 
 | #define ZEPHYR_DRIVERS_IEEE802154_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 /* ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC1200_REGS_H_ */ |