Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
  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
# Nordic Semiconductor nRF52 MCU line

# Copyright (c) 2016-2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config SOC_NRF52805
	depends on SOC_SERIES_NRF52X
	bool
	select HAS_HW_NRF_BPROT
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_NVMC_PE
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_WDT

config SOC_NRF52810
	depends on SOC_SERIES_NRF52X
	bool
	select HAS_HW_NRF_BPROT
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_NVMC_PE
	select HAS_HW_NRF_PDM
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_PWM0
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_WDT

config SOC_NRF52811
	depends on SOC_SERIES_NRF52X
	bool
	select HAS_HW_NRF_BPROT
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_NVMC_PE
	select HAS_HW_NRF_PDM
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_PWM0
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RADIO_BLE_CODED
	select HAS_HW_NRF_RADIO_IEEE802154
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SPI1
	select HAS_HW_NRF_SPIM1
	select HAS_HW_NRF_SPIS1
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_WDT

config SOC_NRF52820
	depends on SOC_SERIES_NRF52X
	bool
	select HAS_HW_NRF_ACL
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_EGU2
	select HAS_HW_NRF_EGU3
	select HAS_HW_NRF_EGU4
	select HAS_HW_NRF_EGU5
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RADIO_TX_PWR_HIGH
	select HAS_HW_NRF_RADIO_BLE_CODED
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPI1
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIM1
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SPIS1
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWI1
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIM1
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_TWIS1
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_USBD
	select HAS_HW_NRF_WDT

config SOC_NRF52832
	depends on SOC_SERIES_NRF52X
	bool
	select SOC_COMPATIBLE_NRF52832
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_HW_NRF_BPROT
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_EGU2
	select HAS_HW_NRF_EGU3
	select HAS_HW_NRF_EGU4
	select HAS_HW_NRF_EGU5
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_I2S
	select HAS_HW_NRF_LPCOMP
	select HAS_HW_NRF_MWU
	select HAS_HW_NRF_NFCT
	select HAS_HW_NRF_PDM
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_PWM0
	select HAS_HW_NRF_PWM1
	select HAS_HW_NRF_PWM2
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_RTC2
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPI1
	select HAS_HW_NRF_SPI2
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIM1
	select HAS_HW_NRF_SPIM2
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SPIS1
	select HAS_HW_NRF_SPIS2
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TIMER3
	select HAS_HW_NRF_TIMER4
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWI1
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIM1
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_TWIS1
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_WDT

config SOC_NRF52833
	depends on SOC_SERIES_NRF52X
	bool
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_HW_NRF_ACL
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_EGU2
	select HAS_HW_NRF_EGU3
	select HAS_HW_NRF_EGU4
	select HAS_HW_NRF_EGU5
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIO1
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_I2S
	select HAS_HW_NRF_LPCOMP
	select HAS_HW_NRF_MWU
	select HAS_HW_NRF_NFCT
	select HAS_HW_NRF_NVMC_PE
	select HAS_HW_NRF_PDM
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_PWM0
	select HAS_HW_NRF_PWM1
	select HAS_HW_NRF_PWM2
	select HAS_HW_NRF_PWM3
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RADIO_TX_PWR_HIGH
	select HAS_HW_NRF_RADIO_BLE_CODED
	select HAS_HW_NRF_RADIO_IEEE802154
	select HAS_HW_NRF_RADIO_BLE_DF
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_RTC2
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPI1
	select HAS_HW_NRF_SPI2
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIM1
	select HAS_HW_NRF_SPIM2
	select HAS_HW_NRF_SPIM3
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SPIS1
	select HAS_HW_NRF_SPIS2
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TIMER3
	select HAS_HW_NRF_TIMER4
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWI1
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIM1
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_TWIS1
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_UARTE1
	select HAS_HW_NRF_USBD
	select HAS_HW_NRF_WDT

config SOC_NRF52840
	depends on SOC_SERIES_NRF52X
	bool
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select HAS_HW_NRF_ACL
	select HAS_HW_NRF_CC310
	select HAS_HW_NRF_CCM
	select HAS_HW_NRF_CCM_LFLEN_8BIT
	select HAS_HW_NRF_CLOCK
	select HAS_HW_NRF_COMP
	select HAS_HW_NRF_ECB
	select HAS_HW_NRF_EGU0
	select HAS_HW_NRF_EGU1
	select HAS_HW_NRF_EGU2
	select HAS_HW_NRF_EGU3
	select HAS_HW_NRF_EGU4
	select HAS_HW_NRF_EGU5
	select HAS_HW_NRF_GPIO0
	select HAS_HW_NRF_GPIO1
	select HAS_HW_NRF_GPIOTE
	select HAS_HW_NRF_I2S
	select HAS_HW_NRF_LPCOMP
	select HAS_HW_NRF_MWU
	select HAS_HW_NRF_NFCT
	select HAS_HW_NRF_NVMC_PE
	select HAS_HW_NRF_PDM
	select HAS_HW_NRF_POWER
	select HAS_HW_NRF_PPI
	select HAS_HW_NRF_PWM0
	select HAS_HW_NRF_PWM1
	select HAS_HW_NRF_PWM2
	select HAS_HW_NRF_PWM3
	select HAS_HW_NRF_QDEC
	select HAS_HW_NRF_QSPI
	select HAS_HW_NRF_RADIO_BLE_2M
	select HAS_HW_NRF_RADIO_TX_PWR_HIGH
	select HAS_HW_NRF_RADIO_BLE_CODED
	select HAS_HW_NRF_RADIO_IEEE802154
	select HAS_HW_NRF_RNG
	select HAS_HW_NRF_RTC0
	select HAS_HW_NRF_RTC1
	select HAS_HW_NRF_RTC2
	select HAS_HW_NRF_SAADC
	select HAS_HW_NRF_SPI0
	select HAS_HW_NRF_SPI1
	select HAS_HW_NRF_SPI2
	select HAS_HW_NRF_SPIM0
	select HAS_HW_NRF_SPIM1
	select HAS_HW_NRF_SPIM2
	select HAS_HW_NRF_SPIM3
	select HAS_HW_NRF_SPIS0
	select HAS_HW_NRF_SPIS1
	select HAS_HW_NRF_SPIS2
	select HAS_HW_NRF_SWI0
	select HAS_HW_NRF_SWI1
	select HAS_HW_NRF_SWI2
	select HAS_HW_NRF_SWI3
	select HAS_HW_NRF_SWI4
	select HAS_HW_NRF_SWI5
	select HAS_HW_NRF_TEMP
	select HAS_HW_NRF_TIMER0
	select HAS_HW_NRF_TIMER1
	select HAS_HW_NRF_TIMER2
	select HAS_HW_NRF_TIMER3
	select HAS_HW_NRF_TIMER4
	select HAS_HW_NRF_TWI0
	select HAS_HW_NRF_TWI1
	select HAS_HW_NRF_TWIM0
	select HAS_HW_NRF_TWIM1
	select HAS_HW_NRF_TWIS0
	select HAS_HW_NRF_TWIS1
	select HAS_HW_NRF_UART0
	select HAS_HW_NRF_UARTE0
	select HAS_HW_NRF_UARTE1
	select HAS_HW_NRF_USBD
	select HAS_HW_NRF_WDT

choice
	prompt "nRF52x MCU Selection"
	depends on SOC_SERIES_NRF52X

config SOC_NRF52805_CAAA
	bool "NRF52805_CAAA"
	select SOC_NRF52805

config SOC_NRF52810_QFAA
	bool "NRF52810_QFAA"
	select SOC_NRF52810

config SOC_NRF52811_QFAA
	bool "NRF52811_QFAA"
	select SOC_NRF52811

config SOC_NRF52820_QDAA
	bool "NRF52820_QDAA"
	select SOC_NRF52820

config SOC_NRF52832_CIAA
	bool "NRF52832_CIAA"
	select SOC_NRF52832

config SOC_NRF52832_QFAA
	bool "NRF52832_QFAA"
	select SOC_NRF52832

config SOC_NRF52832_QFAB
	bool "NRF52832_QFAB"
	select SOC_NRF52832

config SOC_NRF52833_QIAA
	bool "NRF52833_QIAA"
	select SOC_NRF52833

config SOC_NRF52840_QIAA
	bool "NRF52840_QIAA"
	select SOC_NRF52840

endchoice

config SOC_DCDC_NRF52X
	bool
	help
	  Enable nRF52 series System on Chip DC/DC converter.

config GPIO_AS_PINRESET
	bool "GPIO as pin reset (reset button)"
	depends on SOC_SERIES_NRF52X
	default y

config NRF_ENABLE_ICACHE
	bool "Enable the instruction cache (I-Cache)"
	depends on SOC_NRF52832 || SOC_NRF52833 || SOC_NRF52840
	default y

config NRF52_ANOMALY_132_DELAY_US
	int "Anomaly 132 workaround delay (microseconds)"
	default 330
	range 0 330
	depends on NRF52_ANOMALY_132_WORKAROUND
	help
	  Due to Anomaly 132 LF RC source may not start if restarted in certain
	  window after stopping (230 us to 330 us). Software reset also stops the
	  clock so if clock is initiated in certain window, the clock may also fail
	  to start at reboot. A delay is added before starting LF clock to ensure
	  that anomaly conditions are not met. Delay should be long enough to ensure
	  that clock is started later than 330 us after reset. If crystal oscillator
	  (XO) is used then low frequency clock initially starts with RC and then
	  seamlessly switches to XO which has much longer startup time thus,
	  depending on application, workaround may also need to be applied.
	  Additional drivers initialization increases initialization time and delay
	  may be shortened. Workaround is disabled by setting delay to 0.