1dd87eaa1SChristian Marangi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2dd87eaa1SChristian Marangi%YAML 1.2 3dd87eaa1SChristian Marangi--- 4dd87eaa1SChristian Marangi$id: http://devicetree.org/schemas/net/qcom,qca807x.yaml# 5dd87eaa1SChristian Marangi$schema: http://devicetree.org/meta-schemas/core.yaml# 6dd87eaa1SChristian Marangi 7dd87eaa1SChristian Marangititle: Qualcomm QCA807x Ethernet PHY 8dd87eaa1SChristian Marangi 9dd87eaa1SChristian Marangimaintainers: 10dd87eaa1SChristian Marangi - Christian Marangi <ansuelsmth@gmail.com> 11dd87eaa1SChristian Marangi - Robert Marko <robert.marko@sartura.hr> 12dd87eaa1SChristian Marangi 13dd87eaa1SChristian Marangidescription: | 14dd87eaa1SChristian Marangi Qualcomm QCA8072/5 Ethernet PHY is PHY package of 2 or 5 15dd87eaa1SChristian Marangi IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and 16dd87eaa1SChristian Marangi 1000BASE-T PHY-s. 17dd87eaa1SChristian Marangi 18dd87eaa1SChristian Marangi They feature 2 SerDes, one for PSGMII or QSGMII connection with 19dd87eaa1SChristian Marangi MAC, while second one is SGMII for connection to MAC or fiber. 20dd87eaa1SChristian Marangi 21dd87eaa1SChristian Marangi Both models have a combo port that supports 1000BASE-X and 22dd87eaa1SChristian Marangi 100BASE-FX fiber. 23dd87eaa1SChristian Marangi 24dd87eaa1SChristian Marangi Each PHY inside of QCA807x series has 4 digitally controlled 25dd87eaa1SChristian Marangi output only pins that natively drive LED-s for up to 2 attached 26dd87eaa1SChristian Marangi LEDs. Some vendor also use these 4 output for GPIO usage without 27dd87eaa1SChristian Marangi attaching LEDs. 28dd87eaa1SChristian Marangi 29dd87eaa1SChristian Marangi Note that output pins can be set to drive LEDs OR GPIO, mixed 30dd87eaa1SChristian Marangi definition are not accepted. 31dd87eaa1SChristian Marangi 32dd87eaa1SChristian Marangi$ref: ethernet-phy-package.yaml# 33dd87eaa1SChristian Marangi 34dd87eaa1SChristian Marangiproperties: 35dd87eaa1SChristian Marangi compatible: 36dd87eaa1SChristian Marangi enum: 37dd87eaa1SChristian Marangi - qcom,qca8072-package 38dd87eaa1SChristian Marangi - qcom,qca8075-package 39dd87eaa1SChristian Marangi 40dd87eaa1SChristian Marangi qcom,package-mode: 41dd87eaa1SChristian Marangi description: | 42dd87eaa1SChristian Marangi PHY package can be configured in 3 mode following this table: 43dd87eaa1SChristian Marangi 44dd87eaa1SChristian Marangi First Serdes mode Second Serdes mode 45dd87eaa1SChristian Marangi Option 1 PSGMII for copper Disabled 46dd87eaa1SChristian Marangi ports 0-4 47dd87eaa1SChristian Marangi Option 2 PSGMII for copper 1000BASE-X / 100BASE-FX 48dd87eaa1SChristian Marangi ports 0-4 49dd87eaa1SChristian Marangi Option 3 QSGMII for copper SGMII for 50dd87eaa1SChristian Marangi ports 0-3 copper port 4 51dd87eaa1SChristian Marangi 52dd87eaa1SChristian Marangi PSGMII mode (option 1 or 2) is configured dynamically based on 53dd87eaa1SChristian Marangi the presence of a connected SFP device. 54dd87eaa1SChristian Marangi $ref: /schemas/types.yaml#/definitions/string 55dd87eaa1SChristian Marangi enum: 56dd87eaa1SChristian Marangi - qsgmii 57dd87eaa1SChristian Marangi - psgmii 58dd87eaa1SChristian Marangi default: psgmii 59dd87eaa1SChristian Marangi 60dd87eaa1SChristian Marangi qcom,tx-drive-strength-milliwatt: 61dd87eaa1SChristian Marangi description: set the TX Amplifier value in mv. 62dd87eaa1SChristian Marangi $ref: /schemas/types.yaml#/definitions/uint32 63dd87eaa1SChristian Marangi enum: [140, 160, 180, 200, 220, 64dd87eaa1SChristian Marangi 240, 260, 280, 300, 320, 65dd87eaa1SChristian Marangi 400, 500, 600] 66dd87eaa1SChristian Marangi default: 600 67dd87eaa1SChristian Marangi 68dd87eaa1SChristian MarangipatternProperties: 69dd87eaa1SChristian Marangi ^ethernet-phy@[a-f0-9]+$: 70dd87eaa1SChristian Marangi $ref: ethernet-phy.yaml# 71dd87eaa1SChristian Marangi 72dd87eaa1SChristian Marangi properties: 73dd87eaa1SChristian Marangi qcom,dac-full-amplitude: 74dd87eaa1SChristian Marangi description: 75dd87eaa1SChristian Marangi Set Analog MDI driver amplitude to FULL. 76dd87eaa1SChristian Marangi 77dd87eaa1SChristian Marangi With this not defined, amplitude is set to DSP. 78dd87eaa1SChristian Marangi (amplitude is adjusted based on cable length) 79dd87eaa1SChristian Marangi 80dd87eaa1SChristian Marangi With this enabled and qcom,dac-full-bias-current 81dd87eaa1SChristian Marangi and qcom,dac-disable-bias-current-tweak disabled, 82dd87eaa1SChristian Marangi bias current is half. 83dd87eaa1SChristian Marangi type: boolean 84dd87eaa1SChristian Marangi 85dd87eaa1SChristian Marangi qcom,dac-full-bias-current: 86dd87eaa1SChristian Marangi description: 87dd87eaa1SChristian Marangi Set Analog MDI driver bias current to FULL. 88dd87eaa1SChristian Marangi 89dd87eaa1SChristian Marangi With this not defined, bias current is set to DSP. 90dd87eaa1SChristian Marangi (bias current is adjusted based on cable length) 91dd87eaa1SChristian Marangi 92dd87eaa1SChristian Marangi Actual bias current might be different with 93dd87eaa1SChristian Marangi qcom,dac-disable-bias-current-tweak disabled. 94dd87eaa1SChristian Marangi type: boolean 95dd87eaa1SChristian Marangi 96dd87eaa1SChristian Marangi qcom,dac-disable-bias-current-tweak: 97dd87eaa1SChristian Marangi description: | 98dd87eaa1SChristian Marangi Set Analog MDI driver bias current to disable tweak 99dd87eaa1SChristian Marangi to bias current. 100dd87eaa1SChristian Marangi 101dd87eaa1SChristian Marangi With this not defined, bias current tweak are enabled 102dd87eaa1SChristian Marangi by default. 103dd87eaa1SChristian Marangi 104dd87eaa1SChristian Marangi With this enabled the following tweak are NOT applied: 105dd87eaa1SChristian Marangi - With both FULL amplitude and FULL bias current: bias current 106dd87eaa1SChristian Marangi is set to half. 107dd87eaa1SChristian Marangi - With only DSP amplitude: bias current is set to half and 108dd87eaa1SChristian Marangi is set to 1/4 with cable < 10m. 109dd87eaa1SChristian Marangi - With DSP bias current (included both DSP amplitude and 110dd87eaa1SChristian Marangi DSP bias current): bias current is half the detected current 111dd87eaa1SChristian Marangi with cable < 10m. 112dd87eaa1SChristian Marangi type: boolean 113dd87eaa1SChristian Marangi 114dd87eaa1SChristian Marangi gpio-controller: true 115dd87eaa1SChristian Marangi 116dd87eaa1SChristian Marangi '#gpio-cells': 117dd87eaa1SChristian Marangi const: 2 118dd87eaa1SChristian Marangi 119dd87eaa1SChristian Marangi if: 120dd87eaa1SChristian Marangi required: 121dd87eaa1SChristian Marangi - gpio-controller 122dd87eaa1SChristian Marangi then: 123dd87eaa1SChristian Marangi properties: 124dd87eaa1SChristian Marangi leds: false 125dd87eaa1SChristian Marangi 126dd87eaa1SChristian Marangi unevaluatedProperties: false 127dd87eaa1SChristian Marangi 128dd87eaa1SChristian Marangirequired: 129dd87eaa1SChristian Marangi - compatible 130dd87eaa1SChristian Marangi 131dd87eaa1SChristian MarangiunevaluatedProperties: false 132dd87eaa1SChristian Marangi 133dd87eaa1SChristian Marangiexamples: 134dd87eaa1SChristian Marangi - | 135dd87eaa1SChristian Marangi #include <dt-bindings/leds/common.h> 136dd87eaa1SChristian Marangi 137dd87eaa1SChristian Marangi mdio { 138dd87eaa1SChristian Marangi #address-cells = <1>; 139dd87eaa1SChristian Marangi #size-cells = <0>; 140dd87eaa1SChristian Marangi 141dd87eaa1SChristian Marangi ethernet-phy-package@0 { 142dd87eaa1SChristian Marangi #address-cells = <1>; 143dd87eaa1SChristian Marangi #size-cells = <0>; 144dd87eaa1SChristian Marangi compatible = "qcom,qca8075-package"; 145dd87eaa1SChristian Marangi reg = <0>; 146dd87eaa1SChristian Marangi 147dd87eaa1SChristian Marangi qcom,package-mode = "qsgmii"; 148dd87eaa1SChristian Marangi 149dd87eaa1SChristian Marangi ethernet-phy@0 { 150dd87eaa1SChristian Marangi reg = <0>; 151dd87eaa1SChristian Marangi 152dd87eaa1SChristian Marangi leds { 153dd87eaa1SChristian Marangi #address-cells = <1>; 154dd87eaa1SChristian Marangi #size-cells = <0>; 155dd87eaa1SChristian Marangi 156dd87eaa1SChristian Marangi led@0 { 157dd87eaa1SChristian Marangi reg = <0>; 158dd87eaa1SChristian Marangi color = <LED_COLOR_ID_GREEN>; 159dd87eaa1SChristian Marangi function = LED_FUNCTION_LAN; 160dd87eaa1SChristian Marangi default-state = "keep"; 161dd87eaa1SChristian Marangi }; 162dd87eaa1SChristian Marangi }; 163dd87eaa1SChristian Marangi }; 164dd87eaa1SChristian Marangi 165dd87eaa1SChristian Marangi ethernet-phy@1 { 166dd87eaa1SChristian Marangi reg = <1>; 167dd87eaa1SChristian Marangi }; 168dd87eaa1SChristian Marangi 169dd87eaa1SChristian Marangi ethernet-phy@2 { 170dd87eaa1SChristian Marangi reg = <2>; 171dd87eaa1SChristian Marangi 172dd87eaa1SChristian Marangi gpio-controller; 173dd87eaa1SChristian Marangi #gpio-cells = <2>; 174dd87eaa1SChristian Marangi }; 175dd87eaa1SChristian Marangi 176dd87eaa1SChristian Marangi ethernet-phy@3 { 177dd87eaa1SChristian Marangi reg = <3>; 178dd87eaa1SChristian Marangi }; 179dd87eaa1SChristian Marangi 180dd87eaa1SChristian Marangi ethernet-phy@4 { 181dd87eaa1SChristian Marangi reg = <4>; 182dd87eaa1SChristian Marangi }; 183dd87eaa1SChristian Marangi }; 184dd87eaa1SChristian Marangi }; 185