summaryrefslogtreecommitdiffstats
path: root/tools/csr.h
blob: 5d0b989a33d544f7819334433e41f7579f6e6618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2003-2007  Marcel Holtmann <marcel@holtmann.org>
 *
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#include <stdint.h>

#define CSR_VARID_PS_CLR_ALL			0x000b	/* valueless */
#define CSR_VARID_PS_FACTORY_SET		0x000c	/* valueless */
#define CSR_VARID_PS_CLR_ALL_STORES		0x082d	/* uint16 */
#define CSR_VARID_BC01_STATUS			0x2801	/* uint16 */
#define CSR_VARID_BUILDID			0x2819	/* uint16 */
#define CSR_VARID_CHIPVER			0x281a	/* uint16 */
#define CSR_VARID_CHIPREV			0x281b	/* uint16 */
#define CSR_VARID_INTERFACE_VERSION		0x2825	/* uint16 */
#define CSR_VARID_RAND				0x282a	/* uint16 */
#define CSR_VARID_MAX_CRYPT_KEY_LENGTH		0x282c	/* uint16 */
#define CSR_VARID_CHIPANAREV			0x2836	/* uint16 */
#define CSR_VARID_BUILDID_LOADER		0x2838	/* uint16 */
#define CSR_VARID_BT_CLOCK			0x2c00	/* uint32 */
#define CSR_VARID_PS_NEXT			0x3005	/* complex */
#define CSR_VARID_PS_SIZE			0x3006	/* complex */
#define CSR_VARID_CRYPT_KEY_LENGTH		0x3008	/* complex */
#define CSR_VARID_PICONET_INSTANCE		0x3009	/* complex */
#define CSR_VARID_GET_CLR_EVT			0x300a	/* complex */
#define CSR_VARID_GET_NEXT_BUILDDEF		0x300b	/* complex */
#define CSR_VARID_PS_MEMORY_TYPE		0x3012	/* complex */
#define CSR_VARID_READ_BUILD_NAME		0x301c	/* complex */
#define CSR_VARID_COLD_RESET			0x4001	/* valueless */
#define CSR_VARID_WARM_RESET			0x4002	/* valueless */
#define CSR_VARID_COLD_HALT			0x4003	/* valueless */
#define CSR_VARID_WARM_HALT			0x4004	/* valueless */
#define CSR_VARID_INIT_BT_STACK			0x4005	/* valueless */
#define CSR_VARID_ACTIVATE_BT_STACK		0x4006	/* valueless */
#define CSR_VARID_ENABLE_TX			0x4007	/* valueless */
#define CSR_VARID_DISABLE_TX			0x4008	/* valueless */
#define CSR_VARID_RECAL				0x4009	/* valueless */
#define CSR_VARID_PS_FACTORY_RESTORE		0x400d	/* valueless */
#define CSR_VARID_PS_FACTORY_RESTORE_ALL	0x400e	/* valueless */
#define CSR_VARID_PS_DEFRAG_RESET		0x400f	/* valueless */
#define CSR_VARID_KILL_VM_APPLICATION		0x4010	/* valueless */
#define CSR_VARID_HOPPING_ON			0x4011	/* valueless */
#define CSR_VARID_CANCEL_PAGE			0x4012	/* valueless */
#define CSR_VARID_PS_CLR			0x4818	/* uint16 */
#define CSR_VARID_MAP_SCO_PCM			0x481c	/* uint16 */
#define CSR_VARID_SINGLE_CHAN			0x482e	/* uint16 */
#define CSR_VARID_RADIOTEST			0x5004	/* complex */
#define CSR_VARID_PS_CLR_STORES			0x500c	/* complex */
#define CSR_VARID_NO_VARIABLE			0x6000	/* valueless */
#define CSR_VARID_CONFIG_UART			0x6802	/* uint16 */
#define CSR_VARID_PANIC_ARG			0x6805	/* uint16 */
#define CSR_VARID_FAULT_ARG			0x6806	/* uint16 */
#define CSR_VARID_MAX_TX_POWER			0x6827	/* int8 */
#define CSR_VARID_DEFAULT_TX_POWER		0x682b	/* int8 */
#define CSR_VARID_PS				0x7003	/* complex */

#define CSR_PSKEY_BDADDR					0x0001	/* bdaddr / uint16[] = { 0x00A5A5, 0x5b, 0x0002 } */
#define CSR_PSKEY_COUNTRYCODE					0x0002	/* uint16 */
#define CSR_PSKEY_CLASSOFDEVICE					0x0003	/* bdcod */
#define CSR_PSKEY_DEVICE_DRIFT					0x0004	/* uint16 */
#define CSR_PSKEY_DEVICE_JITTER					0x0005	/* uint16 */
#define CSR_PSKEY_MAX_ACLS					0x000d	/* uint16 */
#define CSR_PSKEY_MAX_SCOS					0x000e	/* uint16 */
#define CSR_PSKEY_MAX_REMOTE_MASTERS				0x000f	/* uint16 */
#define CSR_PSKEY_ENABLE_MASTERY_WITH_SLAVERY			0x0010	/* bool */
#define CSR_PSKEY_H_HC_FC_MAX_ACL_PKT_LEN			0x0011	/* uint16 */
#define CSR_PSKEY_H_HC_FC_MAX_SCO_PKT_LEN			0x0012	/* uint8 */
#define CSR_PSKEY_H_HC_FC_MAX_ACL_PKTS				0x0013	/* uint16 */
#define CSR_PSKEY_H_HC_FC_MAX_SCO_PKTS				0x0014	/* uint16 */
#define CSR_PSKEY_LC_FC_BUFFER_LOW_WATER_MARK			0x0015	/* lc_fc_lwm */
#define CSR_PSKEY_LC_MAX_TX_POWER				0x0017	/* int16 */
#define CSR_PSKEY_TX_GAIN_RAMP					0x001d	/* uint16 */
#define CSR_PSKEY_LC_POWER_TABLE				0x001e	/* power_setting[] */
#define CSR_PSKEY_LC_PEER_POWER_PERIOD				0x001f	/* TIME */
#define CSR_PSKEY_LC_FC_POOLS_LOW_WATER_MARK			0x0020	/* lc_fc_lwm */
#define CSR_PSKEY_LC_DEFAULT_TX_POWER				0x0021	/* int16 */
#define CSR_PSKEY_LC_RSSI_GOLDEN_RANGE				0x0022	/* uint8 */
#define CSR_PSKEY_LC_COMBO_DISABLE_PIO_MASK			0x0028	/* uint16[] */
#define CSR_PSKEY_LC_COMBO_PRIORITY_PIO_MASK			0x0029	/* uint16[] */
#define CSR_PSKEY_LC_COMBO_DOT11_CHANNEL_PIO_BASE		0x002a	/* uint16 */
#define CSR_PSKEY_LC_COMBO_DOT11_BLOCK_CHANNELS			0x002b	/* uint16 */
#define CSR_PSKEY_LC_MAX_TX_POWER_NO_RSSI			0x002d	/* int8 */
#define CSR_PSKEY_LC_CONNECTION_RX_WINDOW			0x002e	/* uint16 */
#define CSR_PSKEY_LC_COMBO_DOT11_TX_PROTECTION_MODE		0x0030	/* uint16 */
#define CSR_PSKEY_LC_ENHANCED_POWER_TABLE			0x0031	/* enhanced_power_setting[] */
#define CSR_PSKEY_LC_WIDEBAND_RSSI_CONFIG			0x0032	/* wideband_rssi_config */
#define CSR_PSKEY_LC_COMBO_DOT11_PRIORITY_LEAD			0x0033	/* uint16 */
#define CSR_PSKEY_BT_CLOCK_INIT					0x0034	/* uint32 */
#define CSR_PSKEY_TX_MR_MOD_DELAY				0x0038	/* uint8 */
#define CSR_PSKEY_RX_MR_SYNC_TIMING				0x0039	/* uint16 */
#define CSR_PSKEY_RX_MR_SYNC_CONFIG				0x003a	/* uint16 */
#define CSR_PSKEY_LC_LOST_SYNC_SLOTS				0x003b	/* uint16 */
#define CSR_PSKEY_RX_MR_SAMP_CONFIG				0x003c	/* uint16 */
#define CSR_PSKEY_AGC_HYST_LEVELS				0x003d	/* agc_hyst_config */
#define CSR_PSKEY_RX_LEVEL_LOW_SIGNAL				0x003e	/* uint16 */
#define CSR_PSKEY_AGC_IQ_LVL_VALUES				0x003f	/* IQ_LVL_VAL[] */
#define CSR_PSKEY_MR_FTRIM_OFFSET_12DB				0x0040	/* uint16 */
#define CSR_PSKEY_MR_FTRIM_OFFSET_6DB				0x0041	/* uint16 */
#define CSR_PSKEY_NO_CAL_ON_BOOT				0x0042	/* bool */
#define CSR_PSKEY_RSSI_HI_TARGET				0x0043	/* uint8 */
#define CSR_PSKEY_PREFERRED_MIN_ATTENUATION			0x0044	/* uint8 */
#define CSR_PSKEY_LC_COMBO_DOT11_PRIORITY_OVERRIDE		0x0045	/* bool */
#define CSR_PSKEY_LC_MULTISLOT_HOLDOFF				0x0047	/* TIME */
#define CSR_PSKEY_FREE_KEY_PIGEON_HOLE				0x00c9	/* uint16 */
#define CSR_PSKEY_LINK_KEY_BD_ADDR0				0x00ca	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR1				0x00cb	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR2				0x00cc	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR3				0x00cd	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR4				0x00ce	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR5				0x00cf	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR6				0x00d0	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR7				0x00d1	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR8				0x00d2	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR9				0x00d3	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR10				0x00d4	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR11				0x00d5	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR12				0x00d6	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR13				0x00d7	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR14				0x00d8	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LINK_KEY_BD_ADDR15				0x00d9	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_ENC_KEY_LMIN					0x00da	/* uint16 */
#define CSR_PSKEY_ENC_KEY_LMAX					0x00db	/* uint16 */
#define CSR_PSKEY_LOCAL_SUPPORTED_FEATURES			0x00ef	/* uint16[] = { 0xffff, 0xfe8f, 0xf99b, 0x8000 }*/
#define CSR_PSKEY_LM_USE_UNIT_KEY				0x00f0	/* bool */
#define CSR_PSKEY_HCI_NOP_DISABLE				0x00f2	/* bool */
#define CSR_PSKEY_LM_MAX_EVENT_FILTERS				0x00f4	/* uint8 */
#define CSR_PSKEY_LM_USE_ENC_MODE_BROADCAST			0x00f5	/* bool */
#define CSR_PSKEY_LM_TEST_SEND_ACCEPTED_TWICE			0x00f6	/* bool */
#define CSR_PSKEY_LM_MAX_PAGE_HOLD_TIME				0x00f7	/* uint16 */
#define CSR_PSKEY_AFH_ADAPTATION_RESPONSE_TIME			0x00f8	/* uint16 */
#define CSR_PSKEY_AFH_OPTIONS					0x00f9	/* uint16 */
#define CSR_PSKEY_AFH_RSSI_RUN_PERIOD				0x00fa	/* uint16 */
#define CSR_PSKEY_AFH_REENABLE_CHANNEL_TIME			0x00fb	/* uint16 */
#define CSR_PSKEY_NO_DROP_ON_ACR_MS_FAIL			0x00fc	/* bool */
#define CSR_PSKEY_MAX_PRIVATE_KEYS				0x00fd	/* uint8 */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR0			0x00fe	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR1			0x00ff	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR2			0x0100	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR3			0x0101	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR4			0x0102	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR5			0x0103	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR6			0x0104	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_PRIVATE_LINK_KEY_BD_ADDR7			0x0105	/* LM_LINK_KEY_BD_ADDR_T */
#define CSR_PSKEY_LOCAL_SUPPORTED_COMMANDS			0x0106	/* uint16[] = { 0xffff, 0x03ff, 0xfffe, 0xffff, 0xffff, 0xffff, 0x0ff3, 0xfff8, 0x003f } */
#define CSR_PSKEY_LM_MAX_ABSENCE_INDEX				0x0107	/* uint8 */
#define CSR_PSKEY_DEVICE_NAME					0x0108	/* uint16[] */
#define CSR_PSKEY_AFH_RSSI_THRESHOLD				0x0109	/* uint16 */
#define CSR_PSKEY_LM_CASUAL_SCAN_INTERVAL			0x010a	/* uint16 */
#define CSR_PSKEY_AFH_MIN_MAP_CHANGE				0x010b	/* uint16[] */
#define CSR_PSKEY_AFH_RSSI_LP_RUN_PERIOD			0x010c	/* uint16 */
#define CSR_PSKEY_HCI_LMP_LOCAL_VERSION				0x010d	/* uint16 */
#define CSR_PSKEY_LMP_REMOTE_VERSION				0x010e	/* uint8 */
#define CSR_PSKEY_HOLD_ERROR_MESSAGE_NUMBER			0x0113	/* uint16 */
#define CSR_PSKEY_DFU_ATTRIBUTES				0x0136	/* uint8 */
#define CSR_PSKEY_DFU_DETACH_TO					0x0137	/* uint16 */
#define CSR_PSKEY_DFU_TRANSFER_SIZE				0x0138	/* uint16 */
#define CSR_PSKEY_DFU_ENABLE					0x0139	/* bool */
#define CSR_PSKEY_DFU_LIN_REG_ENABLE				0x013a	/* bool */
#define CSR_PSKEY_DFUENC_VMAPP_PK_MODULUS_MSB			0x015e	/* uint16[] */
#define CSR_PSKEY_DFUENC_VMAPP_PK_MODULUS_LSB			0x015f	/* uint16[] */
#define CSR_PSKEY_DFUENC_VMAPP_PK_M_DASH			0x0160	/* uint16 */
#define CSR_PSKEY_DFUENC_VMAPP_PK_R2N_MSB			0x0161	/* uint16[] */
#define CSR_PSKEY_DFUENC_VMAPP_PK_R2N_LSB			0x0162	/* uint16[] */
#define CSR_PSKEY_BCSP_LM_PS_BLOCK				0x0192	/* BCSP_LM_PS_BLOCK */
#define CSR_PSKEY_HOSTIO_FC_PS_BLOCK				0x0193	/* HOSTIO_FC_PS_BLOCK */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO0				0x0194	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO1				0x0195	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO2				0x0196	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO3				0x0197	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO4				0x0198	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO5				0x0199	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO6				0x019a	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO7				0x019b	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO8				0x019c	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO9				0x019d	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO10			0x019e	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO11			0x019f	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO12			0x01a0	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO13			0x01a1	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO14			0x01a2	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_PROTOCOL_INFO15			0x01a3	/* PROTOCOL_INFO */
#define CSR_PSKEY_HOSTIO_UART_RESET_TIMEOUT			0x01a4	/* TIME */
#define CSR_PSKEY_HOSTIO_USE_HCI_EXTN				0x01a5	/* bool */
#define CSR_PSKEY_HOSTIO_USE_HCI_EXTN_CCFC			0x01a6	/* bool */
#define CSR_PSKEY_HOSTIO_HCI_EXTN_PAYLOAD_SIZE			0x01a7	/* uint16 */
#define CSR_PSKEY_BCSP_LM_CNF_CNT_LIMIT				0x01aa	/* uint16 */
#define CSR_PSKEY_HOSTIO_MAP_SCO_PCM				0x01ab	/* bool */
#define CSR_PSKEY_HOSTIO_AWKWARD_PCM_SYNC			0x01ac	/* bool */
#define CSR_PSKEY_HOSTIO_BREAK_POLL_PERIOD			0x01ad	/* TIME */
#define CSR_PSKEY_HOSTIO_MIN_UART_HCI_SCO_SIZE			0x01ae	/* uint16 */
#define CSR_PSKEY_HOSTIO_MAP_SCO_CODEC				0x01b0	/* bool */
#define CSR_PSKEY_PCM_CVSD_TX_HI_FREQ_BOOST			0x01b1	/* uint16 */
#define CSR_PSKEY_PCM_CVSD_RX_HI_FREQ_BOOST			0x01b2	/* uint16 */
#define CSR_PSKEY_PCM_CONFIG32					0x01b3	/* uint32 */
#define CSR_PSKEY_USE_OLD_BCSP_LE				0x01b4	/* uint16 */
#define CSR_PSKEY_PCM_CVSD_USE_NEW_FILTER			0x01b5	/* bool */
#define CSR_PSKEY_PCM_FORMAT					0x01b6	/* uint16 */
#define CSR_PSKEY_CODEC_OUT_GAIN				0x01b7	/* uint16 */
#define CSR_PSKEY_CODEC_IN_GAIN					0x01b8	/* uint16 */
#define CSR_PSKEY_CODEC_PIO					0x01b9	/* uint16 */
#define CSR_PSKEY_PCM_LOW_JITTER_CONFIG				0x01ba	/* uint32 */
#define CSR_PSKEY_HOSTIO_SCO_PCM_THRESHOLDS			0x01bb	/* uint16[] */
#define CSR_PSKEY_HOSTIO_SCO_HCI_THRESHOLDS			0x01bc	/* uint16[] */
#define CSR_PSKEY_HOSTIO_MAP_SCO_PCM_SLOT			0x01bd	/* uint16 */
#define CSR_PSKEY_UART_BAUDRATE					0x01be	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_BCSP				0x01bf	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_H4				0x01c0	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_H5				0x01c1	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_USR				0x01c2	/* uint16 */
#define CSR_PSKEY_UART_TX_CRCS					0x01c3	/* bool */
#define CSR_PSKEY_UART_ACK_TIMEOUT				0x01c4	/* uint16 */
#define CSR_PSKEY_UART_TX_MAX_ATTEMPTS				0x01c5	/* uint16 */
#define CSR_PSKEY_UART_TX_WINDOW_SIZE				0x01c6	/* uint16 */
#define CSR_PSKEY_UART_HOST_WAKE				0x01c7	/* uint16[] */
#define CSR_PSKEY_HOSTIO_THROTTLE_TIMEOUT			0x01c8	/* TIME */
#define CSR_PSKEY_PCM_ALWAYS_ENABLE				0x01c9	/* bool */
#define CSR_PSKEY_UART_HOST_WAKE_SIGNAL				0x01ca	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_H4DS				0x01cb	/* uint16 */
#define CSR_PSKEY_H4DS_WAKE_DURATION				0x01cc	/* uint16 */
#define CSR_PSKEY_H4DS_MAXWU					0x01cd	/* uint16 */
#define CSR_PSKEY_H4DS_LE_TIMER_PERIOD				0x01cf	/* uint16 */
#define CSR_PSKEY_H4DS_TWU_TIMER_PERIOD				0x01d0	/* uint16 */
#define CSR_PSKEY_H4DS_UART_IDLE_TIMER_PERIOD			0x01d1	/* uint16 */
#define CSR_PSKEY_ANA_FTRIM					0x01f6	/* uint16 */
#define CSR_PSKEY_WD_TIMEOUT					0x01f7	/* TIME */
#define CSR_PSKEY_WD_PERIOD					0x01f8	/* TIME */
#define CSR_PSKEY_HOST_INTERFACE				0x01f9	/* phys_bus */
#define CSR_PSKEY_HQ_HOST_TIMEOUT				0x01fb	/* TIME */
#define CSR_PSKEY_HQ_ACTIVE					0x01fc	/* bool */
#define CSR_PSKEY_BCCMD_SECURITY_ACTIVE				0x01fd	/* bool */
#define CSR_PSKEY_ANA_FREQ					0x01fe	/* uint16 */
#define CSR_PSKEY_PIO_PROTECT_MASK				0x0202	/* uint16 */
#define CSR_PSKEY_PMALLOC_SIZES					0x0203	/* uint16[] */
#define CSR_PSKEY_UART_BAUD_RATE				0x0204	/* uint16 */
#define CSR_PSKEY_UART_CONFIG					0x0205	/* uint16 */
#define CSR_PSKEY_STUB						0x0207	/* uint16 */
#define CSR_PSKEY_TXRX_PIO_CONTROL				0x0209	/* uint16 */
#define CSR_PSKEY_ANA_RX_LEVEL					0x020b	/* uint16 */
#define CSR_PSKEY_ANA_RX_FTRIM					0x020c	/* uint16 */
#define CSR_PSKEY_PSBC_DATA_VERSION				0x020d	/* uint16 */
#define CSR_PSKEY_PCM0_ATTENUATION				0x020f	/* uint16 */
#define CSR_PSKEY_LO_LVL_MAX					0x0211	/* uint16 */
#define CSR_PSKEY_LO_ADC_AMPL_MIN				0x0212	/* uint16 */
#define CSR_PSKEY_LO_ADC_AMPL_MAX				0x0213	/* uint16 */
#define CSR_PSKEY_IQ_TRIM_CHANNEL				0x0214	/* uint16 */
#define CSR_PSKEY_IQ_TRIM_GAIN					0x0215	/* uint16 */
#define CSR_PSKEY_IQ_TRIM_ENABLE				0x0216	/* iq_trim_enable_flag */
#define CSR_PSKEY_TX_OFFSET_HALF_MHZ				0x0217	/* int16 */
#define CSR_PSKEY_GBL_MISC_ENABLES				0x0221	/* uint16 */
#define CSR_PSKEY_UART_SLEEP_TIMEOUT				0x0222	/* uint16 */
#define CSR_PSKEY_DEEP_SLEEP_STATE				0x0229	/* deep_sleep_state */
#define CSR_PSKEY_IQ_ENABLE_PHASE_TRIM				0x022d	/* bool */
#define CSR_PSKEY_HCI_HANDLE_FREEZE_PERIOD			0x0237	/* TIME */
#define CSR_PSKEY_MAX_FROZEN_HCI_HANDLES			0x0238	/* uint16 */
#define CSR_PSKEY_PAGETABLE_DESTRUCTION_DELAY			0x0239	/* TIME */
#define CSR_PSKEY_IQ_TRIM_PIO_SETTINGS				0x023a	/* uint8 */
#define CSR_PSKEY_USE_EXTERNAL_CLOCK				0x023b	/* bool */
#define CSR_PSKEY_DEEP_SLEEP_WAKE_CTS				0x023c	/* uint16 */
#define CSR_PSKEY_FC_HC2H_FLUSH_DELAY				0x023d	/* TIME */
#define CSR_PSKEY_RX_HIGHSIDE					0x023e	/* bool */
#define CSR_PSKEY_TX_PRE_LVL					0x0240	/* uint8 */
#define CSR_PSKEY_RX_SINGLE_ENDED				0x0242	/* bool */
#define CSR_PSKEY_TX_FILTER_CONFIG				0x0243	/* uint32 */
#define CSR_PSKEY_CLOCK_REQUEST_ENABLE				0x0246	/* uint16 */
#define CSR_PSKEY_RX_MIN_ATTEN					0x0249	/* uint16 */
#define CSR_PSKEY_XTAL_TARGET_AMPLITUDE				0x024b	/* uint8 */
#define CSR_PSKEY_PCM_MIN_CPU_CLOCK				0x024d	/* uint16 */
#define CSR_PSKEY_HOST_INTERFACE_PIO_USB			0x0250	/* uint16 */
#define CSR_PSKEY_CPU_IDLE_MODE					0x0251	/* cpu_idle_mode */
#define CSR_PSKEY_DEEP_SLEEP_CLEAR_RTS				0x0252	/* bool */
#define CSR_PSKEY_RF_RESONANCE_TRIM				0x0254	/* uint16 */
#define CSR_PSKEY_DEEP_SLEEP_PIO_WAKE				0x0255	/* uint16 */
#define CSR_PSKEY_DRAIN_BORE_TIMERS				0x0256	/* uint32[] */
#define CSR_PSKEY_DRAIN_TX_POWER_BASE				0x0257	/* uint16 */
#define CSR_PSKEY_MODULE_ID					0x0259	/* uint32 */
#define CSR_PSKEY_MODULE_DESIGN					0x025a	/* uint16 */
#define CSR_PSKEY_MODULE_SECURITY_CODE				0x025c	/* uint16[] */
#define CSR_PSKEY_VM_DISABLE					0x025d	/* bool */
#define CSR_PSKEY_MOD_MANUF0					0x025e	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF1					0x025f	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF2					0x0260	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF3					0x0261	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF4					0x0262	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF5					0x0263	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF6					0x0264	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF7					0x0265	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF8					0x0266	/* uint16[] */
#define CSR_PSKEY_MOD_MANUF9					0x0267	/* uint16[] */
#define CSR_PSKEY_DUT_VM_DISABLE				0x0268	/* bool */
#define CSR_PSKEY_USR0						0x028a	/* uint16[] */
#define CSR_PSKEY_USR1						0x028b	/* uint16[] */
#define CSR_PSKEY_USR2						0x028c	/* uint16[] */
#define CSR_PSKEY_USR3						0x028d	/* uint16[] */
#define CSR_PSKEY_USR4						0x028e	/* uint16[] */
#define CSR_PSKEY_USR5						0x028f	/* uint16[] */
#define CSR_PSKEY_USR6						0x0290	/* uint16[] */
#define CSR_PSKEY_USR7						0x0291	/* uint16[] */
#define CSR_PSKEY_USR8						0x0292	/* uint16[] */
#define CSR_PSKEY_USR9						0x0293	/* uint16[] */
#define CSR_PSKEY_USR10						0x0294	/* uint16[] */
#define CSR_PSKEY_USR11						0x0295	/* uint16[] */
#define CSR_PSKEY_USR12						0x0296	/* uint16[] */
#define CSR_PSKEY_USR13						0x0297	/* uint16[] */
#define CSR_PSKEY_USR14						0x0298	/* uint16[] */
#define CSR_PSKEY_USR15						0x0299	/* uint16[] */
#define CSR_PSKEY_USR16						0x029a	/* uint16[] */
#define CSR_PSKEY_USR17						0x029b	/* uint16[] */
#define CSR_PSKEY_USR18						0x029c	/* uint16[] */
#define CSR_PSKEY_USR19						0x029d	/* uint16[] */
#define CSR_PSKEY_USR20						0x029e	/* uint16[] */
#define CSR_PSKEY_USR21						0x029f	/* uint16[] */
#define CSR_PSKEY_USR22						0x02a0	/* uint16[] */
#define CSR_PSKEY_USR23						0x02a1	/* uint16[] */
#define CSR_PSKEY_USR24						0x02a2	/* uint16[] */
#define CSR_PSKEY_USR25						0x02a3	/* uint16[] */
#define CSR_PSKEY_USR26						0x02a4	/* uint16[] */
#define CSR_PSKEY_USR27						0x02a5	/* uint16[] */
#define CSR_PSKEY_USR28						0x02a6	/* uint16[] */
#define CSR_PSKEY_USR29						0x02a7	/* uint16[] */
#define CSR_PSKEY_USR30						0x02a8	/* uint16[] */
#define CSR_PSKEY_USR31						0x02a9	/* uint16[] */
#define CSR_PSKEY_USR32						0x02aa	/* uint16[] */
#define CSR_PSKEY_USR33						0x02ab	/* uint16[] */
#define CSR_PSKEY_USR34						0x02ac	/* uint16[] */
#define CSR_PSKEY_USR35						0x02ad	/* uint16[] */
#define CSR_PSKEY_USR36						0x02ae	/* uint16[] */
#define CSR_PSKEY_USR37						0x02af	/* uint16[] */
#define CSR_PSKEY_USR38						0x02b0	/* uint16[] */
#define CSR_PSKEY_USR39						0x02b1	/* uint16[] */
#define CSR_PSKEY_USR40						0x02b2	/* uint16[] */
#define CSR_PSKEY_USR41						0x02b3	/* uint16[] */
#define CSR_PSKEY_USR42						0x02b4	/* uint16[] */
#define CSR_PSKEY_USR43						0x02b5	/* uint16[] */
#define CSR_PSKEY_USR44						0x02b6	/* uint16[] */
#define CSR_PSKEY_USR45						0x02b7	/* uint16[] */
#define CSR_PSKEY_USR46						0x02b8	/* uint16[] */
#define CSR_PSKEY_USR47						0x02b9	/* uint16[] */
#define CSR_PSKEY_USR48						0x02ba	/* uint16[] */
#define CSR_PSKEY_USR49						0x02bb	/* uint16[] */
#define CSR_PSKEY_USB_VERSION					0x02bc	/* uint16 */
#define CSR_PSKEY_USB_DEVICE_CLASS_CODES			0x02bd	/* usbclass */
#define CSR_PSKEY_USB_VENDOR_ID					0x02be	/* uint16 */
#define CSR_PSKEY_USB_PRODUCT_ID				0x02bf	/* uint16 */
#define CSR_PSKEY_USB_MANUF_STRING				0x02c1	/* unicodestring */
#define CSR_PSKEY_USB_PRODUCT_STRING				0x02c2	/* unicodestring */
#define CSR_PSKEY_USB_SERIAL_NUMBER_STRING			0x02c3	/* unicodestring */
#define CSR_PSKEY_USB_CONFIG_STRING				0x02c4	/* unicodestring */
#define CSR_PSKEY_USB_ATTRIBUTES				0x02c5	/* uint8 */
#define CSR_PSKEY_USB_MAX_POWER					0x02c6	/* uint16 */
#define CSR_PSKEY_USB_BT_IF_CLASS_CODES				0x02c7	/* usbclass */
#define CSR_PSKEY_USB_LANGID					0x02c9	/* uint16 */
#define CSR_PSKEY_USB_DFU_CLASS_CODES				0x02ca	/* usbclass */
#define CSR_PSKEY_USB_DFU_PRODUCT_ID				0x02cb	/* uint16 */
#define CSR_PSKEY_USB_PIO_DETACH				0x02ce	/* uint16 */
#define CSR_PSKEY_USB_PIO_WAKEUP				0x02cf	/* uint16 */
#define CSR_PSKEY_USB_PIO_PULLUP				0x02d0	/* uint16 */
#define CSR_PSKEY_USB_PIO_VBUS					0x02d1	/* uint16 */
#define CSR_PSKEY_USB_PIO_WAKE_TIMEOUT				0x02d2	/* uint16 */
#define CSR_PSKEY_USB_PIO_RESUME				0x02d3	/* uint16 */
#define CSR_PSKEY_USB_BT_SCO_IF_CLASS_CODES			0x02d4	/* usbclass */
#define CSR_PSKEY_USB_SUSPEND_PIO_LEVEL				0x02d5	/* uint16 */
#define CSR_PSKEY_USB_SUSPEND_PIO_DIR				0x02d6	/* uint16 */
#define CSR_PSKEY_USB_SUSPEND_PIO_MASK				0x02d7	/* uint16 */
#define CSR_PSKEY_USB_ENDPOINT_0_MAX_PACKET_SIZE		0x02d8	/* uint8 */
#define CSR_PSKEY_USB_CONFIG					0x02d9	/* uint16 */
#define CSR_PSKEY_RADIOTEST_ATTEN_INIT				0x0320	/* uint16 */
#define CSR_PSKEY_RADIOTEST_FIRST_TRIM_TIME			0x0326	/* TIME */
#define CSR_PSKEY_RADIOTEST_SUBSEQUENT_TRIM_TIME		0x0327	/* TIME */
#define CSR_PSKEY_RADIOTEST_LO_LVL_TRIM_ENABLE			0x0328	/* bool */
#define CSR_PSKEY_RADIOTEST_DISABLE_MODULATION			0x032c	/* bool */
#define CSR_PSKEY_RFCOMM_FCON_THRESHOLD				0x0352	/* uint16 */
#define CSR_PSKEY_RFCOMM_FCOFF_THRESHOLD			0x0353	/* uint16 */
#define CSR_PSKEY_IPV6_STATIC_ADDR				0x0354	/* uint16[] */
#define CSR_PSKEY_IPV4_STATIC_ADDR				0x0355	/* uint32 */
#define CSR_PSKEY_IPV6_STATIC_PREFIX_LEN			0x0356	/* uint8 */
#define CSR_PSKEY_IPV6_STATIC_ROUTER_ADDR			0x0357	/* uint16[] */
#define CSR_PSKEY_IPV4_STATIC_SUBNET_MASK			0x0358	/* uint32 */
#define CSR_PSKEY_IPV4_STATIC_ROUTER_ADDR			0x0359	/* uint32 */
#define CSR_PSKEY_MDNS_NAME					0x035a	/* char[] */
#define CSR_PSKEY_FIXED_PIN					0x035b	/* uint8[] */
#define CSR_PSKEY_MDNS_PORT					0x035c	/* uint16 */
#define CSR_PSKEY_MDNS_TTL					0x035d	/* uint8 */
#define CSR_PSKEY_MDNS_IPV4_ADDR				0x035e	/* uint32 */
#define CSR_PSKEY_ARP_CACHE_TIMEOUT				0x035f	/* uint16 */
#define CSR_PSKEY_HFP_POWER_TABLE				0x0360	/* uint16[] */
#define CSR_PSKEY_DRAIN_BORE_TIMER_COUNTERS			0x03e7	/* uint32[] */
#define CSR_PSKEY_DRAIN_BORE_COUNTERS				0x03e6	/* uint32[] */
#define CSR_PSKEY_LOOP_FILTER_TRIM				0x03e4	/* uint16 */
#define CSR_PSKEY_DRAIN_BORE_CURRENT_PEAK			0x03e3	/* uint32[] */
#define CSR_PSKEY_VM_E2_CACHE_LIMIT				0x03e2	/* uint16 */
#define CSR_PSKEY_FORCE_16MHZ_REF_PIO				0x03e1	/* uint16 */
#define CSR_PSKEY_CDMA_LO_REF_LIMITS				0x03df	/* uint16 */
#define CSR_PSKEY_CDMA_LO_ERROR_LIMITS				0x03de	/* uint16 */
#define CSR_PSKEY_CLOCK_STARTUP_DELAY				0x03dd	/* uint16 */
#define CSR_PSKEY_DEEP_SLEEP_CORRECTION_FACTOR			0x03dc	/* int16 */
#define CSR_PSKEY_TEMPERATURE_CALIBRATION			0x03db	/* temperature_calibration */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_INTERNAL_PA		0x03da	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_PRE_LVL		0x03d9	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB			0x03d8	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_ANA_FTRIM		0x03d7	/* temperature_calibration[] */
#define CSR_PSKEY_TEST_DELTA_OFFSET				0x03d6	/* uint16 */
#define CSR_PSKEY_RX_DYNAMIC_LVL_OFFSET				0x03d4	/* uint16 */
#define CSR_PSKEY_TEST_FORCE_OFFSET				0x03d3	/* bool */
#define CSR_PSKEY_RF_TRAP_BAD_DIVISION_RATIOS			0x03cf	/* uint16 */
#define CSR_PSKEY_RADIOTEST_CDMA_LO_REF_LIMITS			0x03ce	/* uint16 */
#define CSR_PSKEY_INITIAL_BOOTMODE				0x03cd	/* int16 */
#define CSR_PSKEY_ONCHIP_HCI_CLIENT				0x03cc	/* bool */
#define CSR_PSKEY_RX_ATTEN_BACKOFF				0x03ca	/* uint16 */
#define CSR_PSKEY_RX_ATTEN_UPDATE_RATE				0x03c9	/* uint16 */
#define CSR_PSKEY_SYNTH_TXRX_THRESHOLDS				0x03c7	/* uint16 */
#define CSR_PSKEY_MIN_WAIT_STATES				0x03c6	/* uint16 */
#define CSR_PSKEY_RSSI_CORRECTION				0x03c5	/* int8 */
#define CSR_PSKEY_SCHED_THROTTLE_TIMEOUT			0x03c4	/* TIME */
#define CSR_PSKEY_DEEP_SLEEP_USE_EXTERNAL_CLOCK			0x03c3	/* bool */
#define CSR_PSKEY_TRIM_RADIO_FILTERS				0x03c2	/* uint16 */
#define CSR_PSKEY_TRANSMIT_OFFSET				0x03c1	/* int16 */
#define CSR_PSKEY_USB_VM_CONTROL				0x03c0	/* bool */
#define CSR_PSKEY_MR_ANA_RX_FTRIM				0x03bf	/* uint16 */
#define CSR_PSKEY_I2C_CONFIG					0x03be	/* uint16 */
#define CSR_PSKEY_IQ_LVL_RX					0x03bd	/* uint16 */
#define CSR_PSKEY_MR_TX_FILTER_CONFIG				0x03bb	/* uint32 */
#define CSR_PSKEY_MR_TX_CONFIG2					0x03ba	/* uint16 */
#define CSR_PSKEY_USB_DONT_RESET_BOOTMODE_ON_HOST_RESET		0x03b9	/* bool */
#define CSR_PSKEY_LC_USE_THROTTLING				0x03b8	/* bool */
#define CSR_PSKEY_CHARGER_TRIM					0x03b7	/* uint16 */
#define CSR_PSKEY_CLOCK_REQUEST_FEATURES			0x03b6	/* uint16 */
#define CSR_PSKEY_TRANSMIT_OFFSET_CLASS1			0x03b4	/* int16 */
#define CSR_PSKEY_TX_AVOID_PA_CLASS1_PIO			0x03b3	/* uint16 */
#define CSR_PSKEY_MR_PIO_CONFIG					0x03b2	/* uint16 */
#define CSR_PSKEY_UART_CONFIG2					0x03b1	/* uint8 */
#define CSR_PSKEY_CLASS1_IQ_LVL					0x03b0	/* uint16 */
#define CSR_PSKEY_CLASS1_TX_CONFIG2				0x03af	/* uint16 */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_INTERNAL_PA_CLASS1	0x03ae	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_EXTERNAL_PA_CLASS1	0x03ad	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_PRE_LVL_MR		0x03ac	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB_MR_HEADER		0x03ab	/* temperature_calibration[] */
#define CSR_PSKEY_TEMPERATURE_VS_DELTA_TX_BB_MR_PAYLOAD		0x03aa	/* temperature_calibration[] */
#define CSR_PSKEY_RX_MR_EQ_TAPS					0x03a9	/* uint16[] */
#define CSR_PSKEY_TX_PRE_LVL_CLASS1				0x03a8	/* uint8 */
#define CSR_PSKEY_ANALOGUE_ATTENUATOR				0x03a7	/* bool */
#define CSR_PSKEY_MR_RX_FILTER_TRIM				0x03a6	/* uint16 */
#define CSR_PSKEY_MR_RX_FILTER_RESPONSE				0x03a5	/* int16[] */
#define CSR_PSKEY_PIO_WAKEUP_STATE				0x039f	/* uint16 */
#define CSR_PSKEY_MR_TX_IF_ATTEN_OFF_TEMP			0x0394	/* int16 */
#define CSR_PSKEY_LO_DIV_LATCH_BYPASS				0x0393	/* bool */
#define CSR_PSKEY_LO_VCO_STANDBY				0x0392	/* bool */
#define CSR_PSKEY_SLOW_CLOCK_FILTER_SHIFT			0x0391	/* uint16 */
#define CSR_PSKEY_SLOW_CLOCK_FILTER_DIVIDER			0x0390	/* uint16 */
#define CSR_PSKEY_USB_ATTRIBUTES_POWER				0x03f2	/* bool */
#define CSR_PSKEY_USB_ATTRIBUTES_WAKEUP				0x03f3	/* bool */
#define CSR_PSKEY_DFU_ATTRIBUTES_MANIFESTATION_TOLERANT		0x03f4	/* bool */
#define CSR_PSKEY_DFU_ATTRIBUTES_CAN_UPLOAD			0x03f5	/* bool */
#define CSR_PSKEY_DFU_ATTRIBUTES_CAN_DOWNLOAD			0x03f6	/* bool */
#define CSR_PSKEY_UART_CONFIG_STOP_BITS				0x03fc	/* bool */
#define CSR_PSKEY_UART_CONFIG_PARITY_BIT			0x03fd	/* uint16 */
#define CSR_PSKEY_UART_CONFIG_FLOW_CTRL_EN			0x03fe	/* bool */
#define CSR_PSKEY_UART_CONFIG_RTS_AUTO_EN			0x03ff	/* bool */
#define CSR_PSKEY_UART_CONFIG_RTS				0x0400	/* bool */
#define CSR_PSKEY_UART_CONFIG_TX_ZERO_EN			0x0401	/* bool */
#define CSR_PSKEY_UART_CONFIG_NON_BCSP_EN			0x0402	/* bool */
#define CSR_PSKEY_UART_CONFIG_RX_RATE_DELAY			0x0403	/* uint16 */
#define CSR_PSKEY_UART_SEQ_TIMEOUT				0x0405	/* uint16 */
#define CSR_PSKEY_UART_SEQ_RETRIES				0x0406	/* uint16 */
#define CSR_PSKEY_UART_SEQ_WINSIZE				0x0407	/* uint16 */
#define CSR_PSKEY_UART_USE_CRC_ON_TX				0x0408	/* bool */
#define CSR_PSKEY_UART_HOST_INITIAL_STATE			0x0409	/* hwakeup_state */
#define CSR_PSKEY_UART_HOST_ATTENTION_SPAN			0x040a	/* uint16 */
#define CSR_PSKEY_UART_HOST_WAKEUP_TIME				0x040b	/* uint16 */
#define CSR_PSKEY_UART_HOST_WAKEUP_WAIT				0x040c	/* uint16 */
#define CSR_PSKEY_BCSP_LM_MODE					0x0410	/* uint16 */
#define CSR_PSKEY_BCSP_LM_SYNC_RETRIES				0x0411	/* uint16 */
#define CSR_PSKEY_BCSP_LM_TSHY					0x0412	/* uint16 */
#define CSR_PSKEY_UART_DFU_CONFIG_STOP_BITS			0x0417	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_PARITY_BIT			0x0418	/* uint16 */
#define CSR_PSKEY_UART_DFU_CONFIG_FLOW_CTRL_EN			0x0419	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_RTS_AUTO_EN			0x041a	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_RTS				0x041b	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_TX_ZERO_EN			0x041c	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_NON_BCSP_EN			0x041d	/* bool */
#define CSR_PSKEY_UART_DFU_CONFIG_RX_RATE_DELAY			0x041e	/* uint16 */
#define CSR_PSKEY_AMUX_AIO0					0x041f	/* ana_amux_sel */
#define CSR_PSKEY_AMUX_AIO1					0x0420	/* ana_amux_sel */
#define CSR_PSKEY_AMUX_AIO2					0x0421	/* ana_amux_sel */
#define CSR_PSKEY_AMUX_AIO3					0x0422	/* ana_amux_sel */
#define CSR_PSKEY_LOCAL_NAME_SIMPLIFIED				0x0423	/* local_name_complete */
#define CSR_PSKEY_EXTENDED_STUB					0x2001	/* uint16 */

char *csr_builddeftostr(uint16_t def);
char *csr_buildidtostr(uint16_t id);
char *csr_chipvertostr(uint16_t ver, uint16_t rev);
char *csr_pskeytostr(uint16_t pskey);
char *csr_pskeytoval(uint16_t pskey);

int csr_open_hci(char *device);
int csr_read_hci(uint16_t varid, uint8_t *value, uint16_t length);
int csr_write_hci(uint16_t varid, uint8_t *value, uint16_t length);
void csr_close_hci(void);

int csr_open_usb(char *device);
int csr_read_usb(uint16_t varid, uint8_t *value, uint16_t length);
int csr_write_usb(uint16_t varid, uint8_t *value, uint16_t length);
void csr_close_usb(void);

int csr_open_bcsp(char *device);
int csr_read_bcsp(uint16_t varid, uint8_t *value, uint16_t length);
int csr_write_bcsp(uint16_t varid, uint8_t *value, uint16_t length);
void csr_close_bcsp(void);

int csr_open_h4(char *device);
int csr_read_h4(uint16_t varid, uint8_t *value, uint16_t length);
int csr_write_h4(uint16_t varid, uint8_t *value, uint16_t length);
void csr_close_h4(void);

int csr_open_3wire(char *device);
int csr_read_3wire(uint16_t varid, uint8_t *value, uint16_t length);
int csr_write_3wire(uint16_t varid, uint8_t *value, uint16_t length);
void csr_close_3wire(void);

int csr_write_varid_valueless(int dd, uint16_t seqnum, uint16_t varid);
int csr_write_varid_complex(int dd, uint16_t seqnum, uint16_t varid, uint8_t *value, uint16_t length);
int csr_read_varid_complex(int dd, uint16_t seqnum, uint16_t varid, uint8_t *value, uint16_t length);
int csr_read_varid_uint16(int dd, uint16_t seqnum, uint16_t varid, uint16_t *value);
int csr_read_varid_uint32(int dd, uint16_t seqnum, uint16_t varid, uint32_t *value);
int csr_read_pskey_complex(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint8_t *value, uint16_t length);
int csr_write_pskey_complex(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint8_t *value, uint16_t length);
int csr_read_pskey_uint16(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint16_t *value);
int csr_write_pskey_uint16(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint16_t value);
int csr_read_pskey_uint32(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint32_t *value);
int csr_write_pskey_uint32(int dd, uint16_t seqnum, uint16_t pskey, uint16_t stores, uint32_t value);

int psr_put(uint16_t pskey, uint8_t *value, uint16_t size);
int psr_get(uint16_t *pskey, uint8_t *value, uint16_t *size);
int psr_read(const char *filename);
int psr_print(void);