[v4,5/6] dt-bindings: mmc: sdhci-cadence: SD6 support

Message ID 20230717125146.16791-6-pmalgujar@marvell.com
State New
Headers
Series mmc: sdhci-cadence: SD6 controller support |

Commit Message

Piyush Malgujar July 17, 2023, 12:51 p.m. UTC
  From: Jayanthi Annadurai <jannadurai@marvell.com>

Add support for SD6 controller on Marvell CN10K series SOCs. The
existing sd4hc is not compatible with the SD6 changes.

Signed-off-by: Jayanthi Annadurai <jannadurai@marvell.com>
Signed-off-by: Piyush Malgujar <pmalgujar@marvell.com>
---
 .../devicetree/bindings/mmc/cdns,sdhci.yaml   | 52 ++++++++++++++++---
 1 file changed, 45 insertions(+), 7 deletions(-)
  

Comments

Conor Dooley July 17, 2023, 6:31 p.m. UTC | #1
On Mon, Jul 17, 2023 at 05:51:45AM -0700, Piyush Malgujar wrote:
> From: Jayanthi Annadurai <jannadurai@marvell.com>
> 
> Add support for SD6 controller on Marvell CN10K series SOCs. The
> existing sd4hc is not compatible with the SD6 changes.
> 
> Signed-off-by: Jayanthi Annadurai <jannadurai@marvell.com>
> Signed-off-by: Piyush Malgujar <pmalgujar@marvell.com>
> ---
>  .../devicetree/bindings/mmc/cdns,sdhci.yaml   | 52 ++++++++++++++++---
>  1 file changed, 45 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> index 6c40611405a08717520f4ce3a78a9cb8dd9aac69..51f44c00a50505684c7c7c49c59c1ebd8d85d5d0 100644
> --- a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> +++ b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> @@ -4,19 +4,23 @@
>  $id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>  
> -title: Cadence SD/SDIO/eMMC Host Controller (SD4HC)
> +title: Cadence SD/SDIO/eMMC Host Controller (SD4HC, SD6HC)
>  
>  maintainers:
>    - Masahiro Yamada <yamada.masahiro@socionext.com>
>  
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - amd,pensando-elba-sd4hc
> -          - microchip,mpfs-sd4hc
> -          - socionext,uniphier-sd4hc
> -      - const: cdns,sd4hc
> +    oneOf:
> +      - items:
> +          - enum:
> +              - amd,pensando-elba-sd4hc
> +              - microchip,mpfs-sd4hc
> +              - socionext,uniphier-sd4hc
> +          - const: cdns,sd4hc
> +
> +      - items:
> +          - const: marvell,cdns-sd6hc

This seems like a strange compatible. Why have you not gone for
something like:
compatible = "marvell,$socname-sd6hc", "cdns,sd6hc";
?

>  
>    reg:
>      minItems: 1
> @@ -139,6 +143,40 @@ allOf:
>          reg:
>            maxItems: 1
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: marvell,cdns-sd6hc
> +
> +    then:
> +      properties:
> +        marvell,iocell-input-delay-ps:
> +          description: Delay in ps across the input IO cells

Are all of these things marvell specific, or would other (future) sd6hc
users need these properties too?

Thanks,
Conor.

> +
> +        marvell,iocell-output-delay-ps:
> +          description: Delay in ps across the output IO cells
> +
> +        marvell,delay-element-ps:
> +          description: Delay element in ps used for calculating phy timings
> +
> +        marvell,read-dqs-cmd-delay-ps:
> +          description: Command delay used in HS200 tuning
> +
> +        marvell,tune-val-start-ps:
> +          description: Staring value of data delay used in HS200 tuning
> +
> +        marvell,tune-val-step-ps:
> +          description: Incremental value of data delay used in HS200 tuning
> +
> +      required:
> +        - marvell,iocell-input-delay-ps
> +        - marvell,iocell-output-delay-ps
> +        - marvell,delay-element-ps
> +        - marvell,read-dqs-cmd-delay-ps
> +        - marvell,tune-val-start-ps
> +        - marvell,tune-val-step-ps
> +
>  unevaluatedProperties: false
>  
>  examples:
> -- 
> 2.17.1
>
  
Krzysztof Kozlowski July 17, 2023, 8:06 p.m. UTC | #2
On 17/07/2023 14:51, Piyush Malgujar wrote:
> From: Jayanthi Annadurai <jannadurai@marvell.com>
> 
> Add support for SD6 controller on Marvell CN10K series SOCs. The
> existing sd4hc is not compatible with the SD6 changes.
> 
> Signed-off-by: Jayanthi Annadurai <jannadurai@marvell.com>
> Signed-off-by: Piyush Malgujar <pmalgujar@marvell.com>
> ---
>  .../devicetree/bindings/mmc/cdns,sdhci.yaml   | 52 ++++++++++++++++---
>  1 file changed, 45 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> index 6c40611405a08717520f4ce3a78a9cb8dd9aac69..51f44c00a50505684c7c7c49c59c1ebd8d85d5d0 100644
> --- a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> +++ b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
> @@ -4,19 +4,23 @@
>  $id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml#
>  $schema: http://devicetree.org/meta-schemas/core.yaml#
>  
> -title: Cadence SD/SDIO/eMMC Host Controller (SD4HC)
> +title: Cadence SD/SDIO/eMMC Host Controller (SD4HC, SD6HC)
>  
>  maintainers:
>    - Masahiro Yamada <yamada.masahiro@socionext.com>
>  
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - amd,pensando-elba-sd4hc
> -          - microchip,mpfs-sd4hc
> -          - socionext,uniphier-sd4hc
> -      - const: cdns,sd4hc
> +    oneOf:
> +      - items:
> +          - enum:
> +              - amd,pensando-elba-sd4hc
> +              - microchip,mpfs-sd4hc
> +              - socionext,uniphier-sd4hc
> +          - const: cdns,sd4hc
> +
> +      - items:
> +          - const: marvell,cdns-sd6hc

Except what Conor said (that's not a correct compatible, because cdns is
vendor prefix, not device name), you do not have multiple items here, so
drop "items".

>  
>    reg:
>      minItems: 1
> @@ -139,6 +143,40 @@ allOf:
>          reg:
>            maxItems: 1
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: marvell,cdns-sd6hc
> +
> +    then:
> +      properties:
> +        marvell,iocell-input-delay-ps:
> +          description: Delay in ps across the input IO cells

Properties should be defined in top-level properties. Require/disallow
them per variant.

Best regards,
Krzysztof
  

Patch

diff --git a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
index 6c40611405a08717520f4ce3a78a9cb8dd9aac69..51f44c00a50505684c7c7c49c59c1ebd8d85d5d0 100644
--- a/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
+++ b/Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml
@@ -4,19 +4,23 @@ 
 $id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Cadence SD/SDIO/eMMC Host Controller (SD4HC)
+title: Cadence SD/SDIO/eMMC Host Controller (SD4HC, SD6HC)
 
 maintainers:
   - Masahiro Yamada <yamada.masahiro@socionext.com>
 
 properties:
   compatible:
-    items:
-      - enum:
-          - amd,pensando-elba-sd4hc
-          - microchip,mpfs-sd4hc
-          - socionext,uniphier-sd4hc
-      - const: cdns,sd4hc
+    oneOf:
+      - items:
+          - enum:
+              - amd,pensando-elba-sd4hc
+              - microchip,mpfs-sd4hc
+              - socionext,uniphier-sd4hc
+          - const: cdns,sd4hc
+
+      - items:
+          - const: marvell,cdns-sd6hc
 
   reg:
     minItems: 1
@@ -139,6 +143,40 @@  allOf:
         reg:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: marvell,cdns-sd6hc
+
+    then:
+      properties:
+        marvell,iocell-input-delay-ps:
+          description: Delay in ps across the input IO cells
+
+        marvell,iocell-output-delay-ps:
+          description: Delay in ps across the output IO cells
+
+        marvell,delay-element-ps:
+          description: Delay element in ps used for calculating phy timings
+
+        marvell,read-dqs-cmd-delay-ps:
+          description: Command delay used in HS200 tuning
+
+        marvell,tune-val-start-ps:
+          description: Staring value of data delay used in HS200 tuning
+
+        marvell,tune-val-step-ps:
+          description: Incremental value of data delay used in HS200 tuning
+
+      required:
+        - marvell,iocell-input-delay-ps
+        - marvell,iocell-output-delay-ps
+        - marvell,delay-element-ps
+        - marvell,read-dqs-cmd-delay-ps
+        - marvell,tune-val-start-ps
+        - marvell,tune-val-step-ps
+
 unevaluatedProperties: false
 
 examples: