Document pinctrl properties to support voltage-dependent pin
configuration switching for UHS-I SD card modes.
Add optional pinctrl-names property with two states:
- "default": For 3.3V operation with standard drive strength
- "state_uhs": For 1.8V operation with optimized drive strength
These pinctrl states allow the SDHCI driver to coordinate voltage
switching with pin configuration changes, ensuring proper signal
integrity during UHS-I mode transitions.
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
.../devicetree/bindings/mmc/spacemit,sdhci.yaml | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml
index 9a055d963a7f0cdba4741c1e3e7269688dcd5f45..201ab97f0e88376a4680dcca7917e8b3172bd84a 100644
--- a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml
+++ b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml
@@ -44,6 +44,20 @@ properties:
- const: axi
- const: sdh
+ pinctrl-names:
+ minItems: 1
+ maxItems: 2
+ items:
+ enum:
+ - default
+ - state_uhs
+
+ pinctrl-0:
+ description: Default pinctrl state for 3.3V operation
+
+ pinctrl-1:
+ description: Optional pinctrl state for 1.8V UHS operation
+
required:
- compatible
- reg
@@ -62,4 +76,7 @@ examples:
interrupt-parent = <&plic>;
clocks = <&clk_apmu 10>, <&clk_apmu 13>;
clock-names = "core", "io";
+ pinctrl-names = "default", "state_uhs";
+ pinctrl-0 = <&sdhci_default_cfg>;
+ pinctrl-1 = <&sdhci_uhs_cfg>;
};
--
2.53.0
On Mon, Mar 30, 2026 at 10:38:02AM +0200, Iker Pedrosa wrote: > Document pinctrl properties to support voltage-dependent pin > configuration switching for UHS-I SD card modes. > > Add optional pinctrl-names property with two states: > - "default": For 3.3V operation with standard drive strength > - "state_uhs": For 1.8V operation with optimized drive strength > > These pinctrl states allow the SDHCI driver to coordinate voltage > switching with pin configuration changes, ensuring proper signal > integrity during UHS-I mode transitions. > > Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com> > --- > .../devicetree/bindings/mmc/spacemit,sdhci.yaml | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > index 9a055d963a7f0cdba4741c1e3e7269688dcd5f45..201ab97f0e88376a4680dcca7917e8b3172bd84a 100644 > --- a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > +++ b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > @@ -44,6 +44,20 @@ properties: > - const: axi > - const: sdh > > + pinctrl-names: > + minItems: 1 > + maxItems: 2 > + items: > + enum: No, that's not enum but list. Look here: > + - default > + - state_uhs Instead: uhs > + > + pinctrl-0: > + description: Default pinctrl state for 3.3V operation So first item must be default, not uhs Best regards, Krzysztof
On Tue, 31 Mar 2026 at 08:48, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On Mon, Mar 30, 2026 at 10:38:02AM +0200, Iker Pedrosa wrote: > > Document pinctrl properties to support voltage-dependent pin > > configuration switching for UHS-I SD card modes. > > > > Add optional pinctrl-names property with two states: > > - "default": For 3.3V operation with standard drive strength > > - "state_uhs": For 1.8V operation with optimized drive strength > > > > These pinctrl states allow the SDHCI driver to coordinate voltage > > switching with pin configuration changes, ensuring proper signal > > integrity during UHS-I mode transitions. > > > > Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com> > > --- > > .../devicetree/bindings/mmc/spacemit,sdhci.yaml | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > > index 9a055d963a7f0cdba4741c1e3e7269688dcd5f45..201ab97f0e88376a4680dcca7917e8b3172bd84a 100644 > > --- a/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > > +++ b/Documentation/devicetree/bindings/mmc/spacemit,sdhci.yaml > > @@ -44,6 +44,20 @@ properties: > > - const: axi > > - const: sdh > > > > + pinctrl-names: > > + minItems: 1 > > + maxItems: 2 > > + items: > > + enum: > > No, that's not enum but list. Look here: > > > + - default > > + - state_uhs > > Instead: uhs While I agree that "uhs" would be better, we have tried to stick with "state_uhs" for legacy and consistency reasons with other mmc controllers. No strong opinion though, what do you think? [...] Kind regards Uffe
On 31/03/2026 12:58, Ulf Hansson wrote: >>> + - default >>> + - state_uhs >> >> Instead: uhs > > While I agree that "uhs" would be better, we have tried to stick with > "state_uhs" for legacy and consistency reasons with other mmc > controllers. > > No strong opinion though, what do you think? > I missed that it is already present in other places. Is the name coming from any other referenced schema like mmc-controller? Does the existing common driver code expect state_uhs? If yes, then go with state_uhs, if not then let's switch to new name. Old conventions in the bindings can be changed, we already do many things differently than 10 years ago (e.g. no underscores in node and property names). But followup question - the binding is called sdhci, so maybe sdhci common schema should be referenced? Best regards, Krzysztof
On Tue, 31 Mar 2026 at 13:11, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 31/03/2026 12:58, Ulf Hansson wrote: > >>> + - default > >>> + - state_uhs > >> > >> Instead: uhs > > > > While I agree that "uhs" would be better, we have tried to stick with > > "state_uhs" for legacy and consistency reasons with other mmc > > controllers. > > > > No strong opinion though, what do you think? > > > > I missed that it is already present in other places. Is the name coming > from any other referenced schema like mmc-controller? Does the existing > common driver code expect state_uhs? No common schema or binding states that it must be "state_uhs". It's all described on a per-controller basis, but I was thinking we should perhaps make it common at some point. > > If yes, then go with state_uhs, if not then let's switch to new name. > Old conventions in the bindings can be changed, we already do many > things differently than 10 years ago (e.g. no underscores in node and > property names). Okay, let's go with solely "uhs" then. At some point we should make this part of the common mmc-controller bindings too. > > But followup question - the binding is called sdhci, so maybe sdhci > common schema should be referenced? Yes, that seems reasonable. Kind regards Uffe
© 2016 - 2026 Red Hat, Inc.