1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/net/renesas 4 $id: http://devicetree.org/schemas/net/renesas,etheravb.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Renesas Ethernet AVB 7 title: Renesas Ethernet AVB 8 8 9 maintainers: 9 maintainers: 10 - Sergei Shtylyov <sergei.shtylyov@gmail.com> 10 - Sergei Shtylyov <sergei.shtylyov@gmail.com> 11 11 12 properties: 12 properties: 13 compatible: 13 compatible: 14 oneOf: 14 oneOf: 15 - items: 15 - items: 16 - enum: 16 - enum: 17 - renesas,etheravb-r8a7742 17 - renesas,etheravb-r8a7742 # RZ/G1H 18 - renesas,etheravb-r8a7743 18 - renesas,etheravb-r8a7743 # RZ/G1M 19 - renesas,etheravb-r8a7744 19 - renesas,etheravb-r8a7744 # RZ/G1N 20 - renesas,etheravb-r8a7745 20 - renesas,etheravb-r8a7745 # RZ/G1E 21 - renesas,etheravb-r8a77470 21 - renesas,etheravb-r8a77470 # RZ/G1C 22 - renesas,etheravb-r8a7790 22 - renesas,etheravb-r8a7790 # R-Car H2 23 - renesas,etheravb-r8a7791 23 - renesas,etheravb-r8a7791 # R-Car M2-W 24 - renesas,etheravb-r8a7792 24 - renesas,etheravb-r8a7792 # R-Car V2H 25 - renesas,etheravb-r8a7793 25 - renesas,etheravb-r8a7793 # R-Car M2-N 26 - renesas,etheravb-r8a7794 26 - renesas,etheravb-r8a7794 # R-Car E2 27 - const: renesas,etheravb-rcar-gen2 27 - const: renesas,etheravb-rcar-gen2 # R-Car Gen2 and RZ/G1 28 28 29 - items: 29 - items: 30 - enum: 30 - enum: 31 - renesas,etheravb-r8a774a1 31 - renesas,etheravb-r8a774a1 # RZ/G2M 32 - renesas,etheravb-r8a774b1 32 - renesas,etheravb-r8a774b1 # RZ/G2N 33 - renesas,etheravb-r8a774c0 33 - renesas,etheravb-r8a774c0 # RZ/G2E 34 - renesas,etheravb-r8a774e1 34 - renesas,etheravb-r8a774e1 # RZ/G2H 35 - renesas,etheravb-r8a7795 35 - renesas,etheravb-r8a7795 # R-Car H3 36 - renesas,etheravb-r8a7796 36 - renesas,etheravb-r8a7796 # R-Car M3-W 37 - renesas,etheravb-r8a77961 37 - renesas,etheravb-r8a77961 # R-Car M3-W+ 38 - renesas,etheravb-r8a77965 38 - renesas,etheravb-r8a77965 # R-Car M3-N 39 - renesas,etheravb-r8a77970 39 - renesas,etheravb-r8a77970 # R-Car V3M 40 - renesas,etheravb-r8a77980 40 - renesas,etheravb-r8a77980 # R-Car V3H 41 - renesas,etheravb-r8a77990 41 - renesas,etheravb-r8a77990 # R-Car E3 42 - renesas,etheravb-r8a77995 42 - renesas,etheravb-r8a77995 # R-Car D3 43 - const: renesas,etheravb-rcar-gen3 43 - const: renesas,etheravb-rcar-gen3 # R-Car Gen3 and RZ/G2 44 44 45 - items: !! 45 reg: true 46 - enum: << 47 - renesas,etheravb-r8a779a0 << 48 - renesas,etheravb-r8a779g0 << 49 - renesas,etheravb-r8a779h0 << 50 - const: renesas,etheravb-rcar-gen4 << 51 << 52 - items: << 53 - enum: << 54 - renesas,etheravb-r9a09g011 # R << 55 - const: renesas,etheravb-rzv2m # R << 56 << 57 - items: << 58 - enum: << 59 - renesas,r9a07g043-gbeth # RZ/G << 60 - renesas,r9a07g044-gbeth # RZ/G << 61 - renesas,r9a07g054-gbeth # RZ/V << 62 - renesas,r9a08g045-gbeth # RZ/G << 63 - const: renesas,rzg2l-gbeth # RZ/{ << 64 << 65 reg: << 66 minItems: 1 << 67 items: << 68 - description: MAC register block << 69 - description: Stream buffer << 70 << 71 interrupts: << 72 minItems: 1 << 73 maxItems: 29 << 74 << 75 interrupt-names: << 76 minItems: 1 << 77 maxItems: 29 << 78 46 79 clocks: !! 47 interrupts: true 80 minItems: 1 !! 48 81 maxItems: 3 !! 49 interrupt-names: true 82 50 83 clock-names: !! 51 clocks: 84 minItems: 1 !! 52 maxItems: 1 85 maxItems: 3 << 86 53 87 iommus: 54 iommus: 88 maxItems: 1 55 maxItems: 1 89 56 90 power-domains: 57 power-domains: 91 maxItems: 1 58 maxItems: 1 92 59 93 resets: 60 resets: 94 maxItems: 1 61 maxItems: 1 95 62 96 phy-mode: true 63 phy-mode: true 97 64 98 phy-handle: true 65 phy-handle: true 99 66 100 '#address-cells': 67 '#address-cells': 101 description: Number of address cells for t 68 description: Number of address cells for the MDIO bus. 102 const: 1 69 const: 1 103 deprecated: true << 104 70 105 '#size-cells': 71 '#size-cells': 106 description: Number of size cells on the M 72 description: Number of size cells on the MDIO bus. 107 const: 0 73 const: 0 108 deprecated: true << 109 << 110 mdio: << 111 $ref: /schemas/net/mdio.yaml# << 112 unevaluatedProperties: false << 113 74 114 renesas,no-ether-link: 75 renesas,no-ether-link: 115 type: boolean 76 type: boolean 116 description: 77 description: 117 Specify when a board does not provide a 78 Specify when a board does not provide a proper AVB_LINK signal. 118 79 119 renesas,ether-link-active-low: 80 renesas,ether-link-active-low: 120 type: boolean 81 type: boolean 121 description: 82 description: 122 Specify when the AVB_LINK signal is acti 83 Specify when the AVB_LINK signal is active-low instead of normal 123 active-high. 84 active-high. 124 85 125 rx-internal-delay-ps: 86 rx-internal-delay-ps: 126 enum: [0, 1800] 87 enum: [0, 1800] 127 88 128 tx-internal-delay-ps: 89 tx-internal-delay-ps: 129 enum: [0, 2000] 90 enum: [0, 2000] 130 91 131 # In older bindings there where no mdio child- << 132 # and the PHY. To not fail older bindings acce << 133 # users should describe the PHY inside the mdi << 134 patternProperties: 92 patternProperties: 135 "@[0-9a-f]$": !! 93 "^ethernet-phy@[0-9a-f]$": 136 type: object 94 type: object 137 deprecated: true !! 95 $ref: ethernet-phy.yaml# 138 96 139 required: 97 required: 140 - compatible 98 - compatible 141 - reg 99 - reg 142 - interrupts 100 - interrupts 143 - clocks 101 - clocks 144 - power-domains 102 - power-domains 145 - resets 103 - resets 146 - phy-mode 104 - phy-mode 147 - phy-handle 105 - phy-handle >> 106 - '#address-cells' >> 107 - '#size-cells' 148 108 149 allOf: 109 allOf: 150 - $ref: ethernet-controller.yaml# 110 - $ref: ethernet-controller.yaml# 151 111 152 - if: 112 - if: 153 properties: 113 properties: 154 compatible: 114 compatible: 155 contains: 115 contains: 156 enum: 116 enum: 157 - renesas,etheravb-rcar-gen2 117 - renesas,etheravb-rcar-gen2 158 - renesas,etheravb-r8a7795 118 - renesas,etheravb-r8a7795 159 - renesas,etheravb-r8a7796 119 - renesas,etheravb-r8a7796 160 - renesas,etheravb-r8a77961 120 - renesas,etheravb-r8a77961 161 - renesas,etheravb-r8a77965 121 - renesas,etheravb-r8a77965 162 then: 122 then: 163 properties: 123 properties: 164 reg: 124 reg: 165 minItems: 2 !! 125 items: >> 126 - description: MAC register block >> 127 - description: Stream buffer 166 else: 128 else: 167 properties: 129 properties: 168 reg: 130 reg: 169 maxItems: 1 !! 131 items: >> 132 - description: MAC register block 170 133 171 - if: 134 - if: 172 properties: 135 properties: 173 compatible: 136 compatible: 174 contains: 137 contains: 175 enum: !! 138 const: renesas,etheravb-rcar-gen2 176 - renesas,etheravb-rcar-gen2 << 177 - renesas,rzg2l-gbeth << 178 then: 139 then: 179 properties: 140 properties: 180 interrupts: 141 interrupts: 181 minItems: 1 !! 142 maxItems: 1 182 maxItems: 3 << 183 interrupt-names: 143 interrupt-names: 184 minItems: 1 << 185 items: 144 items: 186 - const: mux 145 - const: mux 187 - const: fil << 188 - const: arp_ns << 189 rx-internal-delay-ps: false 146 rx-internal-delay-ps: false 190 else: 147 else: 191 if: !! 148 properties: 192 properties: !! 149 interrupts: 193 compatible: !! 150 minItems: 25 194 contains: !! 151 maxItems: 25 195 const: renesas,etheravb-rzv2m !! 152 interrupt-names: 196 then: !! 153 items: 197 properties: !! 154 pattern: '^ch[0-9]+$' 198 interrupts: !! 155 required: 199 minItems: 29 !! 156 - interrupt-names 200 maxItems: 29 !! 157 - rx-internal-delay-ps 201 interrupt-names: << 202 items: << 203 pattern: '^(ch(1?)[0-9])|ch20|ch << 204 rx-internal-delay-ps: false << 205 required: << 206 - interrupt-names << 207 else: << 208 properties: << 209 interrupts: << 210 minItems: 25 << 211 maxItems: 25 << 212 interrupt-names: << 213 items: << 214 pattern: '^ch[0-9]+$' << 215 required: << 216 - interrupt-names << 217 - rx-internal-delay-ps << 218 158 219 - if: 159 - if: 220 properties: 160 properties: 221 compatible: 161 compatible: 222 contains: 162 contains: 223 enum: 163 enum: 224 - renesas,etheravb-r8a774a1 164 - renesas,etheravb-r8a774a1 225 - renesas,etheravb-r8a774b1 165 - renesas,etheravb-r8a774b1 226 - renesas,etheravb-r8a774e1 166 - renesas,etheravb-r8a774e1 227 - renesas,etheravb-r8a7795 167 - renesas,etheravb-r8a7795 228 - renesas,etheravb-r8a7796 168 - renesas,etheravb-r8a7796 229 - renesas,etheravb-r8a77961 169 - renesas,etheravb-r8a77961 230 - renesas,etheravb-r8a77965 170 - renesas,etheravb-r8a77965 231 - renesas,etheravb-r8a77970 171 - renesas,etheravb-r8a77970 232 - renesas,etheravb-r8a77980 172 - renesas,etheravb-r8a77980 233 - renesas,etheravb-rcar-gen4 << 234 then: 173 then: 235 required: 174 required: 236 - tx-internal-delay-ps 175 - tx-internal-delay-ps 237 else: 176 else: 238 properties: 177 properties: 239 tx-internal-delay-ps: false 178 tx-internal-delay-ps: false 240 179 241 - if: 180 - if: 242 properties: 181 properties: 243 compatible: 182 compatible: 244 contains: 183 contains: 245 const: renesas,etheravb-r8a77995 184 const: renesas,etheravb-r8a77995 246 then: 185 then: 247 properties: 186 properties: 248 rx-internal-delay-ps: 187 rx-internal-delay-ps: 249 const: 1800 188 const: 1800 250 189 251 - if: 190 - if: 252 properties: 191 properties: 253 compatible: 192 compatible: 254 contains: 193 contains: 255 const: renesas,etheravb-r8a77980 194 const: renesas,etheravb-r8a77980 256 then: 195 then: 257 properties: 196 properties: 258 tx-internal-delay-ps: 197 tx-internal-delay-ps: 259 const: 2000 198 const: 2000 260 199 261 - if: << 262 properties: << 263 compatible: << 264 contains: << 265 const: renesas,rzg2l-gbeth << 266 then: << 267 properties: << 268 clocks: << 269 items: << 270 - description: Main clock << 271 - description: Register access clo << 272 - description: Reference clock for << 273 clock-names: << 274 items: << 275 - const: axi << 276 - const: chi << 277 - const: refclk << 278 else: << 279 if: << 280 properties: << 281 compatible: << 282 contains: << 283 const: renesas,etheravb-rzv2m << 284 then: << 285 properties: << 286 clocks: << 287 items: << 288 - description: Main clock << 289 - description: Coherent Hub Inte << 290 - description: gPTP reference cl << 291 clock-names: << 292 items: << 293 - const: axi << 294 - const: chi << 295 - const: gptp << 296 else: << 297 properties: << 298 clocks: << 299 minItems: 1 << 300 items: << 301 - description: AVB functional cl << 302 - description: Optional TXC refe << 303 clock-names: << 304 minItems: 1 << 305 items: << 306 - const: fck << 307 - const: refclk << 308 << 309 additionalProperties: false 200 additionalProperties: false 310 201 311 examples: 202 examples: 312 - | 203 - | 313 #include <dt-bindings/clock/r8a7795-cpg-ms 204 #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 314 #include <dt-bindings/interrupt-controller 205 #include <dt-bindings/interrupt-controller/arm-gic.h> 315 #include <dt-bindings/power/r8a7795-sysc.h 206 #include <dt-bindings/power/r8a7795-sysc.h> 316 #include <dt-bindings/gpio/gpio.h> 207 #include <dt-bindings/gpio/gpio.h> 317 aliases { 208 aliases { 318 ethernet0 = &avb; 209 ethernet0 = &avb; 319 }; 210 }; 320 211 321 avb: ethernet@e6800000 { 212 avb: ethernet@e6800000 { 322 compatible = "renesas,etheravb-r8a 213 compatible = "renesas,etheravb-r8a7795", 323 "renesas,etheravb-rca 214 "renesas,etheravb-rcar-gen3"; 324 reg = <0xe6800000 0x800>, <0xe6a00 215 reg = <0xe6800000 0x800>, <0xe6a00000 0x10000>; 325 interrupts = <GIC_SPI 39 IRQ_TYPE_ 216 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 40 IRQ_TYPE_ 217 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 41 IRQ_TYPE_ 218 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 328 <GIC_SPI 42 IRQ_TYPE_ 219 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 329 <GIC_SPI 43 IRQ_TYPE_ 220 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 330 <GIC_SPI 44 IRQ_TYPE_ 221 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 331 <GIC_SPI 45 IRQ_TYPE_ 222 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 332 <GIC_SPI 46 IRQ_TYPE_ 223 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 333 <GIC_SPI 47 IRQ_TYPE_ 224 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 334 <GIC_SPI 48 IRQ_TYPE_ 225 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 335 <GIC_SPI 49 IRQ_TYPE_ 226 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 336 <GIC_SPI 50 IRQ_TYPE_ 227 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 337 <GIC_SPI 51 IRQ_TYPE_ 228 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 338 <GIC_SPI 52 IRQ_TYPE_ 229 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 339 <GIC_SPI 53 IRQ_TYPE_ 230 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 340 <GIC_SPI 54 IRQ_TYPE_ 231 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 341 <GIC_SPI 55 IRQ_TYPE_ 232 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 342 <GIC_SPI 56 IRQ_TYPE_ 233 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 343 <GIC_SPI 57 IRQ_TYPE_ 234 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 344 <GIC_SPI 58 IRQ_TYPE_ 235 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 345 <GIC_SPI 59 IRQ_TYPE_ 236 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 346 <GIC_SPI 60 IRQ_TYPE_ 237 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 347 <GIC_SPI 61 IRQ_TYPE_ 238 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 348 <GIC_SPI 62 IRQ_TYPE_ 239 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 349 <GIC_SPI 63 IRQ_TYPE_ 240 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 350 interrupt-names = "ch0", "ch1", "c 241 interrupt-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", 351 "ch7", "ch8", "c 242 "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", 352 "ch13", "ch14", 243 "ch13", "ch14", "ch15", "ch16", "ch17", "ch18", 353 "ch19", "ch20", 244 "ch19", "ch20", "ch21", "ch22", "ch23", "ch24"; 354 clocks = <&cpg CPG_MOD 812>; 245 clocks = <&cpg CPG_MOD 812>; 355 clock-names = "fck"; << 356 iommus = <&ipmmu_ds0 16>; 246 iommus = <&ipmmu_ds0 16>; 357 power-domains = <&sysc R8A7795_PD_ 247 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 358 resets = <&cpg 812>; 248 resets = <&cpg 812>; 359 phy-mode = "rgmii"; 249 phy-mode = "rgmii"; 360 phy-handle = <&phy0>; 250 phy-handle = <&phy0>; 361 rx-internal-delay-ps = <0>; 251 rx-internal-delay-ps = <0>; 362 tx-internal-delay-ps = <2000>; 252 tx-internal-delay-ps = <2000>; 363 #address-cells = <1>; 253 #address-cells = <1>; 364 #size-cells = <0>; 254 #size-cells = <0>; 365 255 366 phy0: ethernet-phy@0 { 256 phy0: ethernet-phy@0 { 367 compatible = "ethernet-phy << 368 "ethernet-phy << 369 rxc-skew-ps = <1500>; 257 rxc-skew-ps = <1500>; 370 reg = <0>; 258 reg = <0>; 371 interrupt-parent = <&gpio2 259 interrupt-parent = <&gpio2>; 372 interrupts = <11 IRQ_TYPE_ 260 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 373 reset-gpios = <&gpio2 10 G 261 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 374 }; 262 }; 375 }; 263 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.