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 - rev-rmii 72 73 # RX and TX delays are added by the MAC when required 74 - rgmii 75 76 # RGMII with internal RX and TX delays provided by the PHY, 77 # the MAC should not add the RX or TX delays in this case 78 - rgmii-id 79 80 # RGMII with internal RX delay provided by the PHY, the MAC 81 # should not add an RX delay in this case 82 - rgmii-rxid 83 84 # RGMII with internal TX delay provided by the PHY, the MAC 85 # should not add an TX delay in this case 86 - rgmii-txid 87 - rtbi 88 - smii 89 - xgmii 90 - trgmii 91 - 1000base-x 92 - 2500base-x 93 - 5gbase-r 94 - rxaui 95 - xaui 96 97 # 10GBASE-KR, XFI, SFI 98 - 10gbase-kr 99 - usxgmii 100 - 10gbase-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 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 pause: 211 $ref: /schemas/types.yaml#definitions/flag 212 description: 213 Indicates that pause should be enabled. 214 215 asym-pause: 216 $ref: /schemas/types.yaml#/definitions/flag 217 description: 218 Indicates that asym_pause should be enabled. 219 220 link-gpios: 221 maxItems: 1 222 description: 223 GPIO to determine if the link is up 224 225 required: 226 - speed 227 228additionalProperties: true 229 230... 231