1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/net/ethernet-controller.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Ethernet Controller Generic Binding 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - David S. Miller <davem@davemloft.net> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunproperties: 13*4882a593Smuzhiyun $nodename: 14*4882a593Smuzhiyun pattern: "^ethernet(@.*)?$" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun local-mac-address: 17*4882a593Smuzhiyun description: 18*4882a593Smuzhiyun Specifies the MAC address that was assigned to the network device. 19*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint8-array 20*4882a593Smuzhiyun items: 21*4882a593Smuzhiyun - minItems: 6 22*4882a593Smuzhiyun maxItems: 6 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun mac-address: 25*4882a593Smuzhiyun description: 26*4882a593Smuzhiyun Specifies the MAC address that was last used by the boot 27*4882a593Smuzhiyun program; should be used in cases where the MAC address assigned 28*4882a593Smuzhiyun to the device by the boot program is different from the 29*4882a593Smuzhiyun local-mac-address property. 30*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint8-array 31*4882a593Smuzhiyun items: 32*4882a593Smuzhiyun - minItems: 6 33*4882a593Smuzhiyun maxItems: 6 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun max-frame-size: 36*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint32 37*4882a593Smuzhiyun description: 38*4882a593Smuzhiyun Maximum transfer unit (IEEE defined MTU), rather than the 39*4882a593Smuzhiyun maximum frame size (there\'s contradiction in the Devicetree 40*4882a593Smuzhiyun Specification). 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun max-speed: 43*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint32 44*4882a593Smuzhiyun description: 45*4882a593Smuzhiyun Specifies maximum speed in Mbit/s supported by the device. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun nvmem-cells: 48*4882a593Smuzhiyun maxItems: 1 49*4882a593Smuzhiyun description: 50*4882a593Smuzhiyun Reference to an nvmem node for the MAC address 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun nvmem-cell-names: 53*4882a593Smuzhiyun const: mac-address 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun phy-connection-type: 56*4882a593Smuzhiyun description: 57*4882a593Smuzhiyun Specifies interface type between the Ethernet device and a physical 58*4882a593Smuzhiyun layer (PHY) device. 59*4882a593Smuzhiyun enum: 60*4882a593Smuzhiyun # There is not a standard bus between the MAC and the PHY, 61*4882a593Smuzhiyun # something proprietary is being used to embed the PHY in the 62*4882a593Smuzhiyun # MAC. 63*4882a593Smuzhiyun - internal 64*4882a593Smuzhiyun - mii 65*4882a593Smuzhiyun - gmii 66*4882a593Smuzhiyun - sgmii 67*4882a593Smuzhiyun - qsgmii 68*4882a593Smuzhiyun - tbi 69*4882a593Smuzhiyun - rev-mii 70*4882a593Smuzhiyun - rmii 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun # RX and TX delays are added by the MAC when required 73*4882a593Smuzhiyun - rgmii 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun # RGMII with internal RX and TX delays provided by the PHY, 76*4882a593Smuzhiyun # the MAC should not add the RX or TX delays in this case 77*4882a593Smuzhiyun - rgmii-id 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun # RGMII with internal RX delay provided by the PHY, the MAC 80*4882a593Smuzhiyun # should not add an RX delay in this case 81*4882a593Smuzhiyun - rgmii-rxid 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun # RGMII with internal TX delay provided by the PHY, the MAC 84*4882a593Smuzhiyun # should not add an TX delay in this case 85*4882a593Smuzhiyun - rgmii-txid 86*4882a593Smuzhiyun - rtbi 87*4882a593Smuzhiyun - smii 88*4882a593Smuzhiyun - xgmii 89*4882a593Smuzhiyun - trgmii 90*4882a593Smuzhiyun - 1000base-x 91*4882a593Smuzhiyun - 2500base-x 92*4882a593Smuzhiyun - rxaui 93*4882a593Smuzhiyun - xaui 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun # 10GBASE-KR, XFI, SFI 96*4882a593Smuzhiyun - 10gbase-kr 97*4882a593Smuzhiyun - usxgmii 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun phy-mode: 100*4882a593Smuzhiyun $ref: "#/properties/phy-connection-type" 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun phy-handle: 103*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/phandle 104*4882a593Smuzhiyun description: 105*4882a593Smuzhiyun Specifies a reference to a node representing a PHY device. 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun phy: 108*4882a593Smuzhiyun $ref: "#/properties/phy-handle" 109*4882a593Smuzhiyun deprecated: true 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun phy-device: 112*4882a593Smuzhiyun $ref: "#/properties/phy-handle" 113*4882a593Smuzhiyun deprecated: true 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun rx-fifo-depth: 116*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint32 117*4882a593Smuzhiyun description: 118*4882a593Smuzhiyun The size of the controller\'s receive fifo in bytes. This is used 119*4882a593Smuzhiyun for components that can have configurable receive fifo sizes, 120*4882a593Smuzhiyun and is useful for determining certain configuration settings 121*4882a593Smuzhiyun such as flow control thresholds. 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun rx-internal-delay-ps: 124*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32 125*4882a593Smuzhiyun description: | 126*4882a593Smuzhiyun RGMII Receive Clock Delay defined in pico seconds. 127*4882a593Smuzhiyun This is used for controllers that have configurable RX internal delays. 128*4882a593Smuzhiyun If this property is present then the MAC applies the RX delay. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun sfp: 131*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/phandle 132*4882a593Smuzhiyun description: 133*4882a593Smuzhiyun Specifies a reference to a node representing a SFP cage. 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun tx-fifo-depth: 136*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint32 137*4882a593Smuzhiyun description: 138*4882a593Smuzhiyun The size of the controller\'s transmit fifo in bytes. This 139*4882a593Smuzhiyun is used for components that can have configurable fifo sizes. 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun tx-internal-delay-ps: 142*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32 143*4882a593Smuzhiyun description: | 144*4882a593Smuzhiyun RGMII Transmit Clock Delay defined in pico seconds. 145*4882a593Smuzhiyun This is used for controllers that have configurable TX internal delays. 146*4882a593Smuzhiyun If this property is present then the MAC applies the TX delay. 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun managed: 149*4882a593Smuzhiyun description: 150*4882a593Smuzhiyun Specifies the PHY management type. If auto is set and fixed-link 151*4882a593Smuzhiyun is not specified, it uses MDIO for management. 152*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/string 153*4882a593Smuzhiyun default: auto 154*4882a593Smuzhiyun enum: 155*4882a593Smuzhiyun - auto 156*4882a593Smuzhiyun - in-band-status 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun fixed-link: 159*4882a593Smuzhiyun allOf: 160*4882a593Smuzhiyun - if: 161*4882a593Smuzhiyun type: array 162*4882a593Smuzhiyun then: 163*4882a593Smuzhiyun deprecated: true 164*4882a593Smuzhiyun minItems: 1 165*4882a593Smuzhiyun maxItems: 1 166*4882a593Smuzhiyun items: 167*4882a593Smuzhiyun items: 168*4882a593Smuzhiyun - minimum: 0 169*4882a593Smuzhiyun maximum: 31 170*4882a593Smuzhiyun description: 171*4882a593Smuzhiyun Emulated PHY ID, choose any but unique to the all 172*4882a593Smuzhiyun specified fixed-links 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun - enum: [0, 1] 175*4882a593Smuzhiyun description: 176*4882a593Smuzhiyun Duplex configuration. 0 for half duplex or 1 for 177*4882a593Smuzhiyun full duplex 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun - enum: [10, 100, 1000] 180*4882a593Smuzhiyun description: 181*4882a593Smuzhiyun Link speed in Mbits/sec. 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun - enum: [0, 1] 184*4882a593Smuzhiyun description: 185*4882a593Smuzhiyun Pause configuration. 0 for no pause, 1 for pause 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun - enum: [0, 1] 188*4882a593Smuzhiyun description: 189*4882a593Smuzhiyun Asymmetric pause configuration. 0 for no asymmetric 190*4882a593Smuzhiyun pause, 1 for asymmetric pause 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun - if: 194*4882a593Smuzhiyun type: object 195*4882a593Smuzhiyun then: 196*4882a593Smuzhiyun properties: 197*4882a593Smuzhiyun speed: 198*4882a593Smuzhiyun description: 199*4882a593Smuzhiyun Link speed. 200*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/uint32 201*4882a593Smuzhiyun enum: [10, 100, 1000] 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun full-duplex: 204*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/flag 205*4882a593Smuzhiyun description: 206*4882a593Smuzhiyun Indicates that full-duplex is used. When absent, half 207*4882a593Smuzhiyun duplex is assumed. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun pause: 210*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/flag 211*4882a593Smuzhiyun description: 212*4882a593Smuzhiyun Indicates that pause should be enabled. 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun asym-pause: 215*4882a593Smuzhiyun $ref: /schemas/types.yaml#definitions/flag 216*4882a593Smuzhiyun description: 217*4882a593Smuzhiyun Indicates that asym_pause should be enabled. 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun link-gpios: 220*4882a593Smuzhiyun maxItems: 1 221*4882a593Smuzhiyun description: 222*4882a593Smuzhiyun GPIO to determine if the link is up 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun required: 225*4882a593Smuzhiyun - speed 226*4882a593Smuzhiyun 227*4882a593SmuzhiyunadditionalProperties: true 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun... 230