mirror of
https://github.com/apache/nuttx.git
synced 2026-03-26 18:23:50 +08:00
This patch introduces CONFIG_CC1101_SPIFREQ_BURST and CONFIG_CC1101_SPIFREQ_SINGLE to Kconfig, allowing users to override the default SPI frequencies for the CC1101 wireless driver. Previously, these values were hardcoded to 6.5 MHz and 9.0 MHz respectively. While these are safe defaults for many setups, specific hardware designs, high routing capacitance, or platforms utilizing internal GPIO switching matrices (such as the ESP32) can suffer from signal integrity degradation at these speeds. By exposing these to Kconfig, users can easily adjust the clock speeds to match their hardware capabilities without modifying the core driver source. Impact: - Build: Adds two new Kconfig options under WL_CC1101. - Runtime: Retains 6.5 MHz / 9.0 MHz defaults. Behavior only changes if overridden via menuconfig. Testing: - Built with default values and custom Kconfig overrides. - Hardware Testing: Tested on a sub-optimal platform utilizing an internal GPIO matrix (ESP32). The CC1101 failed to load at the default 6.5/9.0 MHz due to signal integrity issues. Downclocking the frequencies to 4.0 MHz via Kconfig successfully restored signal integrity and allowed the driver to initialize and operate normally. Signed-off-by: Chip L. <chplee@gmail.com>
186 lines
4.4 KiB
Plaintext
186 lines
4.4 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menuconfig DRIVERS_WIRELESS
|
|
bool "Wireless Device Support"
|
|
default n
|
|
---help---
|
|
Drivers for various wireless devices.
|
|
|
|
if DRIVERS_WIRELESS
|
|
|
|
config WL_CC1101
|
|
bool "CC1101 RF transceiver support"
|
|
default n
|
|
select SPI
|
|
select SCHED_HPWORK
|
|
|
|
if WL_CC1101
|
|
|
|
config CC1101_SPIDEV
|
|
int "SPI bus number"
|
|
default 2
|
|
---help---
|
|
Selects the SPI bus number identifying that SPI interface that
|
|
connects the CC1101 to the MCU.
|
|
|
|
config CC1101_SPIFREQ_BURST
|
|
int "SPI burst frequency"
|
|
default 6500000
|
|
---help---
|
|
SPI burst frequency (Hz, no delay) for CC1101.
|
|
|
|
config CC1101_SPIFREQ_SINGLE
|
|
int "SPI single access frequency"
|
|
default 9000000
|
|
---help---
|
|
SPI single access frequency (Hz, single access only - no delay) for CC1101.
|
|
|
|
endif
|
|
|
|
config WL_CC1101_IGNORE_VERSION
|
|
bool "Ignore CC1101 Version Check (Allow Clone Chips)"
|
|
default n
|
|
depends on WL_CC1101
|
|
---help---
|
|
Some third-party CC1101 clone silicon hardcodes the VERSION
|
|
register to 0x00. Enabling this option bypasses the strict
|
|
version verification, allowing these compatible chips to
|
|
initialize.
|
|
|
|
Warning: Enabling this may cause false-positives if the SPI
|
|
MISO line is shorted to GND.
|
|
|
|
config WL_GS2200M
|
|
bool "Telit GS2200M Wi-Fi support"
|
|
default n
|
|
select SPI
|
|
select LIBC_SCANSET
|
|
select SCHED_LPWORK
|
|
select DRIVERS_IEEE80211
|
|
select NFS_DONT_BIND_TCP_SOCKET if NFS && NET_TCP
|
|
|
|
if WL_GS2200M
|
|
|
|
config WL_GS2200M_ENABLE_WEP
|
|
bool "WEP support in AP mode"
|
|
default false
|
|
|
|
config WL_GS2200M_SPI_FREQUENCY
|
|
int "SPI frequency for GS2200M"
|
|
default 4000000
|
|
range 4000000 10000000
|
|
|
|
config WL_GS2200M_DISABLE_DHCPC
|
|
bool "Disable the internal dhcp client"
|
|
default n
|
|
|
|
config WL_GS2200M_CHECK_VERSION
|
|
bool "Check the version of GS2200M"
|
|
default n
|
|
|
|
config WL_GS2200M_SYNC_INTERVAL
|
|
int "Sync loss interval in station mode (100ms)"
|
|
default 100
|
|
range 1 63325
|
|
---help---
|
|
Time interval to recognize dis-association situation.
|
|
The value indicate n times of Wi-Fi beacon. If the node
|
|
lost receiving beacon n times, behave as dis-associtaion.
|
|
Time difference between 2 beacons are approximately 100 msec.
|
|
So the unit of the value is 100 ms.
|
|
|
|
config WL_GS2200M_LOGLEVEL
|
|
int "Log level"
|
|
default 0
|
|
range 0 2
|
|
---help---
|
|
The debug level of GS2200M. (AT+LOGLVL)
|
|
|
|
endif
|
|
|
|
source "drivers/wireless/spirit/Kconfig"
|
|
|
|
menuconfig DRIVERS_IEEE802154
|
|
bool "IEEE 802.15.4 Device Support"
|
|
default n
|
|
---help---
|
|
Select to enable building of IEEE802.15.4 device drivers.
|
|
|
|
source "drivers/wireless/ieee802154/Kconfig"
|
|
|
|
menuconfig DRIVERS_IEEE80211
|
|
bool "IEEE 802.11 Device Support"
|
|
default n
|
|
---help---
|
|
Select to enable building of IEEE802.11 device drivers.
|
|
|
|
source "drivers/wireless/ieee80211/Kconfig"
|
|
|
|
menuconfig DRIVERS_BLUETOOTH
|
|
bool "Bluetooth Device Support"
|
|
default n
|
|
---help---
|
|
Select to enable building of Bluetooth device drivers.
|
|
|
|
source "drivers/wireless/bluetooth/Kconfig"
|
|
|
|
menuconfig DRIVERS_LPWAN
|
|
bool "LPWAN Device Support"
|
|
default n
|
|
---help---
|
|
Select to enable building of LPWAN device drivers.
|
|
|
|
source "drivers/wireless/lpwan/Kconfig"
|
|
|
|
config WL_NRF24L01
|
|
bool "nRF24l01+ transceiver support"
|
|
default n
|
|
select SPI
|
|
---help---
|
|
This options adds driver support for the Nordic nRF24L01+ chip.
|
|
|
|
if WL_NRF24L01
|
|
|
|
config WL_NRF24L01_DFLT_ADDR_WIDTH
|
|
int "Default address width"
|
|
default 5
|
|
range 3 5
|
|
---help---
|
|
Default address width to be used by the nRF24l01+ driver.
|
|
Note that this default can be changed through the driver API.
|
|
|
|
config WL_NRF24L01_CHECK_PARAMS
|
|
bool "Check call parameters"
|
|
default y
|
|
---help---
|
|
This option adds some sanity check code to parameters given in the
|
|
driver API functions. If this option is disabled, parameter
|
|
values are passed 'as is' to the module hardware registers.
|
|
|
|
config WL_NRF24L01_RXSUPPORT
|
|
bool "Support messages reception"
|
|
default y
|
|
---help---
|
|
If this option is disabled the driver supports only the transmission of messages.
|
|
Reception of messages will be disabled (and corresponding functions removed).
|
|
Note: this option is intended to reduce driver code size for 'transmission
|
|
only' devices.
|
|
|
|
if WL_NRF24L01_RXSUPPORT
|
|
|
|
config WL_NRF24L01_RXFIFO_LEN
|
|
int "RX fifo length"
|
|
default 128
|
|
range 34 2048
|
|
---help---
|
|
Length of the software based fifo used to store content of
|
|
received messages.
|
|
|
|
endif # WL_NRF24L01_RXSUPPORT
|
|
endif # WL_NRF24L01
|
|
|
|
endif # DRIVERS_WIRELESS
|