Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions components/drivers/Kconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
menu "Device Drivers"
help
Select which RT-Thread driver stacks are built into the firmware. Each
submenu groups related peripherals (IPC, storage, networking, etc.) and
exposes their own configuration knobs.

rsource "core/Kconfig"
rsource "ipc/Kconfig"
Expand Down
17 changes: 17 additions & 0 deletions components/drivers/ata/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,35 @@ menuconfig RT_USING_ATA
depends on RT_USING_BLK
depends on RT_USING_DMA
default n
help
Enable the ATA core so AHCI/legacy controllers can register themselves in
the driver model, allocate DMA resources, and expose block devices to the
RT-Thread block layer. Select this only on SoCs/boards that actually wire
SATA ports because it pulls in the SCSI translation layer and requires DMA
support. When disabled, no SATA disks will be enumerated.

config RT_ATA_AHCI
bool "Advanced Host Controller Interface (AHCI)"
depends on RT_USING_ATA
depends on RT_USING_SCSI
default y
help
Build the generic AHCI driver that maps HBA registers (ports, command list,
FIS receive, etc.), handles NCQ, and bridges each detected SATA device to
the RT-SCSI mid-layer so filesystems can treat them like disks. Enable it
whenever your SoC implements a standards-compliant AHCI core; disable if
you rely on a vendor-specific ATA engine.

config RT_ATA_AHCI_PCI
bool "AHCI support on PCI bus"
depends on RT_ATA_AHCI
depends on RT_USING_PCI
default n
help
Allow the AHCI driver to bind to PCI devices and fetch resources via PCI
config space. Required on PC-class hardware where the AHCI HBA is behind
PCI/PCIe; boards with platform AHCI (non-PCI) can leave this off to save a
little code.

if RT_USING_ATA
osource "$(SOC_DM_ATA_DIR)/Kconfig"
Expand Down
19 changes: 19 additions & 0 deletions components/drivers/audio/Kconfig
Original file line number Diff line number Diff line change
@@ -1,18 +1,37 @@
config RT_USING_AUDIO
bool "Using Audio device drivers"
default n
help
Enable the RT-Thread audio framework so playback/record devices may be
registered, DMA pipes allocated, and ALSA-like controls exposed via
`rt_audio_*` APIs. Choose this whenever your board has I2S/TDM codecs or
PDM microphones; disable it on MCU builds that do not process audio data.

if RT_USING_AUDIO
config RT_AUDIO_REPLAY_MP_BLOCK_SIZE
int "Replay memory pool block size"
default 4096
help
Size in bytes for each block inside the replay memory pool used by
`dev_audio.c` to stage PCM data before pushing it to DMA. Larger
values increase latency but reduce IRQ pressure; shrink it when
RAM is tight and the codec tolerates smaller bursts.

config RT_AUDIO_REPLAY_MP_BLOCK_COUNT
int "Replay memory pool block count"
default 2
help
Number of replay memory pool blocks. Raising this allows more
outstanding audio buffers (useful for long DMA transfers) but
consumes additional RAM = `BLOCK_SIZE * COUNT`.

config RT_AUDIO_RECORD_PIPE_SIZE
int "Record pipe size"
default 2048
help
Size of the ring buffer used to capture samples before user-space
reads them. Increase this to prevent overflow when the recorder
callback runs slower than the DMA completion interrupt; reduce it
on memory constrained platforms.

endif
6 changes: 5 additions & 1 deletion components/drivers/audio/utest/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@ if RT_USING_AUDIO
config RT_UTEST_USING_AUDIO_DRIVER
bool "Audio Test"
default n
endif
help
Build the audio driver utest cases which stream synthetic data through
the replay/record paths. Enable only when running the RT-Thread unit
test suite; it adds test hooks that are not required in production.
endif
5 changes: 5 additions & 0 deletions components/drivers/block/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
menuconfig RT_USING_BLK
bool "Using Block device drivers"
default n
help
Enable the generic block-device infrastructure so storage controllers can
register disks/partitions and the RT-Thread DFS layer can mount them.
Almost every filesystem, SDIO, SATA or NAND driver depends on this. Turn
it off only on firmware builds that never interact with block media.

if RT_USING_BLK
rsource "partitions/Kconfig"
Expand Down
11 changes: 11 additions & 0 deletions components/drivers/block/partitions/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,20 @@ config RT_BLK_PARTITION_DFS
bool "DFS Partition support"
depends on RT_USING_DFS
default y
help
Parse the RT-Thread DFS partition table (vfs_part) so a single block
device can be split into multiple named logical volumes. Enable this when
you use the DFS tooling or `mkpart` scripts to carve flash storage; it is
harmless to keep on because it only activates when the table signature is
present.

config RT_BLK_PARTITION_EFI
bool "EFI Globally Unique Identifier (GUID) Partition support"
default y
help
Add GUID Partition Table (GPT) support, allowing disks formatted on
modern PCs to be recognized. Required for SATA/NVMe/USB disks that use
GPT; you may disable it on very small targets that only boot from DFS
partitions to save a few kilobytes.

endmenu
9 changes: 9 additions & 0 deletions components/drivers/clk/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ menuconfig RT_USING_CLK
depends on RT_USING_DM
select RT_USING_ADT_REF
default y
help
Enable the common clock framework so SoC clock providers can register
themselves and consumers can obtain `struct rt_clk` handles to manage
gate, mux and divider trees. This is required by most complex drivers
(MMC, Ethernet, display) because they explicitly prepare and enable their
input clocks before accessing hardware. The framework relies on the DM
bus and device tree clock references, so disable it only on the smallest
MCUs where every peripheral runs off the same fixed clock and no driver
ever calls into the clock API.

if RT_USING_CLK
osource "$(SOC_DM_CLK_DIR)/Kconfig"
Expand Down
4 changes: 4 additions & 0 deletions components/drivers/core/utest/Kconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
config RT_UTEST_DRIVERS_CORE
bool "Drivers Core Test"
default n
help
Build the unit tests that exercise the driver-core (device model) APIs,
ensuring registration/probing flows behave as expected. Enable only when
running the RT-Thread utest suite; production images should leave it off.
7 changes: 7 additions & 0 deletions components/drivers/dma/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ menuconfig RT_USING_DMA
select RT_USING_ADT
select RT_USING_ADT_BITMAP
default n
help
Enable the DMA framework so DM-aware SoC drivers can request DMA channels,
submit descriptors, and share controller instances that are described in
the device tree. This pulls in the generic DMA core (`dma.c`) and the pool
allocator used by slave/peripheral clients. Select it whenever your board
has DMA-capable peripherals (MMC, SPI, audio, etc.) that need offloading;
leave it disabled only on targets without DMA hardware to save code size.

if RT_USING_DMA
osource "$(SOC_DM_DMA_DIR)/Kconfig"
Expand Down
5 changes: 5 additions & 0 deletions components/drivers/graphic/Kconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
config RT_USING_LCD
bool "Using LCD graphic drivers"
default n
help
Enable the RT-Thread LCD/graphics driver framework so display controllers
can expose framebuffers or panel pipelines. This pulls in the drawing
helpers used by GUI packages; select it whenever your board has an LCD or
RGB/MIPI panel. Disable it on headless builds to save code size.
Loading