Documentation / devicetree / bindings / net / brcm,bcmgenet.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/brcm,bcmgenet.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM7xxx Ethernet Controller (GENET)

maintainers:
  - Doug Berger <opendmb@gmail.com>
  - Florian Fainelli <f.fainelli@gmail.com>

properties:
  compatible:
    enum:
      - brcm,genet-v1
      - brcm,genet-v2
      - brcm,genet-v3
      - brcm,genet-v4
      - brcm,genet-v5
      - brcm,bcm2711-genet-v5
      - brcm,bcm7712-genet-v5

  reg:
    maxItems: 1

  interrupts:
    minItems: 2
    items:
      - description: general purpose interrupt line
      - description: RX and TX rings interrupt line
      - description: Wake-on-LAN interrupt line
 

  clocks:
    minItems: 1
    items:
      - description: main clock
      - description: EEE clock
      - description: Wake-on-LAN clock

  clock-names:
    minItems: 1
    items:
      - const: enet
      - const: enet-eee
      - const: enet-wol
 
  "#address-cells":
    const: 1
 
  "#size-cells":
    const: 1

patternProperties:
  "^mdio@[0-9a-f]+$":
    type: object
    $ref: brcm,unimac-mdio.yaml

    description:
      GENET internal UniMAC MDIO bus

required:
  - reg
  - interrupts
  - phy-mode
  - "#address-cells"
  - "#size-cells"

allOf:
  - $ref: ethernet-controller.yaml

unevaluatedProperties: false

examples:
  - |
    ethernet@f0b60000 {
        phy-mode = "internal";
        phy-handle = <&phy1>;
        mac-address = [ 00 10 18 36 23 1a ];
        compatible = "brcm,genet-v4";
        reg = <0xf0b60000 0xfc4c>;
        interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
        #address-cells = <1>;
        #size-cells = <1>;
 
        mdio0: mdio@e14 {
           compatible = "brcm,genet-mdio-v4";
           #address-cells = <1>;
           #size-cells = <0>;
           reg = <0xe14 0x8>;
 
           phy1: ethernet-phy@1 {
                max-speed = <1000>;
                reg = <1>;
                compatible = "ethernet-phy-ieee802.3-c22";
           };
        };
    };

  - |
    ethernet@f0b80000 {
        phy-mode = "moca";
        fixed-link = <1 0 1000 0 0>;
        mac-address = [ 00 10 18 36 24 1a ];
        compatible = "brcm,genet-v4";
        #address-cells = <1>;
        #size-cells = <1>;
        reg = <0xf0b80000 0xfc4c>;
        interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
 
        mdio1: mdio@e14 {
           compatible = "brcm,genet-mdio-v4";
           #address-cells = <1>;
           #size-cells = <0>;
           reg = <0xe14 0x8>;
        };
    };

  - |
    ethernet@f0ba0000 {
        phy-mode = "rgmii";
        phy-handle = <&phy0>;
        mac-address = [ 00 10 18 36 26 1a ];
        compatible = "brcm,genet-v4";
        #address-cells = <1>;
        #size-cells = <1>;
        reg = <0xf0ba0000 0xfc4c>;
        interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
 
        mdio2: mdio@e14 {
           compatible = "brcm,genet-mdio-v4";
           #address-cells = <1>;
           #size-cells = <0>;
           reg = <0xe14 0x8>;
 
           phy0: ethernet-phy@0 {
                max-speed = <1000>;
                reg = <0>;
                compatible = "ethernet-phy-ieee802.3-c22";
           };
        };
    };