disk: move disk and sdmmc controller drivers to drivers/disk
The files disk_access_usdhc.c, disk_access_spi_sdhc.c, disk_access_stm32_sdmmc.c, disk_access_ram.c and disk_access_flash.c are actually drivers for block devices and SD/MMC controllers. This patch moves this drivers to drivers/disk and reworks the configuration so that the drivers are selected when the corresponding node is enabled. Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
This commit is contained in:
parent
8f13b7860e
commit
03101e75d8
15 changed files with 175 additions and 151 deletions
|
@ -6,6 +6,7 @@ add_subdirectory(console)
|
|||
add_subdirectory(interrupt_controller)
|
||||
add_subdirectory(misc)
|
||||
add_subdirectory(pcie)
|
||||
add_subdirectory(disk)
|
||||
|
||||
add_subdirectory_ifdef(CONFIG_ADC adc)
|
||||
add_subdirectory_ifdef(CONFIG_CLOCK_CONTROL clock_control)
|
||||
|
|
|
@ -111,4 +111,6 @@ source "drivers/pm_cpu_ops/Kconfig"
|
|||
|
||||
source "drivers/misc/Kconfig"
|
||||
|
||||
source "drivers/disk/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
|
8
drivers/disk/CMakeLists.txt
Normal file
8
drivers/disk/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Copyright (c) 2021 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_sources_ifdef(CONFIG_DISK_DRIVER_RAM ramdisk.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_DRIVER_FLASH flashdisk.c)
|
||||
zephyr_sources_ifdef(CONFIG_SDMMC_OVER_SPI sdmmc_spi.c)
|
||||
zephyr_sources_ifdef(CONFIG_SDMMC_USDHC usdhc.c)
|
||||
zephyr_sources_ifdef(CONFIG_SDMMC_STM32 sdmmc_stm32.c)
|
15
drivers/disk/Kconfig
Normal file
15
drivers/disk/Kconfig
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Copyright (c) 2021 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
menuconfig DISK_DRIVERS
|
||||
bool "Disk Drivers"
|
||||
help
|
||||
Disk Driver configuration
|
||||
|
||||
if DISK_DRIVERS
|
||||
|
||||
source "drivers/disk/Kconfig.ram"
|
||||
source "drivers/disk/Kconfig.flash"
|
||||
source "drivers/disk/Kconfig.sdmmc"
|
||||
|
||||
endif # DISK_DRIVERS
|
61
drivers/disk/Kconfig.flash
Normal file
61
drivers/disk/Kconfig.flash
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Copyright (c) 2016 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config DISK_DRIVER_FLASH
|
||||
bool "Flash"
|
||||
select FLASH
|
||||
help
|
||||
Flash device is used for the file system.
|
||||
|
||||
if DISK_DRIVER_FLASH
|
||||
|
||||
config DISK_FLASH_VOLUME_NAME
|
||||
string "Flash mount point or drive name"
|
||||
default "NAND"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
config DISK_FLASH_DEV_NAME
|
||||
string "Flash device name to be used as storage backend"
|
||||
|
||||
config DISK_FLASH_START
|
||||
hex "Flash device start address in hex"
|
||||
help
|
||||
This is start address of the flash to be used as storage backend.
|
||||
|
||||
config DISK_FLASH_MAX_RW_SIZE
|
||||
int "Flash device max read-write size in decimal"
|
||||
help
|
||||
This is the maximum number of bytes that the
|
||||
flash_write API can accept per invocation.
|
||||
API.
|
||||
|
||||
config DISK_FLASH_ERASE_ALIGNMENT
|
||||
hex "Flash device erase alignment in hex"
|
||||
help
|
||||
This is the start address alignment required by
|
||||
the flash component.
|
||||
|
||||
config DISK_ERASE_BLOCK_SIZE
|
||||
hex "Flash device erasable block size in hex"
|
||||
help
|
||||
This is typically the minimum block size that
|
||||
is erased at one time in flash storage.
|
||||
Typically it is equal to the flash memory page size.
|
||||
|
||||
config DISK_FLASH_SECTOR_SIZE
|
||||
int "Flash device sector size"
|
||||
default 512
|
||||
help
|
||||
This is the file system sector size in bytes.
|
||||
|
||||
config DISK_VOLUME_SIZE
|
||||
hex "Flash device volume size in hex"
|
||||
help
|
||||
This is the file system volume size in bytes.
|
||||
|
||||
module = FLASHDISK
|
||||
module-str = flashdisk
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
endif # DISK_DRIVER_FLASH
|
29
drivers/disk/Kconfig.ram
Normal file
29
drivers/disk/Kconfig.ram
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2016 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config DISK_DRIVER_RAM
|
||||
bool "RAM Disk"
|
||||
help
|
||||
RAM buffer used to emulate storage disk.
|
||||
This option can be used to test the file
|
||||
system.
|
||||
|
||||
if DISK_DRIVER_RAM
|
||||
|
||||
config DISK_RAM_VOLUME_SIZE
|
||||
int "RAM Disk size in kilobytes"
|
||||
default 96
|
||||
help
|
||||
Size of the RAM Disk.
|
||||
|
||||
config DISK_RAM_VOLUME_NAME
|
||||
string "RAM Disk mount point or drive name"
|
||||
default "RAM"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
module = RAMDISK
|
||||
module-str = ramdisk
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
endif # DISK_DRIVER_RAM
|
58
drivers/disk/Kconfig.sdmmc
Normal file
58
drivers/disk/Kconfig.sdmmc
Normal file
|
@ -0,0 +1,58 @@
|
|||
# Copyright (c) 2016 Intel Corporation
|
||||
# Copyright (c) 2021 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
DT_COMPAT_ZEPHYR_MMC_SPI_SLOT := zephyr,mmc-spi-slot
|
||||
DT_COMPAT_NXP_USDHC := nxp,imx-usdhc
|
||||
DT_COMPAT_ST_STM32_SDMMC := st,stm32-sdmmc
|
||||
|
||||
config DISK_DRIVER_SDMMC
|
||||
bool "SDMMC card driver"
|
||||
help
|
||||
SDMMC card driver.
|
||||
|
||||
if DISK_DRIVER_SDMMC
|
||||
|
||||
config SDMMC_INIT_PRIORITY
|
||||
int "Init priority"
|
||||
default 90
|
||||
help
|
||||
SDMMC controller driver initialization priority.
|
||||
|
||||
config SDMMC_VOLUME_NAME
|
||||
string "SDMMC Disk mount point or drive name"
|
||||
default "SD" if FAT_FILESYSTEM_ELM
|
||||
default "SDMMC"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
config SDMMC_OVER_SPI
|
||||
bool "SDHC access over SPI"
|
||||
select SPI
|
||||
default $(dt_compat_enabled,$(DT_COMPAT_ZEPHYR_MMC_SPI_SLOT))
|
||||
help
|
||||
File system on a SDHC card accessed over SPI.
|
||||
|
||||
config SDMMC_USDHC
|
||||
bool "NXP i.MXRT USDHC driver"
|
||||
depends on (HAS_MCUX_USDHC1 || HAS_MCUX_USDHC2)
|
||||
default $(dt_compat_enabled,$(DT_COMPAT_NXP_USDHC))
|
||||
help
|
||||
File system on a SDHC card accessed over
|
||||
NXP USDHC.
|
||||
|
||||
config SDMMC_STM32
|
||||
bool "STM32 SDMMC driver"
|
||||
depends on HAS_STM32CUBE
|
||||
select USE_STM32_HAL_SD
|
||||
select USE_STM32_HAL_SD_EX if SOC_SERIES_STM32L4X
|
||||
select USE_STM32_LL_SDMMC
|
||||
default $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_SDMMC))
|
||||
help
|
||||
File system on sdmmc accessed through stm32 sdmmc.
|
||||
|
||||
module = SDMMC
|
||||
module-str = sdmmc
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
endif # DISK_DRIVER_SDMMC
|
|
@ -1,8 +1,3 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS disk_access.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS_FLASH disk_access_flash.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS_RAM disk_access_ram.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS_SPI_SDHC disk_access_spi_sdhc.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS_STM32_SDMMC disk_access_stm32_sdmmc.c)
|
||||
zephyr_sources_ifdef(CONFIG_DISK_ACCESS_USDHC disk_access_usdhc.c)
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
# Copyright (c) 2016 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
DT_COMPAT_ST_STM32_SDMMC := st,stm32-sdmmc
|
||||
|
||||
menuconfig DISK_ACCESS
|
||||
bool "Disk Interface"
|
||||
select DISK_DRIVERS
|
||||
help
|
||||
Enable disk access over a supported media backend like FLASH or RAM
|
||||
|
||||
|
@ -14,148 +13,4 @@ module = DISK
|
|||
module-str = disk
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
config DISK_ACCESS_RAM
|
||||
bool "RAM Disk"
|
||||
help
|
||||
RAM buffer used to emulate storage disk.
|
||||
This option can be used to test the file
|
||||
system.
|
||||
|
||||
if DISK_ACCESS_RAM
|
||||
|
||||
config DISK_RAM_VOLUME_SIZE
|
||||
int "RAM Disk size in kilobytes"
|
||||
default 96
|
||||
help
|
||||
Size of the RAM Disk.
|
||||
|
||||
config DISK_RAM_VOLUME_NAME
|
||||
string "RAM Disk mount point or drive name"
|
||||
default "RAM"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
endif # DISK_ACCESS_RAM
|
||||
|
||||
config DISK_ACCESS_FLASH
|
||||
bool "Flash"
|
||||
select FLASH
|
||||
help
|
||||
Flash device is used for the file system.
|
||||
|
||||
if DISK_ACCESS_FLASH
|
||||
|
||||
config DISK_FLASH_VOLUME_NAME
|
||||
string "Flash mount point or drive name"
|
||||
default "NAND"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
config DISK_FLASH_DEV_NAME
|
||||
string "Flash device name to be used as storage backend"
|
||||
|
||||
config DISK_FLASH_START
|
||||
hex "Flash device start address in hex"
|
||||
help
|
||||
This is start address of the flash to be used as storage backend.
|
||||
|
||||
config DISK_FLASH_MAX_RW_SIZE
|
||||
int "Flash device max read-write size in decimal"
|
||||
help
|
||||
This is the maximum number of bytes that the
|
||||
flash_write API can accept per invocation.
|
||||
API.
|
||||
|
||||
config DISK_FLASH_ERASE_ALIGNMENT
|
||||
hex "Flash device erase alignment in hex"
|
||||
help
|
||||
This is the start address alignment required by
|
||||
the flash component.
|
||||
|
||||
config DISK_ERASE_BLOCK_SIZE
|
||||
hex "Flash device erasable block size in hex"
|
||||
help
|
||||
This is typically the minimum block size that
|
||||
is erased at one time in flash storage.
|
||||
Typically it is equal to the flash memory page size.
|
||||
|
||||
config DISK_FLASH_SECTOR_SIZE
|
||||
int "Flash device sector size"
|
||||
default 512
|
||||
help
|
||||
This is the file system sector size in bytes.
|
||||
|
||||
config DISK_VOLUME_SIZE
|
||||
hex "Flash device volume size in hex"
|
||||
help
|
||||
This is the file system volume size in bytes.
|
||||
|
||||
endif # DISK_ACCESS_FLASH
|
||||
|
||||
config DISK_ACCESS_SDHC
|
||||
bool "SDHC card access"
|
||||
select FLASH
|
||||
help
|
||||
File system on a SDHC card.
|
||||
|
||||
if DISK_ACCESS_SDHC
|
||||
|
||||
config DISK_ACCESS_SPI_SDHC
|
||||
bool "SDHC access over SPI"
|
||||
depends on SPI
|
||||
help
|
||||
File system on a SDHC card accessed over SPI.
|
||||
|
||||
config DISK_ACCESS_USDHC
|
||||
bool "NXP i.MXRT USDHC driver"
|
||||
depends on (HAS_MCUX_USDHC1 || HAS_MCUX_USDHC2)
|
||||
help
|
||||
File system on a SDHC card accessed over
|
||||
NXP USDHC.
|
||||
|
||||
if DISK_ACCESS_USDHC
|
||||
|
||||
config DISK_ACCESS_USDHC1
|
||||
bool "NXP i.MXRT USDHC instance 1"
|
||||
depends on HAS_MCUX_USDHC1
|
||||
help
|
||||
File system on a SDHC card accessed over
|
||||
USDHC instance 1.
|
||||
|
||||
config DISK_ACCESS_USDHC2
|
||||
bool "NXP i.MXRT USDHC instance 2"
|
||||
depends on HAS_MCUX_USDHC2
|
||||
help
|
||||
File system on a SDHC card accessed over
|
||||
USDHC instance 2.
|
||||
|
||||
endif # DISK_ACCESS_USDHC
|
||||
|
||||
config DISK_SDHC_VOLUME_NAME
|
||||
string "SDHC Disk mount point or drive name"
|
||||
default "SD" if FAT_FILESYSTEM_ELM
|
||||
default "SDHC"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
endif # DISK_ACCESS_SDHC
|
||||
|
||||
config DISK_ACCESS_STM32_SDMMC
|
||||
bool "STM32 SDMMC driver"
|
||||
depends on HAS_STM32CUBE
|
||||
select USE_STM32_HAL_SD
|
||||
select USE_STM32_HAL_SD_EX if SOC_SERIES_STM32L4X
|
||||
select USE_STM32_LL_SDMMC
|
||||
default $(dt_compat_enabled,$(DT_COMPAT_ST_STM32_SDMMC))
|
||||
help
|
||||
File system on sdmmc accessed through stm32 sdmmc.
|
||||
|
||||
config DISK_STM32_SDMMC_VOLUME_NAME
|
||||
string "SDMMC Disk mount point or drive name"
|
||||
depends on DISK_ACCESS_STM32_SDMMC
|
||||
default "SD" if FAT_FILESYSTEM_ELM
|
||||
default "SDMMC"
|
||||
help
|
||||
Disk name as per file system naming guidelines.
|
||||
|
||||
endif # DISK_ACCESS
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue