1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/net/ethernet-controller.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Ethernet Controller Generic Binding 8 9maintainers: 10 - David S. Miller <davem@davemloft.net> 11 12properties: 13 $nodename: 14 pattern: "^ethernet(@.*)?$" 15 16 local-mac-address: 17 description: 18 Specifies the MAC address that was assigned to the network device. 19 $ref: /schemas/types.yaml#/definitions/uint8-array 20 items: 21 - minItems: 6 22 maxItems: 6 23 24 mac-address: 25 description: 26 Specifies the MAC address that was last used by the boot 27 program; should be used in cases where the MAC address assigned 28 to the device by the boot program is different from the 29 local-mac-address property. 30 $ref: /schemas/types.yaml#/definitions/uint8-array 31 items: 32 - minItems: 6 33 maxItems: 6 34 35 max-frame-size: 36 $ref: /schemas/types.yaml#/definitions/uint32 37 description: 38 Maximum transfer unit (IEEE defined MTU), rather than the 39 maximum frame size (there\'s contradiction in the Devicetree 40 Specification). 41 42 max-speed: 43 $ref: /schemas/types.yaml#/definitions/uint32 44 description: 45 Specifies maximum speed in Mbit/s supported by the device. 46 47 nvmem-cells: 48 maxItems: 1 49 description: 50 Reference to an nvmem node for the MAC address 51 52 nvmem-cells-names: 53 const: mac-address 54 55 phy-connection-type: 56 description: 57 Specifies interface type between the Ethernet device and a physical 58 layer (PHY) device. 59 enum: 60 # There is not a standard bus between the MAC and the PHY, 61 # something proprietary is being used to embed the PHY in the 62 # MAC. 63 - internal 64 - mii 65 - gmii 66 - sgmii 67 - qsgmii 68 - tbi 69 - rev-mii 70 - rmii 71 72 # RX and TX delays are added by the MAC when required 73 - rgmii 74 75 # RGMII with internal RX and TX delays provided by the PHY, 76 # the MAC should not add the RX or TX delays in this case 77 - rgmii-id 78 79 # RGMII with internal RX delay provided by the PHY, the MAC 80 # should not add an RX delay in this case 81 - rgmii-rxid 82 83 # RGMII with internal TX delay provided by the PHY, the MAC 84 # should not add an TX delay in this case 85 - rgmii-txid 86 - rtbi 87 - smii 88 - xgmii 89 - trgmii 90 - 1000base-x 91 - 2500base-x 92 - rxaui 93 - xaui 94 95 # 10GBASE-KR, XFI, SFI 96 - 10gbase-kr 97 - usxgmii 98 - 10gbase-r 99 100 phy-mode: 101 $ref: "#/properties/phy-connection-type" 102 103 phy-handle: 104 $ref: /schemas/types.yaml#/definitions/phandle 105 description: 106 Specifies a reference to a node representing a PHY device. 107 108 phy: 109 $ref: "#/properties/phy-handle" 110 deprecated: true 111 112 phy-device: 113 $ref: "#/properties/phy-handle" 114 deprecated: true 115 116 rx-fifo-depth: 117 $ref: /schemas/types.yaml#/definitions/uint32 118 description: 119 The size of the controller\'s receive fifo in bytes. This is used 120 for components that can have configurable receive fifo sizes, 121 and is useful for determining certain configuration settings 122 such as flow control thresholds. 123 124 rx-internal-delay-ps: 125 $ref: /schemas/types.yaml#/definitions/uint32 126 description: | 127 RGMII Receive Clock Delay defined in pico seconds. 128 This is used for controllers that have configurable RX internal delays. 129 If this property is present then the MAC applies the RX delay. 130 131 sfp: 132 $ref: /schemas/types.yaml#/definitions/phandle 133 description: 134 Specifies a reference to a node representing a SFP cage. 135 136 tx-fifo-depth: 137 $ref: /schemas/types.yaml#/definitions/uint32 138 description: 139 The size of the controller\'s transmit fifo in bytes. This 140 is used for components that can have configurable fifo sizes. 141 142 tx-internal-delay-ps: 143 $ref: /schemas/types.yaml#/definitions/uint32 144 description: | 145 RGMII Transmit Clock Delay defined in pico seconds. 146 This is used for controllers that have configurable TX internal delays. 147 If this property is present then the MAC applies the TX delay. 148 149 managed: 150 description: 151 Specifies the PHY management type. If auto is set and fixed-link 152 is not specified, it uses MDIO for management. 153 $ref: /schemas/types.yaml#/definitions/string 154 default: auto 155 enum: 156 - auto 157 - in-band-status 158 159 fixed-link: 160 allOf: 161 - if: 162 type: array 163 then: 164 deprecated: true 165 minItems: 1 166 maxItems: 1 167 items: 168 items: 169 - minimum: 0 170 maximum: 31 171 description: 172 Emulated PHY ID, choose any but unique to the all 173 specified fixed-links 174 175 - enum: [0, 1] 176 description: 177 Duplex configuration. 0 for half duplex or 1 for 178 full duplex 179 180 - enum: [10, 100, 1000] 181 description: 182 Link speed in Mbits/sec. 183 184 - enum: [0, 1] 185 description: 186 Pause configuration. 0 for no pause, 1 for pause 187 188 - enum: [0, 1] 189 description: 190 Asymmetric pause configuration. 0 for no asymmetric 191 pause, 1 for asymmetric pause 192 193 194 - if: 195 type: object 196 then: 197 properties: 198 speed: 199 description: 200 Link speed. 201 $ref: /schemas/types.yaml#/definitions/uint32 202 enum: [10, 100, 1000] 203 204 full-duplex: 205 $ref: /schemas/types.yaml#/definitions/flag 206 description: 207 Indicates that full-duplex is used. When absent, half 208 duplex is assumed. 209 210 asym-pause: 211 $ref: /schemas/types.yaml#/definitions/flag 212 description: 213 Indicates that asym_pause should be enabled. 214 215 link-gpios: 216 maxItems: 1 217 description: 218 GPIO to determine if the link is up 219 220 required: 221 - speed 222 223additionalProperties: true 224 225... 226