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-cell-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 - 5gbase-r 93 - rxaui 94 - xaui 95 96 # 10GBASE-KR, XFI, SFI 97 - 10gbase-kr 98 - usxgmii 99 - 10gbase-r 100 101 phy-mode: 102 $ref: "#/properties/phy-connection-type" 103 104 phy-handle: 105 $ref: /schemas/types.yaml#/definitions/phandle 106 description: 107 Specifies a reference to a node representing a PHY device. 108 109 phy: 110 $ref: "#/properties/phy-handle" 111 deprecated: true 112 113 phy-device: 114 $ref: "#/properties/phy-handle" 115 deprecated: true 116 117 rx-fifo-depth: 118 $ref: /schemas/types.yaml#/definitions/uint32 119 description: 120 The size of the controller\'s receive fifo in bytes. This is used 121 for components that can have configurable receive fifo sizes, 122 and is useful for determining certain configuration settings 123 such as flow control thresholds. 124 125 rx-internal-delay-ps: 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 description: | 144 RGMII Transmit Clock Delay defined in pico seconds. 145 This is used for controllers that have configurable TX internal delays. 146 If this property is present then the MAC applies the TX delay. 147 148 managed: 149 description: 150 Specifies the PHY management type. If auto is set and fixed-link 151 is not specified, it uses MDIO for management. 152 $ref: /schemas/types.yaml#/definitions/string 153 default: auto 154 enum: 155 - auto 156 - in-band-status 157 158 fixed-link: 159 allOf: 160 - if: 161 type: array 162 then: 163 deprecated: true 164 minItems: 1 165 maxItems: 1 166 items: 167 items: 168 - minimum: 0 169 maximum: 31 170 description: 171 Emulated PHY ID, choose any but unique to the all 172 specified fixed-links 173 174 - enum: [0, 1] 175 description: 176 Duplex configuration. 0 for half duplex or 1 for 177 full duplex 178 179 - enum: [10, 100, 1000] 180 description: 181 Link speed in Mbits/sec. 182 183 - enum: [0, 1] 184 description: 185 Pause configuration. 0 for no pause, 1 for pause 186 187 - enum: [0, 1] 188 description: 189 Asymmetric pause configuration. 0 for no asymmetric 190 pause, 1 for asymmetric pause 191 192 193 - if: 194 type: object 195 then: 196 properties: 197 speed: 198 description: 199 Link speed. 200 $ref: /schemas/types.yaml#/definitions/uint32 201 enum: [10, 100, 1000] 202 203 full-duplex: 204 $ref: /schemas/types.yaml#/definitions/flag 205 description: 206 Indicates that full-duplex is used. When absent, half 207 duplex is assumed. 208 209 pause: 210 $ref: /schemas/types.yaml#definitions/flag 211 description: 212 Indicates that pause should be enabled. 213 214 asym-pause: 215 $ref: /schemas/types.yaml#/definitions/flag 216 description: 217 Indicates that asym_pause should be enabled. 218 219 link-gpios: 220 maxItems: 1 221 description: 222 GPIO to determine if the link is up 223 224 required: 225 - speed 226 227additionalProperties: true 228 229... 230