[PATCH v4 2/8] dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix

Frank Li posted 8 patches 1 year, 8 months ago
There is a newer version of this series
[PATCH v4 2/8] dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
Posted by Frank Li 1 year, 8 months ago
According to common mmc core, voltages-ranges should be matrix.

Signed-off-by: Frank Li <Frank.Li@nxp.com>

---
Not sure why it impact other mmc yaml's voltage-ranges.
---
 Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
index 36acc40c7d181..05815b837219d 100644
--- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
+++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
@@ -27,17 +27,20 @@ properties:
     maxItems: 1
 
   voltage-ranges:
-    $ref: /schemas/types.yaml#/definitions/uint32-array
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
     description: |
       Two cells are required, first cell specifies minimum slot voltage (mV),
       second cell specifies maximum slot voltage (mV).
     items:
-      - description: |
-          value for minimum slot voltage in mV
-        default: 3200
-      - description: |
-          value for maximum slot voltage in mV
-        default: 3400
+      items:
+        - description: |
+            value for minimum slot voltage in mV
+          default: 3200
+        - description: |
+            value for maximum slot voltage in mV
+          default: 3400
+    minItems: 1
+    maxItems: 8
 
   gpios:
     description: |

-- 
2.34.1
Re: [PATCH v4 2/8] dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
Posted by Rob Herring 1 year, 8 months ago
On Tue, Jun 11, 2024 at 12:01:47PM -0400, Frank Li wrote:
> According to common mmc core, voltages-ranges should be matrix.
> 
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> 
> ---
> Not sure why it impact other mmc yaml's voltage-ranges.

It's a quirk of the tools. When decoding properties, the tools only know 
all possible types. Types are global, not per binding. Sometimes it can 
be figured out, but cases like this cannot be.

> ---
>  Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> index 36acc40c7d181..05815b837219d 100644
> --- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> +++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> @@ -27,17 +27,20 @@ properties:
>      maxItems: 1
>  
>    voltage-ranges:
> -    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    $ref: /schemas/types.yaml#/definitions/uint32-matrix
>      description: |
>        Two cells are required, first cell specifies minimum slot voltage (mV),
>        second cell specifies maximum slot voltage (mV).
>      items:
> -      - description: |
> -          value for minimum slot voltage in mV
> -        default: 3200
> -      - description: |
> -          value for maximum slot voltage in mV
> -        default: 3400
> +      items:
> +        - description: |
> +            value for minimum slot voltage in mV
> +          default: 3200
> +        - description: |
> +            value for maximum slot voltage in mV
> +          default: 3400
> +    minItems: 1
> +    maxItems: 8

From what I remember, SPI mode doesn't support voltage changes. 
Switching to 1.8V came much later in the spec. So it should be 
'maxItems: 1'. Or better yet, make the outer 'items' a list (of 1 
entry).

Rob
Re: [PATCH v4 2/8] dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
Posted by Frank Li 1 year, 8 months ago
On Tue, Jun 11, 2024 at 02:23:11PM -0600, Rob Herring wrote:
> On Tue, Jun 11, 2024 at 12:01:47PM -0400, Frank Li wrote:
> > According to common mmc core, voltages-ranges should be matrix.
> > 
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > 
> > ---
> > Not sure why it impact other mmc yaml's voltage-ranges.
> 
> It's a quirk of the tools. When decoding properties, the tools only know 
> all possible types. Types are global, not per binding. Sometimes it can 
> be figured out, but cases like this cannot be.
> 
> > ---
> >  Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml | 17 ++++++++++-------
> >  1 file changed, 10 insertions(+), 7 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> > index 36acc40c7d181..05815b837219d 100644
> > --- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> > +++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
> > @@ -27,17 +27,20 @@ properties:
> >      maxItems: 1
> >  
> >    voltage-ranges:
> > -    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    $ref: /schemas/types.yaml#/definitions/uint32-matrix
> >      description: |
> >        Two cells are required, first cell specifies minimum slot voltage (mV),
> >        second cell specifies maximum slot voltage (mV).
> >      items:
> > -      - description: |
> > -          value for minimum slot voltage in mV
> > -        default: 3200
> > -      - description: |
> > -          value for maximum slot voltage in mV
> > -        default: 3400
> > +      items:
> > +        - description: |
> > +            value for minimum slot voltage in mV
> > +          default: 3200
> > +        - description: |
> > +            value for maximum slot voltage in mV
> > +          default: 3400
> > +    minItems: 1
> > +    maxItems: 8
> 
> From what I remember, SPI mode doesn't support voltage changes. 
> Switching to 1.8V came much later in the spec. So it should be 
> 'maxItems: 1'. Or better yet, make the outer 'items' a list (of 1 
> entry).

I don't understand "make the outer 'items' a list (of 1 entry)." Can guide
me how to write it?

Frank 

> 
> Rob
Re: [PATCH v4 2/8] dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
Posted by Krzysztof Kozlowski 1 year, 8 months ago
On 12/06/2024 16:36, Frank Li wrote:
> On Tue, Jun 11, 2024 at 02:23:11PM -0600, Rob Herring wrote:
>> On Tue, Jun 11, 2024 at 12:01:47PM -0400, Frank Li wrote:
>>> According to common mmc core, voltages-ranges should be matrix.
>>>
>>> Signed-off-by: Frank Li <Frank.Li@nxp.com>
>>>
>>> ---
>>> Not sure why it impact other mmc yaml's voltage-ranges.
>>
>> It's a quirk of the tools. When decoding properties, the tools only know 
>> all possible types. Types are global, not per binding. Sometimes it can 
>> be figured out, but cases like this cannot be.
>>
>>> ---
>>>  Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml | 17 ++++++++++-------
>>>  1 file changed, 10 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
>>> index 36acc40c7d181..05815b837219d 100644
>>> --- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
>>> +++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
>>> @@ -27,17 +27,20 @@ properties:
>>>      maxItems: 1
>>>  
>>>    voltage-ranges:
>>> -    $ref: /schemas/types.yaml#/definitions/uint32-array
>>> +    $ref: /schemas/types.yaml#/definitions/uint32-matrix
>>>      description: |
>>>        Two cells are required, first cell specifies minimum slot voltage (mV),
>>>        second cell specifies maximum slot voltage (mV).
>>>      items:
>>> -      - description: |
>>> -          value for minimum slot voltage in mV
>>> -        default: 3200
>>> -      - description: |
>>> -          value for maximum slot voltage in mV
>>> -        default: 3400
>>> +      items:
>>> +        - description: |
>>> +            value for minimum slot voltage in mV
>>> +          default: 3200
>>> +        - description: |
>>> +            value for maximum slot voltage in mV
>>> +          default: 3400
>>> +    minItems: 1
>>> +    maxItems: 8
>>
>> From what I remember, SPI mode doesn't support voltage changes. 
>> Switching to 1.8V came much later in the spec. So it should be 
>> 'maxItems: 1'. Or better yet, make the outer 'items' a list (of 1 
>> entry).
> 
> I don't understand "make the outer 'items' a list (of 1 entry)." Can guide
> me how to write it?

voltage-ranges:
  $ref: /schemas/types.yaml#/definitions/uint32-matrix
  items:
    - items:
        - descr:
        - descr:

Best regards,
Krzysztof