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 << 44 << 45 - items: << 46 - enum: << 47 - renesas,etheravb-r8a779a0 43 - renesas,etheravb-r8a779a0 # R-Car V3U 48 - renesas,etheravb-r8a779g0 !! 44 - const: renesas,etheravb-rcar-gen3 # R-Car Gen3 and RZ/G2 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 45 65 reg: !! 46 reg: true 66 minItems: 1 << 67 items: << 68 - description: MAC register block << 69 - description: Stream buffer << 70 47 71 interrupts: !! 48 interrupts: true 72 minItems: 1 << 73 maxItems: 29 << 74 49 75 interrupt-names: !! 50 interrupt-names: true 76 minItems: 1 << 77 maxItems: 29 << 78 51 79 clocks: 52 clocks: 80 minItems: 1 53 minItems: 1 81 maxItems: 3 !! 54 items: >> 55 - description: AVB functional clock >> 56 - description: Optional TXC reference clock 82 57 83 clock-names: 58 clock-names: 84 minItems: 1 59 minItems: 1 85 maxItems: 3 !! 60 items: >> 61 - const: fck >> 62 - const: refclk 86 63 87 iommus: 64 iommus: 88 maxItems: 1 65 maxItems: 1 89 66 90 power-domains: 67 power-domains: 91 maxItems: 1 68 maxItems: 1 92 69 93 resets: 70 resets: 94 maxItems: 1 71 maxItems: 1 95 72 96 phy-mode: true 73 phy-mode: true 97 74 98 phy-handle: true 75 phy-handle: true 99 76 100 '#address-cells': 77 '#address-cells': 101 description: Number of address cells for t 78 description: Number of address cells for the MDIO bus. 102 const: 1 79 const: 1 103 deprecated: true << 104 80 105 '#size-cells': 81 '#size-cells': 106 description: Number of size cells on the M 82 description: Number of size cells on the MDIO bus. 107 const: 0 83 const: 0 108 deprecated: true << 109 << 110 mdio: << 111 $ref: /schemas/net/mdio.yaml# << 112 unevaluatedProperties: false << 113 84 114 renesas,no-ether-link: 85 renesas,no-ether-link: 115 type: boolean 86 type: boolean 116 description: 87 description: 117 Specify when a board does not provide a 88 Specify when a board does not provide a proper AVB_LINK signal. 118 89 119 renesas,ether-link-active-low: 90 renesas,ether-link-active-low: 120 type: boolean 91 type: boolean 121 description: 92 description: 122 Specify when the AVB_LINK signal is acti 93 Specify when the AVB_LINK signal is active-low instead of normal 123 active-high. 94 active-high. 124 95 125 rx-internal-delay-ps: 96 rx-internal-delay-ps: 126 enum: [0, 1800] 97 enum: [0, 1800] 127 98 128 tx-internal-delay-ps: 99 tx-internal-delay-ps: 129 enum: [0, 2000] 100 enum: [0, 2000] 130 101 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: 102 patternProperties: 135 "@[0-9a-f]$": !! 103 "^ethernet-phy@[0-9a-f]$": 136 type: object 104 type: object 137 deprecated: true !! 105 $ref: ethernet-phy.yaml# 138 106 139 required: 107 required: 140 - compatible 108 - compatible 141 - reg 109 - reg 142 - interrupts 110 - interrupts 143 - clocks 111 - clocks 144 - power-domains 112 - power-domains 145 - resets 113 - resets 146 - phy-mode 114 - phy-mode 147 - phy-handle 115 - phy-handle >> 116 - '#address-cells' >> 117 - '#size-cells' 148 118 149 allOf: 119 allOf: 150 - $ref: ethernet-controller.yaml# 120 - $ref: ethernet-controller.yaml# 151 121 152 - if: 122 - if: 153 properties: 123 properties: 154 compatible: 124 compatible: 155 contains: 125 contains: 156 enum: 126 enum: 157 - renesas,etheravb-rcar-gen2 127 - renesas,etheravb-rcar-gen2 158 - renesas,etheravb-r8a7795 128 - renesas,etheravb-r8a7795 159 - renesas,etheravb-r8a7796 129 - renesas,etheravb-r8a7796 160 - renesas,etheravb-r8a77961 130 - renesas,etheravb-r8a77961 161 - renesas,etheravb-r8a77965 131 - renesas,etheravb-r8a77965 162 then: 132 then: 163 properties: 133 properties: 164 reg: 134 reg: 165 minItems: 2 !! 135 items: >> 136 - description: MAC register block >> 137 - description: Stream buffer 166 else: 138 else: 167 properties: 139 properties: 168 reg: 140 reg: 169 maxItems: 1 !! 141 items: >> 142 - description: MAC register block 170 143 171 - if: 144 - if: 172 properties: 145 properties: 173 compatible: 146 compatible: 174 contains: 147 contains: 175 enum: !! 148 const: renesas,etheravb-rcar-gen2 176 - renesas,etheravb-rcar-gen2 << 177 - renesas,rzg2l-gbeth << 178 then: 149 then: 179 properties: 150 properties: 180 interrupts: 151 interrupts: 181 minItems: 1 !! 152 maxItems: 1 182 maxItems: 3 << 183 interrupt-names: 153 interrupt-names: 184 minItems: 1 << 185 items: 154 items: 186 - const: mux 155 - const: mux 187 - const: fil << 188 - const: arp_ns << 189 rx-internal-delay-ps: false 156 rx-internal-delay-ps: false 190 else: 157 else: 191 if: !! 158 properties: 192 properties: !! 159 interrupts: 193 compatible: !! 160 minItems: 25 194 contains: !! 161 maxItems: 25 195 const: renesas,etheravb-rzv2m !! 162 interrupt-names: 196 then: !! 163 items: 197 properties: !! 164 pattern: '^ch[0-9]+$' 198 interrupts: !! 165 required: 199 minItems: 29 !! 166 - interrupt-names 200 maxItems: 29 !! 167 - 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 168 219 - if: 169 - if: 220 properties: 170 properties: 221 compatible: 171 compatible: 222 contains: 172 contains: 223 enum: 173 enum: 224 - renesas,etheravb-r8a774a1 174 - renesas,etheravb-r8a774a1 225 - renesas,etheravb-r8a774b1 175 - renesas,etheravb-r8a774b1 226 - renesas,etheravb-r8a774e1 176 - renesas,etheravb-r8a774e1 227 - renesas,etheravb-r8a7795 177 - renesas,etheravb-r8a7795 228 - renesas,etheravb-r8a7796 178 - renesas,etheravb-r8a7796 229 - renesas,etheravb-r8a77961 179 - renesas,etheravb-r8a77961 230 - renesas,etheravb-r8a77965 180 - renesas,etheravb-r8a77965 231 - renesas,etheravb-r8a77970 181 - renesas,etheravb-r8a77970 232 - renesas,etheravb-r8a77980 182 - renesas,etheravb-r8a77980 233 - renesas,etheravb-rcar-gen4 !! 183 - renesas,etheravb-r8a779a0 234 then: 184 then: 235 required: 185 required: 236 - tx-internal-delay-ps 186 - tx-internal-delay-ps 237 else: 187 else: 238 properties: 188 properties: 239 tx-internal-delay-ps: false 189 tx-internal-delay-ps: false 240 190 241 - if: 191 - if: 242 properties: 192 properties: 243 compatible: 193 compatible: 244 contains: 194 contains: 245 const: renesas,etheravb-r8a77995 195 const: renesas,etheravb-r8a77995 246 then: 196 then: 247 properties: 197 properties: 248 rx-internal-delay-ps: 198 rx-internal-delay-ps: 249 const: 1800 199 const: 1800 250 200 251 - if: 201 - if: 252 properties: 202 properties: 253 compatible: 203 compatible: 254 contains: 204 contains: 255 const: renesas,etheravb-r8a77980 205 const: renesas,etheravb-r8a77980 256 then: 206 then: 257 properties: 207 properties: 258 tx-internal-delay-ps: 208 tx-internal-delay-ps: 259 const: 2000 209 const: 2000 260 210 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 211 additionalProperties: false 310 212 311 examples: 213 examples: 312 - | 214 - | 313 #include <dt-bindings/clock/r8a7795-cpg-ms 215 #include <dt-bindings/clock/r8a7795-cpg-mssr.h> 314 #include <dt-bindings/interrupt-controller 216 #include <dt-bindings/interrupt-controller/arm-gic.h> 315 #include <dt-bindings/power/r8a7795-sysc.h 217 #include <dt-bindings/power/r8a7795-sysc.h> 316 #include <dt-bindings/gpio/gpio.h> 218 #include <dt-bindings/gpio/gpio.h> 317 aliases { 219 aliases { 318 ethernet0 = &avb; 220 ethernet0 = &avb; 319 }; 221 }; 320 222 321 avb: ethernet@e6800000 { 223 avb: ethernet@e6800000 { 322 compatible = "renesas,etheravb-r8a 224 compatible = "renesas,etheravb-r8a7795", 323 "renesas,etheravb-rca 225 "renesas,etheravb-rcar-gen3"; 324 reg = <0xe6800000 0x800>, <0xe6a00 226 reg = <0xe6800000 0x800>, <0xe6a00000 0x10000>; 325 interrupts = <GIC_SPI 39 IRQ_TYPE_ 227 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 326 <GIC_SPI 40 IRQ_TYPE_ 228 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 327 <GIC_SPI 41 IRQ_TYPE_ 229 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, 328 <GIC_SPI 42 IRQ_TYPE_ 230 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, 329 <GIC_SPI 43 IRQ_TYPE_ 231 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 330 <GIC_SPI 44 IRQ_TYPE_ 232 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 331 <GIC_SPI 45 IRQ_TYPE_ 233 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>, 332 <GIC_SPI 46 IRQ_TYPE_ 234 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>, 333 <GIC_SPI 47 IRQ_TYPE_ 235 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 334 <GIC_SPI 48 IRQ_TYPE_ 236 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 335 <GIC_SPI 49 IRQ_TYPE_ 237 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 336 <GIC_SPI 50 IRQ_TYPE_ 238 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 337 <GIC_SPI 51 IRQ_TYPE_ 239 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 338 <GIC_SPI 52 IRQ_TYPE_ 240 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 339 <GIC_SPI 53 IRQ_TYPE_ 241 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 340 <GIC_SPI 54 IRQ_TYPE_ 242 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 341 <GIC_SPI 55 IRQ_TYPE_ 243 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 342 <GIC_SPI 56 IRQ_TYPE_ 244 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 343 <GIC_SPI 57 IRQ_TYPE_ 245 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 344 <GIC_SPI 58 IRQ_TYPE_ 246 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 345 <GIC_SPI 59 IRQ_TYPE_ 247 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 346 <GIC_SPI 60 IRQ_TYPE_ 248 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 347 <GIC_SPI 61 IRQ_TYPE_ 249 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 348 <GIC_SPI 62 IRQ_TYPE_ 250 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>, 349 <GIC_SPI 63 IRQ_TYPE_ 251 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 350 interrupt-names = "ch0", "ch1", "c 252 interrupt-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", 351 "ch7", "ch8", "c 253 "ch7", "ch8", "ch9", "ch10", "ch11", "ch12", 352 "ch13", "ch14", 254 "ch13", "ch14", "ch15", "ch16", "ch17", "ch18", 353 "ch19", "ch20", 255 "ch19", "ch20", "ch21", "ch22", "ch23", "ch24"; 354 clocks = <&cpg CPG_MOD 812>; 256 clocks = <&cpg CPG_MOD 812>; 355 clock-names = "fck"; << 356 iommus = <&ipmmu_ds0 16>; 257 iommus = <&ipmmu_ds0 16>; 357 power-domains = <&sysc R8A7795_PD_ 258 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 358 resets = <&cpg 812>; 259 resets = <&cpg 812>; 359 phy-mode = "rgmii"; 260 phy-mode = "rgmii"; 360 phy-handle = <&phy0>; 261 phy-handle = <&phy0>; 361 rx-internal-delay-ps = <0>; 262 rx-internal-delay-ps = <0>; 362 tx-internal-delay-ps = <2000>; 263 tx-internal-delay-ps = <2000>; 363 #address-cells = <1>; 264 #address-cells = <1>; 364 #size-cells = <0>; 265 #size-cells = <0>; 365 266 366 phy0: ethernet-phy@0 { 267 phy0: ethernet-phy@0 { 367 compatible = "ethernet-phy << 368 "ethernet-phy << 369 rxc-skew-ps = <1500>; 268 rxc-skew-ps = <1500>; 370 reg = <0>; 269 reg = <0>; 371 interrupt-parent = <&gpio2 270 interrupt-parent = <&gpio2>; 372 interrupts = <11 IRQ_TYPE_ 271 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 373 reset-gpios = <&gpio2 10 G 272 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 374 }; 273 }; 375 }; 274 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.