# Copyright (c) 2022, NXP
# SPDX -License-Identifier: Apache-2.0

config IMX_USDHC
	bool "NXP IMX USDHC Driver"
	default y
	depends on DT_HAS_NXP_IMX_USDHC_ENABLED
	select SDHC_SUPPORTS_UHS
	select SDHC_SUPPORTS_NATIVE_MODE
	help
	  Enable the NXP IMX SD Host controller driver

if IMX_USDHC

config IMX_USDHC_DAT3_PWR_TOGGLE
	bool "Toggle power when pulling DAT3 line low"
	default y
	help
	  Toggle power to SD card to clear DAT3 pull when pulling line low

config IMX_USDHC_DMA_SUPPORT
	bool "DMA support for USDHC"
	default y
	select NOCACHE_MEMORY if ARCH_HAS_NOCACHE_MEMORY_SUPPORT
	help
	  Enable DMA support for USDHC

if IMX_USDHC_DMA_SUPPORT

# USDHC DMA needs 32 bit aligned buffers
config SDHC_BUFFER_ALIGNMENT
	default 4

config IMX_USDHC_DMA_BUFFER_SIZE
	int "Size of DMA descriptor buffer in bytes"
	default 128
	help
	  Size of USDHC ADMA descriptor buffer in bytes

endif # IMX_USDHC_DMA_SUPPORT



endif
