13a470447SFlorian Fainelli# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
23a470447SFlorian Fainelli%YAML 1.2
33a470447SFlorian Fainelli---
43a470447SFlorian Fainelli$id: http://devicetree.org/schemas/net/brcm,bcmgenet.yaml#
53a470447SFlorian Fainelli$schema: http://devicetree.org/meta-schemas/core.yaml#
63a470447SFlorian Fainelli
784e85359SKrzysztof Kozlowskititle: Broadcom BCM7xxx Ethernet Controller (GENET)
83a470447SFlorian Fainelli
93a470447SFlorian Fainellimaintainers:
103a470447SFlorian Fainelli  - Doug Berger <opendmb@gmail.com>
113a470447SFlorian Fainelli  - Florian Fainelli <f.fainelli@gmail.com>
123a470447SFlorian Fainelli
133a470447SFlorian Fainelliproperties:
143a470447SFlorian Fainelli  compatible:
153a470447SFlorian Fainelli    enum:
163a470447SFlorian Fainelli      - brcm,genet-v1
173a470447SFlorian Fainelli      - brcm,genet-v2
183a470447SFlorian Fainelli      - brcm,genet-v3
193a470447SFlorian Fainelli      - brcm,genet-v4
203a470447SFlorian Fainelli      - brcm,genet-v5
213a470447SFlorian Fainelli      - brcm,bcm2711-genet-v5
223a470447SFlorian Fainelli      - brcm,bcm7712-genet-v5
233a470447SFlorian Fainelli
243a470447SFlorian Fainelli  reg:
253a470447SFlorian Fainelli    maxItems: 1
263a470447SFlorian Fainelli
273a470447SFlorian Fainelli  interrupts:
283a470447SFlorian Fainelli    minItems: 2
293a470447SFlorian Fainelli    items:
303a470447SFlorian Fainelli      - description: general purpose interrupt line
313a470447SFlorian Fainelli      - description: RX and TX rings interrupt line
323a470447SFlorian Fainelli      - description: Wake-on-LAN interrupt line
333a470447SFlorian Fainelli
343a470447SFlorian Fainelli
353a470447SFlorian Fainelli  clocks:
363a470447SFlorian Fainelli    minItems: 1
373a470447SFlorian Fainelli    items:
383a470447SFlorian Fainelli      - description: main clock
393a470447SFlorian Fainelli      - description: EEE clock
403a470447SFlorian Fainelli      - description: Wake-on-LAN clock
413a470447SFlorian Fainelli
423a470447SFlorian Fainelli  clock-names:
433a470447SFlorian Fainelli    minItems: 1
443a470447SFlorian Fainelli    items:
453a470447SFlorian Fainelli      - const: enet
463a470447SFlorian Fainelli      - const: enet-eee
473a470447SFlorian Fainelli      - const: enet-wol
483a470447SFlorian Fainelli
493a470447SFlorian Fainelli  "#address-cells":
503a470447SFlorian Fainelli    const: 1
513a470447SFlorian Fainelli
523a470447SFlorian Fainelli  "#size-cells":
533a470447SFlorian Fainelli    const: 1
543a470447SFlorian Fainelli
553a470447SFlorian FainellipatternProperties:
563a470447SFlorian Fainelli  "^mdio@[0-9a-f]+$":
573a470447SFlorian Fainelli    type: object
58*61ab5a06SKrzysztof Kozlowski    $ref: brcm,unimac-mdio.yaml
593a470447SFlorian Fainelli
603a470447SFlorian Fainelli    description:
613a470447SFlorian Fainelli      GENET internal UniMAC MDIO bus
623a470447SFlorian Fainelli
633a470447SFlorian Fainellirequired:
643a470447SFlorian Fainelli  - reg
653a470447SFlorian Fainelli  - interrupts
663a470447SFlorian Fainelli  - phy-mode
673a470447SFlorian Fainelli  - "#address-cells"
683a470447SFlorian Fainelli  - "#size-cells"
693a470447SFlorian Fainelli
703a470447SFlorian FainelliallOf:
713a470447SFlorian Fainelli  - $ref: ethernet-controller.yaml
723a470447SFlorian Fainelli
733a470447SFlorian FainelliunevaluatedProperties: false
743a470447SFlorian Fainelli
753a470447SFlorian Fainelliexamples:
763a470447SFlorian Fainelli  - |
773a470447SFlorian Fainelli    ethernet@f0b60000 {
783a470447SFlorian Fainelli        phy-mode = "internal";
793a470447SFlorian Fainelli        phy-handle = <&phy1>;
803a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 23 1a ];
813a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
823a470447SFlorian Fainelli        reg = <0xf0b60000 0xfc4c>;
833a470447SFlorian Fainelli        interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
843a470447SFlorian Fainelli        #address-cells = <1>;
853a470447SFlorian Fainelli        #size-cells = <1>;
863a470447SFlorian Fainelli
873a470447SFlorian Fainelli        mdio0: mdio@e14 {
883a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
893a470447SFlorian Fainelli           #address-cells = <1>;
903a470447SFlorian Fainelli           #size-cells = <0>;
913a470447SFlorian Fainelli           reg = <0xe14 0x8>;
923a470447SFlorian Fainelli
933a470447SFlorian Fainelli           phy1: ethernet-phy@1 {
943a470447SFlorian Fainelli                max-speed = <1000>;
953a470447SFlorian Fainelli                reg = <1>;
963a470447SFlorian Fainelli                compatible = "ethernet-phy-ieee802.3-c22";
973a470447SFlorian Fainelli           };
983a470447SFlorian Fainelli        };
993a470447SFlorian Fainelli    };
1003a470447SFlorian Fainelli
1013a470447SFlorian Fainelli  - |
1023a470447SFlorian Fainelli    ethernet@f0b80000 {
1033a470447SFlorian Fainelli        phy-mode = "moca";
1043a470447SFlorian Fainelli        fixed-link = <1 0 1000 0 0>;
1053a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 24 1a ];
1063a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
1073a470447SFlorian Fainelli        #address-cells = <1>;
1083a470447SFlorian Fainelli        #size-cells = <1>;
1093a470447SFlorian Fainelli        reg = <0xf0b80000 0xfc4c>;
1103a470447SFlorian Fainelli        interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
1113a470447SFlorian Fainelli
1123a470447SFlorian Fainelli        mdio1: mdio@e14 {
1133a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
1143a470447SFlorian Fainelli           #address-cells = <1>;
1153a470447SFlorian Fainelli           #size-cells = <0>;
1163a470447SFlorian Fainelli           reg = <0xe14 0x8>;
1173a470447SFlorian Fainelli        };
1183a470447SFlorian Fainelli    };
1193a470447SFlorian Fainelli
1203a470447SFlorian Fainelli  - |
1213a470447SFlorian Fainelli    ethernet@f0ba0000 {
1223a470447SFlorian Fainelli        phy-mode = "rgmii";
1233a470447SFlorian Fainelli        phy-handle = <&phy0>;
1243a470447SFlorian Fainelli        mac-address = [ 00 10 18 36 26 1a ];
1253a470447SFlorian Fainelli        compatible = "brcm,genet-v4";
1263a470447SFlorian Fainelli        #address-cells = <1>;
1273a470447SFlorian Fainelli        #size-cells = <1>;
1283a470447SFlorian Fainelli        reg = <0xf0ba0000 0xfc4c>;
1293a470447SFlorian Fainelli        interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
1303a470447SFlorian Fainelli
1313a470447SFlorian Fainelli        mdio2: mdio@e14 {
1323a470447SFlorian Fainelli           compatible = "brcm,genet-mdio-v4";
1333a470447SFlorian Fainelli           #address-cells = <1>;
1343a470447SFlorian Fainelli           #size-cells = <0>;
1353a470447SFlorian Fainelli           reg = <0xe14 0x8>;
1363a470447SFlorian Fainelli
1373a470447SFlorian Fainelli           phy0: ethernet-phy@0 {
1383a470447SFlorian Fainelli                max-speed = <1000>;
1393a470447SFlorian Fainelli                reg = <0>;
1403a470447SFlorian Fainelli                compatible = "ethernet-phy-ieee802.3-c22";
1413a470447SFlorian Fainelli           };
1423a470447SFlorian Fainelli        };
1433a470447SFlorian Fainelli    };
144