1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2e67e8565SEmmanuel Vadot%YAML 1.2 3e67e8565SEmmanuel Vadot--- 4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/net/microchip,lan966x-switch.yaml# 5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6e67e8565SEmmanuel Vadot 7e67e8565SEmmanuel Vadottitle: Microchip Lan966x Ethernet switch controller 8e67e8565SEmmanuel Vadot 9e67e8565SEmmanuel Vadotmaintainers: 10e67e8565SEmmanuel Vadot - Horatiu Vultur <horatiu.vultur@microchip.com> 11e67e8565SEmmanuel Vadot 12e67e8565SEmmanuel Vadotdescription: | 13e67e8565SEmmanuel Vadot The lan966x switch is a multi-port Gigabit AVB/TSN Ethernet Switch with 14e67e8565SEmmanuel Vadot two integrated 10/100/1000Base-T PHYs. In addition to the integrated PHYs, 15e67e8565SEmmanuel Vadot it supports up to 2RGMII/RMII, up to 3BASE-X/SERDES/2.5GBASE-X and up to 16e67e8565SEmmanuel Vadot 2 Quad-SGMII/Quad-USGMII interfaces. 17e67e8565SEmmanuel Vadot 18e67e8565SEmmanuel Vadotproperties: 19e67e8565SEmmanuel Vadot $nodename: 20e67e8565SEmmanuel Vadot pattern: "^switch@[0-9a-f]+$" 21e67e8565SEmmanuel Vadot 22e67e8565SEmmanuel Vadot compatible: 23e67e8565SEmmanuel Vadot const: microchip,lan966x-switch 24e67e8565SEmmanuel Vadot 25e67e8565SEmmanuel Vadot reg: 26e67e8565SEmmanuel Vadot items: 27e67e8565SEmmanuel Vadot - description: cpu target 28e67e8565SEmmanuel Vadot - description: general control block target 29e67e8565SEmmanuel Vadot 30e67e8565SEmmanuel Vadot reg-names: 31e67e8565SEmmanuel Vadot items: 32e67e8565SEmmanuel Vadot - const: cpu 33e67e8565SEmmanuel Vadot - const: gcb 34e67e8565SEmmanuel Vadot 35e67e8565SEmmanuel Vadot interrupts: 36e67e8565SEmmanuel Vadot minItems: 1 37e67e8565SEmmanuel Vadot items: 38e67e8565SEmmanuel Vadot - description: register based extraction 39e67e8565SEmmanuel Vadot - description: frame dma based extraction 40e67e8565SEmmanuel Vadot - description: analyzer interrupt 41c9ccf3a3SEmmanuel Vadot - description: ptp interrupt 42d5b0e70fSEmmanuel Vadot - description: ptp external interrupt 43e67e8565SEmmanuel Vadot 44e67e8565SEmmanuel Vadot interrupt-names: 45e67e8565SEmmanuel Vadot minItems: 1 46e67e8565SEmmanuel Vadot items: 47e67e8565SEmmanuel Vadot - const: xtr 48e67e8565SEmmanuel Vadot - const: fdma 49e67e8565SEmmanuel Vadot - const: ana 50c9ccf3a3SEmmanuel Vadot - const: ptp 51d5b0e70fSEmmanuel Vadot - const: ptp-ext 52e67e8565SEmmanuel Vadot 53e67e8565SEmmanuel Vadot resets: 54e67e8565SEmmanuel Vadot items: 55e67e8565SEmmanuel Vadot - description: Reset controller used for switch core reset (soft reset) 56e67e8565SEmmanuel Vadot 57e67e8565SEmmanuel Vadot reset-names: 58e67e8565SEmmanuel Vadot items: 59e67e8565SEmmanuel Vadot - const: switch 60e67e8565SEmmanuel Vadot 61e67e8565SEmmanuel Vadot ethernet-ports: 62e67e8565SEmmanuel Vadot type: object 63e67e8565SEmmanuel Vadot 64e67e8565SEmmanuel Vadot properties: 65e67e8565SEmmanuel Vadot '#address-cells': 66e67e8565SEmmanuel Vadot const: 1 67e67e8565SEmmanuel Vadot '#size-cells': 68e67e8565SEmmanuel Vadot const: 0 69e67e8565SEmmanuel Vadot 70e67e8565SEmmanuel Vadot additionalProperties: false 71e67e8565SEmmanuel Vadot 72e67e8565SEmmanuel Vadot patternProperties: 73e67e8565SEmmanuel Vadot "^port@[0-9a-f]+$": 74e67e8565SEmmanuel Vadot type: object 75e67e8565SEmmanuel Vadot 76*fac71e4eSEmmanuel Vadot $ref: /schemas/net/ethernet-controller.yaml# 77e67e8565SEmmanuel Vadot unevaluatedProperties: false 78e67e8565SEmmanuel Vadot 79e67e8565SEmmanuel Vadot properties: 80e67e8565SEmmanuel Vadot '#address-cells': 81e67e8565SEmmanuel Vadot const: 1 82e67e8565SEmmanuel Vadot '#size-cells': 83e67e8565SEmmanuel Vadot const: 0 84e67e8565SEmmanuel Vadot 85e67e8565SEmmanuel Vadot reg: 86e67e8565SEmmanuel Vadot description: 87e67e8565SEmmanuel Vadot Switch port number 88e67e8565SEmmanuel Vadot 89e67e8565SEmmanuel Vadot phys: 90e67e8565SEmmanuel Vadot description: 91e67e8565SEmmanuel Vadot Phandle of a Ethernet SerDes PHY 92e67e8565SEmmanuel Vadot 93e67e8565SEmmanuel Vadot phy-mode: 94e67e8565SEmmanuel Vadot description: 95e67e8565SEmmanuel Vadot This specifies the interface used by the Ethernet SerDes towards 96e67e8565SEmmanuel Vadot the PHY or SFP. 97e67e8565SEmmanuel Vadot enum: 98e67e8565SEmmanuel Vadot - gmii 99e67e8565SEmmanuel Vadot - sgmii 100e67e8565SEmmanuel Vadot - qsgmii 101e67e8565SEmmanuel Vadot - 1000base-x 102e67e8565SEmmanuel Vadot - 2500base-x 103e67e8565SEmmanuel Vadot 104e67e8565SEmmanuel Vadot phy-handle: 105e67e8565SEmmanuel Vadot description: 106e67e8565SEmmanuel Vadot Phandle of a Ethernet PHY. 107e67e8565SEmmanuel Vadot 108e67e8565SEmmanuel Vadot sfp: 109e67e8565SEmmanuel Vadot description: 110e67e8565SEmmanuel Vadot Phandle of an SFP. 111e67e8565SEmmanuel Vadot 112e67e8565SEmmanuel Vadot managed: true 113e67e8565SEmmanuel Vadot 114e67e8565SEmmanuel Vadot required: 115e67e8565SEmmanuel Vadot - reg 116e67e8565SEmmanuel Vadot - phys 117e67e8565SEmmanuel Vadot - phy-mode 118e67e8565SEmmanuel Vadot 119e67e8565SEmmanuel Vadot oneOf: 120e67e8565SEmmanuel Vadot - required: 121e67e8565SEmmanuel Vadot - phy-handle 122e67e8565SEmmanuel Vadot - required: 123e67e8565SEmmanuel Vadot - sfp 124e67e8565SEmmanuel Vadot - managed 125e67e8565SEmmanuel Vadot 126e67e8565SEmmanuel Vadotrequired: 127e67e8565SEmmanuel Vadot - compatible 128e67e8565SEmmanuel Vadot - reg 129e67e8565SEmmanuel Vadot - reg-names 130e67e8565SEmmanuel Vadot - interrupts 131e67e8565SEmmanuel Vadot - interrupt-names 132e67e8565SEmmanuel Vadot - resets 133e67e8565SEmmanuel Vadot - reset-names 134e67e8565SEmmanuel Vadot - ethernet-ports 135e67e8565SEmmanuel Vadot 136e67e8565SEmmanuel VadotadditionalProperties: false 137e67e8565SEmmanuel Vadot 138e67e8565SEmmanuel Vadotexamples: 139e67e8565SEmmanuel Vadot - | 140e67e8565SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 141e67e8565SEmmanuel Vadot switch: switch@e0000000 { 142e67e8565SEmmanuel Vadot compatible = "microchip,lan966x-switch"; 143e67e8565SEmmanuel Vadot reg = <0xe0000000 0x0100000>, 144e67e8565SEmmanuel Vadot <0xe2000000 0x0800000>; 145e67e8565SEmmanuel Vadot reg-names = "cpu", "gcb"; 146e67e8565SEmmanuel Vadot interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 147e67e8565SEmmanuel Vadot interrupt-names = "xtr"; 148d5b0e70fSEmmanuel Vadot resets = <&switch_reset 0>; 149d5b0e70fSEmmanuel Vadot reset-names = "switch"; 150e67e8565SEmmanuel Vadot ethernet-ports { 151e67e8565SEmmanuel Vadot #address-cells = <1>; 152e67e8565SEmmanuel Vadot #size-cells = <0>; 153e67e8565SEmmanuel Vadot 154e67e8565SEmmanuel Vadot port0: port@0 { 155e67e8565SEmmanuel Vadot reg = <0>; 156e67e8565SEmmanuel Vadot phy-handle = <&phy0>; 157e67e8565SEmmanuel Vadot phys = <&serdes 0 0>; 158e67e8565SEmmanuel Vadot phy-mode = "gmii"; 159e67e8565SEmmanuel Vadot }; 160e67e8565SEmmanuel Vadot 161e67e8565SEmmanuel Vadot port1: port@1 { 162e67e8565SEmmanuel Vadot reg = <1>; 163e67e8565SEmmanuel Vadot sfp = <&sfp_eth1>; 164e67e8565SEmmanuel Vadot managed = "in-band-status"; 165e67e8565SEmmanuel Vadot phys = <&serdes 2 4>; 166e67e8565SEmmanuel Vadot phy-mode = "sgmii"; 167e67e8565SEmmanuel Vadot }; 168e67e8565SEmmanuel Vadot }; 169e67e8565SEmmanuel Vadot }; 170e67e8565SEmmanuel Vadot 171e67e8565SEmmanuel Vadot... 172