Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Thierry Reding <treding@nvidia.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>

+67 -11
+67 -11
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-mc.yaml
··· 33 33 - nvidia,tegra194-mc 34 34 35 35 reg: 36 - maxItems: 1 36 + minItems: 1 37 + maxItems: 3 37 38 38 39 interrupts: 39 - maxItems: 1 40 + items: 41 + - description: MC general interrupt 40 42 41 43 "#address-cells": 42 44 const: 2 ··· 49 47 ranges: true 50 48 51 49 dma-ranges: true 50 + 51 + "#interconnect-cells": 52 + const: 1 52 53 53 54 patternProperties: 54 55 "^external-memory-controller@[0-9a-f]+$": ··· 70 65 - nvidia,tegra194-emc 71 66 72 67 reg: 73 - maxItems: 1 68 + minItems: 1 69 + maxItems: 2 74 70 75 71 interrupts: 76 - maxItems: 1 72 + items: 73 + - description: EMC general interrupt 77 74 78 75 clocks: 79 76 items: ··· 85 78 items: 86 79 - const: emc 87 80 81 + "#interconnect-cells": 82 + const: 0 83 + 88 84 nvidia,bpmp: 89 85 $ref: /schemas/types.yaml#/definitions/phandle 90 86 description: 91 87 phandle of the node representing the BPMP 88 + 89 + allOf: 90 + - if: 91 + properties: 92 + compatible: 93 + const: nvidia,tegra186-emc 94 + then: 95 + properties: 96 + reg: 97 + maxItems: 1 98 + 99 + - if: 100 + properties: 101 + compatible: 102 + const: nvidia,tegra194-emc 103 + then: 104 + properties: 105 + reg: 106 + minItems: 2 107 + 108 + additionalProperties: false 109 + 110 + required: 111 + - compatible 112 + - reg 113 + - interrupts 114 + - clocks 115 + - clock-names 116 + - "#interconnect-cells" 117 + - nvidia,bpmp 118 + 119 + allOf: 120 + - if: 121 + properties: 122 + compatible: 123 + const: nvidia,tegra186-mc 124 + then: 125 + properties: 126 + reg: 127 + maxItems: 1 128 + 129 + - if: 130 + properties: 131 + compatible: 132 + const: nvidia,tegra194-mc 133 + then: 134 + properties: 135 + reg: 136 + minItems: 3 137 + 138 + additionalProperties: false 92 139 93 140 required: 94 141 - compatible ··· 150 89 - interrupts 151 90 - "#address-cells" 152 91 - "#size-cells" 153 - 154 - additionalProperties: false 155 92 156 93 examples: 157 94 - | ··· 183 124 clocks = <&bpmp TEGRA186_CLK_EMC>; 184 125 clock-names = "emc"; 185 126 127 + #interconnect-cells = <0>; 128 + 186 129 nvidia,bpmp = <&bpmp>; 187 130 }; 188 131 }; 189 - }; 190 - 191 - bpmp: bpmp { 192 - compatible = "nvidia,tegra186-bpmp"; 193 - #clock-cells = <1>; 194 132 };