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