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