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 99 phy-mode: 100 $ref: "#/properties/phy-connection-type" 101 102 phy-handle: 103 $ref: /schemas/types.yaml#definitions/phandle 104 description: 105 Specifies a reference to a node representing a PHY device. 106 107 phy: 108 $ref: "#/properties/phy-handle" 109 deprecated: true 110 111 phy-device: 112 $ref: "#/properties/phy-handle" 113 deprecated: true 114 115 rx-fifo-depth: 116 $ref: /schemas/types.yaml#definitions/uint32 117 description: 118 The size of the controller\'s receive fifo in bytes. This is used 119 for components that can have configurable receive fifo sizes, 120 and is useful for determining certain configuration settings 121 such as flow control thresholds. 122 123 rx-internal-delay-ps: 124 $ref: /schemas/types.yaml#/definitions/uint32 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 $ref: /schemas/types.yaml#/definitions/uint32 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 asym-pause: 210 $ref: /schemas/types.yaml#definitions/flag 211 description: 212 Indicates that asym_pause should be enabled. 213 214 link-gpios: 215 maxItems: 1 216 description: 217 GPIO to determine if the link is up 218 219 required: 220 - speed 221 222additionalProperties: true 223 224... 225