Unverified Commit 2368a937 authored by Samuel Holland's avatar Samuel Holland Committed by Maxime Ripard
Browse files

dt-bindings: display: Separate clock item lists by compatible



So far, the binding and driver have relied on the fact that the H6
clocks are both a prefix and a subset of the R40 clocks. This allows
them to share the clocks/clock-names items and the clock-output-names
order between the hardware variants.

However, the D1 hardware has TCON TV0 and DSI, but no TCON TV1. This
cannot be supported by the existing scheme because it puts a gap in the
middle of the item lists. To prepare for adding D1 support, use separate
lists for variants with different combinations of clocks.

Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220424162633.12369-2-samuel@sholland.org
parent d8e9d690
Loading
Loading
Loading
Loading
+61 −44
Original line number Diff line number Diff line
@@ -48,31 +48,15 @@ properties:

  clocks:
    minItems: 2
    items:
      - description: The TCON TOP interface clock
      - description: The TCON TOP TV0 clock
      - description: The TCON TOP TVE0 clock
      - description: The TCON TOP TV1 clock
      - description: The TCON TOP TVE1 clock
      - description: The TCON TOP MIPI DSI clock
    maxItems: 6

  clock-names:
    minItems: 2
    items:
      - const: bus
      - const: tcon-tv0
      - const: tve0
      - const: tcon-tv1
      - const: tve1
      - const: dsi
    maxItems: 6

  clock-output-names:
    minItems: 1
    maxItems: 3
    description: >
      The first item is the name of the clock created for the TV0
      channel, the second item is the name of the TCON TV1 channel
      clock and the third one is the name of the DSI channel clock.

  resets:
    maxItems: 1
@@ -129,33 +113,66 @@ required:

additionalProperties: false

if:
allOf:
  - if:
      properties:
        compatible:
          contains:
        const: allwinner,sun50i-h6-tcon-top
            const: allwinner,sun8i-r40-tcon-top

    then:
      properties:
        clocks:
      maxItems: 2

    clock-output-names:
      maxItems: 1
          items:
            - description: The TCON TOP interface clock
            - description: The TCON TOP TV0 clock
            - description: The TCON TOP TVE0 clock
            - description: The TCON TOP TV1 clock
            - description: The TCON TOP TVE1 clock
            - description: The TCON TOP MIPI DSI clock

else:
  properties:
    clocks:
      minItems: 6
        clock-names:
          items:
            - const: bus
            - const: tcon-tv0
            - const: tve0
            - const: tcon-tv1
            - const: tve1
            - const: dsi

        clock-output-names:
      minItems: 3
          items:
            - description: TCON TV0 output clock name
            - description: TCON TV1 output clock name
            - description: DSI output clock name

        ports:
          required:
            - port@2
            - port@3

  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun50i-h6-tcon-top

    then:
      properties:
        clocks:
          items:
            - description: The TCON TOP interface clock
            - description: The TCON TOP TV0 clock

        clock-names:
          items:
            - const: bus
            - const: tcon-tv0

        clock-output-names:
          items:
            - description: TCON TV0 output clock name

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>