Commit 0b36b7cd authored by Nícolas F. R. A. Prado's avatar Nícolas F. R. A. Prado Committed by Ulf Hansson
Browse files

dt-bindings: mmc: mtk-sd: Set clocks based on compatible



The binding was describing a single clock list for all platforms, but
that's not really suitable:

Most platforms using at least 2 clocks (source, hclk), some of them
a third "source_cg". Mt2712 requires an extra 'bus_clk' on some of
its controllers, while mt8192 requires 8 clocks.

Move the clock definitions inside if blocks that match on the
compatibles.

I used Patch from Nícolas F. R. A. Prado and modified it to not using
"not" statement.

Fixes: 59a23395 ("dt-bindings: mmc: Add support for MT8192 SoC")
Signed-off-by: default avatarNícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: default avatarFrank Wunderlich <frank-w@public-files.de>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20221025132953.81286-2-linux@fw-web.de


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 1ad0dcb9
Loading
Loading
Loading
Loading
+93 −30
Original line number Diff line number Diff line
@@ -10,9 +10,6 @@ maintainers:
  - Chaotian Jing <chaotian.jing@mediatek.com>
  - Wenbin Mei <wenbin.mei@mediatek.com>

allOf:
  - $ref: mmc-controller.yaml#

properties:
  compatible:
    oneOf:
@@ -48,27 +45,11 @@ properties:
    description:
      Should contain phandle for the clock feeding the MMC controller.
    minItems: 2
    items:
      - description: source clock (required).
      - description: HCLK which used for host (required).
      - description: independent source clock gate (required for MT2712).
      - description: bus clock used for internal register access (required for MT2712 MSDC0/3).
      - description: msdc subsys clock gate (required for MT8192).
      - description: peripheral bus clock gate (required for MT8192).
      - description: AXI bus clock gate (required for MT8192).
      - description: AHB bus clock gate (required for MT8192).
    maxItems: 7

  clock-names:
    minItems: 2
    items:
      - const: source
      - const: hclk
      - const: source_cg
      - const: bus_clk
      - const: sys_cg
      - const: pclk_cg
      - const: axi_cg
      - const: ahb_cg
    maxItems: 7

  interrupts:
    description:
@@ -190,7 +171,63 @@ required:
  - vmmc-supply
  - vqmmc-supply

if:
allOf:
  - $ref: mmc-controller.yaml#
  - if:
      properties:
        compatible:
          enum:
            - mediatek,mt2701-mmc
            - mediatek,mt6779-mmc
            - mediatek,mt6795-mmc
            - mediatek,mt7620-mmc
            - mediatek,mt7622-mmc
            - mediatek,mt7623-mmc
            - mediatek,mt8135-mmc
            - mediatek,mt8173-mmc
            - mediatek,mt8183-mmc
            - mediatek,mt8186-mmc
            - mediatek,mt8188-mmc
            - mediatek,mt8195-mmc
            - mediatek,mt8516-mmc
    then:
      properties:
        clocks:
          minItems: 2
          items:
            - description: source clock
            - description: HCLK which used for host
            - description: independent source clock gate
        clock-names:
          minItems: 2
          items:
            - const: source
            - const: hclk
            - const: source_cg

  - if:
      properties:
        compatible:
          contains:
            const: mediatek,mt2712-mmc
    then:
      properties:
        clocks:
          minItems: 3
          items:
            - description: source clock
            - description: HCLK which used for host
            - description: independent source clock gate
            - description: bus clock used for internal register access (required for MSDC0/3).
        clock-names:
          minItems: 3
          items:
            - const: source
            - const: hclk
            - const: source_cg
            - const: bus_clk

  - if:
      properties:
        compatible:
          contains:
@@ -200,6 +237,32 @@ then:
        reg:
          minItems: 2

  - if:
      properties:
        compatible:
          contains:
            const: mediatek,mt8192-mmc
    then:
      properties:
        clocks:
          items:
            - description: source clock
            - description: HCLK which used for host
            - description: independent source clock gate
            - description: msdc subsys clock gate
            - description: peripheral bus clock gate
            - description: AXI bus clock gate
            - description: AHB bus clock gate
        clock-names:
          items:
            - const: source
            - const: hclk
            - const: source_cg
            - const: sys_cg
            - const: pclk_cg
            - const: axi_cg
            - const: ahb_cg

unevaluatedProperties: false

examples: