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