]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mmc: core: Prepare to support SD UHS-II cards
authorUlf Hansson <ulf.hansson@linaro.org>
Fri, 13 Sep 2024 10:28:16 +0000 (18:28 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 14 Oct 2024 10:40:10 +0000 (12:40 +0200)
commit79daeb241db7901e4bd53cce9ab046f376a63a4c
tree803e5e6f3e0b1c322da4ca63b37e61173f0a605a
parentb948d7c57b8bcfff6a94fd5d0d2d615d2a947687
mmc: core: Prepare to support SD UHS-II cards

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
drivers/mmc/core/Makefile
drivers/mmc/core/core.c
drivers/mmc/core/core.h
drivers/mmc/core/sd_uhs2.c [new file with mode: 0644]
include/linux/mmc/card.h
include/linux/mmc/host.h