1 /* ieee802154_cc1200_regs.h - Registers definition for TI CC1200 */
2 
3 /*
4  * Copyright (c) 2017 Intel Corporation.
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  */
8 
9 #ifndef ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC1200_REGS_H_
10 #define ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC1200_REGS_H_
11 
12 /* Access types (see Section 3.2) */
13 
14 #define CC1200_ACCESS_RD			BIT(7)
15 #define CC1200_ACCESS_WR			(0x00)
16 #define CC1200_ACCESS_BURST			BIT(6)
17 
18 /* Configuration registers (see Section 12 for the details) */
19 
20 #define CC1200_REG_IOCFG3			(0x00)
21 #define GPIO3_ATRAN				BIT(7)
22 #define GPIO3_INV				BIT(6)
23 #define GPIO3_CFG(_cfg_)			(_cfg_ & 0x3F)
24 
25 #define CC1200_REG_IOCFG2			(0x01)
26 #define GPIO2_ATRAN				BIT(7)
27 #define GPIO2_INV				BIT(6)
28 #define GPIO2_CFG(_cfg_)			(_cfg_ & 0x3F)
29 
30 #define CC1200_REG_IOCFG1			(0x02)
31 #define GPIO1_ATRAN				BIT(7)
32 #define GPIO1_INV				BIT(6)
33 #define GPIO1_CFG(_cfg_)			(_cfg_ & 0x3F)
34 
35 #define CC1200_REG_IOCFG0			(0x03)
36 #define GPIO0_ATRAN				BIT(7)
37 #define GPIO0_INV				BIT(6)
38 #define GPIO0_CFG(_cfg_)			(_cfg_ & 0x3F)
39 
40 #define CC1200_REG_SYNC3			(0x04)
41 #define CC1200_REG_SYNC2			(0x05)
42 #define CC1200_REG_SYNC1			(0x06)
43 #define CC1200_REG_SYNC0			(0x07)
44 
45 #define CC1200_REG_SYNC_CFG1			(0x08)
46 #define SYNC_MODE(_cfg_)			(_cfg_ & 0xE0)
47 #define SYNC_THR(_cfg_)				(_cfg_ & 0x1F)
48 
49 
50 #define CC1200_REG_SYNC_CFG0			(0x09)
51 #define AUTO_CLEAR				BIT(5)
52 #define RX_CONFIG_LIMITATION			BIT(4)
53 #define PQT_GATING_EN				BIT(3)
54 #define EXT_SYNC_DETECT				BIT(2)
55 #define STRICT_SYNC_CHECK(_cfg_)		(_cfg_ & 0x03)
56 
57 #define CC1200_REG_DEVIATION_M			(0x0A)
58 
59 #define CC1200_REG_MODCFG_DEV_E			(0x0B)
60 #define MODEM_MODE(_cfg_)			(_cfg_ & 0xC0)
61 #define MOD_FORMAT(_cfg_)			(_cfg_ & 0x38)
62 #define DEV_E(_cfg_)				(_cfg_ & 0x07)
63 
64 #define CC1200_REG_DCFILT_CFG			(0x0C)
65 #define DCFILT_FREEZE_COEFF			BIT(6)
66 #define DCFILT_BW_SETTLE(_cfg_)			(_cfg_ & 0x38)
67 #define DCFILT_BW(_cfg_)			(_cfg_ & 0x07)
68 
69 #define CC1200_REG_PREAMBLE_CFG1		(0x0D)
70 #define NUM_PREAMBL(_cfg_)			(_cfg_ & 0x3C)
71 #define PREAMBLE_WORD(_cfg_)			(_cfg_ & 0x03)
72 
73 #define CC1200_REG_PREAMBLE_CFG0		(0x0E)
74 #define PQT_EN					BIT(7)
75 #define PQT_VALID_TIMEOUT(_cfg_)		(_cfg_ & 0x70)
76 #define PQT(_cfg_)				(_cfg_ & 0x0F)
77 
78 #define CC1200_REG_IQIC				(0x0F)
79 #define IQIC_EN					BIT(7)
80 #define IQIC_UPDATE_COEFF_EN			BIT(6)
81 #define IQIC_BLEN_SETTLE(_cfg_)			(_cfg_ & 0x30)
82 #define IQIC_BLEN(_cfg_)			(_cfg_ & 0x0C)
83 #define IQIC_IMGCH_LEVEL_THR(_cfg_)		(_cfg_ & 0x03)
84 
85 #define CC1200_REG_CHAN_BW			(0x10)
86 #define ADC_CIC_DECFACT(_cfg_)			(_cfg_ & 0xC0)
87 #define BB_CIC_DECFAC(_cfg_)			(_cfg_ & 0x3F)
88 
89 /* Is it mentioned anywhere apart from chapter 12? No known address at least
90  * #define CC1200_REG_MDMCFG2			()
91  * #define ASK_SHAPE(_cfg_)			(_cfg_ & 0xC0)
92  * #define SYMBOL_MAP_CFG(_cfg_)		(_cfg_ & 0x30)
93  * #define UPSAMPLER_P(_cfg_)			(_cfg_ & 0x0E)
94  * #define CFM_DATA_EN				BIT(0)
95 */
96 
97 #define CC1200_REG_MDMCFG1			(0x11)
98 #define CARRIER_SENSE_GATE			BIT(7)
99 #define FIFO_EN					BIT(6)
100 #define MANCHESTER_EN				BIT(5)
101 #define INVERT_DATA_EN				BIT(4)
102 #define COLLISION_DETECT_EN			BIT(3)
103 #define DVGA_GAIN(_cfg_)			(_cfg_ & 0x06)
104 #define SINGLE_ADC_EN				BIT(0)
105 
106 #define CC1200_REG_MDMCFG0			(0x12)
107 #define TRANSPARENT_MODE_EN			BIT(6)
108 #define TRANSPARENT_INTFACT(_cfg_)		(_cfg_ & 0x30)
109 #define DATA_FILTER_EN				BIT(3)
110 #define VITERBI_EN				BIT(2)
111 
112 #define CC1200_REG_SYMBOL_RATE2			(0x13)
113 #define SRATE_E(_cfg_)				(_cfg_ & 0xF0)
114 #define SRATE_M_19_16(_cfg_)			(_cfg_ & 0x0F)
115 
116 #define CC1200_REG_SYMBOL_RATE1			(0x14)
117 #define CC1200_REG_SYMBOL_RATE0			(0x15)
118 #define CC1200_REG_AGC_REF			(0x16)
119 #define CC1200_REG_AGC_CS_THR			(0x17)
120 #define CC1200_REG_AGC_GAIN_ADJUST		(0x18)
121 
122 #define CC1200_REG_AGC_CFG3			(0x19)
123 #define AGC_SYNC_BEHAVIOUR(_cfg_)		(_cfg_ & 0xE0)
124 #define AGC_MIN_GAIN(_cfg_)			(_cfg_ & 0x1F)
125 
126 #define CC1200_REG_AGC_CFG2			(0x1A)
127 #define START_PREVIOUS_GAIN_EN			BIT(7)
128 #define FE_PERFORMANCE_MODE(_cfg_)		(_cfg_ & 0x60)
129 #define AGC_MAX_GAIN(_cfg_)			(_cfg_ & 0x1F)
130 
131 #define CC1200_REG_AGC_CFG1			(0x1B)
132 #define RSSI_STEP_THR				BIT(6)
133 #define AGC_WIN_SIZE(_cfg_)			(_cfg_ & 0x38)
134 #define AGC_SETTLE_WAIT(_cfg_)			(_cfg_ & 0x07)
135 
136 #define CC1200_REG_AGC_CFG0			(0x1C)
137 #define AGC_HYST_LEVEL(_cfg_)			(_cfg_ & 0xC0)
138 #define AGC_SLEWRATE_LIMIT(_cfg_)		(_cfg_ & 0x30)
139 #define RSSI_VALID_CNT(_cfg_)			(_cfg_ & 0x0C)
140 #define AGC_ASK_DECAY(_cfg_)			(_cfg_ & 0x03)
141 
142 #define CC1200_REG_FIFO_CFG			(0x1D)
143 #define CRC_AUTOFLUSH				BIT(7)
144 #define FIFO_THR(_cfg_)				(_cfg_ & 0x7F)
145 
146 #define CC1200_REG_DEV_ADDR			(0x1E)
147 
148 #define CC1200_REG_SETTLING_CFG			(0x1F)
149 #define FS_AUTOCAL(_cfg_)			(_cfg_ & 0x18)
150 #define LOCK_TIME(_cfg_)			(_cfg_ & 0x06)
151 #define FSREG_TIME				BIT(0)
152 
153 #define CC1200_REG_FS_CFG			(0x20)
154 #define FS_LOCK_EN				BIT(4)
155 #define FSD_BANDSELECT(_cfg_)			(_cfg_ & 0x0F)
156 
157 #define CC1200_REG_WOR_CFG1			(0x21)
158 #define WOR_RES(_cfg_)				(_cfg_ & 0xC0)
159 #define WOR_MODE(_cfg_)				(_cfg_ & 0x38)
160 #define EVENT1(_cfg_)				(_cfg_ & 0x07)
161 
162 #define CC1200_REG_WOR_CFG0			(0x22)
163 #define RX_DUTY_CYCLE_MODE(_cfg_)		(_cfg_ & 0xC0)
164 #define DIV_256HZ_EN				BIT(5)
165 #define EVENT2_CFG(_cfg_)			(_cfg_ & 0x18)
166 #define RC_MODE(_cfg_)				(_cfg_ & 0x06)
167 #define RC_PD					BIT(0)
168 
169 #define CC1200_REG_WOR_EVENT0_MSB		(0x23)
170 #define CC1200_REG_WOR_EVENT0_LSB		(0x24)
171 #define CC1200_REG_RXDCM_TIME			(0x25)
172 
173 #define CC1200_REG_PKT_CFG2			(0x26)
174 #define BYTE_SWAP_EN				BIT(6)
175 #define FG_MODE_EN				BIT(5)
176 #define CCA_MODE(_cfg_)				(_cfg_ & 0x1C)
177 #define CCA_ALWAYS_CLEAR			(0)
178 #define CCA_RSSI_BELOW				(1 << 2)
179 #define CCA_NO_RX				(2 << 2)
180 #define CCA_RSSI_BELOW_NO_RX			(3 << 2)
181 #define CCA_RSSI_BELOW_ETSI_LBT			(4 << 2)
182 #define PKT_FORMAT(_cfg_)			(_cfg_ & 0x03)
183 #define PKT_FORMAT_NORMAL_MODE			(0)
184 #define PKT_FORMAT_SYNCHRONOUS_MODE		(1)
185 #define PKT_FORMAT_RANDOM_MODE			(2)
186 #define PKT_FORMAT_TRANSPARENT_MODE		(3)
187 
188 #define CC1200_REG_PKT_CFG1			(0x27)
189 #define FEC_EN					BIT(7)
190 #define WHITE_DATA				BIT(6)
191 #define PN9_SWAP_EN				BIT(5)
192 #define ADDR_CHECK_CFG(_cfg_)			(_cfg_ & 0x18)
193 #define ADDR_NO_CHK				(0)
194 #define ADDR_CHK_NO_BROADCAST			(1 << 3)
195 #define ADDR_CHK_BROADCAST_00			(2 << 3)
196 #define ADDR_CHK_BROADCAST_FF			(3 << 3)
197 #define CRC_CFG(_cfg_)				(_cfg_ & 0x06)
198 #define CRC_NONE				(0)
199 #define CRC_FFFF				(1 << 1)
200 #define CRC_0000				(2 << 1)
201 #define CRC_1D0F				(3 << 1)
202 #define APPEND_STATUS				BIT(0)
203 
204 #define CC1200_REG_PKT_CFG0			(0x28)
205 #define LENGTH_CONFIG(_cfg_)			(_cfg_ & 0x60)
206 #define LENGTH_FIXED				(0)
207 #define LENGTH_VAR_1				(1 << 5)
208 #define LENGTH_INFINITE				(2 << 5)
209 #define LENGTH_VAR_2				(3 << 5)
210 #define PKT_BIT_LEN(_cfg_)			(_cfg_ & 0x1C)
211 #define UART_MODE_EN				BIT(1)
212 #define UART_SWAP_EN				BIT(0)
213 
214 #define CC1200_REG_RFEND_CFG1			(0x29)
215 #define RXOFF_MODE(_cfg_)			(_cfg_ & 0x30)
216 #define RX_TIME(_cfg_)				(_cfg_ & 0x0E)
217 #define RX_TIME_QUAL				BIT(0)
218 
219 #define CC1200_REG_RFEND_CFG0			(0x2A)
220 #define CAL_END_WAKE_UP_EN			BIT(6)
221 #define TXOFF_MODE(_cfg_)			(_cfg_ & 0x30)
222 #define TERM_ON_BAD_PACKET_EN			BIT(3)
223 #define ANT_DIV_RX_TERM_CFG(_cfg_)		(_cfg_ & 0x07)
224 
225 /* Common RFEND tx/rx mode */
226 #define RFEND_TXRX_MODE_IDLE			(0)
227 #define RFEND_TXRX_MODE_FSTXON			(1 << 4)
228 #define RFEND_TXRX_MODE_TX			(2 << 4)
229 #define RFEND_TXRX_MODE_RX			(3 << 4)
230 
231 #define CC1200_REG_PA_CFG1			(0x2B)
232 #define PA_RAMP_SHAPE_EN			BIT(6)
233 #define PA_POWER_RAMP_MASK			(0x3F)
234 
235 #define CC1200_REG_PA_CFG0			(0x2C)
236 #define FIRST_IPL(_cfg_)			(_cfg_ & 0xE0)
237 #define SECOND_IPL(_cfg_)			(_cfg_ & 0x1C)
238 #define RAMP_SHAPE(_cfg_)			(_cfg_ & 0x03)
239 
240 #define CC1200_REG_ASK_CFG			(0x2D)
241 #define AGC_ASK_BW(_cfg_)			(_cfg_ & 0xC0)
242 #define ASK_DEPTH(_cfg_)			(_cfg_ & 0x3F)
243 
244 #define CC1200_REG_PKT_LEN			(0x2E)
245 #define CC1200_REG_EXTENDED_ADDRESS		(0x2F)
246 
247 /* Command strobes */
248 #define CC1200_INS_SRES				(0x30)
249 #define CC1200_INS_SFSTXON			(0x31)
250 #define CC1200_INS_SXOFF			(0x32)
251 #define CC1200_INS_SCAL				(0x33)
252 #define CC1200_INS_SRX				(0x34)
253 #define CC1200_INS_STX				(0x35)
254 #define CC1200_INS_SIDLE			(0x36)
255 #define CC1200_INS_SAFC				(0x37)
256 #define CC1200_INS_SWOR				(0x38)
257 #define CC1200_INS_SPWD				(0x39)
258 #define CC1200_INS_SFRX				(0x3A)
259 #define CC1200_INS_SFTX				(0x3B)
260 #define CC1200_INS_SWORRST			(0x3C)
261 #define CC1200_INS_SNOP				(0x3D)
262 
263 /* Memory access */
264 #define CC1200_MEM_DMA				(0x3E)
265 #define CC1200_MEM_STD				(0x3F)
266 
267 /* FIFO access */
268 #define CC1200_REG_TXFIFO			(0x3F)
269 #define CC1200_REG_RXFIFO			(0x3F)
270 
271 /* Configuration registers (Extended register space) */
272 #define CC1200_REG_IF_MIX_CFG			(0x00)
273 #define CC1200_REG_FREQOFF_CFG			(0x01)
274 #define CC1200_REG_TOC_CFG			(0x02)
275 #define CC1200_REG_MARC_SPARE			(0x03)
276 #define CC1200_REG_ECG_CFG			(0x04)
277 #define CC1200_REG_MDMCFG2			(0x05)
278 #define CC1200_REG_EXT_CTRL			(0x06)
279 #define CC1200_REG_RCCAL_FINE			(0x07)
280 #define CC1200_REG_RCCAL_COARSE			(0x08)
281 #define CC1200_REG_RCCAL_OFFSET			(0x09)
282 #define CC1200_REG_FREQOFF1			(0x0A)
283 #define CC1200_REG_FREQOFF0			(0x0B)
284 #define CC1200_REG_FREQ2			(0x0C)
285 #define CC1200_REG_FREQ1			(0x0D)
286 #define CC1200_REG_FREQ0			(0x0E)
287 #define CC1200_REG_IF_ADC2			(0x0F)
288 #define CC1200_REG_IF_ADC1			(0x10)
289 #define CC1200_REG_IF_ADC0			(0x11)
290 #define CC1200_REG_FS_DIG1			(0x12)
291 #define CC1200_REG_FS_DIG0			(0x13)
292 #define CC1200_REG_FS_CAL3			(0x14)
293 #define CC1200_REG_FS_CAL2			(0x15)
294 #define CC1200_REG_FS_CAL1			(0x16)
295 #define CC1200_REG_FS_CAL0			(0x17)
296 #define CC1200_REG_FS_CHP			(0x18)
297 #define CC1200_REG_FS_DIVTWO			(0x19)
298 #define CC1200_REG_FS_DSM1			(0x1A)
299 #define CC1200_REG_FS_DSM0			(0x1B)
300 #define CC1200_REG_FS_DVC1			(0x1C)
301 #define CC1200_REG_FS_DVC0			(0x1D)
302 #define CC1200_REG_FS_LBI			(0x1E)
303 #define CC1200_REG_FS_PFD			(0x1F)
304 #define CC1200_REG_FS_PRE			(0x20)
305 #define CC1200_REG_FS_REG_DIV_CML		(0x21)
306 #define CC1200_REG_FS_SPARE			(0x22)
307 #define CC1200_REG_FS_VCO4			(0x23)
308 #define CC1200_REG_FS_VCO3			(0x24)
309 #define CC1200_REG_FS_VCO2			(0x25)
310 #define CC1200_REG_FS_VCO1			(0x26)
311 #define CC1200_REG_FS_VCO0			(0x27)
312 #define CC1200_REG_GBIAS6			(0x28)
313 #define CC1200_REG_GBIAS5			(0x29)
314 #define CC1200_REG_GBIAS4			(0x2A)
315 #define CC1200_REG_GBIAS3			(0x2B)
316 #define CC1200_REG_GBIAS2			(0x2C)
317 #define CC1200_REG_GBIAS1			(0x2D)
318 #define CC1200_REG_GBIAS0			(0x2E)
319 #define CC1200_REG_IFAMP			(0x2F)
320 #define CC1200_REG_LNA				(0x30)
321 #define CC1200_REG_RXMIX			(0x31)
322 #define CC1200_REG_XOSC5			(0x32)
323 #define CC1200_REG_XOSC4			(0x33)
324 #define CC1200_REG_XOSC3			(0x34)
325 #define CC1200_REG_XOSC2			(0x35)
326 #define CC1200_REG_XOSC1			(0x36)
327 #define CC1200_REG_XOSC0			(0x37)
328 #define CC1200_REG_ANALOG_SPARE			(0x38)
329 #define CC1200_REG_PA_CFG3			(0x39)
330 /* All addresses in between are unused ones */
331 #define CC1200_REG_WOR_TIME1			(0x64)
332 #define CC1200_REG_WOR_TIME0			(0x65)
333 #define CC1200_REG_WOR_CAPTURE1			(0x66)
334 #define CC1200_REG_WOR_CAPTURE0			(0x67)
335 #define CC1200_REG_BIST				(0x68)
336 #define CC1200_REG_DCFILTOFFSET_I1		(0x69)
337 #define CC1200_REG_DCFILTOFFSET_I0		(0x6A)
338 #define CC1200_REG_DCFILTOFFSET_Q1		(0x6B)
339 #define CC1200_REG_DCFILTOFFSET_Q0		(0x6C)
340 #define CC1200_REG_IQIE_I1			(0x6D)
341 #define CC1200_REG_IQIE_I0			(0x6E)
342 #define CC1200_REG_IQIE_Q1			(0x6F)
343 #define CC1200_REG_IQIE_Q0			(0x70)
344 #define CC1200_REG_RSSI1			(0x71)
345 
346 #define CC1200_REG_RSSI0			(0x72)
347 #define RSSI(_reg_)				((_reg_ & 0x78) >> 3)
348 #define CARRIER_SENSE				BIT(2)
349 #define CARRIER_SENSE_VALID			BIT(1)
350 #define RSSI_VALID				BIT(0)
351 
352 #define CC1200_REG_MARCSTATE			(0x73)
353 #define CC1200_REG_LQI_VAL			(0x74)
354 #define CC1200_REG_PQT_SYNC_ERR			(0x75)
355 #define CC1200_REG_DEM_STATUS			(0x76)
356 #define CC1200_REG_FREQOFF_EST1			(0x77)
357 #define CC1200_REG_FREQOFF_EST0			(0x78)
358 #define CC1200_REG_AGC_GAIN3			(0x79)
359 #define CC1200_REG_AGC_GAIN2			(0x7A)
360 #define CC1200_REG_AGC_GAIN1			(0x7B)
361 #define CC1200_REG_AGC_GAIN0			(0x7C)
362 #define CC1200_REG_CFM_RX_DATA_OUT		(0x7D)
363 #define CC1200_REG_CFM_RX_DATA_IN		(0x7E)
364 #define CC1200_REG_ASK_SOFT_RX_DATA		(0x7F)
365 #define CC1200_REG_RNDGEN			(0x80)
366 #define CC1200_REG_MAGN2			(0x81)
367 #define CC1200_REG_MAGN1			(0x82)
368 #define CC1200_REG_MAGN0			(0x83)
369 #define CC1200_REG_ANG1				(0x84)
370 #define CC1200_REG_ANG0				(0x85)
371 #define CC1200_REG_CHFILT_I2			(0x86)
372 #define CC1200_REG_CHFILT_I1			(0x87)
373 #define CC1200_REG_CHFILT_I0			(0x88)
374 #define CC1200_REG_CHFILT_Q2			(0x89)
375 #define CC1200_REG_CHFILT_Q1			(0x8A)
376 #define CC1200_REG_CHFILT_Q0			(0x8B)
377 #define CC1200_REG_GPIO_STATUS			(0x8C)
378 #define CC1200_REG_FSCAL_CTRL			(0x8D)
379 #define CC1200_REG_PHASE_ADJUST			(0x8E)
380 #define CC1200_REG_PARTNUMBER			(0x8F)
381 #define CC1200_REG_PARTVERSION			(0x90)
382 #define CC1200_REG_SERIAL_STATUS		(0x91)
383 #define CC1200_REG_MODEM_STATUS1		(0x92)
384 #define CC1200_REG_MODEM_STATUS0		(0x93)
385 #define CC1200_REG_MARC_STATUS1			(0x94)
386 #define CC1200_REG_MARC_STATUS0			(0x95)
387 #define CC1200_REG_PA_IFAMP_TEST		(0x96)
388 #define CC1200_REG_FSRF_TEST			(0x97)
389 #define CC1200_REG_PRE_TEST			(0x98)
390 #define CC1200_REG_PRE_OVR			(0x99)
391 #define CC1200_REG_ADC_TEST			(0x9A)
392 #define CC1200_REG_DVC_TEST			(0x9B)
393 #define CC1200_REG_ATEST			(0x9C)
394 #define CC1200_REG_ATEST_LVDS			(0x9D)
395 #define CC1200_REG_ATEST_MODE			(0x9E)
396 #define CC1200_REG_XOSC_TEST1			(0x9F)
397 #define CC1200_REG_XOSC_TEST0			(0xA0)
398 #define CC1200_REG_AES				(0xA1)
399 #define CC1200_REG_MDM_TEST			(0xA2)
400 /* All addresses in between are unused ones */
401 #define CC1200_REG_RXFIRST			(0xD2)
402 #define CC1200_REG_TXFIRST			(0xD3)
403 #define CC1200_REG_RXLAST			(0xD4)
404 #define CC1200_REG_TXLAST			(0xD5)
405 #define CC1200_REG_NUM_TXBYTES			(0xD6)
406 #define CC1200_REG_NUM_RXBYTES			(0xD7)
407 #define CC1200_REG_FIFO_NUM_TXBYTES		(0xD8)
408 #define CC1200_REG_FIFO_NUM_RXBYTES		(0xD9)
409 #define CC1200_REG_RXFIFO_PRE_BUF		(0xDA)
410 /* All addresses in between are unused ones */
411 #define CC1200_REG_AES_WORKSPACE		(0xE0)
412 
413 
414 /* Useful values
415  ***************
416  */
417 
418 
419 /* GPIO signals - See Section 3.4.1.1
420  * Note: some signals are only available on certain GPIO
421  *       thus the number CC1200_GPIOn_(...) on some which
422  *       tells the GPIO line where that signal is valid.
423  */
424 #define CC1200_GPIO_SIG_RXFIFO_THR		(0)
425 #define CC1200_GPIO_SIG_RXFIFO_THR_PKT		(1)
426 #define CC1200_GPIO_SIG_TXFIFO_THR		(2)
427 #define CC1200_GPIO_SIG_TXFIFO_THR_PKT		(3)
428 #define CC1200_GPIO_SIG_RXFIFO_OVERFLOW		(4)
429 #define CC1200_GPIO_SIG_TXFIFO_UNDERFLOW	(5)
430 #define CC1200_GPIO_SIG_PKT_SYNC_RXTX		(6)
431 #define CC1200_GPIO_SIG_CRC_OK			(7)
432 #define CC1200_GPIO_SIG_SERIAL_CLK		(8)
433 #define CC1200_GPIO_SIG_SERIAL_RX		(9)
434 #define CC1200_GPIO_SIG_PQT_REACHED		(11)
435 #define CC1200_GPIO_SIG_PQT_VALID		(12)
436 #define CC1200_GPIO_SIG_RSSI_VALID		(13)
437 #define CC1200_GPIO3_SIG_RSSI_UPDATE		(14)
438 #define CC1200_GPIO2_SIG_RSSI_UPDATE		(14)
439 #define CC1200_GPIO1_SIG_AGC_HOLD		(14)
440 #define CC1200_GPIO0_SIG_AGC_UPDATE		(14)
441 #define CC1200_GPIO3_SIG_CCA_STATUS		(15)
442 #define CC1200_GPIO2_SIG_TXONCCA_DONE		(15)
443 #define CC1200_GPIO1_SIG_CCA_STATUS		(15)
444 #define CC1200_GPIO0_SIG_TXONCCA_FAILED		(15)
445 #define CC1200_GPIO_SIG_CARRIER_SENSE_VALID	(16)
446 #define CC1200_GPIO_SIG_CARRIER_SENSE		(17)
447 #define CC1200_GPIO3_SIG_DSSS_CLK		(18)
448 #define CC1200_GPIO2_SIG_DSSS_DATA0		(18)
449 #define CC1200_GPIO1_SIG_DSSS_CLK		(18)
450 #define CC1200_GPIO0_SIG_DSSS_DATA1		(18)
451 #define CC1200_GPIO_SIG_PKT_CRC_OK		(19)
452 #define CC1200_GPIO_SIG_MCU_WAKEUP		(20)
453 #define CC1200_GPIO_SIG_SYNC_LOW0_HIGH1		(21)
454 #define CC1200_GPIO0_SIG_AES_COMMAND_ACTIVE	(22)
455 #define CC1200_GPIO_SIG_LNA_PA_REG_PD		(23)
456 #define CC1200_GPIO_SIG_LNA_PD			(24)
457 #define CC1200_GPIO_SIG_PA_PD			(25)
458 #define CC1200_GPIO_SIG_RX0TX1_CFG		(26)
459 #define CC1200_GPIO_SIG_IMAGE_FOUND		(28)
460 #define CC1200_GPIO_SIG_CLKEN_CFM		(29)
461 #define CC1200_GPIO_SIG_CFM_TX_DATA_CLK		(30)
462 #define CC1200_GPIO_SIG_RSSI_STEP_FOUND		(33)
463 #define CC1200_GPIO3_SIG_AES_RUN		(34)
464 #define CC1200_GPIO2_SIG_AES_RUN		(34)
465 #define CC1200_GPIO1_SIG_RSSI_STEP_EVENT	(34)
466 #define CC1200_GPIO0_SIG_RSSI_STEP_EVENT	(34)
467 #define CC1200_GPIO1_SIG_LOCK			(35)
468 #define CC1200_GPIO0_SIG_LOCK			(35)
469 #define CC1200_GPIO_SIG_ANTENNA_SELECT		(36)
470 #define CC1200_GPIO_SIG_MARC_2PIN_STATUS_1	(37)
471 #define CC1200_GPIO_SIG_MARC_2PIN_STATUS_0	(38)
472 #define CC1200_GPIO2_SIG_TXFIFO_OVERFLOW	(39)
473 #define CC1200_GPIO0_SIG_RXFIFO_UNDERFLOW	(39)
474 #define CC1200_GPIO3_SIG_MAGN_VALID		(40)
475 #define CC1200_GPIO2_SIG_CHFILT_VALID		(40)
476 #define CC1200_GPIO1_SIG_RCC_CAL_VALID		(40)
477 #define CC1200_GPIO0_SIG_CHFILT_STARTUP_VALID	(40)
478 #define CC1200_GPIO3_SIG_COLLISION_FOUND	(41)
479 #define CC1200_GPIO2_SIG_SYNC_EVENT		(41)
480 #define CC1200_GPIO1_SIG_COLLISION_FOUND	(41)
481 #define CC1200_GPIO0_SIG_COLLISION_EVENT	(41)
482 #define CC1200_GPIO_SIG_PA_RAMP_UP		(42)
483 #define CC1200_GPIO3_SIG_CRC_FAILED		(43)
484 #define CC1200_GPIO2_SIG_LENGTH_FAILED		(43)
485 #define CC1200_GPIO1_SIG_ADDR_FAILED		(43)
486 #define CC1200_GPIO0_SIG_UART_FRAMING_ERROR	(43)
487 #define CC1200_GPIO_SIG_AGC_STABLE_GAIN		(44)
488 #define CC1200_GPIO_SIG_AGC_UPDATE		(45)
489 #define CC1200_GPIO3_SIG_ADC_CLOCK		(46)
490 #define CC1200_GPIO2_SIG_ADC_Q_DATA_SAMPLE	(46)
491 #define CC1200_GPIO1_SIG_ADC_CLOCK		(46)
492 #define CC1200_GPIO0_SIG_ADC_I_DATA_SAMPLE	(46)
493 #define CC1200_GPIO_SIG_HIGHZ			(48)
494 #define CC1200_GPIO_SIG_EXT_CLOCK		(49)
495 #define CC1200_GPIO_SIG_CHIP_RDYn		(50)
496 #define CC1200_GPIO_SIG_HW0			(51)
497 #define CC1200_GPIO_SIG_CLOCK_40K		(54)
498 #define CC1200_GPIO_SIG_WOR_EVENT0		(55)
499 #define CC1200_GPIO_SIG_WOR_EVENT1		(56)
500 #define CC1200_GPIO_SIG_WOR_EVENT2		(57)
501 #define CC1200_GPIO_SIG_XOSC_STABLE		(59)
502 #define CC1200_GPIO_SIG_EXT_OSC_EN		(60)
503 
504 /* Chip status - See Section 3.1.2 */
505 #define CC1200_STATUS_CHIP_NOT_READY		BIT(7)
506 #define CC1200_STATUS_IDLE			(0x00)
507 #define CC1200_STATUS_RX			(0x01 << 4)
508 #define CC1200_STATUS_TX			(0x02 << 4)
509 #define CC1200_STATUS_FSTXON			(0x03 << 4)
510 #define CC1200_STATUS_CALIBRATE			(0x04 << 4)
511 #define CC1200_STATUS_SETTLING			(0x05 << 4)
512 #define CC1200_STATUS_RX_FIFO_ERROR		(0x06 << 4)
513 #define CC1200_STATUS_TX_FIFO_ERROR		(0x07 << 4)
514 #define CC1200_STATUS_MASK			(0x70)
515 
516 /* Appended FCS - See Section 8 */
517 #define CC1200_FCS_LEN				(2)
518 #define CC1200_FCS_CRC_OK			BIT(7)
519 #define CC1200_FCS_LQI_MASK			(0x7F)
520 
521 /* ToDo: supporting 802.15.4g will make this header of a different size */
522 #define CC1200_PHY_HDR_LEN			(1)
523 
524 #endif /* ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC1200_REGS_H_ */
525