nRF USBD ISOINCONFIG register controls USBD behavior after receiving IN token addressed to ISO IN endpoint when the endpoint was not armed with data. The options are: * NoResp, in which case there is no response (i.e. bus timeout) * ZeroData, in which case device responds with ZLP This commit both makes the ISOINCONFIG value configurable and changes the default from NoResp to ZeroData. For reference, DWC_otg controller will always send ZLP in such case and does not have NoResp equivalent. Automatically sending ZLP when ISO IN endpoint is not armed resolves periodic audio dropouts observed on Mac OS with USB Audio headset sample. Apple USB Audio class driver will attempt recovery (abort all pending URBs, switch to alternate config 0, switch to active alternate config and submit new URBs) every time it sees kIOReturnNotResponding status code. During recovery no audio data can be transferred and therefore there are gaps in the audio stream. Apple USB Audio driver sees kIOReturnNotResponding when there is bus timeout (i.e. IN token was sent to nRF when the endpoint was not armed and NoResp option was active). Activating ZeroData option results in perfectly fine (albeit short) packet that does not trigger interface recovery and thus fixes the USB Audio issues on Mac OS. Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
437 lines
11 KiB
Text
437 lines
11 KiB
Text
# Copyright (c) 2016 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config HAS_NRFX
|
|
bool
|
|
|
|
menu "nrfx drivers"
|
|
depends on HAS_NRFX
|
|
|
|
config NRFX_ADC
|
|
bool "ADC driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_ADC))
|
|
|
|
config NRFX_CLOCK
|
|
bool "CLOCK driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_CLOCK))
|
|
|
|
config NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED
|
|
bool "Two stage start sequence of the low frequency clock"
|
|
depends on NRFX_CLOCK
|
|
|
|
config NRFX_COMP
|
|
bool "COMP driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_COMP))
|
|
|
|
config NRFX_DPPI
|
|
bool "DPPI allocator"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_DPPIC))
|
|
|
|
config NRFX_EGU
|
|
bool
|
|
|
|
config NRFX_EGU0
|
|
bool "EGU0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu0,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_EGU1
|
|
bool "EGU1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu1,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_EGU2
|
|
bool "EGU2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu2,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_EGU3
|
|
bool "EGU3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu3,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_EGU4
|
|
bool "EGU4 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu4,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_EGU5
|
|
bool "EGU5 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,egu5,$(DT_COMPAT_NORDIC_NRF_EGU))
|
|
select NRFX_EGU
|
|
|
|
config NRFX_GPIOTE
|
|
bool "GPIOTE driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_GPIOTE))
|
|
|
|
config NRFX_GPIOTE_NUM_OF_EVT_HANDLERS
|
|
int "Number of event handlers"
|
|
depends on NRFX_GPIOTE
|
|
range 1 15
|
|
help
|
|
Specifies number of handlers that can be registered to nrfx_gpiote driver
|
|
by the user.
|
|
|
|
config NRFX_I2S
|
|
bool
|
|
|
|
config NRFX_I2S0
|
|
bool "I2S0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2s0,$(DT_COMPAT_NORDIC_NRF_I2S))
|
|
select NRFX_I2S
|
|
|
|
config NRFX_IPC
|
|
bool "IPC driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_IPC))
|
|
|
|
config NRFX_LPCOMP
|
|
bool "LPCOMP driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_LPCOMP))
|
|
|
|
config NRFX_NFCT
|
|
bool "NFCT driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_NFCT))
|
|
select NRFX_TIMER4 if SOC_SERIES_NRF52X
|
|
select NRFX_TIMER2 if SOC_SERIES_NRF53X
|
|
|
|
config NRFX_NVMC
|
|
bool "NVMC driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF51_FLASH_CONTROLLER)) \
|
|
|| $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF52_FLASH_CONTROLLER)) \
|
|
|| $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF53_FLASH_CONTROLLER)) \
|
|
|| $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF91_FLASH_CONTROLLER))
|
|
|
|
config NRFX_PDM
|
|
bool "PDM driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PDM))
|
|
|
|
config NRFX_POWER
|
|
bool "POWER driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_POWER))
|
|
# On SoCs featuring the USBREG peripheral, the POWER driver uses
|
|
# internally the USBREG driver.
|
|
select NRFX_USBREG if $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_USBREG))
|
|
|
|
config NRFX_PPI
|
|
bool "PPI allocator"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PPI))
|
|
|
|
config NRFX_PWM
|
|
bool
|
|
|
|
config NRFX_PWM0
|
|
bool "PWM0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,pwm0,$(DT_COMPAT_NORDIC_NRF_PWM))
|
|
select NRFX_PWM
|
|
|
|
config NRFX_PWM1
|
|
bool "PWM1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,pwm1,$(DT_COMPAT_NORDIC_NRF_PWM))
|
|
select NRFX_PWM
|
|
|
|
config NRFX_PWM2
|
|
bool "PWM2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,pwm2,$(DT_COMPAT_NORDIC_NRF_PWM))
|
|
select NRFX_PWM
|
|
|
|
config NRFX_PWM3
|
|
bool "PWM3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,pwm3,$(DT_COMPAT_NORDIC_NRF_PWM))
|
|
select NRFX_PWM
|
|
|
|
config NRFX_QDEC
|
|
bool
|
|
|
|
config NRFX_QDEC0
|
|
bool "QDEC0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,qdec0,$(DT_COMPAT_NORDIC_NRF_QDEC))
|
|
select NRFX_QDEC
|
|
|
|
config NRFX_QDEC1
|
|
bool "QDEC1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,qdec1,$(DT_COMPAT_NORDIC_NRF_QDEC))
|
|
select NRFX_QDEC
|
|
|
|
config NRFX_QSPI
|
|
bool "QSPI driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_QSPI))
|
|
|
|
config NRFX_RNG
|
|
bool "RNG driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_RNG))
|
|
|
|
config NRFX_RTC
|
|
bool
|
|
|
|
config NRFX_RTC0
|
|
bool "RTC0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,rtc0,$(DT_COMPAT_NORDIC_NRF_RTC))
|
|
select NRFX_RTC
|
|
|
|
config NRFX_RTC1
|
|
bool "RTC1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,rtc1,$(DT_COMPAT_NORDIC_NRF_RTC))
|
|
select NRFX_RTC
|
|
|
|
config NRFX_RTC2
|
|
bool "RTC2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,rtc2,$(DT_COMPAT_NORDIC_NRF_RTC))
|
|
select NRFX_RTC
|
|
|
|
config NRFX_SAADC
|
|
bool "SAADC driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_SAADC))
|
|
|
|
config NRFX_SPI
|
|
bool
|
|
|
|
config NRFX_SPI0
|
|
bool "SPI0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPI))
|
|
select NRFX_SPI
|
|
|
|
config NRFX_SPI1
|
|
bool "SPI1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi1,$(DT_COMPAT_NORDIC_NRF_SPI))
|
|
select NRFX_SPI
|
|
|
|
config NRFX_SPI2
|
|
bool "SPI2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi2,$(DT_COMPAT_NORDIC_NRF_SPI))
|
|
select NRFX_SPI
|
|
|
|
config NRFX_SPIM
|
|
bool
|
|
|
|
config NRFX_SPIM0
|
|
bool "SPIM0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPIM))
|
|
select NRFX_SPIM
|
|
|
|
config NRFX_SPIM1
|
|
bool "SPIM1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi1,$(DT_COMPAT_NORDIC_NRF_SPIM))
|
|
select NRFX_SPIM
|
|
|
|
config NRFX_SPIM2
|
|
bool "SPIM2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi2,$(DT_COMPAT_NORDIC_NRF_SPIM))
|
|
select NRFX_SPIM
|
|
|
|
config NRFX_SPIM3
|
|
bool "SPIM3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi3,$(DT_COMPAT_NORDIC_NRF_SPIM))
|
|
select NRFX_SPIM
|
|
|
|
config NRFX_SPIM4
|
|
bool "SPIM4 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi4,$(DT_COMPAT_NORDIC_NRF_SPIM))
|
|
select NRFX_SPIM
|
|
|
|
config NRFX_SPIS
|
|
bool
|
|
|
|
config NRFX_SPIS0
|
|
bool "SPIS0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPIS))
|
|
select NRFX_SPIS
|
|
|
|
config NRFX_SPIS1
|
|
bool "SPIS1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi1,$(DT_COMPAT_NORDIC_NRF_SPIS))
|
|
select NRFX_SPIS
|
|
|
|
config NRFX_SPIS2
|
|
bool "SPIS2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi2,$(DT_COMPAT_NORDIC_NRF_SPIS))
|
|
select NRFX_SPIS
|
|
|
|
config NRFX_SPIS3
|
|
bool "SPIS3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,spi3,$(DT_COMPAT_NORDIC_NRF_SPIS))
|
|
select NRFX_SPIS
|
|
|
|
config NRFX_SYSTICK
|
|
bool "SYSTICK driver"
|
|
depends on CPU_CORTEX_M_HAS_SYSTICK
|
|
|
|
config NRFX_TEMP
|
|
bool "TEMP driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_TEMP))
|
|
|
|
config NRFX_TIMER
|
|
bool
|
|
|
|
config NRFX_TIMER0
|
|
bool "TIMER0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,timer0,$(DT_COMPAT_NORDIC_NRF_TIMER))
|
|
select NRFX_TIMER
|
|
|
|
config NRFX_TIMER1
|
|
bool "TIMER1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,timer1,$(DT_COMPAT_NORDIC_NRF_TIMER))
|
|
select NRFX_TIMER
|
|
|
|
config NRFX_TIMER2
|
|
bool "TIMER2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,timer2,$(DT_COMPAT_NORDIC_NRF_TIMER))
|
|
select NRFX_TIMER
|
|
|
|
config NRFX_TIMER3
|
|
bool "TIMER3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,timer3,$(DT_COMPAT_NORDIC_NRF_TIMER))
|
|
select NRFX_TIMER
|
|
|
|
config NRFX_TIMER4
|
|
bool "TIMER4 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,timer4,$(DT_COMPAT_NORDIC_NRF_TIMER))
|
|
select NRFX_TIMER
|
|
|
|
config NRFX_TWI
|
|
bool
|
|
|
|
config NRFX_TWI0
|
|
bool "TWI0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c0,$(DT_COMPAT_NORDIC_NRF_TWI))
|
|
select NRFX_TWI
|
|
|
|
config NRFX_TWI1
|
|
bool "TWI1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c1,$(DT_COMPAT_NORDIC_NRF_TWI))
|
|
select NRFX_TWI
|
|
|
|
config NRFX_TWIM
|
|
bool
|
|
|
|
config NRFX_TWIM0
|
|
bool "TWIM0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c0,$(DT_COMPAT_NORDIC_NRF_TWIM))
|
|
select NRFX_TWIM
|
|
|
|
config NRFX_TWIM1
|
|
bool "TWIM1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c1,$(DT_COMPAT_NORDIC_NRF_TWIM))
|
|
select NRFX_TWIM
|
|
|
|
config NRFX_TWIM2
|
|
bool "TWIM2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c2,$(DT_COMPAT_NORDIC_NRF_TWIM))
|
|
select NRFX_TWIM
|
|
|
|
config NRFX_TWIM3
|
|
bool "TWIM3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c3,$(DT_COMPAT_NORDIC_NRF_TWIM))
|
|
select NRFX_TWIM
|
|
|
|
config NRFX_TWIS
|
|
bool
|
|
|
|
config NRFX_TWIS0
|
|
bool "TWIS0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c0,$(DT_COMPAT_NORDIC_NRF_TWIS))
|
|
select NRFX_TWIS
|
|
|
|
config NRFX_TWIS1
|
|
bool "TWIS1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c1,$(DT_COMPAT_NORDIC_NRF_TWIS))
|
|
select NRFX_TWIS
|
|
|
|
config NRFX_TWIS2
|
|
bool "TWIS2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c2,$(DT_COMPAT_NORDIC_NRF_TWIS))
|
|
select NRFX_TWIS
|
|
|
|
config NRFX_TWIS3
|
|
bool "TWIS3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,i2c3,$(DT_COMPAT_NORDIC_NRF_TWIS))
|
|
select NRFX_TWIS
|
|
|
|
config NRFX_UART
|
|
bool
|
|
|
|
config NRFX_UART0
|
|
bool "UART0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,uart0,$(DT_COMPAT_NORDIC_NRF_UART))
|
|
select NRFX_UART
|
|
|
|
config NRFX_UARTE
|
|
bool
|
|
|
|
config NRFX_UARTE0
|
|
bool "UARTE0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,uart0,$(DT_COMPAT_NORDIC_NRF_UARTE))
|
|
select NRFX_UARTE
|
|
|
|
config NRFX_UARTE1
|
|
bool "UARTE1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,uart1,$(DT_COMPAT_NORDIC_NRF_UARTE))
|
|
select NRFX_UARTE
|
|
|
|
config NRFX_UARTE2
|
|
bool "UARTE2 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,uart2,$(DT_COMPAT_NORDIC_NRF_UARTE))
|
|
select NRFX_UARTE
|
|
|
|
config NRFX_UARTE3
|
|
bool "UARTE3 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,uart3,$(DT_COMPAT_NORDIC_NRF_UARTE))
|
|
select NRFX_UARTE
|
|
|
|
config NRFX_USBD
|
|
bool "USBD driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_USBD))
|
|
|
|
config NRFX_USBD_ISO_IN_ZLP
|
|
bool "Send ZLP on ISO IN when not ready"
|
|
depends on NRFX_USBD
|
|
default y
|
|
help
|
|
Controls the response of the ISO IN endpoint to an IN token when no
|
|
data is ready to be sent. When enabled, ZLP is sent when no data is
|
|
ready. When disabled, no response is sent (bus timeout occurs).
|
|
|
|
config NRFX_USBREG
|
|
bool "USBREG driver"
|
|
depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_USBREG))
|
|
|
|
config NRFX_WDT
|
|
bool
|
|
|
|
config NRFX_WDT0
|
|
bool "WDT0 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,wdt0,$(DT_COMPAT_NORDIC_NRF_WDT))
|
|
select NRFX_WDT
|
|
|
|
config NRFX_WDT1
|
|
bool "WDT1 driver instance"
|
|
depends on $(dt_nodelabel_has_compat,wdt1,$(DT_COMPAT_NORDIC_NRF_WDT))
|
|
select NRFX_WDT
|
|
|
|
menu "Peripheral Resource Sharing module"
|
|
|
|
config NRFX_PRS
|
|
bool
|
|
|
|
config NRFX_PRS_BOX_0
|
|
bool "PRS box 0"
|
|
select NRFX_PRS
|
|
|
|
config NRFX_PRS_BOX_1
|
|
bool "PRS box 1"
|
|
select NRFX_PRS
|
|
|
|
config NRFX_PRS_BOX_2
|
|
bool "PRS box 2"
|
|
select NRFX_PRS
|
|
|
|
config NRFX_PRS_BOX_3
|
|
bool "PRS box 3"
|
|
select NRFX_PRS
|
|
|
|
config NRFX_PRS_BOX_4
|
|
bool "PRS box 4"
|
|
select NRFX_PRS
|
|
|
|
endmenu
|
|
|
|
endmenu # "nrfx drivers"
|