| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/mfd/mscc,ocelot.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Ocelot Externally-Controlled Ethernet Switch
- maintainers:
- - Colin Foster <colin.foster@in-advantage.com>
- description: |
- The Ocelot ethernet switch family contains chips that have an internal CPU
- (VSC7513, VSC7514) and chips that don't (VSC7511, VSC7512). All switches have
- the option to be controlled externally via external interfaces like SPI or
- PCIe.
- The switch family is a multi-port networking switch that supports many
- interfaces. Additionally, the device can perform pin control, MDIO buses, and
- external GPIO expanders.
- properties:
- compatible:
- enum:
- - mscc,vsc7512
- reg:
- maxItems: 1
- "#address-cells":
- const: 1
- "#size-cells":
- const: 1
- spi-max-frequency:
- maxItems: 1
- patternProperties:
- "^pinctrl@[0-9a-f]+$":
- type: object
- $ref: /schemas/pinctrl/mscc,ocelot-pinctrl.yaml
- "^gpio@[0-9a-f]+$":
- type: object
- $ref: /schemas/pinctrl/microchip,sparx5-sgpio.yaml
- properties:
- compatible:
- enum:
- - mscc,ocelot-sgpio
- "^mdio@[0-9a-f]+$":
- type: object
- $ref: /schemas/net/mscc,miim.yaml
- properties:
- compatible:
- enum:
- - mscc,ocelot-miim
- "^ethernet-switch@[0-9a-f]+$":
- type: object
- $ref: /schemas/net/mscc,vsc7514-switch.yaml
- unevaluatedProperties: false
- properties:
- compatible:
- enum:
- - mscc,vsc7512-switch
- required:
- - compatible
- - reg
- - '#address-cells'
- - '#size-cells'
- additionalProperties: false
- examples:
- - |
- spi {
- #address-cells = <1>;
- #size-cells = <0>;
- soc@0 {
- compatible = "mscc,vsc7512";
- spi-max-frequency = <2500000>;
- reg = <0>;
- #address-cells = <1>;
- #size-cells = <1>;
- mdio@7107009c {
- compatible = "mscc,ocelot-miim";
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <0x7107009c 0x24>;
- sw_phy0: ethernet-phy@0 {
- reg = <0x0>;
- };
- };
- mdio@710700c0 {
- compatible = "mscc,ocelot-miim";
- pinctrl-names = "default";
- pinctrl-0 = <&miim1_pins>;
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <0x710700c0 0x24>;
- sw_phy4: ethernet-phy@4 {
- reg = <0x4>;
- };
- };
- gpio: pinctrl@71070034 {
- compatible = "mscc,ocelot-pinctrl";
- gpio-controller;
- #gpio-cells = <2>;
- gpio-ranges = <&gpio 0 0 22>;
- reg = <0x71070034 0x6c>;
- sgpio_pins: sgpio-pins {
- pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
- function = "sg0";
- };
- miim1_pins: miim1-pins {
- pins = "GPIO_14", "GPIO_15";
- function = "miim";
- };
- };
- gpio@710700f8 {
- compatible = "mscc,ocelot-sgpio";
- #address-cells = <1>;
- #size-cells = <0>;
- bus-frequency = <12500000>;
- clocks = <&ocelot_clock>;
- microchip,sgpio-port-ranges = <0 15>;
- pinctrl-names = "default";
- pinctrl-0 = <&sgpio_pins>;
- reg = <0x710700f8 0x100>;
- sgpio_in0: gpio@0 {
- compatible = "microchip,sparx5-sgpio-bank";
- reg = <0>;
- gpio-controller;
- #gpio-cells = <3>;
- ngpios = <64>;
- };
- sgpio_out1: gpio@1 {
- compatible = "microchip,sparx5-sgpio-bank";
- reg = <1>;
- gpio-controller;
- #gpio-cells = <3>;
- ngpios = <64>;
- };
- };
- };
- };
- ...
|