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