On 19/01/2023 7:47 UTC, Krzysztof Kozlowski wrote: >On 19/01/2023 04:51, Brad Larson wrote: >> AMD Pensando Elba ARM 64-bit SoC is integrated with this IP and >> explicitly controls byte-lane enables. >> ... >> diff --git a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml >> index 8b1a0fdcb5e3..f7dd6f990f96 100644 >> --- a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml >> +++ b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml >> @@ -16,12 +16,14 @@ properties: >> compatible: >> items: >> - enum: >> + - amd,pensando-elba-sd4hc >> - microchip,mpfs-sd4hc >> - socionext,uniphier-sd4hc >> - const: cdns,sd4hc >> >> reg: >> - maxItems: 1 >> + minItems: 1 >> + maxItems: 2 >> >> interrupts: >> maxItems: 1 >> @@ -111,12 +113,36 @@ properties: >> minimum: 0 >> maximum: 0x7f >> >> + reset-names: >> + items: >> + - const: hw >> + >> + resets: >> + description: >> + optional. phandle to the system reset controller with line index > >Drop "optional" >Drop "phandle to the" and rephrase it to describe physical reset line. >Don't describe here DT syntax (phandle) but the hardware. What is >expected to be here? Done, see the resulting diff below for full context. The missing 'contains' was the bug. >> + for mmc hw reset line if exists. >> + maxItems: 1 >> + >> required: >> - compatible >> - reg >> - interrupts >> - clocks >> >> +if: > >Move the allO from the top here and put it under it. Saves indentation soon. Yes. >> + properties: >> + compatible: >> + const: amd,pensando-elba-sd4hc > >BTW, this probably won't even work and that's the answer why you added >fake maxItems: 2... This should make you think about the bug. You must >use contains. That was the problem, see updated diff below. Passes dtbs_check and dt_binding_check. >> +then: >> + properties: >> + reg: >> + minItems: 2 >> +else: >> + properties: >> + reg: >> + minItems: 1 >> + maxItems: 2 > >No, why do you suddenly allow two items on all variants? This was not >described in your commit msg at all, so I expect here maxItems: 1. Set maxItems: 1. >Also, unless your reset is applicable to all variants, resets: false and >reset-names: false. Added false for both, this is the diff with above changes --- a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml +++ b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml @@ -9,19 +9,18 @@ title: Cadence SD/SDIO/eMMC Host Controller (SD4HC) maintainers: - Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> -allOf: - - $ref: mmc-controller.yaml - properties: compatible: items: - enum: + - amd,pensando-elba-sd4hc - microchip,mpfs-sd4hc - socionext,uniphier-sd4hc - const: cdns,sd4hc reg: - maxItems: 1 + minItems: 1 + maxItems: 2 interrupts: maxItems: 1 @@ -111,12 +110,42 @@ properties: minimum: 0 maximum: 0x7f + reset-names: + items: + - const: hw + + resets: + description: + physical line number to hardware reset the mmc + maxItems: 1 + required: - compatible - reg - interrupts - clocks +allOf: + - $ref: mmc-controller.yaml + - if: + properties: + compatible: + contains: + const: amd,pensando-elba-sd4hc + then: + required: + - reset-names + - resets + properties: + reg: + minItems: 2 + else: + properties: + reset-names: false + resets: false + reg: + maxItems: 1 + Regards, Brad