Add mux controller support for when sdio lines are muxed between a host
and multiple cards.
There are several devices supporting a choice of eMMC or SD on a single
board by both dip switch and gpio, e.g. Renesas RZ/G2L SMARC SoM and
SolidRun RZ/G2L SoM.
In-tree dts for the Renesas boards currently rely on preprocessor macros
to hog gpios and define the card.
By adding mux-states property to sdio controller description, boards can
correctly describe the mux that already exists in hardware - and drivers
can coordinate between mux selection and probing for cards.
Signed-off-by: Josua Mayer <josua@solid-run.com>
---
Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
index c754ea71f51f7..754ccb1c30efb 100644
--- a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
+++ b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
@@ -106,6 +106,11 @@ properties:
iommus:
maxItems: 1
+ mux-states:
+ description:
+ mux controller node to route the SDIO signals from SoC to cards.
+ maxItems: 1
+
power-domains:
maxItems: 1
@@ -275,6 +280,7 @@ examples:
max-frequency = <195000000>;
power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
resets = <&cpg 314>;
+ mux-states = <&mux 0>;
};
sdhi1: mmc@ee120000 {
--
2.51.0
On Mon, 1 Dec 2025 at 13:31, Josua Mayer <josua@solid-run.com> wrote:
>
> Add mux controller support for when sdio lines are muxed between a host
> and multiple cards.
We have the SD, SDIO, (e)MMC interfaces with their corresponding pins.
Using "sdio lines" becomes confusing as it kind of indicates this is
for "SDIO" only.
>
> There are several devices supporting a choice of eMMC or SD on a single
> board by both dip switch and gpio, e.g. Renesas RZ/G2L SMARC SoM and
> SolidRun RZ/G2L SoM.
>
> In-tree dts for the Renesas boards currently rely on preprocessor macros
> to hog gpios and define the card.
>
> By adding mux-states property to sdio controller description, boards can
Again, please don't use "sdio" here.
> correctly describe the mux that already exists in hardware - and drivers
> can coordinate between mux selection and probing for cards.
>
> Signed-off-by: Josua Mayer <josua@solid-run.com>
> ---
> Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
> index c754ea71f51f7..754ccb1c30efb 100644
> --- a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
> +++ b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
> @@ -106,6 +106,11 @@ properties:
> iommus:
> maxItems: 1
>
> + mux-states:
> + description:
> + mux controller node to route the SDIO signals from SoC to cards.
I suggest we change from "SDIO" to "SD/SDIO/eMMC".
> + maxItems: 1
> +
> power-domains:
> maxItems: 1
>
> @@ -275,6 +280,7 @@ examples:
> max-frequency = <195000000>;
> power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
> resets = <&cpg 314>;
> + mux-states = <&mux 0>;
> };
>
> sdhi1: mmc@ee120000 {
>
> --
> 2.51.0
>
>
Kind regards
Uffe
On Mon, 01 Dec 2025 13:31:10 +0100, Josua Mayer wrote: > Add mux controller support for when sdio lines are muxed between a host > and multiple cards. > > There are several devices supporting a choice of eMMC or SD on a single > board by both dip switch and gpio, e.g. Renesas RZ/G2L SMARC SoM and > SolidRun RZ/G2L SoM. > > In-tree dts for the Renesas boards currently rely on preprocessor macros > to hog gpios and define the card. > > By adding mux-states property to sdio controller description, boards can > correctly describe the mux that already exists in hardware - and drivers > can coordinate between mux selection and probing for cards. > > Signed-off-by: Josua Mayer <josua@solid-run.com> > --- > Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > Acked-by: Rob Herring (Arm) <robh@kernel.org>
© 2016 - 2026 Red Hat, Inc.