~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/net/dsa/qca8k.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/net/dsa/qca8k.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm Atheros QCA83xx switch family
  8 
  9 maintainers:
 10   - John Crispin <john@phrozen.org>
 11 
 12 description:
 13   If the QCA8K switch is connect to an SoC's external mdio-bus, each subnode
 14   describing a port needs to have a valid phandle referencing the internal PHY
 15   it is connected to. This is because there is no N:N mapping of port and PHY
 16   ID. To declare the internal mdio-bus configuration, declare an MDIO node in
 17   the switch node and declare the phandle for the port, referencing the internal
 18   PHY it is connected to. In this config, an internal mdio-bus is registered and
 19   the MDIO master is used for communication. Mixed external and internal
 20   mdio-bus configurations are not supported by the hardware.
 21   Each phy has at most 3 LEDs connected and can be declared
 22   using the standard LEDs structure.
 23 
 24 properties:
 25   compatible:
 26     oneOf:
 27       - enum:
 28           - qca,qca8327
 29           - qca,qca8328
 30           - qca,qca8334
 31           - qca,qca8337
 32     description: |
 33       qca,qca8328: referenced as AR8328(N)-AK1(A/B) QFN 176 pin package
 34       qca,qca8327: referenced as AR8327(N)-AL1A DR-QFN 148 pin package
 35       qca,qca8334: referenced as QCA8334-AL3C QFN 88 pin package
 36       qca,qca8337: referenced as QCA8337N-AL3(B/C) DR-QFN 148 pin package
 37 
 38   reg:
 39     maxItems: 1
 40 
 41   reset-gpios:
 42     description:
 43       GPIO to be used to reset the whole device
 44     maxItems: 1
 45 
 46   qca,ignore-power-on-sel:
 47     $ref: /schemas/types.yaml#/definitions/flag
 48     description:
 49       Ignore power-on pin strapping to configure LED open-drain or EEPROM
 50       presence. This is needed for devices with incorrect configuration or when
 51       the OEM has decided not to use pin strapping and falls back to SW regs.
 52 
 53   qca,led-open-drain:
 54     $ref: /schemas/types.yaml#/definitions/flag
 55     description:
 56       Set LEDs to open-drain mode. This requires the qca,ignore-power-on-sel to
 57       be set, otherwise the driver will fail at probe. This is required if the
 58       OEM does not use pin strapping to set this mode and prefers to set it
 59       using SW regs. The pin strappings related to LED open-drain mode are
 60       B68 on the QCA832x and B49 on the QCA833x.
 61 
 62   mdio:
 63     $ref: /schemas/net/mdio.yaml#
 64     unevaluatedProperties: false
 65     description: Qca8k switch have an internal mdio to access switch port.
 66                  If this is not present, the legacy mapping is used and the
 67                  internal mdio access is used.
 68                  With the legacy mapping the reg corresponding to the internal
 69                  mdio is the switch reg with an offset of -1.
 70 
 71 $ref: dsa.yaml#
 72 
 73 patternProperties:
 74   "^(ethernet-)?ports$":
 75     type: object
 76     additionalProperties: true
 77     patternProperties:
 78       "^(ethernet-)?port@[0-6]$":
 79         type: object
 80         description: Ethernet switch ports
 81 
 82         $ref: dsa-port.yaml#
 83 
 84         properties:
 85           qca,sgmii-rxclk-falling-edge:
 86             $ref: /schemas/types.yaml#/definitions/flag
 87             description:
 88               Set the receive clock phase to falling edge. Mostly commonly used on
 89               the QCA8327 with CPU port 0 set to SGMII.
 90 
 91           qca,sgmii-txclk-falling-edge:
 92             $ref: /schemas/types.yaml#/definitions/flag
 93             description:
 94               Set the transmit clock phase to falling edge.
 95 
 96           qca,sgmii-enable-pll:
 97             $ref: /schemas/types.yaml#/definitions/flag
 98             description:
 99               For SGMII CPU port, explicitly enable PLL, TX and RX chain along with
100               Signal Detection. On the QCA8327 this should not be enabled, otherwise
101               the SGMII port will not initialize. When used on the QCA8337, revision 3
102               or greater, a warning will be displayed. When the CPU port is set to
103               SGMII on the QCA8337, it is advised to set this unless a communication
104               issue is observed.
105 
106         unevaluatedProperties: false
107 
108 oneOf:
109   - required:
110       - ports
111   - required:
112       - ethernet-ports
113 
114 required:
115   - compatible
116   - reg
117 
118 unevaluatedProperties: false
119 
120 examples:
121   - |
122     #include <dt-bindings/gpio/gpio.h>
123     #include <dt-bindings/leds/common.h>
124 
125     mdio {
126         #address-cells = <1>;
127         #size-cells = <0>;
128 
129         external_phy_port1: ethernet-phy@0 {
130             reg = <0>;
131         };
132 
133         external_phy_port2: ethernet-phy@1 {
134             reg = <1>;
135         };
136 
137         external_phy_port3: ethernet-phy@2 {
138             reg = <2>;
139         };
140 
141         external_phy_port4: ethernet-phy@3 {
142             reg = <3>;
143         };
144 
145         external_phy_port5: ethernet-phy@4 {
146             reg = <4>;
147         };
148 
149         switch@10 {
150             compatible = "qca,qca8337";
151             reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
152             reg = <0x10>;
153 
154             ports {
155                 #address-cells = <1>;
156                 #size-cells = <0>;
157 
158                 port@0 {
159                     reg = <0>;
160                     ethernet = <&gmac1>;
161                     phy-mode = "rgmii";
162 
163                     fixed-link {
164                         speed = <1000>;
165                         full-duplex;
166                     };
167                 };
168 
169                 port@1 {
170                     reg = <1>;
171                     label = "lan1";
172                     phy-handle = <&external_phy_port1>;
173                 };
174 
175                 port@2 {
176                     reg = <2>;
177                     label = "lan2";
178                     phy-handle = <&external_phy_port2>;
179                 };
180 
181                 port@3 {
182                     reg = <3>;
183                     label = "lan3";
184                     phy-handle = <&external_phy_port3>;
185                 };
186 
187                 port@4 {
188                     reg = <4>;
189                     label = "lan4";
190                     phy-handle = <&external_phy_port4>;
191                 };
192 
193                 port@5 {
194                     reg = <5>;
195                     label = "wan";
196                     phy-handle = <&external_phy_port5>;
197                 };
198             };
199         };
200     };
201   - |
202     #include <dt-bindings/gpio/gpio.h>
203 
204     mdio {
205         #address-cells = <1>;
206         #size-cells = <0>;
207 
208         switch@10 {
209             compatible = "qca,qca8337";
210             reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
211             reg = <0x10>;
212 
213             ports {
214                 #address-cells = <1>;
215                 #size-cells = <0>;
216 
217                 port@0 {
218                     reg = <0>;
219                     ethernet = <&gmac1>;
220                     phy-mode = "rgmii";
221 
222                     fixed-link {
223                         speed = <1000>;
224                         full-duplex;
225                     };
226                 };
227 
228                 port@1 {
229                     reg = <1>;
230                     label = "lan1";
231                     phy-mode = "internal";
232                     phy-handle = <&internal_phy_port1>;
233 
234                     leds {
235                         #address-cells = <1>;
236                         #size-cells = <0>;
237 
238                         led@0 {
239                             reg = <0>;
240                             color = <LED_COLOR_ID_WHITE>;
241                             function = LED_FUNCTION_LAN;
242                             default-state = "keep";
243                         };
244 
245                         led@1 {
246                             reg = <1>;
247                             color = <LED_COLOR_ID_AMBER>;
248                             function = LED_FUNCTION_LAN;
249                             default-state = "keep";
250                         };
251                     };
252                 };
253 
254                 port@2 {
255                     reg = <2>;
256                     label = "lan2";
257                     phy-mode = "internal";
258                     phy-handle = <&internal_phy_port2>;
259                 };
260 
261                 port@3 {
262                     reg = <3>;
263                     label = "lan3";
264                     phy-mode = "internal";
265                     phy-handle = <&internal_phy_port3>;
266                 };
267 
268                 port@4 {
269                     reg = <4>;
270                     label = "lan4";
271                     phy-mode = "internal";
272                     phy-handle = <&internal_phy_port4>;
273                 };
274 
275                 port@5 {
276                     reg = <5>;
277                     label = "wan";
278                     phy-mode = "internal";
279                     phy-handle = <&internal_phy_port5>;
280                 };
281 
282                 port@6 {
283                     reg = <0>;
284                     ethernet = <&gmac1>;
285                     phy-mode = "sgmii";
286 
287                     qca,sgmii-rxclk-falling-edge;
288 
289                     fixed-link {
290                         speed = <1000>;
291                         full-duplex;
292                     };
293                 };
294             };
295 
296             mdio {
297                 #address-cells = <1>;
298                 #size-cells = <0>;
299 
300                 internal_phy_port1: ethernet-phy@0 {
301                     reg = <0>;
302                 };
303 
304                 internal_phy_port2: ethernet-phy@1 {
305                     reg = <1>;
306                 };
307 
308                 internal_phy_port3: ethernet-phy@2 {
309                     reg = <2>;
310                 };
311 
312                 internal_phy_port4: ethernet-phy@3 {
313                     reg = <3>;
314                 };
315 
316                 internal_phy_port5: ethernet-phy@4 {
317                     reg = <4>;
318                 };
319             };
320         };
321     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php