1# SPDX-License-Identifier: GPL-2.0+ 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/net/qca,ar803x.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Atheros AR803x PHY 8 9maintainers: 10 - Andrew Lunn <andrew@lunn.ch> 11 - Florian Fainelli <f.fainelli@gmail.com> 12 - Heiner Kallweit <hkallweit1@gmail.com> 13 14description: | 15 Bindings for Qualcomm Atheros AR803x PHYs 16 17allOf: 18 - $ref: ethernet-phy.yaml# 19 - if: 20 properties: 21 compatible: 22 contains: 23 enum: 24 - ethernet-phy-id004d.d0c0 25 26 then: 27 properties: 28 reg: 29 const: 7 # This PHY is always at MDIO address 7 in the IPQ5018 SoC 30 31 clocks: 32 items: 33 - description: RX clock 34 - description: TX clock 35 36 clock-names: 37 items: 38 - const: rx 39 - const: tx 40 41 resets: 42 items: 43 - description: 44 GE PHY MISC reset which triggers a reset across MDC, DSP, RX, and TX lines. 45 46 qcom,dac-preset-short-cable: 47 description: 48 Set if this phy is connected to another phy to adjust the values for 49 MDAC and EDAC to adjust amplitude, bias current settings, and error 50 detection and correction algorithm to accommodate for short cable length. 51 If not set, DAC values are not modified and it is assumed the MDI output pins 52 of this PHY are directly connected to an RJ45 connector. 53 type: boolean 54 55 required: 56 - clocks 57 - clock-names 58 - resets 59 60properties: 61 compatible: 62 enum: 63 - ethernet-phy-id004d.d0c0 64 65 qca,clk-out-frequency: 66 description: Clock output frequency in Hertz. 67 $ref: /schemas/types.yaml#/definitions/uint32 68 enum: [25000000, 50000000, 62500000, 125000000] 69 70 qca,clk-out-strength: 71 description: Clock output driver strength. 72 $ref: /schemas/types.yaml#/definitions/uint32 73 enum: [0, 1, 2] 74 75 qca,disable-smarteee: 76 description: Disable Atheros SmartEEE feature. 77 type: boolean 78 79 qca,keep-pll-enabled: 80 description: | 81 If set, keep the PLL enabled even if there is no link. Useful if you 82 want to use the clock output without an ethernet link. 83 84 Only supported on the AR8031. 85 type: boolean 86 87 qca,disable-hibernation-mode: 88 description: | 89 Disable Atheros AR803X PHYs hibernation mode. If present, indicates 90 that the hardware of PHY will not enter power saving mode when the 91 cable is disconnected. And the RX_CLK always keeps outputting a 92 valid clock. 93 type: boolean 94 95 qca,smarteee-tw-us-100m: 96 description: EEE Tw parameter for 100M links. 97 $ref: /schemas/types.yaml#/definitions/uint32 98 minimum: 1 99 maximum: 255 100 101 qca,smarteee-tw-us-1g: 102 description: EEE Tw parameter for gigabit links. 103 $ref: /schemas/types.yaml#/definitions/uint32 104 minimum: 1 105 maximum: 255 106 107 vddio-supply: 108 description: | 109 RGMII I/O voltage regulator (see regulator/regulator.yaml). 110 111 The PHY supports RGMII I/O voltages of 1.5V, 1.8V and 2.5V. You can 112 either connect this to the vddio-regulator (1.5V / 1.8V) or the 113 vddh-regulator (2.5V). 114 115 Only supported on the AR8031. 116 117 vddio-regulator: 118 type: object 119 description: 120 Initial data for the VDDIO regulator. Set this to 1.5V or 1.8V. 121 $ref: /schemas/regulator/regulator.yaml 122 unevaluatedProperties: false 123 124 vddh-regulator: 125 type: object 126 description: 127 Dummy subnode to model the external connection of the PHY VDDH 128 regulator to VDDIO. 129 $ref: /schemas/regulator/regulator.yaml 130 unevaluatedProperties: false 131 132unevaluatedProperties: false 133 134examples: 135 - | 136 #include <dt-bindings/net/qca-ar803x.h> 137 138 ethernet { 139 #address-cells = <1>; 140 #size-cells = <0>; 141 142 phy-mode = "rgmii-id"; 143 144 ethernet-phy@0 { 145 reg = <0>; 146 147 qca,clk-out-frequency = <125000000>; 148 qca,clk-out-strength = <AR803X_STRENGTH_FULL>; 149 150 vddio-supply = <&vddio>; 151 152 vddio: vddio-regulator { 153 regulator-min-microvolt = <1800000>; 154 regulator-max-microvolt = <1800000>; 155 }; 156 }; 157 }; 158 - | 159 #include <dt-bindings/net/qca-ar803x.h> 160 161 ethernet { 162 #address-cells = <1>; 163 #size-cells = <0>; 164 165 phy-mode = "rgmii-id"; 166 167 ethernet-phy@0 { 168 reg = <0>; 169 170 qca,clk-out-frequency = <50000000>; 171 qca,keep-pll-enabled; 172 173 vddio-supply = <&vddh>; 174 175 vddh: vddh-regulator { 176 }; 177 }; 178 }; 179 - | 180 #include <dt-bindings/clock/qcom,gcc-ipq5018.h> 181 #include <dt-bindings/reset/qcom,gcc-ipq5018.h> 182 183 mdio { 184 #address-cells = <1>; 185 #size-cells = <0>; 186 187 ge_phy: ethernet-phy@7 { 188 compatible = "ethernet-phy-id004d.d0c0"; 189 reg = <7>; 190 191 clocks = <&gcc GCC_GEPHY_RX_CLK>, 192 <&gcc GCC_GEPHY_TX_CLK>; 193 clock-names = "rx", "tx"; 194 resets = <&gcc GCC_GEPHY_MISC_ARES>; 195 }; 196 }; 197