* [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux
@ 2025-12-01 12:31 Josua Mayer
2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Josua Mayer @ 2025-12-01 12:31 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, Magnus Damm, Wolfram Sang
Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc,
devicetree, linux-kernel, linux-renesas-soc, Josua Mayer
Some Renesas SoC based boards mux SD and eMMC on a single sdio
controller, exposing user control by dip switch and software control by
gpio.
Purpose is to simplify development and provisioning by selecting boot
media at power-on, and again before starting linux.
Add binding and driver support for linking a (gpio) mux to renesas sdio
controller.
Signed-off-by: Josua Mayer <josua@solid-run.com>
---
Changes in v2:
- dropped mux-controller node from dt binding example
(Reported-by: Conor Dooley <conor@kernel.org>
Reported-by: Krzysztof Kozlowski <krzk@kernel.org>)
- Link to v1: https://lore.kernel.org/r/20251128-rz-sdio-mux-v1-0-1ede318d160f@solid-run.com
---
Josua Mayer (2):
dt-bindings: mmc: renesas,sdhi: Add mux-states property
mmc: host: renesas_sdhi_core: support configuring an optional sdio mux
.../devicetree/bindings/mmc/renesas,sdhi.yaml | 6 +++++
drivers/mmc/host/Kconfig | 1 +
drivers/mmc/host/renesas_sdhi.h | 1 +
drivers/mmc/host/renesas_sdhi_core.c | 27 +++++++++++++++++++---
4 files changed, 32 insertions(+), 3 deletions(-)
---
base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
change-id: 20251128-rz-sdio-mux-acc5137f1618
Best regards,
--
Josua Mayer <josua@solid-run.com>
^ permalink raw reply [flat|nested] 14+ messages in thread* [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 12:31 [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer @ 2025-12-01 12:31 ` Josua Mayer 2025-12-01 13:02 ` Biju Das ` (2 more replies) 2025-12-01 12:31 ` [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer 2025-12-01 13:17 ` [PATCH v2 0/2] " Biju Das 2 siblings, 3 replies; 14+ messages in thread From: Josua Mayer @ 2025-12-01 12:31 UTC (permalink / raw) To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc, devicetree, linux-kernel, linux-renesas-soc, Josua Mayer 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 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* RE: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer @ 2025-12-01 13:02 ` Biju Das 2025-12-01 14:00 ` Josua Mayer 2025-12-08 1:25 ` Rob Herring (Arm) 2025-12-09 12:08 ` Ulf Hansson 2 siblings, 1 reply; 14+ messages in thread From: Biju Das @ 2025-12-01 13:02 UTC (permalink / raw) To: Josua Mayer, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Hi Josua Mayer, Thanks for the patch. > -----Original Message----- > From: Josua Mayer <josua@solid-run.com> > Sent: 01 December 2025 12:31 > Subject: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property > > 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. Maybe describe 0 - state for SD and 1 - state for 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>; On R-Car mmc/sd mux available only on SD2/SD3, so I guess you picked wrong node SD0?? or Add separate example with RZ/G2L, as the boards(RZ/G2L SMARC EVK) use gpio/switch (XOR function) to select the eMMC or SD signals?? Cheers, Biju ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 13:02 ` Biju Das @ 2025-12-01 14:00 ` Josua Mayer 2025-12-01 14:15 ` Biju Das 0 siblings, 1 reply; 14+ messages in thread From: Josua Mayer @ 2025-12-01 14:00 UTC (permalink / raw) To: Biju Das, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Hi Biju, Am 01.12.25 um 14:02 schrieb Biju Das: > Hi Josua Mayer, > > > Thanks for the patch. > >> -----Original Message----- >> From: Josua Mayer <josua@solid-run.com> >> Sent: 01 December 2025 12:31 >> Subject: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property >> >> 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. > Maybe describe 0 - state for SD and 1 - state for eMMC ?? The state-mmc-sd mapping depends on the wiring and description of the mux, so we cannot differentiate in the mux-states property. The idea is that whatever numeric argument you add to the phandle will select a particular state for the mux. The rest of dt properties must still be specific to SD or eMMC, e.g.: &sdhi0 { pinctrl-0 = <&sdhi0_pins>, <&sdhi0_cd_pins>; pinctrl-1 = <&sdhi0_uhs_pins>, <&sdhi0_cd_pins>; pinctrl-names = "default", "state_uhs"; vmmc-supply = <&vmmc>; vqmmc-supply = <®_pmic_ldo1>; bus-width = <4>; sd-uhs-sdr50; sd-uhs-sdr104; full-pwr-cycle; mux-states = <&sdhi0_mux 1>; status = "okay"; }; > > >> + 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>; > On R-Car mmc/sd mux available only on SD2/SD3, so I guess you picked wrong node SD0?? As they were examples I did not give it much thought, We could even omit mux-states from examples completely since it is optional. > > or > > Add separate example with RZ/G2L, as the boards(RZ/G2L SMARC EVK) > use gpio/switch (XOR function) to select the eMMC or SD signals?? I can if so desired add verbose example from our own G2L based board, e.g.: sdhi0: mmc@11c00000 { compatible = "renesas,sdhi-r9a07g044", "renesas,rzg2l-sdhi"; reg = <0x0 0x11c00000 0 0x10000>; interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK>, <&cpg CPG_MOD R9A07G044_SDHI0_CLK_HS>, <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK2>, <&cpg CPG_MOD R9A07G044_SDHI0_ACLK>; clock-names = "core", "clkh", "cd", "aclk"; resets = <&cpg R9A07G044_SDHI0_IXRST>; power-domains = <&cpg>; pinctrl-0 = <&sdhi0_pins>, <&sdhi0_cd_pins>; pinctrl-1 = <&sdhi0_uhs_pins>, <&sdhi0_cd_pins>; pinctrl-names = "default", "state_uhs"; vmmc-supply = <&vmmc>; vqmmc-supply = <®_pmic_ldo1>; bus-width = <4>; sd-uhs-sdr50; sd-uhs-sdr104; full-pwr-cycle; mux-states = <&sdhi0_mux 1>; }; I do not believe however that this is adding any value. ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 14:00 ` Josua Mayer @ 2025-12-01 14:15 ` Biju Das 0 siblings, 0 replies; 14+ messages in thread From: Biju Das @ 2025-12-01 14:15 UTC (permalink / raw) To: Josua Mayer, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Hi Josua Mayer, Thanks for the feedback. > -----Original Message----- > From: Josua Mayer <josua@solid-run.com> > Sent: 01 December 2025 14:01 > Subject: Re: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property > > Hi Biju, > > Am 01.12.25 um 14:02 schrieb Biju Das: > > Hi Josua Mayer, > > > > > > Thanks for the patch. > > > >> -----Original Message----- > >> From: Josua Mayer <josua@solid-run.com> > >> Sent: 01 December 2025 12:31 > >> Subject: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add > >> mux-states property > >> > >> 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. > > Maybe describe 0 - state for SD and 1 - state for eMMC ?? > The state-mmc-sd mapping depends on the wiring and description of the mux, so we cannot differentiate > in the mux-states property. OK. Agreed. > > The idea is that whatever numeric argument you add to the phandle will select a particular state for > the mux. > The rest of dt properties must still be specific to SD or eMMC, e.g.: > > &sdhi0 { > pinctrl-0 = <&sdhi0_pins>, <&sdhi0_cd_pins>; > pinctrl-1 = <&sdhi0_uhs_pins>, <&sdhi0_cd_pins>; > pinctrl-names = "default", "state_uhs"; > vmmc-supply = <&vmmc>; > vqmmc-supply = <®_pmic_ldo1>; > bus-width = <4>; > sd-uhs-sdr50; > sd-uhs-sdr104; > full-pwr-cycle; > mux-states = <&sdhi0_mux 1>; > status = "okay"; > }; > > > > > > >> + 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>; > > On R-Car mmc/sd mux available only on SD2/SD3, so I guess you picked wrong node SD0?? > As they were examples I did not give it much thought, We could even omit mux-states from examples > completely since it is optional. OK, I guess that is also fine, instead of the wrong usage in sd0 device node. > > > > or > > > > Add separate example with RZ/G2L, as the boards(RZ/G2L SMARC EVK) use > > gpio/switch (XOR function) to select the eMMC or SD signals?? > > I can if so desired add verbose example from our own G2L based board, e.g.: > > sdhi0: mmc@11c00000 { > compatible = "renesas,sdhi-r9a07g044", "renesas,rzg2l-sdhi"; > reg = <0x0 0x11c00000 0 0x10000>; > interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK>, > <&cpg CPG_MOD R9A07G044_SDHI0_CLK_HS>, > <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK2>, > <&cpg CPG_MOD R9A07G044_SDHI0_ACLK>; > clock-names = "core", "clkh", "cd", "aclk"; > resets = <&cpg R9A07G044_SDHI0_IXRST>; > power-domains = <&cpg>; > pinctrl-0 = <&sdhi0_pins>, <&sdhi0_cd_pins>; > pinctrl-1 = <&sdhi0_uhs_pins>, <&sdhi0_cd_pins>; > pinctrl-names = "default", "state_uhs"; > vmmc-supply = <&vmmc>; > vqmmc-supply = <®_pmic_ldo1>; > bus-width = <4>; > sd-uhs-sdr50; > sd-uhs-sdr104; > full-pwr-cycle; > mux-states = <&sdhi0_mux 1>; > }; > > I do not believe however that this is adding any value. Maybe Wolfram/Geert can comment on this. Looks like SD mux is an important feature of the SoC. Previously I got feedback to provide real example. This rule might have changed?? Cheers, Biju ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer 2025-12-01 13:02 ` Biju Das @ 2025-12-08 1:25 ` Rob Herring (Arm) 2025-12-09 12:08 ` Ulf Hansson 2 siblings, 0 replies; 14+ messages in thread From: Rob Herring (Arm) @ 2025-12-08 1:25 UTC (permalink / raw) To: Josua Mayer Cc: linux-mmc, Conor Dooley, Jon Nettleton, Geert Uytterhoeven, linux-kernel, Yazan Shhady, Mikhail Anikin, Ulf Hansson, Wolfram Sang, devicetree, Magnus Damm, Krzysztof Kozlowski, linux-renesas-soc 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> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer 2025-12-01 13:02 ` Biju Das 2025-12-08 1:25 ` Rob Herring (Arm) @ 2025-12-09 12:08 ` Ulf Hansson 2025-12-10 14:49 ` Josua Mayer 2 siblings, 1 reply; 14+ messages in thread From: Ulf Hansson @ 2025-12-09 12:08 UTC (permalink / raw) To: Josua Mayer Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc, devicetree, linux-kernel, linux-renesas-soc 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property 2025-12-09 12:08 ` Ulf Hansson @ 2025-12-10 14:49 ` Josua Mayer 0 siblings, 0 replies; 14+ messages in thread From: Josua Mayer @ 2025-12-10 14:49 UTC (permalink / raw) To: Ulf Hansson Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Am 09.12.25 um 13:08 schrieb Ulf Hansson: > 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. Agreed. > >> 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. Ack. > >> 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". Agreed. I will replace here, and reword each commit description for v3. > >> + 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 > > ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-01 12:31 [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer @ 2025-12-01 12:31 ` Josua Mayer 2025-12-08 1:24 ` Rob Herring 2025-12-01 13:17 ` [PATCH v2 0/2] " Biju Das 2 siblings, 1 reply; 14+ messages in thread From: Josua Mayer @ 2025-12-01 12:31 UTC (permalink / raw) To: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc, devicetree, linux-kernel, linux-renesas-soc, Josua Mayer Some hardware designs route sdio signals through a mux to support multiple devices on a single sdio controller. In particular SolidRun RZ/G2L/G2LC/V2L System on Module use a mux for switching between soldered eMMC and an optional microSD on a carrier board, e.g. for development or provisioning. SDIO is not well suited for runtime switching between different cards, however boot-time selection is possible and useful in particular with dt overlays. Add support for an optional sdio mux defined in dt and select it during probe. Similar functionality already exists in other places, e.g. i2c-omap. Signed-off-by: Josua Mayer <josua@solid-run.com> --- drivers/mmc/host/Kconfig | 1 + drivers/mmc/host/renesas_sdhi.h | 1 + drivers/mmc/host/renesas_sdhi_core.c | 27 ++++++++++++++++++++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 2c963cb6724b9..c01ab7d81a5af 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -707,6 +707,7 @@ config MMC_SDHI depends on SUPERH || ARCH_RENESAS || COMPILE_TEST depends on (RESET_CONTROLLER && REGULATOR) || !OF select MMC_TMIO_CORE + select MULTIPLEXER help This provides support for the SDHI SD/SDIO controller found in Renesas SuperH, ARM and ARM64 based SoCs diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h index 084964cecf9d8..9508908d8179f 100644 --- a/drivers/mmc/host/renesas_sdhi.h +++ b/drivers/mmc/host/renesas_sdhi.h @@ -97,6 +97,7 @@ struct renesas_sdhi { struct reset_control *rstc; struct tmio_mmc_host *host; struct regulator_dev *rdev; + struct mux_state *mux_state; }; #define host_to_priv(host) \ diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c index f56fa2cd208dd..c58f412ea2028 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -26,6 +26,7 @@ #include <linux/mmc/mmc.h> #include <linux/mmc/slot-gpio.h> #include <linux/module.h> +#include <linux/mux/consumer.h> #include <linux/pinctrl/consumer.h> #include <linux/pinctrl/pinctrl-state.h> #include <linux/platform_data/tmio.h> @@ -1061,6 +1062,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, struct regulator_dev *rdev; struct renesas_sdhi_dma *dma_priv; struct device *dev = &pdev->dev; + struct device_node *node = pdev->dev.of_node; struct tmio_mmc_host *host; struct renesas_sdhi *priv; int num_irqs, irq, ret, i; @@ -1115,9 +1117,25 @@ int renesas_sdhi_probe(struct platform_device *pdev, "state_uhs"); } + if (of_property_present(node, "mux-states")) { + priv->mux_state = devm_mux_state_get(&pdev->dev, NULL); + if (IS_ERR(priv->mux_state)) { + ret = PTR_ERR(priv->mux_state); + dev_dbg(&pdev->dev, "failed to get SDIO mux: %d\n", ret); + return ret; + } + ret = mux_state_select(priv->mux_state); + if (ret) { + dev_err(&pdev->dev, "failed to select SDIO mux: %d\n", ret); + return ret; + } + } + host = tmio_mmc_host_alloc(pdev, mmc_data); - if (IS_ERR(host)) - return PTR_ERR(host); + if (IS_ERR(host)) { + ret = PTR_ERR(host); + goto edselmux; + } priv->host = host; @@ -1200,7 +1218,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, ret = renesas_sdhi_clk_enable(host); if (ret) - return ret; + goto edselmux; rcfg.of_node = of_get_available_child_by_name(dev->of_node, "vqmmc-regulator"); if (rcfg.of_node) { @@ -1304,6 +1322,9 @@ int renesas_sdhi_probe(struct platform_device *pdev, edisclk: renesas_sdhi_clk_disable(host); +edselmux: + if (priv->mux_state) + mux_state_deselect(priv->mux_state); return ret; } EXPORT_SYMBOL_GPL(renesas_sdhi_probe); -- 2.51.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-01 12:31 ` [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer @ 2025-12-08 1:24 ` Rob Herring 2025-12-10 14:54 ` Josua Mayer 0 siblings, 1 reply; 14+ messages in thread From: Rob Herring @ 2025-12-08 1:24 UTC (permalink / raw) To: Josua Mayer Cc: Ulf Hansson, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc, devicetree, linux-kernel, linux-renesas-soc On Mon, Dec 01, 2025 at 01:31:11PM +0100, Josua Mayer wrote: > Some hardware designs route sdio signals through a mux to support > multiple devices on a single sdio controller. > In particular SolidRun RZ/G2L/G2LC/V2L System on Module use a mux for > switching between soldered eMMC and an optional microSD on a carrier > board, e.g. for development or provisioning. > > SDIO is not well suited for runtime switching between different cards, > however boot-time selection is possible and useful in particular with dt > overlays. > > Add support for an optional sdio mux defined in dt and select it during > probe. > > Similar functionality already exists in other places, e.g. i2c-omap. > > Signed-off-by: Josua Mayer <josua@solid-run.com> > --- > drivers/mmc/host/Kconfig | 1 + > drivers/mmc/host/renesas_sdhi.h | 1 + > drivers/mmc/host/renesas_sdhi_core.c | 27 ++++++++++++++++++++++++--- > 3 files changed, 26 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig > index 2c963cb6724b9..c01ab7d81a5af 100644 > --- a/drivers/mmc/host/Kconfig > +++ b/drivers/mmc/host/Kconfig > @@ -707,6 +707,7 @@ config MMC_SDHI > depends on SUPERH || ARCH_RENESAS || COMPILE_TEST > depends on (RESET_CONTROLLER && REGULATOR) || !OF > select MMC_TMIO_CORE > + select MULTIPLEXER > help > This provides support for the SDHI SD/SDIO controller found in > Renesas SuperH, ARM and ARM64 based SoCs > diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h > index 084964cecf9d8..9508908d8179f 100644 > --- a/drivers/mmc/host/renesas_sdhi.h > +++ b/drivers/mmc/host/renesas_sdhi.h > @@ -97,6 +97,7 @@ struct renesas_sdhi { > struct reset_control *rstc; > struct tmio_mmc_host *host; > struct regulator_dev *rdev; > + struct mux_state *mux_state; > }; > > #define host_to_priv(host) \ > diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c > index f56fa2cd208dd..c58f412ea2028 100644 > --- a/drivers/mmc/host/renesas_sdhi_core.c > +++ b/drivers/mmc/host/renesas_sdhi_core.c > @@ -26,6 +26,7 @@ > #include <linux/mmc/mmc.h> > #include <linux/mmc/slot-gpio.h> > #include <linux/module.h> > +#include <linux/mux/consumer.h> > #include <linux/pinctrl/consumer.h> > #include <linux/pinctrl/pinctrl-state.h> > #include <linux/platform_data/tmio.h> > @@ -1061,6 +1062,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, > struct regulator_dev *rdev; > struct renesas_sdhi_dma *dma_priv; > struct device *dev = &pdev->dev; > + struct device_node *node = pdev->dev.of_node; > struct tmio_mmc_host *host; > struct renesas_sdhi *priv; > int num_irqs, irq, ret, i; > @@ -1115,9 +1117,25 @@ int renesas_sdhi_probe(struct platform_device *pdev, > "state_uhs"); > } > > + if (of_property_present(node, "mux-states")) { > + priv->mux_state = devm_mux_state_get(&pdev->dev, NULL); These 2 lines are really just devm_mux_state_get_optional(). Add it if it doesn't exist. > + if (IS_ERR(priv->mux_state)) { > + ret = PTR_ERR(priv->mux_state); > + dev_dbg(&pdev->dev, "failed to get SDIO mux: %d\n", ret); > + return ret; > + } > + ret = mux_state_select(priv->mux_state); > + if (ret) { > + dev_err(&pdev->dev, "failed to select SDIO mux: %d\n", ret); Is there a case where mux_state_select() failing is not an error? If not, mux_state_select() should do the printing. > + return ret; > + } > + } ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-08 1:24 ` Rob Herring @ 2025-12-10 14:54 ` Josua Mayer 0 siblings, 0 replies; 14+ messages in thread From: Josua Mayer @ 2025-12-10 14:54 UTC (permalink / raw) To: Rob Herring Cc: Ulf Hansson, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Am 08.12.25 um 02:24 schrieb Rob Herring: > On Mon, Dec 01, 2025 at 01:31:11PM +0100, Josua Mayer wrote: >> Some hardware designs route sdio signals through a mux to support >> multiple devices on a single sdio controller. >> In particular SolidRun RZ/G2L/G2LC/V2L System on Module use a mux for >> switching between soldered eMMC and an optional microSD on a carrier >> board, e.g. for development or provisioning. >> >> SDIO is not well suited for runtime switching between different cards, >> however boot-time selection is possible and useful in particular with dt >> overlays. >> >> Add support for an optional sdio mux defined in dt and select it during >> probe. >> >> Similar functionality already exists in other places, e.g. i2c-omap. >> >> Signed-off-by: Josua Mayer <josua@solid-run.com> >> --- >> drivers/mmc/host/Kconfig | 1 + >> drivers/mmc/host/renesas_sdhi.h | 1 + >> drivers/mmc/host/renesas_sdhi_core.c | 27 ++++++++++++++++++++++++--- >> 3 files changed, 26 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig >> index 2c963cb6724b9..c01ab7d81a5af 100644 >> --- a/drivers/mmc/host/Kconfig >> +++ b/drivers/mmc/host/Kconfig >> @@ -707,6 +707,7 @@ config MMC_SDHI >> depends on SUPERH || ARCH_RENESAS || COMPILE_TEST >> depends on (RESET_CONTROLLER && REGULATOR) || !OF >> select MMC_TMIO_CORE >> + select MULTIPLEXER >> help >> This provides support for the SDHI SD/SDIO controller found in >> Renesas SuperH, ARM and ARM64 based SoCs >> diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdhi.h >> index 084964cecf9d8..9508908d8179f 100644 >> --- a/drivers/mmc/host/renesas_sdhi.h >> +++ b/drivers/mmc/host/renesas_sdhi.h >> @@ -97,6 +97,7 @@ struct renesas_sdhi { >> struct reset_control *rstc; >> struct tmio_mmc_host *host; >> struct regulator_dev *rdev; >> + struct mux_state *mux_state; >> }; >> >> #define host_to_priv(host) \ >> diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c >> index f56fa2cd208dd..c58f412ea2028 100644 >> --- a/drivers/mmc/host/renesas_sdhi_core.c >> +++ b/drivers/mmc/host/renesas_sdhi_core.c >> @@ -26,6 +26,7 @@ >> #include <linux/mmc/mmc.h> >> #include <linux/mmc/slot-gpio.h> >> #include <linux/module.h> >> +#include <linux/mux/consumer.h> >> #include <linux/pinctrl/consumer.h> >> #include <linux/pinctrl/pinctrl-state.h> >> #include <linux/platform_data/tmio.h> >> @@ -1061,6 +1062,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, >> struct regulator_dev *rdev; >> struct renesas_sdhi_dma *dma_priv; >> struct device *dev = &pdev->dev; >> + struct device_node *node = pdev->dev.of_node; >> struct tmio_mmc_host *host; >> struct renesas_sdhi *priv; >> int num_irqs, irq, ret, i; >> @@ -1115,9 +1117,25 @@ int renesas_sdhi_probe(struct platform_device *pdev, >> "state_uhs"); >> } >> >> + if (of_property_present(node, "mux-states")) { >> + priv->mux_state = devm_mux_state_get(&pdev->dev, NULL); > These 2 lines are really just devm_mux_state_get_optional(). Add it if > it doesn't exist. Other drivers have so far avoided introducing a general helper for this. Notably drivers/phy/phy-can-transceiver.c has already implemented its own version of devm_mux_state_get_optional. > >> + if (IS_ERR(priv->mux_state)) { >> + ret = PTR_ERR(priv->mux_state); >> + dev_dbg(&pdev->dev, "failed to get SDIO mux: %d\n", ret); >> + return ret; >> + } >> + ret = mux_state_select(priv->mux_state); >> + if (ret) { >> + dev_err(&pdev->dev, "failed to select SDIO mux: %d\n", ret); > Is there a case where mux_state_select() failing is not an error? I suppose it is always an error. > If > not, mux_state_select() should do the printing. Possibly. Except when it is EDEFER. Inside driver we would use dev_err_probe in this case. Should helpers do the same? > >> + return ret; >> + } >> + } ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-01 12:31 [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer 2025-12-01 12:31 ` [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer @ 2025-12-01 13:17 ` Biju Das 2025-12-01 14:21 ` Josua Mayer 2 siblings, 1 reply; 14+ messages in thread From: Biju Das @ 2025-12-01 13:17 UTC (permalink / raw) To: Josua Mayer, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org > -----Original Message----- > From: Josua Mayer <josua@solid-run.com> > Sent: 01 December 2025 12:31 > Subject: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux > > Some Renesas SoC based boards mux SD and eMMC on a single sdio controller, exposing user control by > dip switch and software control by gpio. > > Purpose is to simplify development and provisioning by selecting boot media at power-on, and again > before starting linux. Does it mean, you boot with eSD mode, boot the linux with SD mode and flash the image to eMMC?? and then, switch to eMMC boot mode and boot everything from eMMC?? Or boot with eSD mode, flash emmc images at initramfs level/u-boot level and then, switch to eMMC boot mode and boot everything from eMMC?? Cheers, Biju ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-01 13:17 ` [PATCH v2 0/2] " Biju Das @ 2025-12-01 14:21 ` Josua Mayer 2025-12-01 14:27 ` Biju Das 0 siblings, 1 reply; 14+ messages in thread From: Josua Mayer @ 2025-12-01 14:21 UTC (permalink / raw) To: Biju Das, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Am 01.12.25 um 14:17 schrieb Biju Das: > >> -----Original Message----- >> From: Josua Mayer <josua@solid-run.com> >> Sent: 01 December 2025 12:31 >> Subject: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux >> >> Some Renesas SoC based boards mux SD and eMMC on a single sdio controller, exposing user control by >> dip switch and software control by gpio. >> >> Purpose is to simplify development and provisioning by selecting boot media at power-on, and again >> before starting linux. > Does it mean, you boot with eSD mode, boot the linux with SD mode and flash the image to eMMC?? > > and then, switch to eMMC boot mode and boot everything from eMMC?? > > > Or > > boot with eSD mode, flash emmc images at initramfs level/u-boot level > > and then, switch to eMMC boot mode and boot everything from eMMC?? The latter. DIP switch decides bootloader starting from eMMC or SD. Then u-boot has complete freedom. Finally U-Boot shall load (and patch) DTB for either eMMC or SD. Regardless of whether rootfs is initramfs or physical media. ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux 2025-12-01 14:21 ` Josua Mayer @ 2025-12-01 14:27 ` Biju Das 0 siblings, 0 replies; 14+ messages in thread From: Biju Das @ 2025-12-01 14:27 UTC (permalink / raw) To: Josua Mayer, Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, wsa+renesas Cc: Mikhail Anikin, Yazan Shhady, Jon Nettleton, linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Hi Josua Mayer, > -----Original Message----- > From: Josua Mayer <josua@solid-run.com> > Sent: 01 December 2025 14:21 > Subject: Re: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux > > Am 01.12.25 um 14:17 schrieb Biju Das: > > > >> -----Original Message----- > >> From: Josua Mayer <josua@solid-run.com> > >> Sent: 01 December 2025 12:31 > >> Subject: [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support > >> configuring an optional sdio mux > >> > >> Some Renesas SoC based boards mux SD and eMMC on a single sdio > >> controller, exposing user control by dip switch and software control by gpio. > >> > >> Purpose is to simplify development and provisioning by selecting boot > >> media at power-on, and again before starting linux. > > Does it mean, you boot with eSD mode, boot the linux with SD mode and flash the image to eMMC?? > > > > and then, switch to eMMC boot mode and boot everything from eMMC?? > > > > > > Or > > > > boot with eSD mode, flash emmc images at initramfs level/u-boot level > > > > and then, switch to eMMC boot mode and boot everything from eMMC?? > > The latter. > > DIP switch decides bootloader starting from eMMC or SD. > Then u-boot has complete freedom. > > Finally U-Boot shall load (and patch) DTB for either eMMC or SD. > Regardless of whether rootfs is initramfs or physical media. OK, it is clear now. Cheers, Biju ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-12-10 14:55 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-12-01 12:31 [PATCH v2 0/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer 2025-12-01 12:31 ` [PATCH v2 1/2] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer 2025-12-01 13:02 ` Biju Das 2025-12-01 14:00 ` Josua Mayer 2025-12-01 14:15 ` Biju Das 2025-12-08 1:25 ` Rob Herring (Arm) 2025-12-09 12:08 ` Ulf Hansson 2025-12-10 14:49 ` Josua Mayer 2025-12-01 12:31 ` [PATCH v2 2/2] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer 2025-12-08 1:24 ` Rob Herring 2025-12-10 14:54 ` Josua Mayer 2025-12-01 13:17 ` [PATCH v2 0/2] " Biju Das 2025-12-01 14:21 ` Josua Mayer 2025-12-01 14:27 ` Biju Das
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).