1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/net/fsl,fec.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Freescale Fast Ethernet Controller (FEC) 8 9maintainers: 10 - Shawn Guo <shawnguo@kernel.org> 11 - Wei Fang <wei.fang@nxp.com> 12 - NXP Linux Team <linux-imx@nxp.com> 13 14allOf: 15 - $ref: ethernet-controller.yaml# 16 17properties: 18 compatible: 19 oneOf: 20 - enum: 21 - fsl,imx25-fec 22 - fsl,imx27-fec 23 - fsl,imx28-fec 24 - fsl,imx6q-fec 25 - fsl,mvf600-fec 26 - fsl,s32v234-fec 27 - items: 28 - enum: 29 - fsl,imx53-fec 30 - fsl,imx6sl-fec 31 - const: fsl,imx25-fec 32 - items: 33 - enum: 34 - fsl,imx35-fec 35 - fsl,imx51-fec 36 - const: fsl,imx27-fec 37 - items: 38 - enum: 39 - fsl,imx6ul-fec 40 - fsl,imx6sx-fec 41 - const: fsl,imx6q-fec 42 - items: 43 - enum: 44 - fsl,imx7d-fec 45 - const: fsl,imx6sx-fec 46 - items: 47 - const: fsl,imx8mq-fec 48 - const: fsl,imx6sx-fec 49 - items: 50 - enum: 51 - fsl,imx8mm-fec 52 - fsl,imx8mn-fec 53 - fsl,imx8mp-fec 54 - fsl,imx93-fec 55 - const: fsl,imx8mq-fec 56 - const: fsl,imx6sx-fec 57 - items: 58 - const: fsl,imx8qm-fec 59 - const: fsl,imx6sx-fec 60 - items: 61 - enum: 62 - fsl,imx8qxp-fec 63 - const: fsl,imx8qm-fec 64 - const: fsl,imx6sx-fec 65 - items: 66 - enum: 67 - fsl,imx8ulp-fec 68 - const: fsl,imx6ul-fec 69 - const: fsl,imx6q-fec 70 71 reg: 72 maxItems: 1 73 74 interrupts: 75 minItems: 1 76 maxItems: 4 77 78 interrupt-names: 79 oneOf: 80 - items: 81 - const: int0 82 - items: 83 - const: int0 84 - const: pps 85 - items: 86 - const: int0 87 - const: int1 88 - const: int2 89 - items: 90 - const: int0 91 - const: int1 92 - const: int2 93 - const: pps 94 95 clocks: 96 minItems: 2 97 maxItems: 5 98 description: 99 The "ipg", for MAC ipg_clk_s, ipg_clk_mac_s that are for register accessing. 100 The "ahb", for MAC ipg_clk, ipg_clk_mac that are bus clock. 101 The "ptp"(option), for IEEE1588 timer clock that requires the clock. 102 The "enet_clk_ref"(option), for MAC transmit/receiver reference clock like 103 RGMII TXC clock or RMII reference clock. It depends on board design, 104 the clock is required if RGMII TXC and RMII reference clock source from 105 SOC internal PLL. 106 The "enet_out"(option), output clock for external device, like supply clock 107 for PHY. The clock is required if PHY clock source from SOC. 108 The "enet_2x_txclk"(option), for RGMII sampling clock which fixed at 250Mhz. 109 The clock is required if SoC RGMII enable clock delay. 110 111 clock-names: 112 minItems: 2 113 maxItems: 5 114 items: 115 enum: 116 - ipg 117 - ahb 118 - ptp 119 - enet_clk_ref 120 - enet_out 121 - enet_2x_txclk 122 123 phy-mode: true 124 125 phy-handle: true 126 127 fixed-link: true 128 129 local-mac-address: true 130 131 mac-address: true 132 133 nvmem-cells: true 134 135 nvmem-cell-names: true 136 137 tx-internal-delay-ps: 138 enum: [0, 2000] 139 140 rx-internal-delay-ps: 141 enum: [0, 2000] 142 143 phy-supply: 144 description: 145 Regulator that powers the Ethernet PHY. 146 147 power-domains: 148 maxItems: 1 149 150 fsl,num-tx-queues: 151 $ref: /schemas/types.yaml#/definitions/uint32 152 description: 153 The property is valid for enet-avb IP, which supports hw multi queues. 154 Should specify the tx queue number, otherwise set tx queue number to 1. 155 enum: [1, 2, 3] 156 157 fsl,num-rx-queues: 158 $ref: /schemas/types.yaml#/definitions/uint32 159 description: 160 The property is valid for enet-avb IP, which supports hw multi queues. 161 Should specify the rx queue number, otherwise set rx queue number to 1. 162 enum: [1, 2, 3] 163 164 fsl,magic-packet: 165 $ref: /schemas/types.yaml#/definitions/flag 166 description: 167 If present, indicates that the hardware supports waking up via magic packet. 168 169 fsl,err006687-workaround-present: 170 $ref: /schemas/types.yaml#/definitions/flag 171 description: 172 If present indicates that the system has the hardware workaround for 173 ERR006687 applied and does not need a software workaround. 174 175 fsl,stop-mode: 176 $ref: /schemas/types.yaml#/definitions/phandle-array 177 items: 178 - items: 179 - description: phandle to general purpose register node 180 - description: the gpr register offset for ENET stop request 181 - description: the gpr bit offset for ENET stop request 182 description: 183 Register bits of stop mode control, the format is <&gpr req_gpr req_bit>. 184 185 mdio: 186 $ref: mdio.yaml# 187 unevaluatedProperties: false 188 description: 189 Specifies the mdio bus in the FEC, used as a container for phy nodes. 190 191 # Deprecated optional properties: 192 # To avoid these, create a phy node according to ethernet-phy.yaml in the same 193 # directory, and point the FEC's "phy-handle" property to it. Then use 194 # the phy's reset binding, again described by ethernet-phy.yaml. 195 196 phy-reset-gpios: 197 deprecated: true 198 description: 199 Should specify the gpio for phy reset. 200 201 phy-reset-duration: 202 $ref: /schemas/types.yaml#/definitions/uint32 203 deprecated: true 204 description: 205 Reset duration in milliseconds. Should present only if property 206 "phy-reset-gpios" is available. Missing the property will have the 207 duration be 1 millisecond. Numbers greater than 1000 are invalid 208 and 1 millisecond will be used instead. 209 210 phy-reset-active-high: 211 type: boolean 212 deprecated: true 213 description: 214 If present then the reset sequence using the GPIO specified in the 215 "phy-reset-gpios" property is reversed (H=reset state, L=operation state). 216 217 phy-reset-post-delay: 218 $ref: /schemas/types.yaml#/definitions/uint32 219 deprecated: true 220 description: 221 Post reset delay in milliseconds. If present then a delay of phy-reset-post-delay 222 milliseconds will be observed after the phy-reset-gpios has been toggled. 223 Can be omitted thus no delay is observed. Delay is in range of 1ms to 1000ms. 224 Other delays are invalid. 225 226required: 227 - compatible 228 - reg 229 - interrupts 230 231# FIXME: We had better set additionalProperties to false to avoid invalid or at 232# least undocumented properties. However, PHY may have a deprecated option to 233# place PHY OF properties in the MAC node, such as Micrel PHY, and we can find 234# these boards which is based on i.MX6QDL. 235unevaluatedProperties: false 236 237examples: 238 - | 239 ethernet@83fec000 { 240 compatible = "fsl,imx51-fec", "fsl,imx27-fec"; 241 reg = <0x83fec000 0x4000>; 242 interrupts = <87>; 243 phy-mode = "mii"; 244 phy-reset-gpios = <&gpio2 14 0>; 245 phy-supply = <®_fec_supply>; 246 }; 247 248 ethernet@83fed000 { 249 compatible = "fsl,imx51-fec", "fsl,imx27-fec"; 250 reg = <0x83fed000 0x4000>; 251 interrupts = <87>; 252 phy-mode = "mii"; 253 phy-reset-gpios = <&gpio2 14 0>; 254 phy-supply = <®_fec_supply>; 255 phy-handle = <ðphy0>; 256 257 mdio { 258 #address-cells = <1>; 259 #size-cells = <0>; 260 261 ethphy0: ethernet-phy@0 { 262 compatible = "ethernet-phy-ieee802.3-c22"; 263 reg = <0>; 264 }; 265 }; 266 }; 267