xref: /openbmc/u-boot/drivers/mmc/Kconfig (revision 5dc5a53c)
172d42badSNobuhiro Iwamatsumenu "MMC Host controller Support"
272d42badSNobuhiro Iwamatsu
37a777f6dSMaxime Ripardconfig MMC
4c2726995SMasahiro Yamada	bool "MMC/SD/SDIO card support"
5c2726995SMasahiro Yamada	default ARM || PPC || SANDBOX
61811a928SAdam Ford	select HAVE_BLOCK_DEVICE
77a777f6dSMaxime Ripard	help
8c2726995SMasahiro Yamada	  This selects MultiMediaCard, Secure Digital and Secure
9c2726995SMasahiro Yamada	  Digital I/O support.
10c2726995SMasahiro Yamada
11c2726995SMasahiro Yamada	  If you want MMC/SD/SDIO support, you should say Y here and
12c2726995SMasahiro Yamada	  also to your specific host controller driver.
137a777f6dSMaxime Ripard
14d6400c3fSJean-Jacques Hiblotconfig MMC_WRITE
15d6400c3fSJean-Jacques Hiblot	bool "support for MMC/SD write operations"
16d6400c3fSJean-Jacques Hiblot	depends on MMC
17d6400c3fSJean-Jacques Hiblot	default y
18d6400c3fSJean-Jacques Hiblot	help
19d6400c3fSJean-Jacques Hiblot	  Enable write access to MMC and SD Cards
20d6400c3fSJean-Jacques Hiblot
212f516e4aSJun Nieconfig MMC_BROKEN_CD
222f516e4aSJun Nie	bool "Poll for broken card detection case"
232f516e4aSJun Nie	help
242f516e4aSJun Nie	  If card  detection feature is broken, just poll to detect.
252f516e4aSJun Nie
26e7ecf7cbSSimon Glassconfig DM_MMC
27e7ecf7cbSSimon Glass	bool "Enable MMC controllers using Driver Model"
28e7ecf7cbSSimon Glass	depends on DM
29e7ecf7cbSSimon Glass	help
3062a3b7ddSRobert P. J. Day	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
31e7ecf7cbSSimon Glass	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
32e7ecf7cbSSimon Glass	  and non-removable (e.g. eMMC chip) devices are supported. These
33e7ecf7cbSSimon Glass	  appear as block devices in U-Boot and can support filesystems such
34e7ecf7cbSSimon Glass	  as EXT4 and FAT.
35e7ecf7cbSSimon Glass
36c4d660d4SSimon Glassconfig SPL_DM_MMC
37c4d660d4SSimon Glass	bool "Enable MMC controllers using Driver Model in SPL"
38c4d660d4SSimon Glass	depends on SPL_DM && DM_MMC
39c4d660d4SSimon Glass	default y
40c4d660d4SSimon Glass	help
41c4d660d4SSimon Glass	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
42c4d660d4SSimon Glass	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
43c4d660d4SSimon Glass	  and non-removable (e.g. eMMC chip) devices are supported. These
44c4d660d4SSimon Glass	  appear as block devices in U-Boot and can support filesystems such
45c4d660d4SSimon Glass	  as EXT4 and FAT.
46c4d660d4SSimon Glass
47e298c46aSMasahiro Yamadaif MMC
48e298c46aSMasahiro Yamada
493c0dbed2SPatrice Chotardconfig ARM_PL180_MMCI
503c0dbed2SPatrice Chotard	bool "ARM AMBA Multimedia Card Interface and compatible support"
513c0dbed2SPatrice Chotard	depends on DM_MMC && OF_CONTROL
523c0dbed2SPatrice Chotard	help
533c0dbed2SPatrice Chotard	  This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
543c0dbed2SPatrice Chotard	  Interface (PL180, PL181 and compatible) support.
553c0dbed2SPatrice Chotard	  If you have an ARM(R) platform with a Multimedia Card slot,
563c0dbed2SPatrice Chotard	  say Y or M here.
573c0dbed2SPatrice Chotard
5883dc4227SKishon Vijay Abraham Iconfig MMC_QUIRKS
5983dc4227SKishon Vijay Abraham I	bool "Enable quirks"
6083dc4227SKishon Vijay Abraham I	default y
6183dc4227SKishon Vijay Abraham I	help
6283dc4227SKishon Vijay Abraham I	  Some cards and hosts may sometimes behave unexpectedly (quirks).
6383dc4227SKishon Vijay Abraham I	  This option enable workarounds to handle those quirks. Some of them
6483dc4227SKishon Vijay Abraham I	  are enabled by default, other may require additionnal flags or are
6583dc4227SKishon Vijay Abraham I	  enabled by the host driver.
6683dc4227SKishon Vijay Abraham I
67cf17789eSJean-Jacques Hiblotconfig MMC_HW_PARTITIONING
68cf17789eSJean-Jacques Hiblot	bool "Support for HW partitioning command(eMMC)"
69cf17789eSJean-Jacques Hiblot	default y
70cf17789eSJean-Jacques Hiblot	help
71cf17789eSJean-Jacques Hiblot	  This adds a command and an API to do hardware partitioning on eMMC
72cf17789eSJean-Jacques Hiblot	  devices.
73cf17789eSJean-Jacques Hiblot
74f99c2efeSJean-Jacques Hiblotconfig MMC_IO_VOLTAGE
75f99c2efeSJean-Jacques Hiblot	bool "Support IO voltage configuration"
76f99c2efeSJean-Jacques Hiblot	help
77f99c2efeSJean-Jacques Hiblot	  IO voltage configuration allows selecting the voltage level of the IO
78f99c2efeSJean-Jacques Hiblot	  lines (not the level of main supply). This is required for UHS
79f99c2efeSJean-Jacques Hiblot	  support. For eMMC this not mandatory, but not enabling this option may
80f99c2efeSJean-Jacques Hiblot	  prevent the driver of using the faster modes.
81f99c2efeSJean-Jacques Hiblot
82f99c2efeSJean-Jacques Hiblotconfig SPL_MMC_IO_VOLTAGE
83f99c2efeSJean-Jacques Hiblot	bool "Support IO voltage configuration in SPL"
84f99c2efeSJean-Jacques Hiblot	default n
85f99c2efeSJean-Jacques Hiblot	help
86f99c2efeSJean-Jacques Hiblot	  IO voltage configuration allows selecting the voltage level of the IO
87f99c2efeSJean-Jacques Hiblot	  lines (not the level of main supply). This is required for UHS
88f99c2efeSJean-Jacques Hiblot	  support. For eMMC this not mandatory, but not enabling this option may
89f99c2efeSJean-Jacques Hiblot	  prevent the driver of using the faster modes.
90f99c2efeSJean-Jacques Hiblot
91f99c2efeSJean-Jacques Hiblotconfig MMC_UHS_SUPPORT
92f99c2efeSJean-Jacques Hiblot	bool "enable UHS support"
93f99c2efeSJean-Jacques Hiblot	depends on MMC_IO_VOLTAGE
94f99c2efeSJean-Jacques Hiblot	help
95f99c2efeSJean-Jacques Hiblot	  The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
96f99c2efeSJean-Jacques Hiblot	  cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
97f99c2efeSJean-Jacques Hiblot	  frequency can go up to 208MHz (SDR104)
98f99c2efeSJean-Jacques Hiblot
99f99c2efeSJean-Jacques Hiblotconfig SPL_MMC_UHS_SUPPORT
100f99c2efeSJean-Jacques Hiblot	bool "enable UHS support in SPL"
101f99c2efeSJean-Jacques Hiblot	depends on SPL_MMC_IO_VOLTAGE
102f99c2efeSJean-Jacques Hiblot	help
103f99c2efeSJean-Jacques Hiblot	  The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
104f99c2efeSJean-Jacques Hiblot	  cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
105f99c2efeSJean-Jacques Hiblot	  frequency can go up to 208MHz (SDR104)
106f99c2efeSJean-Jacques Hiblot
107f99c2efeSJean-Jacques Hiblotconfig MMC_HS200_SUPPORT
108f99c2efeSJean-Jacques Hiblot	bool "enable HS200 support"
109f99c2efeSJean-Jacques Hiblot	help
110f99c2efeSJean-Jacques Hiblot	  The HS200 mode is support by some eMMC. The bus frequency is up to
111f99c2efeSJean-Jacques Hiblot	  200MHz. This mode requires tuning the IO.
112f99c2efeSJean-Jacques Hiblot
113f99c2efeSJean-Jacques Hiblot
114f99c2efeSJean-Jacques Hiblotconfig SPL_MMC_HS200_SUPPORT
115f99c2efeSJean-Jacques Hiblot	bool "enable HS200 support in SPL"
116f99c2efeSJean-Jacques Hiblot	help
117f99c2efeSJean-Jacques Hiblot	  The HS200 mode is support by some eMMC. The bus frequency is up to
118f99c2efeSJean-Jacques Hiblot	  200MHz. This mode requires tuning the IO.
119f99c2efeSJean-Jacques Hiblot
12035f9e196SJean-Jacques Hiblotconfig MMC_VERBOSE
12135f9e196SJean-Jacques Hiblot	bool "Output more information about the MMC"
12235f9e196SJean-Jacques Hiblot	default y
12335f9e196SJean-Jacques Hiblot	help
12435f9e196SJean-Jacques Hiblot	  Enable the output of more information about the card such as the
12535f9e196SJean-Jacques Hiblot	  operating mode.
12635f9e196SJean-Jacques Hiblot
127b5b838f1SMarek Vasutconfig SPL_MMC_TINY
128b5b838f1SMarek Vasut	bool "Tiny MMC framework in SPL"
129b5b838f1SMarek Vasut	help
130b5b838f1SMarek Vasut	  Enable MMC framework tinification support. This option is useful if
131b5b838f1SMarek Vasut	  if your SPL is extremely size constrained. Heed the warning, enable
132b5b838f1SMarek Vasut	  this option if and only if you know exactly what you are doing, if
133b5b838f1SMarek Vasut	  you are reading this help text, you most likely have no idea :-)
134b5b838f1SMarek Vasut
135b5b838f1SMarek Vasut	  The MMC framework is reduced to bare minimum to be useful. No malloc
136b5b838f1SMarek Vasut	  support is needed for the MMC framework operation with this option
137b5b838f1SMarek Vasut	  enabled. The framework supports exactly one MMC device and exactly
138b5b838f1SMarek Vasut	  one MMC driver. The MMC driver can be adjusted to avoid any malloc
139b5b838f1SMarek Vasut	  operations too, which can remove the need for malloc support in SPL
140b5b838f1SMarek Vasut	  and thus further reduce footprint.
141b5b838f1SMarek Vasut
1421d2c0506SMasahiro Yamadaconfig MMC_DAVINCI
1431d2c0506SMasahiro Yamada	bool "TI DAVINCI Multimedia Card Interface support"
1441d2c0506SMasahiro Yamada	depends on ARCH_DAVINCI
1451d2c0506SMasahiro Yamada	default y
1461d2c0506SMasahiro Yamada	help
1471d2c0506SMasahiro Yamada	  This selects the TI DAVINCI Multimedia card Interface.
1481d2c0506SMasahiro Yamada	  If you have an DAVINCI board with a Multimedia Card slot,
1491d2c0506SMasahiro Yamada	  say Y here.  If unsure, say N.
1501d2c0506SMasahiro Yamada
15155ed3b46SMasahiro Yamadaconfig MMC_DW
15255ed3b46SMasahiro Yamada	bool "Synopsys DesignWare Memory Card Interface"
15355ed3b46SMasahiro Yamada	help
15455ed3b46SMasahiro Yamada	  This selects support for the Synopsys DesignWare Mobile Storage IP
15555ed3b46SMasahiro Yamada	  block, this provides host support for SD and MMC interfaces, in both
15655ed3b46SMasahiro Yamada	  PIO, internal DMA mode and external DMA mode.
15755ed3b46SMasahiro Yamada
158ae4c81e9SMasahiro Yamadaconfig MMC_DW_EXYNOS
159ae4c81e9SMasahiro Yamada	bool "Exynos specific extensions for Synopsys DW Memory Card Interface"
160ae4c81e9SMasahiro Yamada	depends on ARCH_EXYNOS
161ae4c81e9SMasahiro Yamada	depends on MMC_DW
162ae4c81e9SMasahiro Yamada	default y
163ae4c81e9SMasahiro Yamada	help
164ae4c81e9SMasahiro Yamada	  This selects support for Samsung Exynos SoC specific extensions to the
165ae4c81e9SMasahiro Yamada	  Synopsys DesignWare Memory Card Interface driver. Select this option
166ae4c81e9SMasahiro Yamada	  for platforms based on Exynos4 and Exynos5 SoC's.
167ae4c81e9SMasahiro Yamada
168ae4c81e9SMasahiro Yamadaconfig MMC_DW_K3
169ae4c81e9SMasahiro Yamada	bool "K3 specific extensions for Synopsys DW Memory Card Interface"
170ae4c81e9SMasahiro Yamada	depends on MMC_DW
171ae4c81e9SMasahiro Yamada	help
172ae4c81e9SMasahiro Yamada	  This selects support for Hisilicon K3 SoC specific extensions to the
173ae4c81e9SMasahiro Yamada	  Synopsys DesignWare Memory Card Interface driver. Select this option
174ae4c81e9SMasahiro Yamada	  for platforms based on Hisilicon K3 SoC's.
175ae4c81e9SMasahiro Yamada
176fed44087SMasahiro Yamadaconfig MMC_DW_ROCKCHIP
177a8cb4fb5SSimon Glass	bool "Rockchip SD/MMC controller support"
178a8cb4fb5SSimon Glass	depends on DM_MMC && OF_CONTROL
17955ed3b46SMasahiro Yamada	depends on MMC_DW
180a8cb4fb5SSimon Glass	help
181a8cb4fb5SSimon Glass	  This enables support for the Rockchip SD/MMM controller, which is
182a8cb4fb5SSimon Glass	  based on Designware IP. The device is compatible with at least
183a8cb4fb5SSimon Glass	  SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
184a8cb4fb5SSimon Glass	  as removeable SD and micro-SD cards.
185a8cb4fb5SSimon Glass
186ae4c81e9SMasahiro Yamadaconfig MMC_DW_SOCFPGA
187ae4c81e9SMasahiro Yamada	bool "SOCFPGA specific extensions for Synopsys DW Memory Card Interface"
188ae4c81e9SMasahiro Yamada	depends on ARCH_SOCFPGA
189ae4c81e9SMasahiro Yamada	depends on MMC_DW
190ae4c81e9SMasahiro Yamada	default y
191ae4c81e9SMasahiro Yamada	help
192ae4c81e9SMasahiro Yamada	  This selects support for Altera SOCFPGA specific extensions to the
193ae4c81e9SMasahiro Yamada	  Synopsys DesignWare Memory Card Interface driver. Select this option
194ae4c81e9SMasahiro Yamada	  for platforms based on Altera SOCFPGA.
195ae4c81e9SMasahiro Yamada
19693738620SCarlo Caioneconfig MMC_MESON_GX
19793738620SCarlo Caione	bool "Meson GX EMMC controller support"
198e7881d85SSimon Glass	depends on DM_MMC && BLK && ARCH_MESON
19993738620SCarlo Caione	help
20093738620SCarlo Caione	 Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
20193738620SCarlo Caione
2021d2c0506SMasahiro Yamadaconfig MMC_MXC
2031d2c0506SMasahiro Yamada	bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
2041d2c0506SMasahiro Yamada	help
2051d2c0506SMasahiro Yamada	  This selects the Freescale i.MX21, i.MX27, i.MX31 or MPC512x
2061d2c0506SMasahiro Yamada	  Multimedia Card Interface. If you have an i.MX or MPC512x platform
2071d2c0506SMasahiro Yamada	  with a Multimedia Card slot, say Y here.
2081d2c0506SMasahiro Yamada
2091d2c0506SMasahiro Yamada	  If unsure, say N.
2101d2c0506SMasahiro Yamada
2111d2c0506SMasahiro Yamadaconfig MMC_MXS
2121d2c0506SMasahiro Yamada	bool "Freescale MXS Multimedia Card Interface support"
21399bec1aeSAdam Ford	depends on MX23 || MX28 || MX6 || MX7
21499bec1aeSAdam Ford	select APBH_DMA
21599bec1aeSAdam Ford	select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
21699bec1aeSAdam Ford	select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
2171d2c0506SMasahiro Yamada	help
2181d2c0506SMasahiro Yamada	  This selects the Freescale SSP MMC controller found on MXS based
2191d2c0506SMasahiro Yamada	  platforms like mx23/28.
2201d2c0506SMasahiro Yamada
2211d2c0506SMasahiro Yamada	  If unsure, say N.
2221d2c0506SMasahiro Yamada
223b706b1c2SFelipe Balbiconfig MMC_PCI
224b706b1c2SFelipe Balbi	bool "Support for MMC controllers on PCI"
225b706b1c2SFelipe Balbi	help
226b706b1c2SFelipe Balbi	  This selects PCI-based MMC controllers.
227b706b1c2SFelipe Balbi	  If you have an MMC controller on a PCI bus, say Y here.
228b706b1c2SFelipe Balbi
229b706b1c2SFelipe Balbi	  If unsure, say N.
230b706b1c2SFelipe Balbi
2311d2c0506SMasahiro Yamadaconfig MMC_OMAP_HS
2321d2c0506SMasahiro Yamada	bool "TI OMAP High Speed Multimedia Card Interface support"
233e7881d85SSimon Glass	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
2348ff7763dSJean-Jacques Hiblot	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
2351d2c0506SMasahiro Yamada	help
2361d2c0506SMasahiro Yamada	  This selects the TI OMAP High Speed Multimedia card Interface.
2371d2c0506SMasahiro Yamada	  If you have an omap2plus board with a Multimedia Card slot,
2381d2c0506SMasahiro Yamada	  say Y here.
2391d2c0506SMasahiro Yamada
2401d2c0506SMasahiro Yamada	  If unsure, say N.
2411d2c0506SMasahiro Yamada
24227a4b3bcSJean-Jacques Hiblotconfig MMC_OMAP_HS_ADMA
24327a4b3bcSJean-Jacques Hiblot	bool "ADMA support for OMAP HS MMC"
24427a4b3bcSJean-Jacques Hiblot	depends on MMC_OMAP_HS && !OMAP34XX
24527a4b3bcSJean-Jacques Hiblot	default y if !AM33XX
24627a4b3bcSJean-Jacques Hiblot	help
24727a4b3bcSJean-Jacques Hiblot	  This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
24827a4b3bcSJean-Jacques Hiblot	  controller). If supported by the hardware, selecting this option will
24927a4b3bcSJean-Jacques Hiblot	  increase performances.
25027a4b3bcSJean-Jacques Hiblot
2516aca17c9SAdam Fordconfig MMC_OMAP36XX_PINS
2526aca17c9SAdam Ford	bool "Enable MMC1 on OMAP36xx/37xx"
2536aca17c9SAdam Ford	depends on OMAP34XX && MMC_OMAP_HS
2546aca17c9SAdam Ford	help
2556aca17c9SAdam Ford	  This enables extended-drain in the MMC/SD/SDIO1I/O and
2566aca17c9SAdam Ford	  GPIO-associated I/O cells (gpio_126, gpio_127, and gpio_129)
2576aca17c9SAdam Ford	  specific to the OMAP36xx/37xx using MMC1
2586aca17c9SAdam Ford
2596aca17c9SAdam Ford	  If you have a controller with this interface, say Y here.
2606aca17c9SAdam Ford
2616aca17c9SAdam Ford	  If unsure, say N.
2626aca17c9SAdam Ford
26372d42badSNobuhiro Iwamatsuconfig SH_SDHI
26472d42badSNobuhiro Iwamatsu	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
2650f531185SMarek Vasut	depends on ARCH_RMOBILE
26672d42badSNobuhiro Iwamatsu	help
26772d42badSNobuhiro Iwamatsu	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
26872d42badSNobuhiro Iwamatsu
269a111bfbfSMasahiro Yamadaconfig MMC_UNIPHIER
270b24633dfSMarek Vasut	bool "UniPhier/RCar SD/MMC Host Controller support"
271b24633dfSMarek Vasut	depends on ARCH_UNIPHIER || ARCH_RMOBILE
272e7881d85SSimon Glass	depends on BLK && DM_MMC
2739c720c81SMasahiro Yamada	depends on OF_CONTROL
274a111bfbfSMasahiro Yamada	help
275b24633dfSMarek Vasut	  This selects support for the Matsushita SD/MMC Host Controller on
276b24633dfSMarek Vasut	  SocioNext UniPhier and Renesas RCar SoCs.
277a111bfbfSMasahiro Yamada
278c8a73a26SAlexander Grafconfig MMC_BCM2835
279c8a73a26SAlexander Graf	bool "BCM2835 family custom SD/MMC Host Controller support"
280c8a73a26SAlexander Graf	depends on ARCH_BCM283X
281c8a73a26SAlexander Graf	depends on BLK && DM_MMC
282c8a73a26SAlexander Graf	depends on OF_CONTROL
283c8a73a26SAlexander Graf	default y
284c8a73a26SAlexander Graf	help
285c8a73a26SAlexander Graf	  This selects support for the custom SD host controller in the BCM2835
286c8a73a26SAlexander Graf	  family of devices.
287c8a73a26SAlexander Graf
288c8a73a26SAlexander Graf	  If you have a BCM2835 platform with SD or MMC devices, say Y here.
289c8a73a26SAlexander Graf
290c8a73a26SAlexander Graf	  If unsure, say N.
291c8a73a26SAlexander Graf
292a5995a5dSMasahiro Yamadaconfig MMC_SANDBOX
293f376a3cbSSimon Glass	bool "Sandbox MMC support"
294a5995a5dSMasahiro Yamada	depends on SANDBOX
295e7881d85SSimon Glass	depends on BLK && DM_MMC && OF_CONTROL
296f376a3cbSSimon Glass	help
297f376a3cbSSimon Glass	  This select a dummy sandbox MMC driver. At present this does nothing
298f376a3cbSSimon Glass	  other than allow sandbox to be build with MMC support. This
299f376a3cbSSimon Glass	  improves build coverage for sandbox and makes it easier to detect
300f376a3cbSSimon Glass	  MMC build errors with sandbox.
301f376a3cbSSimon Glass
302e1ce61fbSMasahiro Yamadaconfig MMC_SDHCI
303e1ce61fbSMasahiro Yamada	bool "Secure Digital Host Controller Interface support"
304e1ce61fbSMasahiro Yamada	help
305e1ce61fbSMasahiro Yamada	  This selects the generic Secure Digital Host Controller Interface.
306e1ce61fbSMasahiro Yamada	  It is used by manufacturers such as Texas Instruments(R), Ricoh(R)
307e1ce61fbSMasahiro Yamada	  and Toshiba(R). Most controllers found in laptops are of this type.
308e1ce61fbSMasahiro Yamada
309e1ce61fbSMasahiro Yamada	  If you have a controller with this interface, say Y here.
310e1ce61fbSMasahiro Yamada
311e1ce61fbSMasahiro Yamada	  If unsure, say N.
312e1ce61fbSMasahiro Yamada
3133d3a74ccSMasahiro Yamadaconfig MMC_SDHCI_IO_ACCESSORS
3143d3a74ccSMasahiro Yamada	bool
3153d3a74ccSMasahiro Yamada	depends on MMC_SDHCI
3163d3a74ccSMasahiro Yamada	help
3173d3a74ccSMasahiro Yamada	  This is silent Kconfig symbol that is selected by the drivers that
3183d3a74ccSMasahiro Yamada	  need to overwrite SDHCI IO memory accessors.
3193d3a74ccSMasahiro Yamada
32045a68fe2SMasahiro Yamadaconfig MMC_SDHCI_SDMA
32145a68fe2SMasahiro Yamada	bool "Support SDHCI SDMA"
32245a68fe2SMasahiro Yamada	depends on MMC_SDHCI
32345a68fe2SMasahiro Yamada	help
32445a68fe2SMasahiro Yamada	  This enables support for the SDMA (Single Operation DMA) defined
32545a68fe2SMasahiro Yamada	  in the SD Host Controller Standard Specification Version 1.00 .
32645a68fe2SMasahiro Yamada
327dd3b64ebSMasahiro Yamadaconfig MMC_SDHCI_ATMEL
328dd3b64ebSMasahiro Yamada	bool "Atmel SDHCI controller support"
329dd3b64ebSMasahiro Yamada	depends on ARCH_AT91
330e7881d85SSimon Glass	depends on DM_MMC && BLK && ARCH_AT91
331dd3b64ebSMasahiro Yamada	depends on MMC_SDHCI
332dd3b64ebSMasahiro Yamada	help
333dd3b64ebSMasahiro Yamada	  This enables support for the Atmel SDHCI controller, which supports
334dd3b64ebSMasahiro Yamada	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
335dd3b64ebSMasahiro Yamada	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
336dd3b64ebSMasahiro Yamada	  It is compliant with the SD Host Controller Standard V3.0
337dd3b64ebSMasahiro Yamada	  specification.
338dd3b64ebSMasahiro Yamada
33945a68fe2SMasahiro Yamadaconfig MMC_SDHCI_BCM2835
34045a68fe2SMasahiro Yamada	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
34145a68fe2SMasahiro Yamada	depends on ARCH_BCM283X
34245a68fe2SMasahiro Yamada	depends on MMC_SDHCI
3433d3a74ccSMasahiro Yamada	select MMC_SDHCI_IO_ACCESSORS
34445a68fe2SMasahiro Yamada	help
34545a68fe2SMasahiro Yamada	  This selects the BCM2835 SD/MMC controller.
34645a68fe2SMasahiro Yamada
34745a68fe2SMasahiro Yamada	  If you have a BCM2835 platform with SD or MMC devices,
34845a68fe2SMasahiro Yamada	  say Y here.
34945a68fe2SMasahiro Yamada
35045a68fe2SMasahiro Yamada	  If unsure, say N.
35145a68fe2SMasahiro Yamada
352e5e7a7c2SMasahiro Yamadaconfig MMC_SDHCI_CADENCE
353e5e7a7c2SMasahiro Yamada	bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
354e7881d85SSimon Glass	depends on BLK && DM_MMC
355e5e7a7c2SMasahiro Yamada	depends on MMC_SDHCI
356e5e7a7c2SMasahiro Yamada	depends on OF_CONTROL
357e5e7a7c2SMasahiro Yamada	help
358e5e7a7c2SMasahiro Yamada	  This selects the Cadence SD/SDIO/eMMC driver.
359e5e7a7c2SMasahiro Yamada
360e5e7a7c2SMasahiro Yamada	  If you have a controller with this interface, say Y here.
361e5e7a7c2SMasahiro Yamada
362e5e7a7c2SMasahiro Yamada	  If unsure, say N.
363e5e7a7c2SMasahiro Yamada
36445a68fe2SMasahiro Yamadaconfig MMC_SDHCI_KONA
36545a68fe2SMasahiro Yamada	bool "SDHCI support on Broadcom KONA platform"
36645a68fe2SMasahiro Yamada	depends on MMC_SDHCI
36745a68fe2SMasahiro Yamada	help
36845a68fe2SMasahiro Yamada	  This selects the Broadcom Kona Secure Digital Host Controller
36945a68fe2SMasahiro Yamada	  Interface(SDHCI) support.
37045a68fe2SMasahiro Yamada	  This is used in Broadcom mobile SoCs.
37145a68fe2SMasahiro Yamada
37245a68fe2SMasahiro Yamada	  If you have a controller with this interface, say Y here.
37345a68fe2SMasahiro Yamada
374360c67d5SMasahiro Yamadaconfig MMC_SDHCI_MSM
375360c67d5SMasahiro Yamada	bool "Qualcomm SDHCI controller"
376e7881d85SSimon Glass	depends on BLK && DM_MMC
377360c67d5SMasahiro Yamada	depends on MMC_SDHCI
378360c67d5SMasahiro Yamada	help
379360c67d5SMasahiro Yamada	  Enables support for SDHCI 2.0 controller present on some Qualcomm
380360c67d5SMasahiro Yamada          Snapdragon devices. This device is compatible with eMMC v4.5 and
381360c67d5SMasahiro Yamada          SD 3.0 specifications. Both SD and eMMC devices are supported.
382360c67d5SMasahiro Yamada	  Card-detect gpios are not supported.
383360c67d5SMasahiro Yamada
38445a68fe2SMasahiro Yamadaconfig MMC_SDHCI_MV
38545a68fe2SMasahiro Yamada	bool "SDHCI support on Marvell platform"
38645a68fe2SMasahiro Yamada	depends on ARCH_MVEBU
38745a68fe2SMasahiro Yamada	depends on MMC_SDHCI
38845a68fe2SMasahiro Yamada	help
38945a68fe2SMasahiro Yamada	  This selects the Secure Digital Host Controller Interface on
39045a68fe2SMasahiro Yamada	  Marvell platform.
39145a68fe2SMasahiro Yamada
39245a68fe2SMasahiro Yamada	  If you have a controller with this interface, say Y here.
39345a68fe2SMasahiro Yamada
39445a68fe2SMasahiro Yamada	  If unsure, say N.
39545a68fe2SMasahiro Yamada
3961b858770SMasahiro Yamadaconfig MMC_SDHCI_PIC32
3971b858770SMasahiro Yamada	bool "Microchip PIC32 on-chip SDHCI support"
3981b858770SMasahiro Yamada	depends on DM_MMC && MACH_PIC32
3991b858770SMasahiro Yamada	depends on MMC_SDHCI
4001b858770SMasahiro Yamada	help
4011b858770SMasahiro Yamada	  Support for Microchip PIC32 SDHCI controller.
4021b858770SMasahiro Yamada
403facc8058SMasahiro Yamadaconfig MMC_SDHCI_ROCKCHIP
404facc8058SMasahiro Yamada	bool "Arasan SDHCI controller for Rockchip support"
405facc8058SMasahiro Yamada	depends on ARCH_ROCKCHIP
406e7881d85SSimon Glass	depends on DM_MMC && BLK
407facc8058SMasahiro Yamada	depends on MMC_SDHCI
408facc8058SMasahiro Yamada	help
409facc8058SMasahiro Yamada	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
410facc8058SMasahiro Yamada
41145a68fe2SMasahiro Yamadaconfig MMC_SDHCI_S5P
41245a68fe2SMasahiro Yamada	bool "SDHCI support on Samsung S5P SoC"
41345a68fe2SMasahiro Yamada	depends on MMC_SDHCI
41445a68fe2SMasahiro Yamada	help
41545a68fe2SMasahiro Yamada	  This selects the Secure Digital Host Controller Interface (SDHCI)
41645a68fe2SMasahiro Yamada	  on Samsung S5P SoCs.
41745a68fe2SMasahiro Yamada
41845a68fe2SMasahiro Yamada	  If you have a controller with this interface, say Y here.
41945a68fe2SMasahiro Yamada
42045a68fe2SMasahiro Yamada	  If unsure, say N.
42145a68fe2SMasahiro Yamada
42245a68fe2SMasahiro Yamadaconfig MMC_SDHCI_SPEAR
42345a68fe2SMasahiro Yamada	bool "SDHCI support on ST SPEAr platform"
42445a68fe2SMasahiro Yamada	depends on MMC_SDHCI
42545a68fe2SMasahiro Yamada	help
42645a68fe2SMasahiro Yamada	  This selects the Secure Digital Host Controller Interface (SDHCI)
42745a68fe2SMasahiro Yamada	  often referrered to as the HSMMC block in some of the ST SPEAR range
42845a68fe2SMasahiro Yamada	  of SoC
42945a68fe2SMasahiro Yamada
43045a68fe2SMasahiro Yamada	  If you have a controller with this interface, say Y here.
43145a68fe2SMasahiro Yamada
43245a68fe2SMasahiro Yamada	  If unsure, say N.
43345a68fe2SMasahiro Yamada
434eee20f81SPatrice Chotardconfig MMC_SDHCI_STI
435eee20f81SPatrice Chotard	bool "SDHCI support for STMicroelectronics SoC"
43651cb23d4SPatrice Chotard	depends on MMC_SDHCI && OF_CONTROL
437eee20f81SPatrice Chotard	help
438eee20f81SPatrice Chotard	  This selects the Secure Digital Host Controller Interface (SDHCI)
439eee20f81SPatrice Chotard	  on STMicroelectronics STiH410 SoC.
440eee20f81SPatrice Chotard
441b6acb5f1SStefan Roeseconfig MMC_SDHCI_XENON
442b6acb5f1SStefan Roese	bool "SDHCI support for the Xenon SDHCI controller"
443b6acb5f1SStefan Roese	depends on MMC_SDHCI && DM_MMC && OF_CONTROL
444b6acb5f1SStefan Roese	help
445b6acb5f1SStefan Roese	  Support for Xenon SDHCI host controller on Marvell Armada 3700
446b6acb5f1SStefan Roese	  7k/8k ARM SoCs platforms
447b6acb5f1SStefan Roese
448b6acb5f1SStefan Roese	  If you have a controller with this interface, say Y here.
449b6acb5f1SStefan Roese
450b6acb5f1SStefan Roese	  If unsure, say N.
451b6acb5f1SStefan Roese
45283b3248eSFelipe Balbiconfig MMC_SDHCI_TANGIER
45383b3248eSFelipe Balbi	bool "Tangier SDHCI controller support"
45483b3248eSFelipe Balbi	depends on DM_MMC && BLK
45583b3248eSFelipe Balbi	depends on MMC_SDHCI
45683b3248eSFelipe Balbi	help
45783b3248eSFelipe Balbi	  This selects support for SDHCI controller on Tanginer
45883b3248eSFelipe Balbi	  SoC. Note that this controller does not sit on PCI bus and,
45983b3248eSFelipe Balbi	  hence, cannot be enumerated by standard PCI means.
46083b3248eSFelipe Balbi
46183b3248eSFelipe Balbi	  If you're using an Intel Tangier SoC (available on Intel
46283b3248eSFelipe Balbi	  Edison board), say Y here.
46383b3248eSFelipe Balbi
46483b3248eSFelipe Balbi	  If unsure, say N.
46583b3248eSFelipe Balbi
4661d2c0506SMasahiro Yamadaconfig MMC_SDHCI_TEGRA
4671d2c0506SMasahiro Yamada	bool "SDHCI platform support for the Tegra SD/MMC Controller"
4681d2c0506SMasahiro Yamada	depends on TEGRA
4691d2c0506SMasahiro Yamada	default y
4701d2c0506SMasahiro Yamada	help
4711d2c0506SMasahiro Yamada	  This selects the Tegra SD/MMC controller. If you have a Tegra
4721d2c0506SMasahiro Yamada	  platform with SD or MMC devices, say Y here.
4731d2c0506SMasahiro Yamada
4741d2c0506SMasahiro Yamada	  If unsure, say N.
4751d2c0506SMasahiro Yamada
47608aa0334SMasahiro Yamadaconfig MMC_SDHCI_ZYNQ
47708aa0334SMasahiro Yamada	bool "Arasan SDHCI controller support"
47808aa0334SMasahiro Yamada	depends on ARCH_ZYNQ || ARCH_ZYNQMP
479e7881d85SSimon Glass	depends on DM_MMC && OF_CONTROL && BLK
48008aa0334SMasahiro Yamada	depends on MMC_SDHCI
48108aa0334SMasahiro Yamada	help
48208aa0334SMasahiro Yamada	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
48308aa0334SMasahiro Yamada
484*5dc5a53cSVipul Kumarconfig ZYNQ_SDHCI_MAX_FREQ
485*5dc5a53cSVipul Kumar	int "Set the maximum frequency of the controller"
486*5dc5a53cSVipul Kumar	depends on MMC_SDHCI_ZYNQ
487*5dc5a53cSVipul Kumar	help
488*5dc5a53cSVipul Kumar	  Set the maximum frequency of the controller.
489*5dc5a53cSVipul Kumar
4901d2c0506SMasahiro Yamadaconfig MMC_SUNXI
4911d2c0506SMasahiro Yamada	bool "Allwinner sunxi SD/MMC Host Controller support"
4920ad178c1SMasahiro Yamada	depends on ARCH_SUNXI && !UART0_PORT_F
4931d2c0506SMasahiro Yamada	default y
4941d2c0506SMasahiro Yamada	help
4951d2c0506SMasahiro Yamada	  This selects support for the SD/MMC Host Controller on
4961d2c0506SMasahiro Yamada	  Allwinner sunxi SoCs.
4971d2c0506SMasahiro Yamada
498de9b1771SMaxime Ripardconfig MMC_SUNXI_HAS_NEW_MODE
499de9b1771SMaxime Ripard	bool
500de9b1771SMaxime Ripard	depends on MMC_SUNXI
501de9b1771SMaxime Ripard
502c86c0155SWenyou Yangconfig GENERIC_ATMEL_MCI
503c86c0155SWenyou Yang	bool "Atmel Multimedia Card Interface support"
504e7881d85SSimon Glass	depends on DM_MMC && BLK && ARCH_AT91
505c86c0155SWenyou Yang	help
506c86c0155SWenyou Yang	  This enables support for Atmel High Speed Multimedia Card Interface
507c86c0155SWenyou Yang	  (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
508c86c0155SWenyou Yang	  the SD Memory Card Specification V2.0, the SDIO V2.0 specification
509c86c0155SWenyou Yang	  and CE-ATA V1.1.
510c86c0155SWenyou Yang
511b312c590SPatrice Chotardconfig STM32_SDMMC2
512b312c590SPatrice Chotard	bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
51353c656a8SPatrice Chotard	depends on DM_MMC && BLK && OF_CONTROL
514b312c590SPatrice Chotard	help
515b312c590SPatrice Chotard	  This selects support for the SD/MMC controller on STM32H7 SoCs.
516b312c590SPatrice Chotard	  If you have a board based on such a SoC and with a SD/MMC slot,
517b312c590SPatrice Chotard	  say Y or M here.
518b312c590SPatrice Chotard
5199f678ab1SRick Chenconfig MMC_NDS32
5209f678ab1SRick Chen	bool "Andestech SD/MMC controller support"
5219f678ab1SRick Chen	depends on DM_MMC && OF_CONTROL && BLK && FTSDC010
5229f678ab1SRick Chen	help
5239f678ab1SRick Chen	  This enables support for the Andestech SD/MMM controller, which is
5249f678ab1SRick Chen	  based on Faraday IP.
5259f678ab1SRick Chen
5269f678ab1SRick Chenconfig FTSDC010
5279f678ab1SRick Chen	bool "Ftsdc010 SD/MMC controller Support"
5289f678ab1SRick Chen	help
5299f678ab1SRick Chen	  This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
5309f678ab1SRick Chen
531e298c46aSMasahiro Yamadaendif
532e298c46aSMasahiro Yamada
5334119b709SMarcel Ziswilerconfig TEGRA124_MMC_DISABLE_EXT_LOOPBACK
5344119b709SMarcel Ziswiler	bool "Disable external clock loopback"
5354119b709SMarcel Ziswiler	depends on MMC_SDHCI_TEGRA && TEGRA124
5364119b709SMarcel Ziswiler	help
5374119b709SMarcel Ziswiler	  Disable the external clock loopback and use the internal one on SDMMC3
5384119b709SMarcel Ziswiler	  as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
5394119b709SMarcel Ziswiler	  being set to 0xfffd according to the TRM.
5404119b709SMarcel Ziswiler
5414119b709SMarcel Ziswiler	  TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
5424119b709SMarcel Ziswiler	  approach once proper kernel integration made it mainline.
5434119b709SMarcel Ziswiler
54472d42badSNobuhiro Iwamatsuendmenu
545c01e4a1aSYork Sun
546c01e4a1aSYork Sunconfig SYS_FSL_ERRATUM_ESDHC111
547c01e4a1aSYork Sun	bool
548c01e4a1aSYork Sun
549c01e4a1aSYork Sunconfig SYS_FSL_ERRATUM_ESDHC13
550c01e4a1aSYork Sun	bool
551c01e4a1aSYork Sun
552c01e4a1aSYork Sunconfig SYS_FSL_ERRATUM_ESDHC135
553c01e4a1aSYork Sun	bool
554c01e4a1aSYork Sun
555c01e4a1aSYork Sunconfig SYS_FSL_ERRATUM_ESDHC_A001
556c01e4a1aSYork Sun	bool
557