hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/mmc/host/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # MMC/SD host controller drivers
34 #
....@@ -33,6 +34,16 @@
3334 Qcom SOCs and MMC, you would probably need this option to get DMA working.
3435
3536 if unsure, say N.
37
+
38
+config MMC_STM32_SDMMC
39
+ bool "STMicroelectronics STM32 SDMMC Controller"
40
+ depends on MMC_ARMMMCI
41
+ default y
42
+ help
43
+ This selects the STMicroelectronics STM32 SDMMC host controller.
44
+ If you have a STM32 sdmmc host with internal DMA say Y here.
45
+
46
+ If unsure, say N.
3647
3748 config MMC_PXA
3849 tristate "Intel PXA25x/26x/27x Multimedia Card Interface support"
....@@ -82,6 +93,8 @@
8293 tristate "SDHCI support on PCI bus"
8394 depends on MMC_SDHCI && PCI
8495 select MMC_CQHCI
96
+ select IOSF_MBI if X86
97
+ select MMC_SDHCI_IO_ACCESSORS
8598 help
8699 This selects the PCI Secure Digital Host Controller Interface.
87100 Most controllers found today are PCI devices.
....@@ -106,7 +119,7 @@
106119
107120 config MMC_SDHCI_ACPI
108121 tristate "SDHCI support for ACPI enumerated SDHCI controllers"
109
- depends on MMC_SDHCI && ACPI
122
+ depends on MMC_SDHCI && ACPI && PCI
110123 select IOSF_MBI if X86
111124 help
112125 This selects support for ACPI enumerated SDHCI controllers,
....@@ -142,17 +155,30 @@
142155
143156 If unsure, say N.
144157
158
+config MMC_SDHCI_OF_ASPEED
159
+ tristate "SDHCI OF support for the ASPEED SDHCI controller"
160
+ depends on MMC_SDHCI_PLTFM
161
+ depends on OF && OF_ADDRESS
162
+ select MMC_SDHCI_IO_ACCESSORS
163
+ help
164
+ This selects the ASPEED Secure Digital Host Controller Interface.
165
+
166
+ If you have a controller with this interface, say Y or M here. You
167
+ also need to enable an appropriate bus interface.
168
+
169
+ If unsure, say N.
170
+
145171 config MMC_SDHCI_OF_AT91
146172 tristate "SDHCI OF support for the Atmel SDMMC controller"
147173 depends on MMC_SDHCI_PLTFM
148
- depends on OF
174
+ depends on OF && HAVE_CLK
149175 help
150176 This selects the Atmel SDMMC driver
151177
152178 config MMC_SDHCI_OF_ESDHC
153179 tristate "SDHCI OF support for the Freescale eSDHC controller"
154180 depends on MMC_SDHCI_PLTFM
155
- depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE
181
+ depends on PPC || ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
156182 select MMC_SDHCI_IO_ACCESSORS
157183 select FSL_GUTS
158184 help
....@@ -188,6 +214,18 @@
188214 If you have a controller with this interface, say Y or M here.
189215 If unsure, say N.
190216
217
+config MMC_SDHCI_OF_SPARX5
218
+ tristate "SDHCI OF support for the MCHP Sparx5 SoC"
219
+ depends on MMC_SDHCI_PLTFM
220
+ depends on ARCH_SPARX5 || COMPILE_TEST
221
+ help
222
+ This selects the Secure Digital Host Controller Interface (SDHCI)
223
+ found in the MCHP Sparx5 SoC.
224
+
225
+ If you have a Sparx5 SoC with this interface, say Y or M here.
226
+
227
+ If unsure, say N.
228
+
191229 config MMC_SDHCI_CADENCE
192230 tristate "SDHCI support for the Cadence SD/SDIO/eMMC controller"
193231 depends on MMC_SDHCI_PLTFM
....@@ -201,7 +239,7 @@
201239
202240 config MMC_SDHCI_CNS3XXX
203241 tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
204
- depends on ARCH_CNS3XXX
242
+ depends on ARCH_CNS3XXX || COMPILE_TEST
205243 depends on MMC_SDHCI_PLTFM
206244 help
207245 This selects the SDHCI support for CNS3xxx System-on-Chip devices.
....@@ -210,11 +248,25 @@
210248
211249 If unsure, say N.
212250
213
-config MMC_SDHCI_ESDHC_IMX
214
- tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
215
- depends on ARCH_MXC
251
+config MMC_SDHCI_ESDHC_MCF
252
+ tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
253
+ depends on M5441x
216254 depends on MMC_SDHCI_PLTFM
217255 select MMC_SDHCI_IO_ACCESSORS
256
+ help
257
+ This selects the Freescale eSDHC controller support for
258
+ ColdFire mcf5441x devices.
259
+
260
+ If you have a controller with this interface, say Y or M here.
261
+
262
+ If unsure, say N.
263
+
264
+config MMC_SDHCI_ESDHC_IMX
265
+ tristate "SDHCI support for the Freescale eSDHC/uSDHC i.MX controller"
266
+ depends on ARCH_MXC || COMPILE_TEST
267
+ depends on MMC_SDHCI_PLTFM
268
+ select MMC_SDHCI_IO_ACCESSORS
269
+ select MMC_CQHCI
218270 help
219271 This selects the Freescale eSDHC/uSDHC controller support
220272 found on i.MX25, i.MX35 i.MX5x and i.MX6x.
....@@ -225,7 +277,7 @@
225277
226278 config MMC_SDHCI_DOVE
227279 tristate "SDHCI support on Marvell's Dove SoC"
228
- depends on ARCH_DOVE || MACH_DOVE
280
+ depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
229281 depends on MMC_SDHCI_PLTFM
230282 select MMC_SDHCI_IO_ACCESSORS
231283 help
....@@ -238,9 +290,10 @@
238290
239291 config MMC_SDHCI_TEGRA
240292 tristate "SDHCI platform support for the Tegra SD/MMC Controller"
241
- depends on ARCH_TEGRA
293
+ depends on ARCH_TEGRA || COMPILE_TEST
242294 depends on MMC_SDHCI_PLTFM
243295 select MMC_SDHCI_IO_ACCESSORS
296
+ select MMC_CQHCI
244297 help
245298 This selects the Tegra SD/MMC controller. If you have a Tegra
246299 platform with SD or MMC devices, say Y or M here.
....@@ -249,7 +302,8 @@
249302
250303 config MMC_SDHCI_S3C
251304 tristate "SDHCI support on Samsung S3C SoC"
252
- depends on MMC_SDHCI && PLAT_SAMSUNG
305
+ depends on MMC_SDHCI
306
+ depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
253307 help
254308 This selects the Secure Digital Host Controller Interface (SDHCI)
255309 often referrered to as the HSMMC block in some of the Samsung S3C
....@@ -261,7 +315,7 @@
261315
262316 config MMC_SDHCI_SIRF
263317 tristate "SDHCI support on CSR SiRFprimaII and SiRFmarco SoCs"
264
- depends on ARCH_SIRF
318
+ depends on ARCH_SIRF || COMPILE_TEST
265319 depends on MMC_SDHCI_PLTFM
266320 select MMC_SDHCI_IO_ACCESSORS
267321 help
....@@ -299,7 +353,8 @@
299353
300354 config MMC_SDHCI_SPEAR
301355 tristate "SDHCI support on ST SPEAr platform"
302
- depends on MMC_SDHCI && PLAT_SPEAR
356
+ depends on MMC_SDHCI
357
+ depends on PLAT_SPEAR || COMPILE_TEST
303358 depends on OF
304359 help
305360 This selects the Secure Digital Host Controller Interface (SDHCI)
....@@ -322,7 +377,7 @@
322377
323378 config MMC_SDHCI_BCM_KONA
324379 tristate "SDHCI support on Broadcom KONA platform"
325
- depends on ARCH_BCM_MOBILE
380
+ depends on ARCH_BCM_MOBILE || COMPILE_TEST
326381 depends on MMC_SDHCI_PLTFM
327382 help
328383 This selects the Broadcom Kona Secure Digital Host Controller
....@@ -342,10 +397,22 @@
342397
343398 If unsure, say N.
344399
400
+config MMC_SDHCI_MILBEAUT
401
+ tristate "SDHCI support for Socionext Milbeaut Serieas using F_SDH30"
402
+ depends on MMC_SDHCI_PLTFM
403
+ depends on OF
404
+ help
405
+ This selects the Secure Digital Host Controller Interface (SDHCI)
406
+ Needed by Milbeaut SoC for MMC / SD / SDIO support.
407
+ If you have a controller with this interface, say Y or M here.
408
+
409
+ If unsure, say N.
410
+
345411 config MMC_SDHCI_IPROC
346412 tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
347413 depends on ARCH_BCM2835 || ARCH_BCM_IPROC || COMPILE_TEST
348414 depends on MMC_SDHCI_PLTFM
415
+ depends on OF || ACPI
349416 default ARCH_BCM_IPROC
350417 select MMC_SDHCI_IO_ACCESSORS
351418 help
....@@ -358,7 +425,8 @@
358425
359426 config MMC_MESON_GX
360427 tristate "Amlogic S905/GX*/AXG SD/MMC Host Controller support"
361
- depends on ARCH_MESON && MMC
428
+ depends on ARCH_MESON|| COMPILE_TEST
429
+ depends on COMMON_CLK
362430 help
363431 This selects support for the Amlogic SD/MMC Host Controller
364432 found on the S905/GX*/AXG family of SoCs. This controller is
....@@ -366,11 +434,25 @@
366434
367435 If you have a controller with this interface, say Y here.
368436
437
+config MMC_MESON_MX_SDHC
438
+ tristate "Amlogic Meson SDHC Host Controller support"
439
+ depends on (ARM && ARCH_MESON) || COMPILE_TEST
440
+ depends on COMMON_CLK
441
+ depends on OF
442
+ help
443
+ This selects support for the SDHC Host Controller on
444
+ Amlogic Meson6, Meson8, Meson8b and Meson8m2 SoCs.
445
+ The controller supports the SD/SDIO Spec 3.x and eMMC Spec 4.5x
446
+ with 1, 4, and 8 bit bus widths.
447
+
448
+ If you have a controller with this interface, say Y or M here.
449
+ If unsure, say N.
450
+
369451 config MMC_MESON_MX_SDIO
370452 tristate "Amlogic Meson6/Meson8/Meson8b SD/MMC Host Controller support"
371453 depends on ARCH_MESON || COMPILE_TEST
372454 depends on COMMON_CLK
373
- depends on OF
455
+ depends on OF_ADDRESS
374456 help
375457 This selects support for the SD/MMC Host Controller on
376458 Amlogic Meson6, Meson8 and Meson8b SoCs.
....@@ -380,7 +462,7 @@
380462
381463 config MMC_MOXART
382464 tristate "MOXART SD/MMC Host Controller support"
383
- depends on ARCH_MOXART && MMC
465
+ depends on ARCH_MOXART || COMPILE_TEST
384466 help
385467 This selects support for the MOXART SD/MMC Host Controller.
386468 MOXA provides one multi-functional card reader which can
....@@ -389,7 +471,7 @@
389471
390472 config MMC_SDHCI_ST
391473 tristate "SDHCI support on STMicroelectronics SoC"
392
- depends on ARCH_STI || FSP2
474
+ depends on ARCH_STI || FSP2 || COMPILE_TEST
393475 depends on MMC_SDHCI_PLTFM
394476 select MMC_SDHCI_IO_ACCESSORS
395477 help
....@@ -425,11 +507,18 @@
425507 depends on ISA_DMA_API && !M68K
426508 help
427509 This selects the Winbond(R) W83L51xD Secure digital and
428
- Multimedia card Interface.
510
+ Multimedia card Interface.
429511 If you have a machine with a integrated W83L518D or W83L519D
430512 SD/MMC card reader, say Y or M here.
431513
432514 If unsure, say N.
515
+
516
+config MMC_ALCOR
517
+ tristate "Alcor Micro/Alcor Link SD/MMC controller"
518
+ depends on MISC_ALCOR_PCI
519
+ help
520
+ Say Y here to include driver code to support SD/MMC card interface
521
+ of Alcor Micro PCI-E card reader
433522
434523 config MMC_AU1X
435524 tristate "Alchemy AU1XX0 MMC Card Interface support"
....@@ -452,9 +541,11 @@
452541
453542 config MMC_SDHCI_MSM
454543 tristate "Qualcomm SDHCI Controller Support"
455
- depends on ARCH_QCOM || (ARM && COMPILE_TEST)
544
+ depends on ARCH_QCOM || COMPILE_TEST
456545 depends on MMC_SDHCI_PLTFM
457546 select MMC_SDHCI_IO_ACCESSORS
547
+ select MMC_CQHCI
548
+ select QCOM_SCM if MMC_CRYPTO && ARCH_QCOM
458549 help
459550 This selects the Secure Digital Host Controller Interface (SDHCI)
460551 support present in Qualcomm SOCs. The controller supports
....@@ -496,14 +587,14 @@
496587 'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
497588 (TIFM_7XX1)'.
498589
499
- To compile this driver as a module, choose M here: the
590
+ To compile this driver as a module, choose M here: the
500591 module will be called tifm_sd.
501592
502593 config MMC_MVSDIO
503594 tristate "Marvell MMC/SD/SDIO host driver"
504
- depends on PLAT_ORION
595
+ depends on PLAT_ORION || (COMPILE_TEST && ARM)
505596 depends on OF
506
- ---help---
597
+ help
507598 This selects the Marvell SDIO host driver.
508599 SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
509600 SoC controllers.
....@@ -512,12 +603,12 @@
512603 module will be called mvsdio.
513604
514605 config MMC_DAVINCI
515
- tristate "TI DAVINCI Multimedia Card Interface support"
516
- depends on ARCH_DAVINCI
517
- help
518
- This selects the TI DAVINCI Multimedia card Interface.
519
- If you have an DAVINCI board with a Multimedia Card slot,
520
- say Y or M here. If unsure, say N.
606
+ tristate "TI DAVINCI Multimedia Card Interface support"
607
+ depends on ARCH_DAVINCI || COMPILE_TEST
608
+ help
609
+ This selects the TI DAVINCI Multimedia card Interface.
610
+ If you have an DAVINCI board with a Multimedia Card slot,
611
+ say Y or M here. If unsure, say N.
521612
522613 config MMC_GOLDFISH
523614 tristate "goldfish qemu Multimedia Card Interface support"
....@@ -528,7 +619,7 @@
528619
529620 config MMC_SPI
530621 tristate "MMC/SD/SDIO over SPI"
531
- depends on SPI_MASTER && HAS_DMA
622
+ depends on SPI_MASTER
532623 select CRC7
533624 select CRC_ITU_T
534625 help
....@@ -546,18 +637,18 @@
546637 depends on S3C24XX_DMAC
547638 help
548639 This selects a driver for the MCI interface found in
549
- Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
640
+ Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
550641 If you have a board based on one of those and a MMC/SD
551642 slot, say Y or M here.
552643
553644 If unsure, say N.
554645
555646 config MMC_S3C_HW_SDIO_IRQ
556
- bool "Hardware support for SDIO IRQ"
557
- depends on MMC_S3C
558
- help
559
- Enable the hardware support for SDIO interrupts instead of using
560
- the generic polling code.
647
+ bool "Hardware support for SDIO IRQ"
648
+ depends on MMC_S3C
649
+ help
650
+ Enable the hardware support for SDIO interrupts instead of using
651
+ the generic polling code.
561652
562653 choice
563654 prompt "Samsung S3C SD/MMC transfer code"
....@@ -593,12 +684,26 @@
593684 To compile this driver as a module, choose M here: the
594685 module will be called sdricoh_cs.
595686
687
+config MMC_SDHCI_SPRD
688
+ tristate "Spreadtrum SDIO host Controller"
689
+ depends on ARCH_SPRD || COMPILE_TEST
690
+ depends on MMC_SDHCI_PLTFM
691
+ select MMC_SDHCI_IO_ACCESSORS
692
+ select MMC_HSQ
693
+ help
694
+ This selects the SDIO Host Controller in Spreadtrum
695
+ SoCs, this driver supports R11(IP version: R11P0).
696
+
697
+ If you have a controller with this interface, say Y or M here.
698
+
699
+ If unsure, say N.
700
+
596701 config MMC_TMIO_CORE
597702 tristate
598703
599704 config MMC_TMIO
600705 tristate "Toshiba Mobile IO Controller (TMIO) MMC/SD function support"
601
- depends on MFD_TMIO || MFD_ASIC3
706
+ depends on MFD_TMIO || MFD_ASIC3 || COMPILE_TEST
602707 select MMC_TMIO_CORE
603708 help
604709 This provides support for the SD/MMC cell found in TC6393XB,
....@@ -623,13 +728,24 @@
623728
624729 config MMC_SDHI_INTERNAL_DMAC
625730 tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering"
626
- depends on ARM64 || COMPILE_TEST
731
+ depends on ARM64 || ARCH_R7S9210 || ARCH_R8A77470 || COMPILE_TEST
627732 depends on MMC_SDHI
628
- default MMC_SDHI if ARM64
733
+ default MMC_SDHI if (ARM64 || ARCH_R7S9210 || ARCH_R8A77470)
629734 help
630735 This provides DMA support for SDHI SD/SDIO controllers
631736 using on-chip bus mastering. This supports the controllers
632
- found in arm64 based SoCs.
737
+ found in arm64 based SoCs. This controller is also found in
738
+ some RZ family SoCs.
739
+
740
+config MMC_UNIPHIER
741
+ tristate "UniPhier SD/eMMC Host Controller support"
742
+ depends on ARCH_UNIPHIER || COMPILE_TEST
743
+ depends on OF
744
+ select MMC_TMIO_CORE
745
+ help
746
+ This provides support for the SD/eMMC controller found in
747
+ UniPhier SoCs. The eMMC variant of this controller is used
748
+ only for 32-bit SoCs.
633749
634750 config MMC_CB710
635751 tristate "ENE CB710 MMC/SD Interface support"
....@@ -678,7 +794,7 @@
678794
679795 config MMC_DW
680796 tristate "Synopsys DesignWare Memory Card Interface"
681
- depends on ARC || ARM || ARM64 || MIPS || COMPILE_TEST
797
+ depends on ARC || ARM || ARM64 || MIPS || RISCV || CSKY || COMPILE_TEST
682798 help
683799 This selects support for the Synopsys DesignWare Mobile Storage IP
684800 block, this provides host support for SD and MMC interfaces, in both
....@@ -773,7 +889,7 @@
773889
774890 config MMC_JZ4740
775891 tristate "Ingenic JZ47xx SD/Multimedia Card Interface support"
776
- depends on MACH_JZ4740 || MACH_JZ4780
892
+ depends on MIPS
777893 help
778894 This selects support for the SD/MMC controller on Ingenic
779895 JZ4740, JZ4750, JZ4770 and JZ4780 SoCs.
....@@ -860,7 +976,7 @@
860976
861977 config MMC_SUNXI
862978 tristate "Allwinner sunxi SD/MMC Host Controller support"
863
- depends on ARCH_SUNXI
979
+ depends on ARCH_SUNXI || COMPILE_TEST
864980 help
865981 This selects support for the SD/MMC Host Controller on
866982 Allwinner sunxi SoCs.
....@@ -909,6 +1025,8 @@
9091025 config MMC_MTK
9101026 tristate "MediaTek SD/MMC Card Interface support"
9111027 depends on HAS_DMA
1028
+ select REGULATOR
1029
+ select MMC_CQHCI
9121030 help
9131031 This selects the MediaTek(R) Secure digital and Multimedia card Interface.
9141032 If you have a machine with a integrated SD/MMC card reader, say Y or M here.
....@@ -916,19 +1034,21 @@
9161034 If unsure, say N.
9171035
9181036 config MMC_SDHCI_MICROCHIP_PIC32
919
- tristate "Microchip PIC32MZDA SDHCI support"
920
- depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
921
- help
922
- This selects the Secure Digital Host Controller Interface (SDHCI)
923
- for PIC32MZDA platform.
1037
+ tristate "Microchip PIC32MZDA SDHCI support"
1038
+ depends on MMC_SDHCI && PIC32MZDA && MMC_SDHCI_PLTFM
1039
+ help
1040
+ This selects the Secure Digital Host Controller Interface (SDHCI)
1041
+ for PIC32MZDA platform.
9241042
925
- If you have a controller with this interface, say Y or M here.
1043
+ If you have a controller with this interface, say Y or M here.
9261044
927
- If unsure, say N.
1045
+ If unsure, say N.
1046
+
9281047 config MMC_SDHCI_BRCMSTB
9291048 tristate "Broadcom SDIO/SD/MMC support"
9301049 depends on ARCH_BRCMSTB || BMIPS_GENERIC
9311050 depends on MMC_SDHCI_PLTFM
1051
+ select MMC_CQHCI
9321052 default y
9331053 help
9341054 This selects support for the SDIO/SD/MMC Host Controller on
....@@ -949,6 +1069,7 @@
9491069 depends on MMC_SDHCI_PLTFM && OF
9501070 select THERMAL
9511071 imply TI_SOC_THERMAL
1072
+ select MMC_SDHCI_EXTERNAL_DMA if DMA_ENGINE
9521073 help
9531074 This selects the Secure Digital Host Controller Interface (SDHCI)
9541075 support present in TI's DRA7 SOCs. The controller supports
....@@ -957,3 +1078,29 @@
9571078 If you have a controller with this interface, say Y or M here.
9581079
9591080 If unsure, say N.
1081
+
1082
+config MMC_SDHCI_AM654
1083
+ tristate "Support for the SDHCI Controller in TI's AM654 SOCs"
1084
+ depends on MMC_SDHCI_PLTFM && OF
1085
+ select MMC_SDHCI_IO_ACCESSORS
1086
+ select MMC_CQHCI
1087
+ select REGMAP_MMIO
1088
+ help
1089
+ This selects the Secure Digital Host Controller Interface (SDHCI)
1090
+ support present in TI's AM654 SOCs. The controller supports
1091
+ SD/MMC/SDIO devices.
1092
+
1093
+ If you have a controller with this interface, say Y or M here.
1094
+
1095
+ If unsure, say N.
1096
+
1097
+config MMC_OWL
1098
+ tristate "Actions Semi Owl SD/MMC Host Controller support"
1099
+ depends on HAS_DMA
1100
+ depends on ARCH_ACTIONS || COMPILE_TEST
1101
+ help
1102
+ This selects support for the SD/MMC Host Controller on
1103
+ Actions Semi Owl SoCs.
1104
+
1105
+config MMC_SDHCI_EXTERNAL_DMA
1106
+ bool