xref: /linux/Documentation/devicetree/bindings/net/qcom,qca807x.yaml (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
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