1# Zephyr Bluetooth Controller configuration options
2
3# Copyright (c) 2016-2017 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6if BT_LL_SW_SPLIT
7
8config BT_LLL_VENDOR_NORDIC
9	bool "Use Nordic LLL"
10	depends on SOC_COMPATIBLE_NRF
11	depends on !$(dt_nodelabel_enabled,timer0)
12	depends on !$(dt_nodelabel_enabled,rtc0)
13
14	select ENTROPY_NRF5_RNG
15	select ENTROPY_NRF5_BIAS_CORRECTION
16
17	select BT_HAS_HCI_VS
18	select BT_CTLR_LE_ENC_SUPPORT if !BT_CTLR_DATA_LENGTH_CLEAR && \
19					 !BT_CTLR_PHY_2M_NRF
20	select BT_CTLR_CONN_PARAM_REQ_SUPPORT
21	select BT_CTLR_EXT_REJ_IND_SUPPORT
22	select BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT
23	select BT_CTLR_DATA_LEN_UPDATE_SUPPORT if HAS_HW_NRF_CCM_LFLEN_8BIT || \
24						  BT_CTLR_DATA_LENGTH_CLEAR
25	select BT_CTLR_PRIVACY_SUPPORT if !SOC_SERIES_NRF51X
26	select BT_CTLR_EXT_SCAN_FP_SUPPORT
27	select BT_CTLR_PHY_2M_SUPPORT if HAS_HW_NRF_RADIO_BLE_2M || \
28					 BT_CTLR_PHY_2M_NRF
29	select BT_CTLR_PHY_CODED_SUPPORT if HAS_HW_NRF_RADIO_BLE_CODED
30	select BT_CTLR_PHY_UPDATE_SUPPORT if BT_CTLR_PHY_2M_SUPPORT || \
31					     BT_CTLR_PHY_CODED_SUPPORT
32	select BT_CTLR_ADV_EXT_SUPPORT
33	select BT_CTLR_ADV_PERIODIC_SUPPORT
34	select BT_CTLR_SYNC_PERIODIC_SUPPORT
35	select BT_CTLR_ADV_ISO_SUPPORT
36	select BT_CTLR_SYNC_ISO_SUPPORT
37	select BT_CTLR_CENTRAL_ISO_SUPPORT
38	select BT_CTLR_PERIPHERAL_ISO_SUPPORT
39	select BT_CTLR_DF_SUPPORT if HAS_HW_NRF_RADIO_DFE
40	select BT_CTLR_CTEINLINE_SUPPORT if HAS_HW_NRF_RADIO_DFE
41	select BT_CTLR_CHAN_SEL_2_SUPPORT
42	select BT_CTLR_MIN_USED_CHAN_SUPPORT
43	select BT_CTLR_SCA_UPDATE_SUPPORT
44	select BT_CTLR_DTM_HCI_SUPPORT
45	select BT_CTLR_CONN_RSSI_SUPPORT
46
47	select BT_CTLR_XTAL_ADVANCED_SUPPORT
48	select BT_CTLR_SCHED_ADVANCED_SUPPORT
49	select BT_CTLR_TIFS_HW_SUPPORT
50	select BT_CTLR_ULL_LLL_PRIO_SUPPORT
51
52	select BT_TICKER_UPDATE if BT_BROADCASTER || BT_CONN || \
53				   (BT_OBSERVER && BT_CTLR_ADV_EXT)
54	select BT_TICKER_REMAINDER if BT_CTLR_CENTRAL_ISO
55	select BT_TICKER_REMAINDER_GET if BT_BROADCASTER && BT_CTLR_ADV_EXT
56	select BT_TICKER_LAZY_GET if BT_CTLR_ADV_PERIODIC || BT_CTLR_CENTRAL_ISO
57
58	select BT_TICKER_PREFER_START_BEFORE_STOP if BT_TICKER_SLOT_AGNOSTIC
59
60	default y
61	help
62	  Use Nordic Lower Link Layer implementation.
63
64config BT_LLL_VENDOR_OPENISA
65	bool "Use OpenISA LLL"
66	depends on SOC_OPENISA_RV32M1_RISCV32
67	select BT_CTLR_PHY_UPDATE_SUPPORT
68	select BT_CTLR_EXT_REJ_IND_SUPPORT
69	select BT_HAS_HCI_VS
70	select BT_CTLR_LE_ENC_SUPPORT if !BT_CTLR_DATA_LENGTH_CLEAR
71	select BT_CTLR_PRIVACY_SUPPORT
72
73	select BT_TICKER_UPDATE if BT_BROADCASTER || BT_CONN
74
75	default y
76	help
77	  Use OpenISA Lower Link Layer implementation.
78
79# BT_CTLR_DF_SUPPORT is a wrapper for all DF features. Here we select features that are supported by
80# Zephyr's BLE Controller.
81config BT_CTLR_DF_SUPPORT
82	depends on BT_LL_SW_SPLIT && !BT_CTLR_TIFS_HW
83	select BT_CTLR_DF_CTE_TX_SUPPORT
84	select BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
85	select BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
86	select BT_CTLR_DF_CTE_RX_SUPPORT
87	select BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
88
89config BT_CTLR_XTAL_ADVANCED_SUPPORT
90	bool
91
92config BT_CTLR_SCHED_ADVANCED_SUPPORT
93	bool
94
95config BT_CTLR_TIFS_HW_SUPPORT
96	bool
97
98config BT_CTLR_ULL_LLL_PRIO_SUPPORT
99	bool
100
101config BT_CTLR_RX_PRIO_STACK_SIZE
102	# Controller's Co-Operative high priority Rx thread stack size.
103	int "High priority Rx thread stack size"
104	default 448
105
106config BT_CTLR_SETTINGS
107	bool "Settings System"
108	depends on SETTINGS
109	help
110	  Enable use of settings system in controller.
111
112config BT_CTLR_VERSION_SETTINGS
113	bool "Version Settings"
114	depends on BT_CTLR_SETTINGS
115	help
116	  Make the controller's Company Id and Subversion Number configurable
117	  through settings system.
118
119config BT_CTLR_COMPANY_ID
120	hex "Controller Company Id"
121	default BT_COMPANY_ID
122	range 0x0000 0xFFFF
123	help
124	  Set the Bluetooth Company Identifier that will be used in
125	  the VERSION_IND PDU. Uses BT_COMPANY_ID by default, although
126	  silicon vendors and hardware manufacturers can set their own
127	  Company Identifier for the controller. The full list of Bluetooth
128	  Company Identifiers can be found here:
129	  https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
130
131config BT_CTLR_SUBVERSION_NUMBER
132	hex "Subversion Number"
133	default 0xFFFF
134	range 0x0000 0xFFFF
135	help
136	  Set the Subversion Number that will be used in VERSION_IND PDU.
137
138config BT_CTLR_AD_DATA_BACKUP
139	bool "Legacy AD Data backup"
140	depends on BT_PERIPHERAL || BT_CTLR_ADV_EXT
141	default y
142	help
143	  Backup Legacy Advertising Data when switching to Legacy Directed or
144	  to Extended Advertising mode, and restore it when switching back to
145	  Legacy Non-Directed Advertising mode.
146	  Application can disable this feature if not using Directed
147	  Advertising or switch between Legacy and Extended Advertising.
148
149config BT_CTLR_HCI_ADV_HANDLE_MAPPING
150	bool "Advertising set handle mapping between HCI and LL"
151	depends on BT_CTLR_ADV_EXT
152	default y if BT_HCI_RAW
153	help
154	  Enable mapping of advertising set handles between HCI and LL when
155	  using external host since it can use arbitrary numbers as set handles
156	  (as defined by Core specification) as opposed to LL which always uses
157	  zero-based numbering. When using with Zephyr host this option can be
158	  disabled to remove extra mapping logic.
159
160config BT_CTLR_MESH_SCAN_FILTERS
161	int "Number of Mesh scan filters"
162	depends on BT_HCI_MESH_EXT
163	default 1
164	range 1 15
165	help
166	  Set the number of unique Mesh Scan Filters available as part of
167	  the Intel Mesh Vendor Specific Extensions.
168
169config BT_CTLR_MESH_SF_PATTERNS
170	int "Number of Mesh scan filter patterns"
171	depends on BT_HCI_MESH_EXT
172	default 15
173	range 1 15
174	help
175	  Set the number of unique Mesh Scan Filter patterns available per
176	  Scan Filter as part of the Intel Mesh Vendor Specific Extensions.
177
178config BT_CTLR_CHECK_SAME_PEER_CONN
179	bool
180	depends on BT_CONN
181	default BT_MAX_CONN > 1 && !BT_CTLR_ALLOW_SAME_PEER_CONN
182
183if BT_CTLR_ADV_EXT
184
185config BT_CTLR_ADV_EXT_RX_PDU_LEN_MAX
186	int "Maximum Advertising Extensions Receive PDU Length"
187	depends on BT_OBSERVER
188	range 255 255 if BT_HCI_RAW
189	range 31 255
190	default 255
191	help
192	  Maximum Advertising Extensions Receive PDU Length.
193
194config BT_CTLR_SCAN_DATA_LEN_MAX
195	int "Maximum Extended Scanning Data Length"
196	depends on BT_OBSERVER
197	range 31 1650
198	help
199	  Maximum Extended Scanning Data Length.
200
201config BT_CTLR_CHECK_SAME_PEER_SYNC
202	# Hidden Kconfig to add same peer synchronization check
203	bool
204	depends on BT_CTLR_SYNC_PERIODIC
205	default BT_PER_ADV_SYNC_MAX > 1
206
207endif # BT_CTLR_ADV_EXT
208
209config BT_CTLR_CONN_ISO_HCI_DATAPATH_SKIP_INVALID_DATA
210	bool "Do not pass invalid SDUs on HCI datapath"
211	depends on BT_CTLR_CONN_ISO
212	help
213	  This allows for applications to decide whether to
214	  forward invalid SDUs through HCI upwards.
215
216config BT_CTLR_ADVANCED_FEATURES
217	bool "Show advanced features"
218	help
219	  Makes advanced features visible to controller developers.
220
221choice
222	prompt "CIS Creation Policy Selection"
223	default BT_CTLR_CONN_ISO_RELIABILITY_POLICY
224
225config BT_CTLR_CONN_ISO_RELIABILITY_POLICY
226	bool "CIS creation policy for reliability"
227	depends on BT_CTLR_CENTRAL_ISO
228	help
229	  Select this option to use reliability policy for CIS creation. This
230	  favors a CIS layout/configuration which utilizes the full range of the
231	  Max_Transmission_Latency for maximum retransmission and payload
232	  recovery.
233
234config BT_CTLR_CONN_ISO_LOW_LATENCY_POLICY
235	bool "CIS creation policy for low latency"
236	depends on BT_CTLR_CENTRAL_ISO
237	help
238	  Select this option to use low latency policy for CIS creation. This
239	  favors a CIS layout/configuration which compacts payload transmission
240	  for lowest possible latency.
241endchoice
242
243config BT_CTLR_TEST
244	bool "Run in-system unit tests"
245	help
246	  Run in-system unit tests
247
248menu "Advanced features"
249	visible if BT_CTLR_ADVANCED_FEATURES
250
251config BT_CTLR_SW_DEFERRED_PRIVACY
252	bool "LE Controller-based Software Privacy"
253	depends on BT_CTLR_PRIVACY
254	help
255	  Enable support for software based deferred privacy calculations.
256
257config BT_CTLR_RPA_CACHE_SIZE
258	int "LE Controller-based Software Privacy Resolving List size"
259	depends on BT_CTLR_SW_DEFERRED_PRIVACY
260	default 8
261	range 1 64
262	help
263	  Set the size of the Known Unknown Resolving List for LE
264	  Controller-based Software deferred Privacy.
265
266config BT_CTLR_TRPA_CACHE_SIZE
267	int "LE Controller-based Software Privacy target RPA cache size"
268	depends on BT_CTLR_SW_DEFERRED_PRIVACY
269	default 4
270	range 1 64
271	help
272	  Set the size of the Known Unknown Target RPA Resolving List for LE
273	  Controller-based Software deferred Privacy.
274
275config BT_CTLR_DATA_LENGTH_CLEAR
276	bool "Data Length Support (Cleartext only)"
277	depends on SOC_SERIES_NRF51X
278	help
279	  Enable support for Bluetooth v4.2 LE Data Length Update procedure, up to
280	  251 byte cleartext payloads in the Controller. Encrypted connections
281	  are not supported.
282
283
284config BT_CTLR_PHY_2M_NRF
285	bool "2Mbps Nordic Semiconductor PHY Support (Cleartext only)"
286	depends on SOC_SERIES_NRF51X
287	select BT_CTLR_PHY_2M
288	help
289	  Enable support for Nordic Semiconductor proprietary 2Mbps PHY in the
290	  Controller. Encrypted connections are not supported.
291
292config BT_CTLR_ADV_AUX_SET
293	int "LE Extended Advertising Auxiliary Sets"
294	depends on BT_BROADCASTER && BT_CTLR_ADV_EXT
295	range 0 BT_CTLR_ADV_SET
296	default BT_CTLR_ADV_SET
297	help
298	  Maximum supported advertising auxiliary channel sets.
299
300config BT_CTLR_ADV_SYNC_SET
301	int "LE Periodic Advertising Sets"
302	depends on BT_CTLR_ADV_PERIODIC
303	range 1 BT_CTLR_ADV_AUX_SET
304	default 1
305	help
306	  Maximum supported periodic advertising sets.
307
308config BT_CTLR_ADV_DATA_CHAIN
309	bool "Advertising Data chaining [EXPERIMENTAL]"
310	select EXPERIMENTAL
311	help
312	  Enable support for Advertising Data chaining in Extended and
313	  Periodic Advertising. This will allow to have Advertising Data Length
314	  upto 1650 bytes.
315
316	  This is experimental and work in progress, does not implement
317	  recombining the AD Data and could return BT_HCI_ERR_PACKET_TOO_LONG
318	  when a chain PDU needs its AD data overflow into a new chain PDU.
319	  I.e. AD data in the last PDU could overflow due to the need to add
320	  Aux Pointer field, and if this overflow bytes plus the next AD data
321	  fragment length could be over 255 bytes needing additional chain PDU.
322	  This is not implemented.
323
324config BT_CTLR_ADV_PDU_LINK
325	# Enables extra space in each advertising PDU to allow linking PDUs.
326	# This is required to enable advertising data trains (i.e. transmission
327	# of AUX_CHAIN_IND).
328	bool
329
330config BT_CTLR_ADV_AUX_PDU_LINK
331	# Enable chaining in Extended Advertising
332	bool
333	select BT_CTLR_ADV_PDU_LINK
334
335config BT_CTLR_ADV_AUX_PDU_BACK2BACK
336	bool "Back-to-back transmission of extended advertising trains"
337	depends on BT_BROADCASTER && BT_CTLR_ADV_EXT
338	select BT_CTLR_ADV_AUX_PDU_LINK
339	default y if BT_CTLR_ADV_DATA_LEN_MAX > 191
340	help
341	  Enables transmission of AUX_CHAIN_IND in extended advertising train by
342	  sending each AUX_CHAIN_IND one after another back-to-back.
343
344config BT_CTLR_ADV_AUX_PDU_BACK2BACK_AFS
345	int "AUX Frame Space for back-to-back transmission of extended advertising trains"
346	depends on BT_CTLR_ADV_AUX_PDU_BACK2BACK
347	range 300 1000
348	default 300
349	help
350	  Specific AUX Frame Space to be used for back-to-back transmission of
351	  extended advertising trains. Time specified in microseconds.
352
353config BT_CTLR_ADV_SYNC_PDU_LINK
354	bool
355	depends on BT_CTLR_ADV_PERIODIC
356	select BT_CTLR_ADV_PDU_LINK
357
358config BT_CTLR_ADV_SYNC_PDU_BACK2BACK
359	bool "Back-to-back transmission of periodic advertising trains"
360	depends on BT_CTLR_ADV_PERIODIC
361	select BT_CTLR_ADV_SYNC_PDU_LINK
362	help
363	  Enables transmission of AUX_CHAIN_IND in periodic advertising train by
364	  sending each AUX_CHAIN_IND one after another back-to-back.
365	  Note, consecutive AUX_CHAIN_IND packets are not scheduled but sent at
366	  a constant offset on a best effort basis. This means advertising train can
367	  be preempted by other event at any time.
368
369config BT_CTLR_ADV_SYNC_PDU_BACK2BACK_AFS
370	int "AUX Frame Space for back-to-back transmission of periodic advertising trains"
371	depends on BT_CTLR_ADV_SYNC_PDU_BACK2BACK
372	range 300 1000
373	default 300
374	help
375	  Specific AUX Frame Space to be used for back-to-back transmission of
376	  periodic advertising trains. Time specified in microseconds.
377
378config BT_CTLR_ADV_RESERVE_MAX
379	bool "Use maximum Advertising PDU size time reservation"
380	depends on BT_BROADCASTER && BT_CTLR_ADV_EXT
381	default y
382	help
383	  Use the maximum advertising PDU size time reservation considering the
384	  Advertising Data could be updated from zero to maximum support size.
385	  If maximum time reservation is disabled then time reservation
386	  corresponding to the Advertising Data present at the time of the
387	  start/enable of Advertising is used.
388
389config BT_CTLR_ADV_ISO_RESERVE_MAX
390	bool "Use maximum Broadcast ISO event time reservation"
391	depends on BT_CTLR_ADV_ISO
392	default y
393	help
394	  Use maximum Broadcast ISO event time reservation. If disabled, then
395	  time reservation does not include the pre-transmissions of the last
396	  BIS and any Control subevents. This will allow extended or periodic
397	  advertising events to preempt the BIG events but allow higher radio
398	  utilizations by allowing larger BIG events when not overlapping with
399	  extended or periodic advertising.
400
401config BT_CTLR_ADV_AUX_SYNC_OFFSET
402	int "Pre-defined offset between AUX_ADV_IND and AUX_SYNC_IND"
403	depends on BT_CTLR_ADV_PERIODIC
404	default 0
405	help
406	  Define an offset between AUX_ADV_IND and AUX_SYNC_IND when using
407	  Advertising Interval for the Extended Advertising and Periodic
408	  Advertising that are same or multiple of each other, respectively.
409	  Note, to get advertising intervals that are same or multiple,
410	  the Periodic Advertising Interval shall be 10 millisecond more than
411	  the Extended Advertising Interval; this is because the AUX_ADV_IND
412	  PDUs are scheduled as periodic events of Extended Advertising
413	  Interval plus 10 milliseconds (Advertising Random Delay) as the
414	  periodic interval.
415
416config BT_CTLR_ADV_DATA_BUF_MAX
417	int "Advertising Data Maximum Buffers"
418	depends on BT_BROADCASTER
419	range 1 64 if BT_CTLR_ADV_EXT
420	range 1 1 if !BT_CTLR_ADV_EXT
421	default 1
422	help
423	  Maximum number of buffered Advertising Data payload across enabled
424	  advertising sets.
425
426config BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY
427	bool
428	depends on BT_CTLR_ADV_EXT
429	help
430	  Add additional memory to advertising PDU storage. The memory is a
431	  general purpose storage for data that should be send from ULL to LLL.
432	  The data stored in the memory are in synchronization with content
433	  of PDU memory.
434
435	  For example, the extra data memory is used for storage for parameters
436	  to configure Radio peripheral to transmit CTE. The configuration data
437	  must be synchronized with CTEInfo field in extended advertising header
438	  that is part of PDU data.
439
440config BT_CTRL_ADV_ADI_IN_SCAN_RSP
441	bool "Include ADI in AUX_SCAN_RSP PDU"
442	depends on BT_BROADCASTER && BT_CTLR_ADV_EXT
443	help
444	  Enable ADI field in AUX_SCAN_RSP PDU
445
446config BT_CTLR_SCAN_AUX_SYNC_RESERVE_MIN
447	bool "Use minimal Scan Auxiliary and Periodic Sync PDU time reservation"
448	depends on (BT_OBSERVER && BT_CTLR_ADV_EXT) || BT_CTLR_SYNC_PERIODIC
449	default y
450	help
451	  Use minimal time reservation for Auxiliary and Periodic Sync PDU
452	  reception. A peer device could scheduling multiple advertising sets
453	  in a short duration with small PDUs hence using the minimal time
454	  reservation would avoid skipping closely scheduled reception of
455	  multiple Auxiliary or Periodic Sync PDUs.
456
457config BT_CTLR_SYNC_PERIODIC_SKIP_ON_SCAN_AUX
458	bool "Skip Periodic Sync event on overlap with Extended Scan Event"
459	depends on BT_CTLR_SYNC_PERIODIC
460	help
461	  When AUX_ADV_IND or AUX_CHAIN_IND auxiliary channel PDU scan radio
462	  event overlaps Periodic Sync radio event in unreserved time space,
463	  let the Periodic Sync radio event be aborted so that the auxiliary
464	  channel PDU can be received to generate Extended Advertising Reports.
465
466	  By default we want Periodic Advertising Sync Events to take priority
467	  over any overlapping Extended Advertising Primary and Auxiliary
468	  channel PDU reception in order to not skip Periodic Advertising Report
469	  generation.
470
471	  But under simultaneous multiple Periodic Advertising Sync support with
472	  small Periodic Advertising Intervals where there will be a lot of
473	  overlapping Periodic Advertising Sync events, it is desirable to
474	  permit Extended Advertising auxiliary PDU reception be allowed in a
475	  round robin scheduling to skip the overlapping Periodic Advertising
476	  Sync event. This permits new Periodic Advertising peers be discovered.
477
478config BT_CTLR_SCAN_AUX_SET
479	int "LE Extended Scanning Auxiliary Sets"
480	depends on BT_OBSERVER && BT_CTLR_ADV_EXT
481	range 1 64
482	default 1
483	help
484	  Maximum supported auxiliary channel scan sets.
485
486config BT_CTLR_ADV_ENABLE_STRICT
487	bool "Enforce Strict Advertising Enable/Disable"
488	depends on BT_BROADCASTER
489	help
490	  Enforce returning HCI Error Command Disallowed on enabling/disabling
491	  already enabled/disabled advertising.
492
493config BT_CTLR_SCAN_ENABLE_STRICT
494	bool "Enforce Strict Scan Enable/Disable"
495	depends on BT_OBSERVER
496	help
497	  Enforce returning HCI Error Command Disallowed on enabling/disabling
498	  already enabled/disabled scanning.
499
500config BT_CTLR_ISOAL_SN_STRICT
501	bool "Enforce Strict Tx ISO Data Sequence Number use"
502	depends on !BT_CTLR_ISOAL_PSN_IGNORE && (BT_CTLR_ADV_ISO || \
503						 BT_CTLR_CONN_ISO)
504	default y
505	help
506	  Enforce strict sequencing of released payloads based on the TX SDU's
507	  packet sequence number. This will be effective when fragmenting an
508	  SDU into unframed PDUs.
509
510	  When enabled, this could result in an SDU being fragmented into
511	  payload numbers that are expired (will be dropped), if the TX SDU
512	  packet sequence numbers do not increment according to the SDU interval
513	  and delivery of SDUs to the ISO-AL do not strictly follow the SDU
514	  interval.
515
516	  When disabled, TX SDUs could be shifted from their stream aligned
517	  position and fragmented into payloads that are less likely to be
518	  dropped. This will result in better delivery of data to the receiver
519	  but at the cost of creating skews in the received stream of SDUs.
520
521config BT_CTLR_ISOAL_PSN_IGNORE
522	bool "Ignore Tx ISO Data Packet Sequence Number use"
523	depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO
524	help
525	  Ignore the use of Tx ISO Data Packet Sequence Number.
526
527config BT_CTLR_ZLI
528	bool "Use Zero Latency IRQs"
529	depends on ZERO_LATENCY_IRQS
530	default y
531	help
532	  Enable support for use of Zero Latency IRQ feature. Note, applications
533	  shall not use Zero Latency IRQ themselves when this option is selected,
534	  else will impact controller stability.
535
536config BT_CTLR_OPTIMIZE_FOR_SPEED
537	prompt "Optimize for Speed" if !(SOC_SERIES_NRF51X && BT_CTLR_LE_ENC)
538	bool
539	default y if BT_CTLR_LE_ENC
540	help
541	  Optimize compilation of controller for execution speed.
542
543config BT_CTLR_XTAL_ADVANCED
544	bool "Advanced event preparation"
545	depends on BT_CTLR_XTAL_ADVANCED_SUPPORT
546	default y
547	help
548	  Enables advanced event preparation offset ahead of radio tx/rx, taking
549	  into account predictive processing time requirements in preparation to
550	  the event, like control procedure handling and CPU execution speeds.
551	  Crystal oscillator is retained between closely spaced consecutive
552	  radio events to reduce the overall number of crystal settling current
553	  consumptions.
554
555	  This feature maximizes radio utilization in an average role event
556	  timeslice when they are closely spaced by using a reduced offset
557	  between preparation and radio event.
558
559	  By disabling this feature, the controller will use a constant offset
560	  between the preparation and radio event. The controller will toggle
561	  crystal oscillator between two closely spaced radio events leading to
562	  higher average current due to increased number of crystal settling
563	  current consumptions.
564
565config BT_CTLR_XTAL_THRESHOLD
566	int "Crystal shutdown threshold in uS"
567	depends on BT_CTLR_XTAL_ADVANCED
568	default 1500
569	help
570	  Configure the optimal delta in micro seconds between two consecutive
571	  radio events, event done to next preparation, below which (active
572	  clock) crystal will be retained. This value is board dependent.
573
574config BT_CTLR_SCHED_ADVANCED
575	bool "Advanced scheduling"
576	depends on BT_CTLR_SCHED_ADVANCED_SUPPORT && \
577		   (BT_CONN || \
578		    (BT_CTLR_ADV_EXT && (BT_CTLR_ADV_AUX_SET > 0)) || \
579		    BT_CTLR_ADV_ISO)
580	select BT_TICKER_NEXT_SLOT_GET
581	default y if BT_CENTRAL || (BT_BROADCASTER && BT_CTLR_ADV_EXT) || BT_CTLR_ADV_ISO
582	help
583	  Enable non-overlapping placement of observer, initiator and central
584	  roles in timespace. Uses window offset in connection updates and uses
585	  connection parameter request in peripheral role to negotiate
586	  non-overlapping placement with active central roles to avoid peripheral
587	  roles drifting into active central roles in the local controller.
588
589	  This feature maximizes the average data transmission amongst active
590	  concurrent central and peripheral connections while other observer,
591	  initiator, central or peripheral roles are active in the local controller.
592
593	  Disabling this feature will lead to overlapping role in timespace
594	  leading to skipped events amongst active roles.
595
596config BT_CTLR_ASSERT_OVERHEAD_START
597	bool "Assert on Prepare Latency"
598	default y
599	help
600	  Assert on increased Radio Event Prepare callback latencies due to
601	  CPU usage overheads in the Controller implementation.
602
603	  Disabling this option permits the Controller to gracefully skip radio
604	  events that are delayed due to CPU usage latencies; as long as the
605	  radio event skips are not for every consecutive radio event interval,
606	  otherwise leading to remote supervision timeout and possible missing
607	  local disconnect events.
608
609config BT_CTLR_CENTRAL_SPACING
610	int "Central Connection Spacing"
611	depends on BT_CTLR_SCHED_ADVANCED
612	default 0
613	range 0 65535
614	help
615	  The preferred connection spacing between multiple simultaneous central
616	  roles in microseconds. The Controller will calculate the required time
617	  reservation using the data length and PHY currently in use. The
618	  greater of the preferred spacing and the calculated time reservation
619	  will be used.
620	  The precision is determined by the resolution of the platform
621	  dependent ticker clock.
622	  The upper range is a ceil value permitting any tuning of Controller's
623	  radio handling overheads and to allow Coded PHY S8 coding scheme PDU
624	  time, i.e. radio event overheads + 17040 (PDU Tx) + 150 (tIFS) + 4
625	  (active clock jitter) + 17040 (PDU rx) = (radio event overheads +
626	  34234) microseconds.
627
628config BT_CTLR_CENTRAL_RESERVE_MAX
629	bool "Use maximum data PDU size time reservation for Central"
630	depends on BT_CENTRAL
631	default y
632	help
633	  Use the maximum data PDU size time reservation considering the Data
634	  length could be updated from default 27 bytes to maximum support size.
635	  If maximum time reservation is disabled then time reservation
636	  corresponding to the default data length at the time of the
637	  start/enable of Central role is used.
638
639	  Note, currently this value is only used to space multiple central
640	  connections and not for actual ticker time reservations.
641
642config BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX
643	bool "Reserve maximum event overhead in time reservations"
644	default y
645	help
646	  Use radio event scheduling CPU time overhead in calculations of event
647	  time reservations.
648
649	  If this option is disabled, then Peripheral ACL and Peripheral ISO
650	  role will not include CPU time overhead. Other role will continue to
651	  use CPU overheads in their event time reservations.
652
653config BT_CTLR_SLOT_RESERVATION_UPDATE
654	bool "Update event length reservation after PHY or DLE update"
655	depends on (BT_CTLR_DATA_LENGTH || BT_CTLR_PHY)
656	default y
657	help
658	  Updates the event length reservation after a completed Data Length Update
659	  and/or PHY Update procedure to avoid overlap of radio events
660
661config BT_CTLR_LLL_PRIO
662	int "Lower Link Layer (Radio) IRQ priority" if (BT_CTLR_ULL_LLL_PRIO_SUPPORT && !BT_CTLR_ZLI)
663	range 0 3 if SOC_SERIES_NRF51X
664	range 0 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X)
665	default 0
666	help
667	  The interrupt priority for event preparation and radio IRQ.
668
669config BT_CTLR_ULL_HIGH_PRIO
670	int "Upper Link Layer High IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT
671	range BT_CTLR_LLL_PRIO 3 if SOC_SERIES_NRF51X
672	range BT_CTLR_LLL_PRIO 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X)
673	default BT_CTLR_LLL_PRIO if (!BT_CTLR_ULL_LLL_PRIO_SUPPORT || BT_CTLR_ZLI || BT_CTLR_LOW_LAT)
674	default 1
675	help
676	  The interrupt priority for Ticker's Worker IRQ and Upper Link Layer
677	  higher priority functions.
678
679config BT_CTLR_ULL_LOW_PRIO
680	int "Upper Link Layer Low IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT
681	range BT_CTLR_ULL_HIGH_PRIO 3 if SOC_SERIES_NRF51X
682	range BT_CTLR_ULL_HIGH_PRIO 6 if (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X)
683	default BT_CTLR_ULL_HIGH_PRIO
684	help
685	  The interrupt priority for Ticker's Job IRQ and Upper Link Layer
686	  lower priority functions.
687
688config BT_CTLR_LOW_LAT
689	bool "Low latency non-negotiating event preemption"
690	select BT_CTLR_LOW_LAT_ULL_DONE
691	default y if SOC_SERIES_NRF51X
692	help
693	  Use low latency non-negotiating event preemption. This reduces
694	  Radio ISR latencies by the controller event scheduling framework.
695	  Consequently, this reduces on-air radio utilization due to redundant
696	  radio state switches.
697
698config BT_CTLR_LOW_LAT_ULL
699	prompt "Low latency ULL"
700	bool
701	depends on BT_CTLR_LOW_LAT
702	default y
703	help
704	  Low latency ULL implementation that uses tailchaining instead of while
705	  loop to demux rx messages from LLL.
706
707config BT_CTLR_LOW_LAT_ULL_DONE
708	prompt "Low latency ULL prepare dequeue"
709	bool
710	help
711	  Done events be processed and dequeued in ULL context.
712
713config BT_CTLR_CONN_META
714	prompt "Connection meta data extension"
715	bool
716	help
717	  Enables vendor specific per-connection meta data as part of the
718	  LLL connection object.
719
720config BT_CTLR_RX_PDU_META
721	prompt "RX pdu meta data"
722	bool
723
724config BT_CTLR_RADIO_ENABLE_FAST
725	bool "Use tTXEN/RXEN,FAST ramp-up"
726	depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X
727	default y
728	help
729	  Enable use of fast radio ramp-up mode.
730
731config BT_CTLR_TIFS_HW
732	bool "H/w Accelerated tIFS Trx switching"
733	depends on !BT_CTLR_RADIO_ENABLE_FAST && BT_CTLR_TIFS_HW_SUPPORT
734	default y
735	help
736	  Enable use of hardware accelerated tIFS Trx switching.
737
738config BT_CTLR_SW_SWITCH_SINGLE_TIMER
739	bool "Single TIMER tIFS Trx SW switching"
740	depends on (!BT_CTLR_TIFS_HW) && (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X)
741	help
742	  Implement the tIFS Trx SW switch with the same TIMER
743	  instance, as the one used for BLE event timing. Requires
744	  SW switching be enabled. Using a single TIMER:
745	  (+) frees up one TIMER instance
746	  (+) removes jitter for HCTO implementation
747	  (-) introduces drifting to the absolute time inside BLE
748	  events, that increases linearly with the number of
749	  packets exchanged in the event
750	  (-) makes it impossible to use most of the pre-programmed
751	  PPI channels for the controller, resulting in 4 channels
752	  less left for other uses
753
754config BT_CTLR_PARAM_CHECK
755	bool "HCI Command Parameter checking"
756	default y if BT_HCI_RAW
757	help
758	  Enable code checking HCI Command Parameters. This is not needed in
759	  combined host plus controller builds, saving some code space.
760
761if BT_CONN
762
763config BT_CTLR_LLCP_CONN
764	int "Number of connections with worst-case overlapping procedures"
765	default BT_MAX_CONN
766	range 1 BT_MAX_CONN
767	help
768	  Set the number connections for which worst-case buffer requirements
769	  for LLCP procedures must be met. Executing LLCP procedures on
770	  more than this number of connections simultaneously may cause
771	  instabilities.
772
773config BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
774	int
775	default 4
776	help
777	  The theoretical maximum number of tx ctrl buffers needed for any connection, is 4.
778	  two for active encryption procedure plus one for rejecting a remote request
779	  and one for a local terminate
780
781config BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM
782	int "Number of tx control buffers to be reserved per connection"
783	default BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
784	range 0 BT_CTLR_LLCP_TX_PER_CONN_TX_CTRL_BUF_NUM_MAX
785	help
786	  Set the number control buffers that is to be pre allocated per connection
787	  This defines the minimum number of buffers available for any connection
788	  Setting this to non zero will ensure a connection will always have access
789	  to buffer(s) for control procedure TX
790
791config BT_CTLR_LLCP_COMMON_TX_CTRL_BUF_NUM
792	int "Number of tx control buffers to be available across all connections"
793	default 0
794	range 0 255
795	help
796	  Set the number control buffers that is to be available for tx.
797	  This defines the size of the pool of tx buffers available
798	  for control procedure tx. This pool is shared across all
799	  procedures/connections with allocation through a fifo queue.
800	  Configure between 0 and (4 - BT_CTLR_LLCP_PER_CONN_TX_CTRL_BUF_NUM) * BT_CTLR_LLCP_CONN
801
802config BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM
803	int "Number of local control procedure contexts to be available across all connections"
804	default 6 if (BT_AUTO_PHY_UPDATE=y || BT_AUTO_DATA_LEN_UPDATE=y) && BT_CTLR_LLCP_CONN < 4
805	default 2 if BT_CTLR_LLCP_CONN = 1
806	default BT_CTLR_LLCP_CONN if BT_CTLR_LLCP_CONN > 1
807	range 2 255
808	help
809	  Set the number control procedure contexts that is to be available.
810	  This defines the size of the pool of control procedure contexts available
811	  for handling local initiated control procedures.
812	  This pool is shared across all connections, with allocation through a queue.
813
814config BT_CTLR_LLCP_REMOTE_PROC_CTX_BUF_NUM
815	int "Number of remote control procedure contexts to be available across all connections"
816	default BT_CTLR_LLCP_CONN
817	range 1 255
818	help
819	  Set the number control procedure contexts that is to be available.
820	  This defines the size of the pool of control procedure contexts available
821	  for handling remote initiated control procedures.
822	  This pool is shared across all connections, with allocation through a queue.
823
824config BT_CTLR_LLID_DATA_START_EMPTY
825	bool "Handle zero length L2CAP start frame"
826	default y if BT_HCI_RAW
827	help
828	  Handle zero length L2CAP start frame.
829
830config BT_CTLR_TX_RETRY_DISABLE
831	bool "Disable Tx Retry"
832	help
833	  Avoid retransmission of a PDU if peer device Nack-ed a transmission
834	  in the current connection event, close the connection event so as to
835	  save current consumption on retries (in case peer has no buffers to
836	  receive new PDUs).
837
838	  Enabling this will lower power consumption, but increase transmission
839	  latencies by one connection interval as the next attempt to send a PDU
840	  would happen in the next connection event instead of repeated retries
841	  in the current connection event.
842
843config BT_CTLR_THROUGHPUT
844	bool "Measure incoming Tx throughput"
845	help
846	  Measure incoming Tx throughput and log the results.
847
848config BT_CTLR_FORCE_MD_COUNT
849	int "Forced MD bit count" if !BT_CTLR_FORCE_MD_AUTO
850	depends on !BT_CTLR_LOW_LAT_ULL
851	range 0 255
852	default 1 if BT_CTLR_FORCE_MD_AUTO
853	default 0
854	help
855	  No. of times to force MD bit to be set in Tx PDU after a successful
856	  transmission of non-empty PDU.
857
858	  This will prolong the connection event to from being closed in cases
859	  where applications want to send data in same connection event but are
860	  slow in providing new Tx data.
861
862config BT_CTLR_FORCE_MD_AUTO
863	bool "Forced MD bit automatic calculation"
864	depends on !BT_CTLR_LOW_LAT_ULL
865	select BT_CTLR_THROUGHPUT
866	default y if BT_HCI_RAW
867	help
868	  Force MD bit in transmitted PDU based on runtime incoming transmit
869	  data throughput.
870
871config BT_CTLR_CONN_RANDOM_FORCE
872	bool "Random forced scheduling for peripheral on missed anchor point"
873	depends on BT_PERIPHERAL
874	default y
875	help
876	  When enabled, controller will have legacy behavior and randomly force
877	  priority at next ticker scheduling for peripheral role, if anchor point is
878	  missed.
879	  Two or more connections with similar interval on a device connected
880	  to a peer device having two or more connections at its end with same
881	  interval could lock to a round robin pattern where in neither of the central
882	  nor peripheral event would be in sync at either end. Randomness allows
883	  to break this locked round robin pattern permitting an anchor point sync.
884
885config BT_CTLR_CONN_RSSI_EVENT
886	bool "Connection RSSI event"
887	depends on BT_CTLR_CONN_RSSI
888	help
889	  Generate events for connection RSSI measurement.
890
891config BT_CTLR_ALLOW_SAME_PEER_CONN
892	bool "Allow connection requests from same peer"
893	depends on BT_MAX_CONN > 1
894	help
895	  Allow connection requests from the same peer. While the
896	  Bluetooth specification does not allow multiple connections
897	  with the same peer, allowing such connections is useful
898	  while debugging multiple connections.
899
900	  WARNING: This option enables behavior that violates the Bluetooth
901	  specification.
902
903endif # BT_CONN
904
905config BT_CTLR_ADV_INDICATION
906	bool "Advertisement indications"
907	depends on BT_BROADCASTER
908	help
909	  Generate events indicating on air advertisement events.
910
911config BT_CTLR_SCAN_REQ_NOTIFY
912	bool "Scan Request Notifications"
913	depends on BT_BROADCASTER
914	help
915	  Generate events notifying the on air scan requests received.
916
917config BT_CTLR_SCAN_REQ_RSSI
918	bool "Measure Scan Request RSSI"
919	depends on BT_CTLR_SCAN_REQ_NOTIFY
920	help
921	  Measure RSSI of the on air scan requests received.
922
923config BT_CTLR_SCAN_INDICATION
924	bool "Scanner indications"
925	depends on BT_OBSERVER
926	help
927	  Generate events indicating on air scanner events.
928
929config BT_CTLR_SCAN_UNRESERVED
930	bool "Unreserved scan window"
931	depends on BT_OBSERVER && !BT_CTLR_LOW_LAT
932	default y if BT_MESH
933	help
934	  Scanner will not use time space reservation for scan window when in
935	  continuous scan mode.
936
937config BT_MAYFLY_YIELD_AFTER_CALL
938	bool "Yield from mayfly thread after first call"
939	default y
940	help
941	  Only process one mayfly callback per invocation (legacy behavior).
942	  If set to 'n', all pending mayflies for callee are executed before
943	  yielding
944
945config BT_TICKER_LOW_LAT
946	bool "Ticker low latency mode"
947	default y if SOC_SERIES_NRF51X
948	help
949	  This option enables legacy ticker scheduling which defers overlapping
950	  ticker node timeouts and thereby prevents ticker interrupts during
951	  radio RX/TX. Enabling this option disables the ticker priority- and
952	  'must expire' features.
953
954config BT_TICKER_UPDATE
955	bool "Ticker Update"
956	help
957	  This option enables Ticker Update interface.
958
959config BT_TICKER_REMAINDER
960	bool "Ticker Remainder"
961	help
962	  This option enables Ticker Start interface remainder parameter for
963	  first expire timeout.
964
965config BT_TICKER_JOB_IDLE_GET
966	bool "Ticker Job Idle Get"
967	default y if BT_TICKER_LOW_LAT
968	help
969	  This option enables the ticker interface to query the idle state of
970	  the Ticker Job execution context. This interface is used to disable
971	  Ticker Job execution once in idle state, no operations pending for the
972	  Ticker Job to process.
973
974config BT_TICKER_NEXT_SLOT_GET
975	bool "Ticker Next Slot Get"
976	help
977	  This option enables ticker interface to iterate through active
978	  ticker nodes, returning tick to expire.
979
980config BT_TICKER_REMAINDER_GET
981	bool "Ticker Next Slot Get with Remainder"
982	select BT_TICKER_NEXT_SLOT_GET
983	select BT_TICKER_NEXT_SLOT_GET_MATCH
984	default y
985	help
986	  This option enables ticker interface to iterate through active
987	  ticker nodes, returning tick to expire and remainder from a reference
988	  tick.
989
990config BT_TICKER_LAZY_GET
991	bool "Ticker Next Slot Get with Lazy"
992	select BT_TICKER_NEXT_SLOT_GET
993	select BT_TICKER_NEXT_SLOT_GET_MATCH
994	help
995	  This option enables ticker interface to iterate through active
996	  ticker nodes, returning tick to expire and lazy count from a reference
997	  tick.
998
999config BT_TICKER_NEXT_SLOT_GET_MATCH
1000	bool "Ticker Next Slot Get with match callback"
1001	depends on BT_TICKER_NEXT_SLOT_GET
1002	default y if BT_TICKER_SLOT_AGNOSTIC
1003	help
1004	  This option enables ticker interface to iterate through active
1005	  ticker nodes with a callback for every found ticker node. When
1006	  returning true in the callback, iteration will stop and the normal
1007	  operation callback invoked.
1008
1009config BT_TICKER_EXT
1010	bool "Ticker extensions"
1011	depends on !BT_TICKER_LOW_LAT
1012	default y if BT_BROADCASTER
1013	help
1014	  This option enables ticker extensions such as re-scheduling of
1015	  ticker nodes with slot_window set to non-zero. Ticker extensions
1016	  are invoked by using available '_ext' versions of ticker interface
1017	  functions.
1018
1019config BT_TICKER_EXT_SLOT_WINDOW_YIELD
1020	bool "Tickers with slot window always yields"
1021	depends on BT_TICKER_EXT
1022	default y if BT_CTLR_ADV_ISO
1023	help
1024	  This options forces tickers with slot window extensions to yield to
1025	  normal tickers and be placed at the end of their slot window.
1026
1027config BT_TICKER_EXT_EXPIRE_INFO
1028	bool "Ticker timeout with other ticker's expire information"
1029	select BT_TICKER_EXT
1030	help
1031	  This option enables ticker to return expiration info. The extended
1032	  ticker interface) is used to ask for expiration information for
1033	  another ticker id to be returned in the ticker callback. This utilises
1034	  the extended ticker interface and a callback function with a different
1035	  context to keep the current ticker interface as unchanged as possible.
1036
1037config BT_TICKER_PRIORITY_SET
1038	bool "Tickers with priority based collision resolution"
1039	depends on BT_TICKER_EXT
1040	help
1041	  This option provide tickers with persistent priority value that will
1042	  be used in resolving collisions.
1043
1044	  The priority feature if enabled then a custom ULL is needed by vendors
1045	  to avoid repeated skipping of overlapping events as next_has_priority
1046	  check uses lazy value that would be always lazy_next > lazy_current as
1047	  currently skipped event becomes the next event with lazy value
1048	  incremented by 1. This repeated skip happens when all the time
1049	  between the event intervals are occupied continuously by overlapping
1050	  tickers.
1051
1052config BT_TICKER_SLOT_AGNOSTIC
1053	bool "Slot agnostic ticker mode"
1054	help
1055	  This option enables slot agnostic ticker mode, which ignores slot
1056	  reservations and collision handling, and operates as a simple
1057	  multi-instance programmable timer.
1058
1059config BT_TICKER_PREFER_START_BEFORE_STOP
1060	bool "Ticker prefer start before stop request"
1061	help
1062	  Under race conditions wherein for a given ticker node if a number of
1063	  start and stop operations are enqueued towards ticker_job by a said
1064	  user execution context, then start operations is preferred to be
1065	  processed before stop operations.
1066
1067	  Without this option, the default behavior is to defer all start
1068	  requests after all stop requests enqueued by all user context having
1069	  been processed. The rationale for default behavior being that under
1070	  race conditions, start followed by stop requests, or start before stop
1071	  requests, the said ticker node is always scheduled and at timeout the
1072	  execution context can take decision based on its execution state.
1073
1074config BT_CTLR_JIT_SCHEDULING
1075	bool "Just-in-Time Scheduling"
1076	select BT_TICKER_SLOT_AGNOSTIC
1077	help
1078	  This option enables the experimental 'Next Generation' scheduling
1079	  feature, which eliminates priorities and collision resolving in the
1080	  ticker, and instead relies on just-in-time ("lazy") resolution in
1081	  the link layer.
1082
1083config BT_CTLR_PERIPHERAL_ISO_EARLY_CIG_START
1084	bool "Early start of peripheral CIG event"
1085	depends on BT_CTLR_PERIPHERAL_ISO
1086	help
1087	  Start scheduling the Peripheral ISO CIG events one event in advance
1088	  and hence adjust CIG offset and reference point ahead one interval.
1089
1090config BT_CTLR_USER_EXT
1091	prompt "Proprietary extensions in Controller"
1092	bool
1093	help
1094	  Catch-all for enabling proprietary event types in Controller behavior.
1095
1096config BT_CTLR_USER_EVT_RANGE
1097	int "Range of event constants reserved for proprietary event types"
1098	depends on BT_CTLR_USER_EXT
1099	default 5
1100	range 0 10
1101	help
1102	  Number of event types reserved for proprietary use. The range
1103	  is typically used when BT_CTLR_USER_EXT is in use.
1104
1105config BT_CTLR_USER_TICKER_ID_RANGE
1106	int "Range of ticker id constants reserved for proprietary ticker nodes"
1107	depends on BT_CTLR_USER_EXT
1108	default 0
1109	range 0 10
1110	help
1111	  Number of ticker ids reserved for proprietary use. The range
1112	  is typically used when BT_CTLR_USER_EXT is in use.
1113
1114config BT_RX_USER_PDU_LEN
1115	int "Maximum supported proprietary PDU buffer length"
1116	depends on BT_CTLR_USER_EXT
1117	default 2
1118	range 2 255
1119	help
1120	  Maximum data size for each proprietary PDU. This size includes link layer
1121	  header and payload. It does not account for HCI event headers as these
1122	  PDUs are assumed to not go across HCI.
1123
1124config BT_CTLR_USER_CPR_INTERVAL_MIN
1125	bool "Proprietary Connection Parameter Request minimum interval"
1126	depends on BT_CTLR_USER_EXT
1127	help
1128	  When enabled, controller will accept Connection Parameter Request
1129	  intervals down to a proprietary minimum value.
1130
1131config BT_CTLR_USER_CPR_ANCHOR_POINT_MOVE
1132	bool "Proprietary handling of anchor point movement"
1133	depends on BT_CTLR_USER_EXT && BT_CTLR_CONN_PARAM_REQ && BT_PERIPHERAL
1134	help
1135	  When enabled, defer accept/reject of Connection Parameter Request with only
1136	  anchor point movement to proprietary logic.
1137	  Only applicable for peripheral.
1138
1139endmenu
1140
1141source "subsys/bluetooth/controller/coex/Kconfig"
1142
1143comment "BLE Controller debug configuration"
1144
1145config BT_CTLR_PROFILE_ISR
1146	bool "Profile radio ISR"
1147	help
1148	  Turn on measurement of radio ISR latency, CPU usage and generation of
1149	  controller event with these profiling data. The controller event
1150	  contains current, minimum and maximum ISR entry latencies; and
1151	  current, minimum and maximum ISR CPU use in micro-seconds.
1152
1153config BT_CTLR_DEBUG_PINS
1154	bool "Bluetooth Controller Debug Pins"
1155	depends on BOARD_NRF51DK_NRF51422 || BOARD_NRF52DK_NRF52832 || BOARD_NRF52DK_NRF52810 || BOARD_NRF52840DK_NRF52840 || BOARD_NRF52833DK_NRF52833 || BOARD_NRF5340DK_NRF5340_CPUNET || BOARD_RV32M1_VEGA
1156	help
1157	  Turn on debug GPIO toggling for the BLE Controller. This is useful
1158	  when debugging with a logic analyzer or profiling certain sections of
1159	  the code.
1160
1161endif # BT_LL_SW_SPLIT
1162