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 8DT_PATH_NORDIC_RADIO := $(dt_nodelabel_path,radio) 9DT_NORDIC_RADIO_DFE_SUPPORTED := $(dt_node_has_bool_prop,$(DT_PATH_NORDIC_RADIO),dfe-supported) 10 11config BT_LLL_VENDOR_NORDIC 12 bool "Use Nordic LLL" 13 depends on SOC_COMPATIBLE_NRF 14 select BT_HAS_HCI_VS 15 select ENTROPY_NRF5_RNG 16 select ENTROPY_NRF5_BIAS_CORRECTION 17 select BT_CTLR_LE_ENC_SUPPORT if !BT_CTLR_DATA_LENGTH_CLEAR && \ 18 !BT_CTLR_PHY_2M_NRF 19 select BT_CTLR_CONN_PARAM_REQ_SUPPORT 20 select BT_CTLR_EXT_REJ_IND_SUPPORT 21 select BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT 22 select BT_CTLR_DATA_LEN_UPDATE_SUPPORT if HAS_HW_NRF_CCM_LFLEN_8BIT || \ 23 BT_CTLR_DATA_LENGTH_CLEAR 24 select BT_CTLR_PRIVACY_SUPPORT if !SOC_SERIES_NRF51X 25 select BT_CTLR_EXT_SCAN_FP_SUPPORT 26 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_DF_SUPPORT if $(DT_NORDIC_RADIO_DFE_SUPPORTED) 38 select BT_CTLR_CTEINLINE_SUPPORT if $(DT_NORDIC_RADIO_DFE_SUPPORTED) 39 select BT_CTLR_CHAN_SEL_2_SUPPORT 40 select BT_CTLR_MIN_USED_CHAN_SUPPORT 41 select BT_CTLR_DTM_HCI_SUPPORT 42 select BT_CTLR_CONN_RSSI_SUPPORT 43 44 select BT_CTLR_XTAL_ADVANCED_SUPPORT 45 select BT_CTLR_SCHED_ADVANCED_SUPPORT 46 select BT_CTLR_TIFS_HW_SUPPORT 47 select BT_CTLR_ULL_LLL_PRIO_SUPPORT 48 49 default y 50 help 51 Use Nordic Lower Link Layer implementation. 52 53config BT_LLL_VENDOR_OPENISA 54 bool "Use OpenISA LLL" 55 depends on SOC_OPENISA_RV32M1_RISCV32 56 select BT_CTLR_PHY_UPDATE_SUPPORT 57 select BT_CTLR_EXT_REJ_IND_SUPPORT 58 select BT_HAS_HCI_VS 59 select BT_CTLR_LE_ENC_SUPPORT if !BT_CTLR_DATA_LENGTH_CLEAR 60 select BT_CTLR_PRIVACY_SUPPORT 61 default y 62 help 63 Use OpenISA Lower Link Layer implementation. 64 65config BT_CTLR_XTAL_ADVANCED_SUPPORT 66 bool 67 68config BT_CTLR_SCHED_ADVANCED_SUPPORT 69 bool 70 71config BT_CTLR_TIFS_HW_SUPPORT 72 bool 73 74config BT_CTLR_ULL_LLL_PRIO_SUPPORT 75 bool 76 77config BT_CTLR_RX_PRIO_STACK_SIZE 78 # Controller's Co-Operative high priority Rx thread stack size. 79 int "High priority Rx thread stack size" 80 default 448 81 82config BT_CTLR_SETTINGS 83 bool "Settings System" 84 depends on SETTINGS 85 help 86 Enable use of settings system in controller. 87 88config BT_CTLR_VERSION_SETTINGS 89 bool "Version Settings" 90 depends on BT_CTLR_SETTINGS 91 help 92 Make the controller's Company Id and Subversion Number configurable 93 through settings system. 94 95config BT_CTLR_COMPANY_ID 96 hex "Controller Company Id" 97 default BT_COMPANY_ID 98 range 0x0000 0xFFFF 99 help 100 Set the Bluetooth Company Identifier that will be used in 101 the VERSION_IND PDU. Uses BT_COMPANY_ID by default, although 102 silicon vendors and hardware manufacturers can set their own 103 Company Identifier for the controller. The full list of Bluetooth 104 Company Identifiers can be found here: 105 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers 106 107config BT_CTLR_SUBVERSION_NUMBER 108 hex "Subversion Number" 109 default 0xFFFF 110 range 0x0000 0xFFFF 111 help 112 Set the Subversion Number that will be used in VERSION_IND PDU. 113 114config BT_CTLR_ADVANCED_FEATURES 115 bool "Show advanced features" 116 help 117 Makes advanced features visible to controller developers. 118 119menu "Advanced features" 120 visible if BT_CTLR_ADVANCED_FEATURES 121 122config BT_CTLR_SW_DEFERRED_PRIVACY 123 bool "LE Controller-based Software Privacy" 124 depends on BT_CTLR_PRIVACY 125 help 126 Enable support for software based deferred privacy calculations. 127 128config BT_CTLR_RPA_CACHE_SIZE 129 int "LE Controller-based Software Privacy Resolving List size" 130 depends on BT_CTLR_SW_DEFERRED_PRIVACY 131 default 8 132 range 1 64 133 help 134 Set the size of the Known Unknown Resolving List for LE 135 Controller-based Software deferred Privacy. 136 137config BT_CTLR_DATA_LENGTH_CLEAR 138 bool "Data Length Support (Cleartext only)" 139 depends on SOC_SERIES_NRF51X 140 help 141 Enable support for Bluetooth v4.2 LE Data Length Update procedure, up to 142 251 byte cleartext payloads in the Controller. Encrypted connections 143 are not supported. 144 145 146config BT_CTLR_PHY_2M_NRF 147 bool "2Mbps Nordic Semiconductor PHY Support (Cleartext only)" 148 depends on SOC_SERIES_NRF51X 149 select BT_CTLR_PHY_2M 150 help 151 Enable support for Nordic Semiconductor proprietary 2Mbps PHY in the 152 Controller. Encrypted connections are not supported. 153 154config BT_CTLR_ADV_AUX_SET 155 int "LE Extended Advertising Auxiliary Sets" 156 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 157 range 1 BT_CTLR_ADV_SET if BT_CTLR_ADV_PERIODIC 158 range 0 BT_CTLR_ADV_SET 159 default 1 if BT_CTLR_ADV_PERIODIC 160 default BT_CTLR_ADV_SET 161 help 162 Maximum supported advertising auxiliary channel sets. 163 164config BT_CTLR_ADV_SYNC_SET 165 int "LE Periodic Advertising Sets" 166 depends on BT_CTLR_ADV_PERIODIC 167 range 1 BT_CTLR_ADV_AUX_SET 168 default 1 169 help 170 Maximum supported periodic advertising sets. 171 172config BT_CTLR_ADV_PDU_LINK 173 bool "Enable linking of advertising PDU trains" 174 help 175 Enables extra space in each advertising PDU to allow linking PDUs. This 176 is required to enable advertising data trains (i.e. transmission of 177 AUX_CHAIN_IND). 178 179config BT_CTLR_ADV_SYNC_PDU_BACK2BACK 180 bool "Enable back-to-back transmission of periodic advertising trains" 181 depends on BT_CTLR_ADV_PERIODIC 182 select BT_CTLR_ADV_PDU_LINK 183 help 184 Enables transmission of AUX_CHAIN_IND in periodic advertising train by 185 sending each AUX_CHAIN_IND one after another back-to-back. 186 Note, consecutive AUX_CHAIN_IND packets are not scheduled but sent at 187 a constant offset on a best effort basis. This means advertising train can 188 be preempted by other event at any time. 189 190config BT_CTLR_ADV_SYNC_PDU_BACK2BACK_AFS 191 int "AUX Frame Space for back-to-back transmission of periodic advertising trains" 192 depends on BT_CTLR_ADV_SYNC_PDU_BACK2BACK 193 default 300 194 range 300 1000 195 help 196 Specific AUX Frame Space to be used for back-to-back transmission of 197 periodic advertising trains. Time specified in microseconds. 198 199config BT_CTLR_ADV_DATA_BUF_MAX 200 int "Advertising Data Maximum Buffers" 201 depends on BT_BROADCASTER 202 range 1 64 if BT_CTLR_ADV_EXT 203 range 1 1 if !BT_CTLR_ADV_EXT 204 default 1 205 help 206 Maximum number of buffered Advertising Data payload across enabled 207 advertising sets. 208 209config BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY 210 bool 211 depends on BT_CTLR_ADV_EXT 212 help 213 Add additional memory to advertising PDU storage. The memory is a 214 general purpose storage for data that should be send from ULL to LLL. 215 The data stored in the memory are in synchoronization with content 216 of PDU memory. 217 218 For example, the extra data memory is used for storage for parameters 219 to configure Radio peripheral to transmit CTE. The configuration data 220 must be synchronized with CTEInfo field in extended advertising header 221 that is part of PDU data. 222 223config BT_CTRL_ADV_ADI_IN_SCAN_RSP 224 bool "Include ADI in AUX_SCAN_RSP PDU" 225 depends on BT_BROADCASTER && BT_CTLR_ADV_EXT 226 help 227 Enable ADI field in AUX_SCAN_RSP PDU 228 229config BT_CTLR_SCAN_AUX_SET 230 int "LE Extended Scanning Auxiliary Sets" 231 depends on BT_OBSERVER && BT_CTLR_ADV_EXT 232 range 1 64 233 default 1 234 help 235 Maximum supported auxiliary channel scan sets. 236 237config BT_CTLR_SCAN_SYNC_ISO_SET 238 int "LE ISO Broadcast Isochronous Groups Sync Sets" 239 depends on BT_CTLR_SYNC_ISO 240 range 1 64 241 default 1 242 help 243 Maximum supported broadcast isochronous groups (BIGs) sync sets. 244 245config BT_CTLR_ADV_ENABLE_STRICT 246 bool "Enforce Strict Advertising Enable/Disable" 247 depends on BT_BROADCASTER 248 help 249 Enforce returning HCI Error Command Disallowed on enabling/disabling 250 already enabled/disabled advertising. 251 252config BT_CTLR_SCAN_ENABLE_STRICT 253 bool "Enforce Strict Scan Enable/Disable" 254 depends on BT_OBSERVER 255 help 256 Enforce returning HCI Error Command Disallowed on enabling/disabling 257 already enabled/disabled scanning. 258 259config BT_CTLR_ZLI 260 bool "Use Zero Latency IRQs" 261 depends on ZERO_LATENCY_IRQS 262 default y 263 help 264 Enable support for use of Zero Latency IRQ feature. Note, applications 265 shall not use Zero Latency IRQ themselves when this option is selected, 266 else will impact controller stability. 267 268config BT_CTLR_OPTIMIZE_FOR_SPEED 269 prompt "Optimize for Speed" if !(SOC_SERIES_NRF51X && BT_CTLR_LE_ENC) 270 bool 271 default y if BT_CTLR_LE_ENC 272 help 273 Optimize compilation of controller for execution speed. 274 275config BT_CTLR_XTAL_ADVANCED 276 bool "Advanced event preparation" 277 depends on BT_CTLR_XTAL_ADVANCED_SUPPORT 278 default y 279 help 280 Enables advanced event preparation offset ahead of radio tx/rx, taking 281 into account predictive processing time requirements in preparation to 282 the event, like control procedure handling and CPU execution speeds. 283 Crystal oscillator is retained between closely spaced consecutive 284 radio events to reduce the overall number of crystal settling current 285 consumptions. 286 287 This feature maximizes radio utilization in an average role event 288 timeslice when they are closely spaced by using a reduced offset 289 between preparation and radio event. 290 291 By disabling this feature, the controller will use a constant offset 292 between the preparation and radio event. The controller will toggle 293 crystal oscillator between two closely spaced radio events leading to 294 higher average current due to increased number of crystal settling 295 current consumptions. 296 297config BT_CTLR_XTAL_THRESHOLD 298 int "Crystal shutdown threshold in uS" 299 depends on BT_CTLR_XTAL_ADVANCED 300 default 1500 301 help 302 Configure the optimal delta in micro seconds between two consecutive 303 radio events, event done to next preparation, below which (active 304 clock) crystal will be retained. This value is board dependent. 305 306config BT_CTLR_SCHED_ADVANCED 307 bool "Advanced scheduling" 308 depends on (BT_MAX_CONN != 0) && BT_CTLR_SCHED_ADVANCED_SUPPORT 309 default y if !(BT_PERIPHERAL && !BT_CENTRAL) 310 help 311 Enable non-overlapping placement of observer, initiator and central 312 roles in timespace. Uses window offset in connection updates and uses 313 connection parameter request in peripheral role to negotiate 314 non-overlapping placement with active central roles to avoid peripheral 315 roles drifting into active central roles in the local controller. 316 317 This feature maximizes the average data transmission amongst active 318 concurrent central and peripheral connections while other observer, 319 initiator, central or peripheral roles are active in the local controller. 320 321 Disabling this feature will lead to overlapping role in timespace 322 leading to skipped events amongst active roles. 323 324config BT_CTLR_LLL_PRIO 325 int "Lower Link Layer (Radio) IRQ priority" if (BT_CTLR_ULL_LLL_PRIO_SUPPORT && !BT_CTLR_ZLI) 326 range 0 3 if SOC_SERIES_NRF51X 327 range 0 6 if (SOC_SERIES_NRF52X || SOC_SERIES_NRF53X) 328 default 0 329 help 330 The interrupt priority for event preparation and radio IRQ. 331 332config BT_CTLR_ULL_HIGH_PRIO 333 int "Upper Link Layer High IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT 334 range BT_CTLR_LLL_PRIO 3 if SOC_SERIES_NRF51X 335 range BT_CTLR_LLL_PRIO 6 if (SOC_SERIES_NRF52X || SOC_SERIES_NRF53X) 336 default BT_CTLR_LLL_PRIO if (!BT_CTLR_ULL_LLL_PRIO_SUPPORT || BT_CTLR_ZLI || BT_CTLR_LOW_LAT) 337 default 1 338 help 339 The interrupt priority for Ticker's Worker IRQ and Upper Link Layer 340 higher priority functions. 341 342config BT_CTLR_ULL_LOW_PRIO 343 int "Upper Link Layer Low IRQ priority" if BT_CTLR_ULL_LLL_PRIO_SUPPORT 344 range BT_CTLR_ULL_HIGH_PRIO 3 if SOC_SERIES_NRF51X 345 range BT_CTLR_ULL_HIGH_PRIO 6 if (SOC_SERIES_NRF52X || SOC_SERIES_NRF53X) 346 default BT_CTLR_ULL_HIGH_PRIO 347 help 348 The interrupt priority for Ticker's Job IRQ and Upper Link Layer 349 lower priority functions. 350 351config BT_CTLR_LOW_LAT 352 bool "Low latency non-negotiating event preemption" 353 select BT_CTLR_LOW_LAT_ULL_DONE 354 default y if SOC_SERIES_NRF51X 355 help 356 Use low latency non-negotiating event preemption. This reduces 357 Radio ISR latencies by the controller event scheduling framework. 358 Consequently, this reduces on-air radio utilization due to redundant 359 radio state switches. 360 361config BT_CTLR_LOW_LAT_ULL 362 prompt "Low latency ULL" 363 bool 364 depends on BT_CTLR_LOW_LAT 365 default y 366 help 367 Low latency ULL implementation that uses tailchaining instead of while 368 loop to demux rx messages from LLL. 369 370config BT_CTLR_LOW_LAT_ULL_DONE 371 prompt "Low latency ULL prepare dequeue" 372 bool 373 help 374 Done events be processed and dequeued in ULL context. 375 376config BT_CTLR_CONN_META 377 prompt "Enable connection meta data extension" 378 bool 379 help 380 Enables vendor specific per-connection meta data as part of the 381 LLL connection object. 382 383config BT_CTLR_RX_PDU_META 384 prompt "Enable RX pdu meta data" 385 bool 386 387config BT_CTLR_RADIO_ENABLE_FAST 388 bool "Use tTXEN/RXEN,FAST ramp-up" 389 depends on SOC_COMPATIBLE_NRF52X || SOC_SERIES_NRF53X 390 default y 391 help 392 Enable use of fast radio ramp-up mode. 393 394config BT_CTLR_TIFS_HW 395 bool "H/w Accelerated tIFS Trx switching" 396 depends on !BT_CTLR_RADIO_ENABLE_FAST && BT_CTLR_TIFS_HW_SUPPORT 397 default y 398 help 399 Enable use of hardware accelerated tIFS Trx switching. 400 401config BT_CTLR_SW_SWITCH_SINGLE_TIMER 402 bool "Single TIMER tIFS Trx SW switching" 403 depends on (!BT_CTLR_TIFS_HW) && (SOC_COMPATIBLE_NRF52X || SOC_SERIES_NRF53X) 404 help 405 Implement the tIFS Trx SW switch with the same TIMER 406 instance, as the one used for BLE event timing. Requires 407 SW switching be enabled. Using a single TIMER: 408 (+) frees up one TIMER instance 409 (+) removes jitter for HCTO implementation 410 (-) introduces drifting to the absolute time inside BLE 411 events, that increases linearly with the number of 412 packets exchanged in the event 413 (-) makes it impossible to use most of the pre-programmed 414 PPI channels for the controller, resulting in 4 channels 415 less left for other uses 416 417config BT_CTLR_PARAM_CHECK 418 bool "Enable HCI Command Parameter checking" 419 default y if BT_HCI_RAW 420 help 421 Enable code checking HCI Command Parameters. This is not needed in 422 combined host plus controller builds, saving some code space. 423 424if BT_CONN 425 426config BT_CTLR_FAST_ENC 427 bool "Fast Encryption Setup" 428 depends on BT_CTLR_LE_ENC 429 default y if BT_HCI_RAW 430 help 431 Enable connection encryption setup in 3 connection intervals. 432 Peripheral will respond to Encryption Request with Encryption Response 433 in the same connection interval, and also, will respond with Start 434 Encryption Response PDU in the 3rd connection interval, hence 435 completing encryption setup in 3 connection intervals. Encrypted data 436 would be transmitted as fast as in 3rd connection interval from the 437 connection establishment. 438 Maximum CPU time in Radio ISR will increase if this feature is 439 selected. 440 441config BT_CTLR_LLCP_CONN 442 int "Number of connections with worst-case overlapping procedures" 443 default BT_MAX_CONN 444 range 1 BT_MAX_CONN 445 help 446 Set the number connections for which worst-case buffer requirements 447 for LLCP procedures must be met. Executing LLCP procedures on 448 more than this number of connections simultaneously may cause 449 instabilities. 450 451config BT_CTLR_LLID_DATA_START_EMPTY 452 bool "Handle zero length L2CAP start frame" 453 default y if BT_HCI_RAW 454 help 455 Handle zero length L2CAP start frame. 456 457config BT_CTLR_RX_ENQUEUE_HOLD 458 bool "Procedure Complete after on-air instant" 459 default y if BT_HCI_RAW 460 help 461 Hold enqueue of Procedure Complete events with instant until after the 462 on-air instant is reached. 463 464config BT_CTLR_TX_RETRY_DISABLE 465 bool "Disable Tx Retry" 466 help 467 Avoid retransmission of a PDU if peer device Nack-ed a transmission 468 in the current connection event, close the connection event so as to 469 save current consumption on retries (in case peer has no buffers to 470 receive new PDUs). 471 472 Enabling this will lower power consumption, but increase transmission 473 latencies by one connection interval as the next attempt to send a PDU 474 would happen in the next connection event instead of repeated retries 475 in the current connection event. 476 477config BT_CTLR_THROUGHPUT 478 bool "Measure incoming Tx throughput" 479 help 480 Measure incoming Tx throughput and log the results. 481 482config BT_CTLR_FORCE_MD_COUNT 483 int "Forced MD bit count" if !BT_CTLR_FORCE_MD_AUTO 484 range 0 255 485 default 1 if BT_CTLR_FORCE_MD_AUTO 486 default 0 487 help 488 No. of times to force MD bit to be set in Tx PDU after a successful 489 transmission of non-empty PDU. 490 491 This will prolong the connection event to from being closed in cases 492 where applications want to send data in same connection event but are 493 slow in providing new Tx data. 494 495config BT_CTLR_FORCE_MD_AUTO 496 bool "Forced MD bit automatic calculation" 497 select BT_CTLR_THROUGHPUT 498 default y if BT_HCI_RAW 499 help 500 Force MD bit in transmitted PDU based on runtime incoming transmit 501 data throughput. 502 503config BT_CTLR_CONN_RANDOM_FORCE 504 bool "Enable random forced scheduling for peripheral on missed anchor point" 505 depends on BT_PERIPHERAL 506 default y 507 help 508 When enabled, controller will have legacy behavior and randomly force 509 priority at next ticker scheduling for peripheral role, if anchor point is 510 missed. 511 Two or more connections with similar interval on a device connected 512 to a peer device having two or more connections at its end with same 513 interval could lock to a round robin pattern where in neither of the central 514 nor peripheral event would be in sync at either end. Randomness allows 515 to break this locked round robin pattern permitting an anchor point sync. 516 517config BT_CTLR_CONN_RSSI_EVENT 518 bool "Connection RSSI event" 519 depends on BT_CTLR_CONN_RSSI 520 help 521 Generate events for connection RSSI measurement. 522 523config BT_CTLR_ALLOW_SAME_PEER_CONN 524 bool "Allow connection requests from same peer" 525 depends on BT_MAX_CONN > 1 526 help 527 Allow connection requests from the same peer. While the 528 Bluetooth specification does not allow multiple connections 529 with the same peer, allowing such connections is useful 530 while debugging multiple connections. 531 532 WARNING: This option enables behavior that violates the Bluetooth 533 specification. 534 535endif # BT_CONN 536 537config BT_CTLR_ADV_INDICATION 538 bool "Advertisement indications" 539 depends on BT_BROADCASTER 540 help 541 Generate events indicating on air advertisement events. 542 543config BT_CTLR_SCAN_REQ_NOTIFY 544 bool "Scan Request Notifications" 545 depends on BT_BROADCASTER 546 help 547 Generate events notifying the on air scan requests received. 548 549config BT_CTLR_SCAN_REQ_RSSI 550 bool "Measure Scan Request RSSI" 551 depends on BT_CTLR_SCAN_REQ_NOTIFY 552 help 553 Measure RSSI of the on air scan requests received. 554 555config BT_CTLR_SCAN_INDICATION 556 bool "Scanner indications" 557 depends on BT_OBSERVER 558 help 559 Generate events indicating on air scanner events. 560 561config BT_CTLR_SCAN_UNRESERVED 562 bool "Unreserved scan window" 563 depends on BT_OBSERVER && !BT_CTLR_LOW_LAT 564 default y if BT_MESH 565 help 566 Scanner will not use time space reservation for scan window when in 567 continuous scan mode. 568 569config BT_MAYFLY_YIELD_AFTER_CALL 570 bool "Yield from mayfly thread after first call" 571 default y 572 help 573 Only process one mayfly callback per invocation (legacy behavior). 574 If set to 'n', all pending mayflies for callee are executed before 575 yielding 576 577config BT_TICKER_LOW_LAT 578 bool "Ticker low latency mode" 579 default y if SOC_SERIES_NRF51X 580 help 581 This option enables legacy ticker scheduling which defers overlapping 582 ticker node timeouts and thereby prevents ticker interrupts during 583 radio RX/TX. Enabling this option disables the ticker priority- and 584 'must expire' features. 585 586config BT_TICKER_LAZY_GET 587 bool "Ticker Next Slot Get with Lazy" 588 default y if BT_CTLR_ADV_PERIODIC 589 help 590 This option enables ticker interface to iterate through active 591 ticker nodes, returning tick to expire and lazy count from a reference 592 tick. 593 594config BT_TICKER_NEXT_SLOT_GET_MATCH 595 bool "Ticker Next Slot Get with match callback" 596 default y if BT_TICKER_SLOT_AGNOSTIC 597 help 598 This option enables ticker interface to iterate through active 599 ticker nodes with a callback for every found ticker node. When 600 returning true in the callback, iteration will stop and the normal 601 operation callback invoked. 602 603config BT_TICKER_EXT 604 bool "Ticker extensions" 605 depends on !BT_TICKER_LOW_LAT && !BT_TICKER_SLOT_AGNOSTIC 606 default y 607 help 608 This option enables ticker extensions such as re-scheduling of 609 ticker nodes with slot_window set to non-zero. Ticker extensions 610 are invoked by using available '_ext' versions of ticker interface 611 functions. 612 613config BT_TICKER_SLOT_AGNOSTIC 614 bool "Slot agnostic ticker mode" 615 help 616 This option enables slot agnostic ticker mode, which ignores slot 617 reservations and collision handling, and operates as a simple 618 multi-instance programmable timer. 619 620config BT_CTLR_JIT_SCHEDULING 621 bool "Just-in-Time Scheduling" 622 select BT_TICKER_SLOT_AGNOSTIC 623 help 624 This option enables the experimental 'Next Generation' scheduling 625 feature, which eliminates priorities and collision resolving in the 626 ticker, and instead relies on just-in-time ("lazy") resolution in 627 the link layer. 628 629config BT_CTLR_USER_EXT 630 prompt "Enable proprietary extensions in Controller" 631 bool 632 help 633 Catch-all for enabling proprietary event types in Controller behavior. 634 635config BT_CTLR_USER_EVT_RANGE 636 int "Range of event constants reserved for proprietary event types" 637 depends on BT_CTLR_USER_EXT 638 default 5 639 range 0 10 640 help 641 Number of event types reserved for proprietary use. The range 642 is typically used when BT_CTLR_USER_EXT is in use. 643 644config BT_CTLR_USER_TICKER_ID_RANGE 645 int "Range of ticker id constants reserved for proprietary ticker nodes" 646 depends on BT_CTLR_USER_EXT 647 default 0 648 range 0 10 649 help 650 Number of ticker ids reserved for proprietary use. The range 651 is typically used when BT_CTLR_USER_EXT is in use. 652 653config BT_RX_USER_PDU_LEN 654 int "Maximum supported proprietary PDU buffer length" 655 depends on BT_CTLR_USER_EXT 656 default 2 657 range 2 255 658 help 659 Maximum data size for each proprietary PDU. This size includes link layer 660 header and payload. It does not account for HCI event headers as these 661 PDUs are assumed to not go across HCI. 662 663config BT_CTLR_USER_CPR_INTERVAL_MIN 664 bool "Enable proprietary Connection Parameter Request minimum interval" 665 depends on BT_CTLR_USER_EXT 666 help 667 When enabled, controller will accept Connection Parameter Request 668 intervals down to a proprietary minimum value. 669 670endmenu 671 672comment "BLE Controller hardware configuration" 673 674menuconfig BT_CTLR_GPIO_PA 675 bool "Power Amplifier GPIO interface" 676 depends on !SOC_SERIES_NRF51X 677 help 678 Enable GPIO interface to a Power Amplifier. This allows hardware 679 designs using PA to let the Controller toggle their state based on 680 radio activity. 681 682if BT_CTLR_GPIO_PA 683 684config BT_CTLR_GPIO_PA_PIN 685 int "Power Amplifier GPIO pin number" 686 range 0 47 if SOC_NRF52840 || SOC_NRF5340_CPUNET 687 range 0 31 688 help 689 GPIO Pin number connected to a Power Amplifier. 690 691config BT_CTLR_GPIO_PA_POL_INV 692 bool "Inverted polarity for the PA pin" 693 help 694 Enable inverted polarity (active low) for the PA pin. 695 696config BT_CTLR_GPIO_PA_OFFSET 697 int "Time from PA ON to Tx ready" 698 default 5 699 range 0 15 700 help 701 Time before Tx ready to turn on PA in micro seconds. 702 703endif # BT_CTLR_GPIO_PA 704 705menuconfig BT_CTLR_GPIO_LNA 706 bool "Low Noise Amplifier GPIO interface" 707 depends on !SOC_SERIES_NRF51X 708 help 709 Enable GPIO interface to a Low Noise Amplifier. This allows hardware 710 designs using LNAs to let the Controller toggle their state based on 711 radio activity. 712 713if BT_CTLR_GPIO_LNA 714 715config BT_CTLR_GPIO_LNA_PIN 716 int "Low Noise Amplifier GPIO pin number" 717 range 0 47 if SOC_NRF52840 || SOC_NRF5340_CPUNET 718 range 0 31 719 help 720 GPIO Pin number connected to a Low Noise Amplifier. 721 722config BT_CTLR_GPIO_LNA_POL_INV 723 bool "Inverted polarity for the LNA pin" 724 help 725 Enable inverted polarity (active low) for the LNA pin. 726 727config BT_CTLR_GPIO_LNA_OFFSET 728 int "Time from LNA ON to Rx ready" 729 default 5 730 range 0 15 731 help 732 Time before Rx ready to turn on LNA in micro seconds. 733 734endif # BT_CTLR_GPIO_LNA 735 736menuconfig BT_CTLR_FEM_NRF21540 737 bool "nRF21540 GPIO interface" 738 depends on !SOC_SERIES_NRF51X 739 select BT_CTLR_GPIO_PA 740 select BT_CTLR_GPIO_LNA 741 help 742 Enable PDN and CSN GPIO interface for the nRF21540. This allows 743 hardware designs using the nRF21540 to let the controller toggle 744 their state based on radio activity. 745 746if BT_CTLR_FEM_NRF21540 747 748config BT_CTLR_GPIO_PDN_PIN 749 int "FEM PDN pin number" 750 range 0 47 if SOC_NRF52840 || SOC_NRF5340_CPUNET 751 range 0 31 752 help 753 GPIO Pin number connected to the PDN pin of the nRF21540 FEM. 754 755config BT_CTLR_GPIO_PDN_POL_INV 756 bool "Inverted polarity for the PDN pin" 757 help 758 Enable inverted polarity (active low) for the PDN pin. 759 760config BT_CTLR_GPIO_CSN_PIN 761 int "FEM CSN pin number" 762 range 0 47 if SOC_NRF52840 || SOC_NRF5340_CPUNET 763 range 0 31 764 help 765 GPIO Pin number connected to the CSN pin of the nRF21540 FEM. 766 767config BT_CTLR_GPIO_CSN_POL_INV 768 bool "Inverted polarity for the CSN pin" 769 default y 770 help 771 Enable inverted polarity (active low) for the CSN pin. 772 773config BT_CTLR_GPIO_PDN_CSN_OFFSET 774 int "Time from PDN and CSN toggle to PA/LNA pin toggle" 775 range 0 20 776 help 777 Time from PDN and CSN toggle to PA/LNA pin toggle in micro seconds. 778 779endif # BT_CTLR_FEM_NRF21540 780 781config BT_CTLR_PA_LNA_GPIOTE_CHAN 782 # Hidden "nRF5 GPIO PA/LNA GPIOTE Channel" 783 int 784 depends on SOC_FAMILY_NRF && (BT_CTLR_GPIO_PA || BT_CTLR_GPIO_LNA) 785 default 3 if PWM_NRF5_SW 786 default 0 787 help 788 Select the nRF5 GPIOTE channel to use for PA/LNA GPIO feature. 789 790config BT_CTLR_PDN_GPIOTE_CHAN 791 # Hidden "nRF5 GPIO FEM PDN GPIOTE Channel" 792 int 793 depends on SOC_FAMILY_NRF && BT_CTLR_FEM_NRF21540 794 default 4 if PWM_NRF5_SW 795 default 1 796 help 797 Select the nRF5 GPIOTE channel to use for FEM PDN GPIO pin toggle. 798 799config BT_CTLR_CSN_GPIOTE_CHAN 800 # Hidden "nRF5 GPIO FEM CSN GPIOTE Channel" 801 int 802 depends on SOC_FAMILY_NRF && BT_CTLR_FEM_NRF21540 803 default 5 if PWM_NRF5_SW 804 default 2 805 help 806 Select the nRF5 GPIOTE channel to use for FEM CSN GPIO pin toggle. 807 808comment "BLE Controller debug configuration" 809 810config BT_CTLR_PROFILE_ISR 811 bool "Profile radio ISR" 812 help 813 Turn on measurement of radio ISR latency, CPU usage and generation of 814 controller event with these profiling data. The controller event 815 contains current, minimum and maximum ISR entry latencies; and 816 current, minimum and maximum ISR CPU use in micro-seconds. 817 818config BT_CTLR_DEBUG_PINS 819 bool "Bluetooth Controller Debug Pins" 820 depends on BOARD_NRF51DK_NRF51422 || BOARD_NRF52DK_NRF52832 || BOARD_NRF52DK_NRF52810 || BOARD_NRF52840DK_NRF52840 || BOARD_NRF52833DK_NRF52833 || BOARD_NRF5340DK_NRF5340_CPUNET || BOARD_RV32M1_VEGA 821 help 822 Turn on debug GPIO toggling for the BLE Controller. This is useful 823 when debugging with a logic analyzer or profiling certain sections of 824 the code. 825 826endif # BT_LL_SW_SPLIT 827