Commit 8c970e7e authored by Thierry Reding's avatar Thierry Reding
Browse files

dt-bindings: memory: tegra: Update for Tegra194



The #interconnect-cells properties are required to hook up memory
clients to the MC/EMC in interconnects properties. Add a description for
these properties.

For the nested EMC controller, the list of required properties was
missing. Add it so that the validation can be more strict.

Also, allow multiple reg entries required by Tegra194 and later.

While at it, also remove the dummy BPMP node from the example because it
is incomplete and fails validation. It's also not necessary for this
file and the BPMP DT schema already has a full example.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent fc5e0e37
Loading
Loading
Loading
Loading
+67 −11
Original line number Diff line number Diff line
@@ -33,10 +33,12 @@ properties:
          - nvidia,tegra194-mc

  reg:
    maxItems: 1
    minItems: 1
    maxItems: 3

  interrupts:
    maxItems: 1
    items:
      - description: MC general interrupt

  "#address-cells":
    const: 2
@@ -48,6 +50,9 @@ properties:

  dma-ranges: true

  "#interconnect-cells":
    const: 1

patternProperties:
  "^external-memory-controller@[0-9a-f]+$":
    description:
@@ -65,10 +70,12 @@ patternProperties:
              - nvidia,tegra194-emc

      reg:
        maxItems: 1
        minItems: 1
        maxItems: 2

      interrupts:
        maxItems: 1
        items:
          - description: EMC general interrupt

      clocks:
        items:
@@ -78,20 +85,72 @@ patternProperties:
        items:
          - const: emc

      "#interconnect-cells":
        const: 0

      nvidia,bpmp:
        $ref: /schemas/types.yaml#/definitions/phandle
        description:
          phandle of the node representing the BPMP

    allOf:
      - if:
          properties:
            compatible:
              const: nvidia,tegra186-emc
        then:
          properties:
            reg:
              maxItems: 1

      - if:
          properties:
            compatible:
              const: nvidia,tegra194-emc
        then:
          properties:
            reg:
              minItems: 2

    additionalProperties: false

    required:
      - compatible
      - reg
      - interrupts
  - "#address-cells"
  - "#size-cells"
      - clocks
      - clock-names
      - "#interconnect-cells"
      - nvidia,bpmp

allOf:
  - if:
      properties:
        compatible:
          const: nvidia,tegra186-mc
    then:
      properties:
        reg:
          maxItems: 1

  - if:
      properties:
        compatible:
          const: nvidia,tegra194-mc
    then:
      properties:
        reg:
          minItems: 3

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

examples:
  - |
    #include <dt-bindings/clock/tegra186-clock.h>
@@ -124,12 +183,9 @@ examples:
                clocks = <&bpmp TEGRA186_CLK_EMC>;
                clock-names = "emc";

                #interconnect-cells = <0>;

                nvidia,bpmp = <&bpmp>;
            };
        };
    };

    bpmp: bpmp {
        compatible = "nvidia,tegra186-bpmp";
        #clock-cells = <1>;
    };