| # 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: |
| - | |
| ocelot_clock: ocelot-clock { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <125000000>; |
| }; |
| |
| 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>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |
| |