xref: /linux/Documentation/devicetree/bindings/net/dsa/smsc,lan9303.yaml (revision b2128290c29902315e632ea59e0504d6bc9e9b42)
1*b693b51eSFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b693b51eSFrank Li%YAML 1.2
3*b693b51eSFrank Li---
4*b693b51eSFrank Li$id: http://devicetree.org/schemas/net/dsa/smsc,lan9303.yaml#
5*b693b51eSFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b693b51eSFrank Li
7*b693b51eSFrank Lititle: SMSC/MicroChip LAN9303 three port ethernet switch
8*b693b51eSFrank Li
9*b693b51eSFrank Limaintainers:
10*b693b51eSFrank Li  - Frank Li <Frank.Li@nxp.com>
11*b693b51eSFrank Li
12*b693b51eSFrank Lidescription:
13*b693b51eSFrank Li  The LAN9303 is a three port ethernet switch with integrated PHYs for the
14*b693b51eSFrank Li  two external ports. The third port is an RMII/MII interface to a host
15*b693b51eSFrank Li  processor. The device can be managed via I2C or MDIO.
16*b693b51eSFrank Li
17*b693b51eSFrank Li  Note - always use 'reg = <0/1/2>;' for the three DSA ports, even if the
18*b693b51eSFrank Li  device is configured to use 1/2/3 instead. This hardware configuration
19*b693b51eSFrank Li  will be auto-detected and mapped accordingly.
20*b693b51eSFrank Li
21*b693b51eSFrank Liproperties:
22*b693b51eSFrank Li  compatible:
23*b693b51eSFrank Li    enum:
24*b693b51eSFrank Li      - smsc,lan9303-i2c
25*b693b51eSFrank Li      - smsc,lan9303-mdio
26*b693b51eSFrank Li
27*b693b51eSFrank Li  reg:
28*b693b51eSFrank Li    maxItems: 1
29*b693b51eSFrank Li
30*b693b51eSFrank Li  reset-gpios:
31*b693b51eSFrank Li    description:
32*b693b51eSFrank Li      GPIO to be used to reset the whole device
33*b693b51eSFrank Li    maxItems: 1
34*b693b51eSFrank Li
35*b693b51eSFrank Li  reset-duration:
36*b693b51eSFrank Li    description:
37*b693b51eSFrank Li      Reset duration in milliseconds
38*b693b51eSFrank Li    default: 200
39*b693b51eSFrank Li    $ref: /schemas/types.yaml#/definitions/uint32
40*b693b51eSFrank Li
41*b693b51eSFrank Lirequired:
42*b693b51eSFrank Li  - compatible
43*b693b51eSFrank Li  - reg
44*b693b51eSFrank Li
45*b693b51eSFrank LiunevaluatedProperties: false
46*b693b51eSFrank Li
47*b693b51eSFrank LiallOf:
48*b693b51eSFrank Li  - $ref: dsa.yaml#
49*b693b51eSFrank Li
50*b693b51eSFrank Liexamples:
51*b693b51eSFrank Li  - |
52*b693b51eSFrank Li    #include <dt-bindings/gpio/gpio.h>
53*b693b51eSFrank Li
54*b693b51eSFrank Li    /* I2C managed mode */
55*b693b51eSFrank Li    i2c {
56*b693b51eSFrank Li        #address-cells = <1>;
57*b693b51eSFrank Li        #size-cells = <0>;
58*b693b51eSFrank Li
59*b693b51eSFrank Li        switch@a {
60*b693b51eSFrank Li            compatible = "smsc,lan9303-i2c";
61*b693b51eSFrank Li            reg = <0xa>;
62*b693b51eSFrank Li            reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
63*b693b51eSFrank Li            reset-duration = <200>;
64*b693b51eSFrank Li
65*b693b51eSFrank Li            ports {
66*b693b51eSFrank Li                #address-cells = <1>;
67*b693b51eSFrank Li                #size-cells = <0>;
68*b693b51eSFrank Li
69*b693b51eSFrank Li                port@0 {
70*b693b51eSFrank Li                    reg = <0>;
71*b693b51eSFrank Li                    label = "cpu";
72*b693b51eSFrank Li                    ethernet = <&master>;
73*b693b51eSFrank Li                };
74*b693b51eSFrank Li
75*b693b51eSFrank Li                port@1 {
76*b693b51eSFrank Li                    reg = <1>;
77*b693b51eSFrank Li                    label = "lan1";
78*b693b51eSFrank Li                };
79*b693b51eSFrank Li
80*b693b51eSFrank Li                port@2 {
81*b693b51eSFrank Li                    reg = <2>;
82*b693b51eSFrank Li                    label = "lan2";
83*b693b51eSFrank Li                };
84*b693b51eSFrank Li            };
85*b693b51eSFrank Li        };
86*b693b51eSFrank Li    };
87*b693b51eSFrank Li
88*b693b51eSFrank Li  - |
89*b693b51eSFrank Li    #include <dt-bindings/gpio/gpio.h>
90*b693b51eSFrank Li
91*b693b51eSFrank Li    /* MDIO managed mode */
92*b693b51eSFrank Li    mdio {
93*b693b51eSFrank Li        #address-cells = <1>;
94*b693b51eSFrank Li        #size-cells = <0>;
95*b693b51eSFrank Li
96*b693b51eSFrank Li        switch@0 {
97*b693b51eSFrank Li            compatible = "smsc,lan9303-mdio";
98*b693b51eSFrank Li            reg = <0>;
99*b693b51eSFrank Li            reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
100*b693b51eSFrank Li            reset-duration = <100>;
101*b693b51eSFrank Li
102*b693b51eSFrank Li            ports {
103*b693b51eSFrank Li                #address-cells = <1>;
104*b693b51eSFrank Li                #size-cells = <0>;
105*b693b51eSFrank Li
106*b693b51eSFrank Li                port@0 {
107*b693b51eSFrank Li                    reg = <0>;
108*b693b51eSFrank Li                    label = "cpu";
109*b693b51eSFrank Li                    ethernet = <&master>;
110*b693b51eSFrank Li                };
111*b693b51eSFrank Li
112*b693b51eSFrank Li                port@1 {
113*b693b51eSFrank Li                    reg = <1>;
114*b693b51eSFrank Li                    label = "lan1";
115*b693b51eSFrank Li                };
116*b693b51eSFrank Li
117*b693b51eSFrank Li                port@2 {
118*b693b51eSFrank Li                    reg = <2>;
119*b693b51eSFrank Li                    label = "lan2";
120*b693b51eSFrank Li                };
121*b693b51eSFrank Li            };
122*b693b51eSFrank Li        };
123*b693b51eSFrank Li    };
124