xref: /freebsd/sys/contrib/device-tree/Bindings/net/dsa/lantiq,gswip.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/net/dsa/lantiq,gswip.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Lantiq GSWIP Ethernet switches
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel VadotallOf:
10*0e8011faSEmmanuel Vadot  - $ref: dsa.yaml#/$defs/ethernet-ports
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadotmaintainers:
13*0e8011faSEmmanuel Vadot  - Hauke Mehrtens <hauke@hauke-m.de>
14*0e8011faSEmmanuel Vadot
15*0e8011faSEmmanuel Vadotproperties:
16*0e8011faSEmmanuel Vadot  compatible:
17*0e8011faSEmmanuel Vadot    enum:
18*0e8011faSEmmanuel Vadot      - lantiq,xrx200-gswip
19*0e8011faSEmmanuel Vadot      - lantiq,xrx300-gswip
20*0e8011faSEmmanuel Vadot      - lantiq,xrx330-gswip
21*0e8011faSEmmanuel Vadot
22*0e8011faSEmmanuel Vadot  reg:
23*0e8011faSEmmanuel Vadot    minItems: 3
24*0e8011faSEmmanuel Vadot    maxItems: 3
25*0e8011faSEmmanuel Vadot
26*0e8011faSEmmanuel Vadot  reg-names:
27*0e8011faSEmmanuel Vadot    items:
28*0e8011faSEmmanuel Vadot      - const: switch
29*0e8011faSEmmanuel Vadot      - const: mdio
30*0e8011faSEmmanuel Vadot      - const: mii
31*0e8011faSEmmanuel Vadot
32*0e8011faSEmmanuel Vadot  mdio:
33*0e8011faSEmmanuel Vadot    $ref: /schemas/net/mdio.yaml#
34*0e8011faSEmmanuel Vadot    unevaluatedProperties: false
35*0e8011faSEmmanuel Vadot
36*0e8011faSEmmanuel Vadot    properties:
37*0e8011faSEmmanuel Vadot      compatible:
38*0e8011faSEmmanuel Vadot        const: lantiq,xrx200-mdio
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot    required:
41*0e8011faSEmmanuel Vadot      - compatible
42*0e8011faSEmmanuel Vadot
43*0e8011faSEmmanuel Vadot  gphy-fw:
44*0e8011faSEmmanuel Vadot    type: object
45*0e8011faSEmmanuel Vadot    properties:
46*0e8011faSEmmanuel Vadot      '#address-cells':
47*0e8011faSEmmanuel Vadot        const: 1
48*0e8011faSEmmanuel Vadot
49*0e8011faSEmmanuel Vadot      '#size-cells':
50*0e8011faSEmmanuel Vadot        const: 0
51*0e8011faSEmmanuel Vadot
52*0e8011faSEmmanuel Vadot      compatible:
53*0e8011faSEmmanuel Vadot        items:
54*0e8011faSEmmanuel Vadot          - enum:
55*0e8011faSEmmanuel Vadot              - lantiq,xrx200-gphy-fw
56*0e8011faSEmmanuel Vadot              - lantiq,xrx300-gphy-fw
57*0e8011faSEmmanuel Vadot              - lantiq,xrx330-gphy-fw
58*0e8011faSEmmanuel Vadot          - const: lantiq,gphy-fw
59*0e8011faSEmmanuel Vadot
60*0e8011faSEmmanuel Vadot      lantiq,rcu:
61*0e8011faSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/phandle
62*0e8011faSEmmanuel Vadot        description: phandle to the RCU syscon
63*0e8011faSEmmanuel Vadot
64*0e8011faSEmmanuel Vadot    patternProperties:
65*0e8011faSEmmanuel Vadot      "^gphy@[0-9a-f]{1,2}$":
66*0e8011faSEmmanuel Vadot        type: object
67*0e8011faSEmmanuel Vadot
68*0e8011faSEmmanuel Vadot        additionalProperties: false
69*0e8011faSEmmanuel Vadot
70*0e8011faSEmmanuel Vadot        properties:
71*0e8011faSEmmanuel Vadot          reg:
72*0e8011faSEmmanuel Vadot            minimum: 0
73*0e8011faSEmmanuel Vadot            maximum: 255
74*0e8011faSEmmanuel Vadot            description:
75*0e8011faSEmmanuel Vadot              Offset of the GPHY firmware register in the RCU register range
76*0e8011faSEmmanuel Vadot
77*0e8011faSEmmanuel Vadot          resets:
78*0e8011faSEmmanuel Vadot            items:
79*0e8011faSEmmanuel Vadot              - description: GPHY reset line
80*0e8011faSEmmanuel Vadot
81*0e8011faSEmmanuel Vadot          reset-names:
82*0e8011faSEmmanuel Vadot            items:
83*0e8011faSEmmanuel Vadot              - const: gphy
84*0e8011faSEmmanuel Vadot
85*0e8011faSEmmanuel Vadot        required:
86*0e8011faSEmmanuel Vadot          - reg
87*0e8011faSEmmanuel Vadot
88*0e8011faSEmmanuel Vadot    required:
89*0e8011faSEmmanuel Vadot      - compatible
90*0e8011faSEmmanuel Vadot      - lantiq,rcu
91*0e8011faSEmmanuel Vadot
92*0e8011faSEmmanuel Vadot    additionalProperties: false
93*0e8011faSEmmanuel Vadot
94*0e8011faSEmmanuel Vadotrequired:
95*0e8011faSEmmanuel Vadot  - compatible
96*0e8011faSEmmanuel Vadot  - reg
97*0e8011faSEmmanuel Vadot
98*0e8011faSEmmanuel VadotunevaluatedProperties: false
99*0e8011faSEmmanuel Vadot
100*0e8011faSEmmanuel Vadotexamples:
101*0e8011faSEmmanuel Vadot  - |
102*0e8011faSEmmanuel Vadot    switch@e108000 {
103*0e8011faSEmmanuel Vadot            compatible = "lantiq,xrx200-gswip";
104*0e8011faSEmmanuel Vadot            reg = <0xe108000 0x3100>,  /* switch */
105*0e8011faSEmmanuel Vadot                  <0xe10b100 0xd8>,    /* mdio */
106*0e8011faSEmmanuel Vadot                  <0xe10b1d8 0x130>;   /* mii */
107*0e8011faSEmmanuel Vadot            dsa,member = <0 0>;
108*0e8011faSEmmanuel Vadot
109*0e8011faSEmmanuel Vadot            ports {
110*0e8011faSEmmanuel Vadot                    #address-cells = <1>;
111*0e8011faSEmmanuel Vadot                    #size-cells = <0>;
112*0e8011faSEmmanuel Vadot
113*0e8011faSEmmanuel Vadot                    port@0 {
114*0e8011faSEmmanuel Vadot                            reg = <0>;
115*0e8011faSEmmanuel Vadot                            label = "lan3";
116*0e8011faSEmmanuel Vadot                            phy-mode = "rgmii";
117*0e8011faSEmmanuel Vadot                            phy-handle = <&phy0>;
118*0e8011faSEmmanuel Vadot                    };
119*0e8011faSEmmanuel Vadot
120*0e8011faSEmmanuel Vadot                    port@1 {
121*0e8011faSEmmanuel Vadot                            reg = <1>;
122*0e8011faSEmmanuel Vadot                            label = "lan4";
123*0e8011faSEmmanuel Vadot                            phy-mode = "rgmii";
124*0e8011faSEmmanuel Vadot                            phy-handle = <&phy1>;
125*0e8011faSEmmanuel Vadot                    };
126*0e8011faSEmmanuel Vadot
127*0e8011faSEmmanuel Vadot                    port@2 {
128*0e8011faSEmmanuel Vadot                            reg = <2>;
129*0e8011faSEmmanuel Vadot                            label = "lan2";
130*0e8011faSEmmanuel Vadot                            phy-mode = "internal";
131*0e8011faSEmmanuel Vadot                            phy-handle = <&phy11>;
132*0e8011faSEmmanuel Vadot                    };
133*0e8011faSEmmanuel Vadot
134*0e8011faSEmmanuel Vadot                    port@4 {
135*0e8011faSEmmanuel Vadot                            reg = <4>;
136*0e8011faSEmmanuel Vadot                            label = "lan1";
137*0e8011faSEmmanuel Vadot                            phy-mode = "internal";
138*0e8011faSEmmanuel Vadot                            phy-handle = <&phy13>;
139*0e8011faSEmmanuel Vadot                    };
140*0e8011faSEmmanuel Vadot
141*0e8011faSEmmanuel Vadot                    port@5 {
142*0e8011faSEmmanuel Vadot                            reg = <5>;
143*0e8011faSEmmanuel Vadot                            label = "wan";
144*0e8011faSEmmanuel Vadot                            phy-mode = "rgmii";
145*0e8011faSEmmanuel Vadot                            phy-handle = <&phy5>;
146*0e8011faSEmmanuel Vadot                    };
147*0e8011faSEmmanuel Vadot
148*0e8011faSEmmanuel Vadot                    port@6 {
149*0e8011faSEmmanuel Vadot                            reg = <0x6>;
150*0e8011faSEmmanuel Vadot                            phy-mode = "internal";
151*0e8011faSEmmanuel Vadot                            ethernet = <&eth0>;
152*0e8011faSEmmanuel Vadot
153*0e8011faSEmmanuel Vadot                            fixed-link {
154*0e8011faSEmmanuel Vadot                                    speed = <1000>;
155*0e8011faSEmmanuel Vadot                                    full-duplex;
156*0e8011faSEmmanuel Vadot                            };
157*0e8011faSEmmanuel Vadot                    };
158*0e8011faSEmmanuel Vadot            };
159*0e8011faSEmmanuel Vadot
160*0e8011faSEmmanuel Vadot            mdio {
161*0e8011faSEmmanuel Vadot                    #address-cells = <1>;
162*0e8011faSEmmanuel Vadot                    #size-cells = <0>;
163*0e8011faSEmmanuel Vadot                    compatible = "lantiq,xrx200-mdio";
164*0e8011faSEmmanuel Vadot
165*0e8011faSEmmanuel Vadot                    phy0: ethernet-phy@0 {
166*0e8011faSEmmanuel Vadot                            reg = <0x0>;
167*0e8011faSEmmanuel Vadot                    };
168*0e8011faSEmmanuel Vadot                    phy1: ethernet-phy@1 {
169*0e8011faSEmmanuel Vadot                            reg = <0x1>;
170*0e8011faSEmmanuel Vadot                    };
171*0e8011faSEmmanuel Vadot                    phy5: ethernet-phy@5 {
172*0e8011faSEmmanuel Vadot                            reg = <0x5>;
173*0e8011faSEmmanuel Vadot                    };
174*0e8011faSEmmanuel Vadot                    phy11: ethernet-phy@11 {
175*0e8011faSEmmanuel Vadot                            reg = <0x11>;
176*0e8011faSEmmanuel Vadot                    };
177*0e8011faSEmmanuel Vadot                    phy13: ethernet-phy@13 {
178*0e8011faSEmmanuel Vadot                            reg = <0x13>;
179*0e8011faSEmmanuel Vadot                    };
180*0e8011faSEmmanuel Vadot            };
181*0e8011faSEmmanuel Vadot
182*0e8011faSEmmanuel Vadot            gphy-fw {
183*0e8011faSEmmanuel Vadot                    #address-cells = <1>;
184*0e8011faSEmmanuel Vadot                    #size-cells = <0>;
185*0e8011faSEmmanuel Vadot                    compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
186*0e8011faSEmmanuel Vadot                    lantiq,rcu = <&rcu0>;
187*0e8011faSEmmanuel Vadot
188*0e8011faSEmmanuel Vadot                    gphy@20 {
189*0e8011faSEmmanuel Vadot                            reg = <0x20>;
190*0e8011faSEmmanuel Vadot
191*0e8011faSEmmanuel Vadot                            resets = <&reset0 31 30>;
192*0e8011faSEmmanuel Vadot                            reset-names = "gphy";
193*0e8011faSEmmanuel Vadot                    };
194*0e8011faSEmmanuel Vadot
195*0e8011faSEmmanuel Vadot                    gphy@68 {
196*0e8011faSEmmanuel Vadot                            reg = <0x68>;
197*0e8011faSEmmanuel Vadot
198*0e8011faSEmmanuel Vadot                            resets = <&reset0 29 28>;
199*0e8011faSEmmanuel Vadot                            reset-names = "gphy";
200*0e8011faSEmmanuel Vadot                    };
201*0e8011faSEmmanuel Vadot            };
202*0e8011faSEmmanuel Vadot    };
203