[v4,5/6] dt-bindings: mmc: sdhci-cadence: SD6 support
Commit Message
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
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
>
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
@@ -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: