# 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
	select PINCTRL
	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
