mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
79daeb241d
The SD UHS-II interface was introduced to the SD spec v4.00 several years ago. The interface is fundamentally different from an electrical and a protocol point of view, comparing to the legacy SD interface. However, the legacy SD protocol is supported through a specific transport layer (SD-TRAN) defined in the UHS-II addendum of the spec. This allows the SD card to be managed in a very similar way as a legacy SD card, hence a lot of code can be re-used to support these new types of cards through the mmc subsystem. Moreover, an SD card that supports the UHS-II interface shall also be backwards compatible with the legacy SD interface, which allows a UHS-II card to be inserted into a legacy slot. As a matter of fact, this is already supported by mmc subsystem as of today. To prepare to add support for UHS-II, this change puts the basic foundation in the mmc core in place, allowing it to be more easily reviewed before subsequent changes implements the actual support. Basically, the approach here adds a new UHS-II bus_ops type and adds a separate initialization path for the UHS-II card. The intent is to avoid us from sprinkling the legacy initialization path, but also to simplify implementation of the UHS-II specific bits. At this point, there is only one new host ops added to manage the various ios settings needed for UHS-II. Additional host ops that are needed, are being added from subsequent changes. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Link: https://lore.kernel.org/r/20240913102836.6144-3-victorshihgli@gmail.com
22 lines
714 B
Makefile
22 lines
714 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the kernel mmc core.
|
|
#
|
|
|
|
obj-$(CONFIG_MMC) += mmc_core.o
|
|
mmc_core-y := core.o bus.o host.o \
|
|
mmc.o mmc_ops.o sd.o sd_ops.o \
|
|
sdio.o sdio_ops.o sdio_bus.o \
|
|
sdio_cis.o sdio_io.o sdio_irq.o sd_uhs2.o\
|
|
slot-gpio.o regulator.o
|
|
mmc_core-$(CONFIG_OF) += pwrseq.o
|
|
obj-$(CONFIG_PWRSEQ_SIMPLE) += pwrseq_simple.o
|
|
obj-$(CONFIG_PWRSEQ_SD8787) += pwrseq_sd8787.o
|
|
obj-$(CONFIG_PWRSEQ_EMMC) += pwrseq_emmc.o
|
|
mmc_core-$(CONFIG_DEBUG_FS) += debugfs.o
|
|
obj-$(CONFIG_MMC_BLOCK) += mmc_block.o
|
|
mmc_block-objs := block.o queue.o
|
|
obj-$(CONFIG_MMC_TEST) += mmc_test.o
|
|
obj-$(CONFIG_SDIO_UART) += sdio_uart.o
|
|
mmc_core-$(CONFIG_MMC_CRYPTO) += crypto.o
|