Commit e2ab93e5 authored by Ashish Mhetre's avatar Ashish Mhetre Committed by Thierry Reding
Browse files

dt-bindings: memory: tegra: Update validation for reg and reg-names



From Tegra186 onwards, memory controller support multiple channels.
"reg" items are updated with address and size of these channels.
Tegra186 has overall 5 memory controller channels. Tegra194 and Tegra234
have overall 17 memory controller channels each.

There is one "reg" entry for memory controller stream-ID registers. So
update the "reg" property's "minItems" and "maxItems" accordingly in the
Tegra186 devicetree documentation.

Also update validation for "reg-names" added for these corresponding
"reg" items. ABI change due to new bindings is intended but backward
compatibility is preserved in driver.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarAshish Mhetre <amhetre@nvidia.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 31231092
Loading
Loading
Loading
Loading
+74 −6
Original line number Diff line number Diff line
@@ -34,8 +34,12 @@ properties:
          - nvidia,tegra234-mc

  reg:
    minItems: 1
    maxItems: 3
    minItems: 6
    maxItems: 18

  reg-names:
    minItems: 6
    maxItems: 18

  interrupts:
    items:
@@ -142,7 +146,18 @@ allOf:
    then:
      properties:
        reg:
          maxItems: 1
          maxItems: 6
          description: 5 memory controller channels and 1 for stream-id registers

        reg-names:
          maxItems: 6
          items:
            - const: sid
            - const: broadcast
            - const: ch0
            - const: ch1
            - const: ch2
            - const: ch3

  - if:
      properties:
@@ -151,7 +166,30 @@ allOf:
    then:
      properties:
        reg:
          minItems: 3
          minItems: 18
          description: 17 memory controller channels and 1 for stream-id registers

        reg-names:
          minItems: 18
          items:
            - const: sid
            - const: broadcast
            - const: ch0
            - const: ch1
            - const: ch2
            - const: ch3
            - const: ch4
            - const: ch5
            - const: ch6
            - const: ch7
            - const: ch8
            - const: ch9
            - const: ch10
            - const: ch11
            - const: ch12
            - const: ch13
            - const: ch14
            - const: ch15

  - if:
      properties:
@@ -160,13 +198,37 @@ allOf:
    then:
      properties:
        reg:
          minItems: 3
          minItems: 18
          description: 17 memory controller channels and 1 for stream-id registers

        reg-names:
          minItems: 18
          items:
            - const: sid
            - const: broadcast
            - const: ch0
            - const: ch1
            - const: ch2
            - const: ch3
            - const: ch4
            - const: ch5
            - const: ch6
            - const: ch7
            - const: ch8
            - const: ch9
            - const: ch10
            - const: ch11
            - const: ch12
            - const: ch13
            - const: ch14
            - const: ch15

additionalProperties: false

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - "#address-cells"
  - "#size-cells"
@@ -182,7 +244,13 @@ examples:

        memory-controller@2c00000 {
            compatible = "nvidia,tegra186-mc";
            reg = <0x0 0x02c00000 0x0 0xb0000>;
            reg = <0x0 0x02c00000 0x0 0x10000>,    /* MC-SID */
                  <0x0 0x02c10000 0x0 0x10000>,    /* Broadcast channel */
                  <0x0 0x02c20000 0x0 0x10000>,    /* MC0 */
                  <0x0 0x02c30000 0x0 0x10000>,    /* MC1 */
                  <0x0 0x02c40000 0x0 0x10000>,    /* MC2 */
                  <0x0 0x02c50000 0x0 0x10000>;    /* MC3 */
            reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3";
            interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;

            #address-cells = <2>;