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 description: | 126 RGMII Receive Clock Delay defined in pico seconds. 127 This is used for controllers that have configurable RX internal delays. 128 If this property is present then the MAC applies the RX delay. 129 130 sfp: 131 $ref: /schemas/types.yaml#/definitions/phandle 132 description: 133 Specifies a reference to a node representing a SFP cage. 134 135 tx-fifo-depth: 136 $ref: /schemas/types.yaml#/definitions/uint32 137 description: 138 The size of the controller\'s transmit fifo in bytes. This 139 is used for components that can have configurable fifo sizes. 140 141 tx-internal-delay-ps: 142 description: | 143 RGMII Transmit Clock Delay defined in pico seconds. 144 This is used for controllers that have configurable TX internal delays. 145 If this property is present then the MAC applies the TX delay. 146 147 managed: 148 description: 149 Specifies the PHY management type. If auto is set and fixed-link 150 is not specified, it uses MDIO for management. 151 $ref: /schemas/types.yaml#/definitions/string 152 default: auto 153 enum: 154 - auto 155 - in-band-status 156 157 fixed-link: 158 allOf: 159 - if: 160 type: array 161 then: 162 deprecated: true 163 minItems: 1 164 maxItems: 1 165 items: 166 items: 167 - minimum: 0 168 maximum: 31 169 description: 170 Emulated PHY ID, choose any but unique to the all 171 specified fixed-links 172 173 - enum: [0, 1] 174 description: 175 Duplex configuration. 0 for half duplex or 1 for 176 full duplex 177 178 - enum: [10, 100, 1000] 179 description: 180 Link speed in Mbits/sec. 181 182 - enum: [0, 1] 183 description: 184 Pause configuration. 0 for no pause, 1 for pause 185 186 - enum: [0, 1] 187 description: 188 Asymmetric pause configuration. 0 for no asymmetric 189 pause, 1 for asymmetric pause 190 191 192 - if: 193 type: object 194 then: 195 properties: 196 speed: 197 description: 198 Link speed. 199 $ref: /schemas/types.yaml#/definitions/uint32 200 enum: [10, 100, 1000] 201 202 full-duplex: 203 $ref: /schemas/types.yaml#/definitions/flag 204 description: 205 Indicates that full-duplex is used. When absent, half 206 duplex is assumed. 207 208 asym-pause: 209 $ref: /schemas/types.yaml#/definitions/flag 210 description: 211 Indicates that asym_pause should be enabled. 212 213 link-gpios: 214 maxItems: 1 215 description: 216 GPIO to determine if the link is up 217 218 required: 219 - speed 220 221additionalProperties: true 222 223... 224