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 minItems: 6 21 maxItems: 6 22 23 mac-address: 24 description: 25 Specifies the MAC address that was last used by the boot 26 program; should be used in cases where the MAC address assigned 27 to the device by the boot program is different from the 28 local-mac-address property. 29 $ref: /schemas/types.yaml#/definitions/uint8-array 30 minItems: 6 31 maxItems: 6 32 33 max-frame-size: 34 $ref: /schemas/types.yaml#/definitions/uint32 35 description: 36 Maximum transfer unit (IEEE defined MTU), rather than the 37 maximum frame size (there\'s contradiction in the Devicetree 38 Specification). 39 40 max-speed: 41 $ref: /schemas/types.yaml#/definitions/uint32 42 description: 43 Specifies maximum speed in Mbit/s supported by the device. 44 45 nvmem-cells: 46 maxItems: 1 47 description: 48 Reference to an nvmem node for the MAC address 49 50 nvmem-cell-names: 51 const: mac-address 52 53 phy-connection-type: 54 description: 55 Specifies interface type between the Ethernet device and a physical 56 layer (PHY) device. 57 enum: 58 # There is not a standard bus between the MAC and the PHY, 59 # something proprietary is being used to embed the PHY in the 60 # MAC. 61 - internal 62 - mii 63 - gmii 64 - sgmii 65 - qsgmii 66 - tbi 67 - rev-mii 68 - rmii 69 - rev-rmii 70 - moca 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 - 5gbase-r 93 - rxaui 94 - xaui 95 96 # 10GBASE-KR, XFI, SFI 97 - 10gbase-kr 98 - usxgmii 99 - 10gbase-r 100 - 25gbase-r 101 102 phy-mode: 103 $ref: "#/properties/phy-connection-type" 104 105 phy-handle: 106 $ref: /schemas/types.yaml#/definitions/phandle 107 description: 108 Specifies a reference to a node representing a PHY device. 109 110 phy: 111 $ref: "#/properties/phy-handle" 112 deprecated: true 113 114 phy-device: 115 $ref: "#/properties/phy-handle" 116 deprecated: true 117 118 rx-fifo-depth: 119 $ref: /schemas/types.yaml#/definitions/uint32 120 description: 121 The size of the controller\'s receive fifo in bytes. This is used 122 for components that can have configurable receive fifo sizes, 123 and is useful for determining certain configuration settings 124 such as flow control thresholds. 125 126 rx-internal-delay-ps: 127 description: | 128 RGMII Receive Clock Delay defined in pico seconds. 129 This is used for controllers that have configurable RX internal delays. 130 If this property is present then the MAC applies the RX delay. 131 132 sfp: 133 $ref: /schemas/types.yaml#/definitions/phandle 134 description: 135 Specifies a reference to a node representing a SFP cage. 136 137 tx-fifo-depth: 138 $ref: /schemas/types.yaml#/definitions/uint32 139 description: 140 The size of the controller\'s transmit fifo in bytes. This 141 is used for components that can have configurable fifo sizes. 142 143 tx-internal-delay-ps: 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 items: 166 - minimum: 0 167 maximum: 31 168 description: 169 Emulated PHY ID, choose any but unique to the all 170 specified fixed-links 171 172 - enum: [0, 1] 173 description: 174 Duplex configuration. 0 for half duplex or 1 for 175 full duplex 176 177 - enum: [10, 100, 1000, 2500, 10000] 178 description: 179 Link speed in Mbits/sec. 180 181 - enum: [0, 1] 182 description: 183 Pause configuration. 0 for no pause, 1 for pause 184 185 - enum: [0, 1] 186 description: 187 Asymmetric pause configuration. 0 for no asymmetric 188 pause, 1 for asymmetric pause 189 190 191 - if: 192 type: object 193 then: 194 properties: 195 speed: 196 description: 197 Link speed. 198 $ref: /schemas/types.yaml#/definitions/uint32 199 enum: [10, 100, 1000, 2500, 10000] 200 201 full-duplex: 202 $ref: /schemas/types.yaml#/definitions/flag 203 description: 204 Indicates that full-duplex is used. When absent, half 205 duplex is assumed. 206 207 pause: 208 $ref: /schemas/types.yaml#definitions/flag 209 description: 210 Indicates that pause should be enabled. 211 212 asym-pause: 213 $ref: /schemas/types.yaml#/definitions/flag 214 description: 215 Indicates that asym_pause should be enabled. 216 217 link-gpios: 218 maxItems: 1 219 description: 220 GPIO to determine if the link is up 221 222 required: 223 - speed 224 225additionalProperties: true 226 227... 228