xref: /openbmc/linux/Documentation/devicetree/bindings/mfd/mscc,ocelot.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1e5abb90aSColin Foster# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
2e5abb90aSColin Foster%YAML 1.2
3e5abb90aSColin Foster---
4e5abb90aSColin Foster$id: http://devicetree.org/schemas/mfd/mscc,ocelot.yaml#
5e5abb90aSColin Foster$schema: http://devicetree.org/meta-schemas/core.yaml#
6e5abb90aSColin Foster
7e5abb90aSColin Fostertitle: Ocelot Externally-Controlled Ethernet Switch
8e5abb90aSColin Foster
9e5abb90aSColin Fostermaintainers:
10e5abb90aSColin Foster  - Colin Foster <colin.foster@in-advantage.com>
11e5abb90aSColin Foster
12e5abb90aSColin Fosterdescription: |
13e5abb90aSColin Foster  The Ocelot ethernet switch family contains chips that have an internal CPU
14e5abb90aSColin Foster  (VSC7513, VSC7514) and chips that don't (VSC7511, VSC7512). All switches have
15b092874aSColin Foster  the option to be controlled externally via external interfaces like SPI or
16b092874aSColin Foster  PCIe.
17e5abb90aSColin Foster
18e5abb90aSColin Foster  The switch family is a multi-port networking switch that supports many
19e5abb90aSColin Foster  interfaces. Additionally, the device can perform pin control, MDIO buses, and
20e5abb90aSColin Foster  external GPIO expanders.
21e5abb90aSColin Foster
22e5abb90aSColin Fosterproperties:
23e5abb90aSColin Foster  compatible:
24e5abb90aSColin Foster    enum:
25e5abb90aSColin Foster      - mscc,vsc7512
26e5abb90aSColin Foster
27e5abb90aSColin Foster  reg:
28e5abb90aSColin Foster    maxItems: 1
29e5abb90aSColin Foster
30e5abb90aSColin Foster  "#address-cells":
31e5abb90aSColin Foster    const: 1
32e5abb90aSColin Foster
33e5abb90aSColin Foster  "#size-cells":
34e5abb90aSColin Foster    const: 1
35e5abb90aSColin Foster
36e5abb90aSColin Foster  spi-max-frequency:
37e5abb90aSColin Foster    maxItems: 1
38e5abb90aSColin Foster
39e5abb90aSColin FosterpatternProperties:
40e5abb90aSColin Foster  "^pinctrl@[0-9a-f]+$":
41e5abb90aSColin Foster    type: object
42e5abb90aSColin Foster    $ref: /schemas/pinctrl/mscc,ocelot-pinctrl.yaml
43e5abb90aSColin Foster
44e5abb90aSColin Foster  "^gpio@[0-9a-f]+$":
45e5abb90aSColin Foster    type: object
46e5abb90aSColin Foster    $ref: /schemas/pinctrl/microchip,sparx5-sgpio.yaml
47e5abb90aSColin Foster    properties:
48e5abb90aSColin Foster      compatible:
49e5abb90aSColin Foster        enum:
50e5abb90aSColin Foster          - mscc,ocelot-sgpio
51e5abb90aSColin Foster
52e5abb90aSColin Foster  "^mdio@[0-9a-f]+$":
53e5abb90aSColin Foster    type: object
54e5abb90aSColin Foster    $ref: /schemas/net/mscc,miim.yaml
55e5abb90aSColin Foster    properties:
56e5abb90aSColin Foster      compatible:
57e5abb90aSColin Foster        enum:
58e5abb90aSColin Foster          - mscc,ocelot-miim
59e5abb90aSColin Foster
60*11fc80cbSColin Foster  "^ethernet-switch@[0-9a-f]+$":
61*11fc80cbSColin Foster    type: object
62*11fc80cbSColin Foster    $ref: /schemas/net/mscc,vsc7514-switch.yaml
63*11fc80cbSColin Foster    unevaluatedProperties: false
64*11fc80cbSColin Foster    properties:
65*11fc80cbSColin Foster      compatible:
66*11fc80cbSColin Foster        enum:
67*11fc80cbSColin Foster          - mscc,vsc7512-switch
68*11fc80cbSColin Foster
69e5abb90aSColin Fosterrequired:
70e5abb90aSColin Foster  - compatible
71e5abb90aSColin Foster  - reg
72e5abb90aSColin Foster  - '#address-cells'
73e5abb90aSColin Foster  - '#size-cells'
74e5abb90aSColin Foster
75e5abb90aSColin FosteradditionalProperties: false
76e5abb90aSColin Foster
77e5abb90aSColin Fosterexamples:
78e5abb90aSColin Foster  - |
79e5abb90aSColin Foster    ocelot_clock: ocelot-clock {
80e5abb90aSColin Foster          compatible = "fixed-clock";
81e5abb90aSColin Foster          #clock-cells = <0>;
82e5abb90aSColin Foster          clock-frequency = <125000000>;
83e5abb90aSColin Foster      };
84e5abb90aSColin Foster
85e5abb90aSColin Foster    spi {
86e5abb90aSColin Foster        #address-cells = <1>;
87e5abb90aSColin Foster        #size-cells = <0>;
88e5abb90aSColin Foster
89e5abb90aSColin Foster        soc@0 {
90e5abb90aSColin Foster            compatible = "mscc,vsc7512";
91e5abb90aSColin Foster            spi-max-frequency = <2500000>;
92e5abb90aSColin Foster            reg = <0>;
93e5abb90aSColin Foster            #address-cells = <1>;
94e5abb90aSColin Foster            #size-cells = <1>;
95e5abb90aSColin Foster
96e5abb90aSColin Foster            mdio@7107009c {
97e5abb90aSColin Foster                compatible = "mscc,ocelot-miim";
98e5abb90aSColin Foster                #address-cells = <1>;
99e5abb90aSColin Foster                #size-cells = <0>;
100e5abb90aSColin Foster                reg = <0x7107009c 0x24>;
101e5abb90aSColin Foster
102e5abb90aSColin Foster                sw_phy0: ethernet-phy@0 {
103e5abb90aSColin Foster                    reg = <0x0>;
104e5abb90aSColin Foster                };
105e5abb90aSColin Foster            };
106e5abb90aSColin Foster
107e5abb90aSColin Foster            mdio@710700c0 {
108e5abb90aSColin Foster                compatible = "mscc,ocelot-miim";
109e5abb90aSColin Foster                pinctrl-names = "default";
110e5abb90aSColin Foster                pinctrl-0 = <&miim1_pins>;
111e5abb90aSColin Foster                #address-cells = <1>;
112e5abb90aSColin Foster                #size-cells = <0>;
113e5abb90aSColin Foster                reg = <0x710700c0 0x24>;
114e5abb90aSColin Foster
115e5abb90aSColin Foster                sw_phy4: ethernet-phy@4 {
116e5abb90aSColin Foster                    reg = <0x4>;
117e5abb90aSColin Foster                };
118e5abb90aSColin Foster            };
119e5abb90aSColin Foster
120e5abb90aSColin Foster            gpio: pinctrl@71070034 {
121e5abb90aSColin Foster                compatible = "mscc,ocelot-pinctrl";
122e5abb90aSColin Foster                gpio-controller;
123e5abb90aSColin Foster                #gpio-cells = <2>;
124e5abb90aSColin Foster                gpio-ranges = <&gpio 0 0 22>;
125e5abb90aSColin Foster                reg = <0x71070034 0x6c>;
126e5abb90aSColin Foster
127e5abb90aSColin Foster                sgpio_pins: sgpio-pins {
128e5abb90aSColin Foster                    pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
129e5abb90aSColin Foster                    function = "sg0";
130e5abb90aSColin Foster                };
131e5abb90aSColin Foster
132e5abb90aSColin Foster                miim1_pins: miim1-pins {
133e5abb90aSColin Foster                    pins = "GPIO_14", "GPIO_15";
134e5abb90aSColin Foster                    function = "miim";
135e5abb90aSColin Foster                };
136e5abb90aSColin Foster            };
137e5abb90aSColin Foster
138e5abb90aSColin Foster            gpio@710700f8 {
139e5abb90aSColin Foster                compatible = "mscc,ocelot-sgpio";
140e5abb90aSColin Foster                #address-cells = <1>;
141e5abb90aSColin Foster                #size-cells = <0>;
142e5abb90aSColin Foster                bus-frequency = <12500000>;
143e5abb90aSColin Foster                clocks = <&ocelot_clock>;
144e5abb90aSColin Foster                microchip,sgpio-port-ranges = <0 15>;
145e5abb90aSColin Foster                pinctrl-names = "default";
146e5abb90aSColin Foster                pinctrl-0 = <&sgpio_pins>;
147e5abb90aSColin Foster                reg = <0x710700f8 0x100>;
148e5abb90aSColin Foster
149e5abb90aSColin Foster                sgpio_in0: gpio@0 {
150e5abb90aSColin Foster                    compatible = "microchip,sparx5-sgpio-bank";
151e5abb90aSColin Foster                    reg = <0>;
152e5abb90aSColin Foster                    gpio-controller;
153e5abb90aSColin Foster                    #gpio-cells = <3>;
154e5abb90aSColin Foster                    ngpios = <64>;
155e5abb90aSColin Foster                };
156e5abb90aSColin Foster
157e5abb90aSColin Foster                sgpio_out1: gpio@1 {
158e5abb90aSColin Foster                    compatible = "microchip,sparx5-sgpio-bank";
159e5abb90aSColin Foster                    reg = <1>;
160e5abb90aSColin Foster                    gpio-controller;
161e5abb90aSColin Foster                    #gpio-cells = <3>;
162e5abb90aSColin Foster                    ngpios = <64>;
163e5abb90aSColin Foster                };
164e5abb90aSColin Foster            };
165e5abb90aSColin Foster        };
166e5abb90aSColin Foster    };
167e5abb90aSColin Foster
168e5abb90aSColin Foster...
169e5abb90aSColin Foster
170