1*b693b51eSFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*b693b51eSFrank Li%YAML 1.2 3*b693b51eSFrank Li--- 4*b693b51eSFrank Li$id: http://devicetree.org/schemas/net/dsa/smsc,lan9303.yaml# 5*b693b51eSFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml# 6*b693b51eSFrank Li 7*b693b51eSFrank Lititle: SMSC/MicroChip LAN9303 three port ethernet switch 8*b693b51eSFrank Li 9*b693b51eSFrank Limaintainers: 10*b693b51eSFrank Li - Frank Li <Frank.Li@nxp.com> 11*b693b51eSFrank Li 12*b693b51eSFrank Lidescription: 13*b693b51eSFrank Li The LAN9303 is a three port ethernet switch with integrated PHYs for the 14*b693b51eSFrank Li two external ports. The third port is an RMII/MII interface to a host 15*b693b51eSFrank Li processor. The device can be managed via I2C or MDIO. 16*b693b51eSFrank Li 17*b693b51eSFrank Li Note - always use 'reg = <0/1/2>;' for the three DSA ports, even if the 18*b693b51eSFrank Li device is configured to use 1/2/3 instead. This hardware configuration 19*b693b51eSFrank Li will be auto-detected and mapped accordingly. 20*b693b51eSFrank Li 21*b693b51eSFrank Liproperties: 22*b693b51eSFrank Li compatible: 23*b693b51eSFrank Li enum: 24*b693b51eSFrank Li - smsc,lan9303-i2c 25*b693b51eSFrank Li - smsc,lan9303-mdio 26*b693b51eSFrank Li 27*b693b51eSFrank Li reg: 28*b693b51eSFrank Li maxItems: 1 29*b693b51eSFrank Li 30*b693b51eSFrank Li reset-gpios: 31*b693b51eSFrank Li description: 32*b693b51eSFrank Li GPIO to be used to reset the whole device 33*b693b51eSFrank Li maxItems: 1 34*b693b51eSFrank Li 35*b693b51eSFrank Li reset-duration: 36*b693b51eSFrank Li description: 37*b693b51eSFrank Li Reset duration in milliseconds 38*b693b51eSFrank Li default: 200 39*b693b51eSFrank Li $ref: /schemas/types.yaml#/definitions/uint32 40*b693b51eSFrank Li 41*b693b51eSFrank Lirequired: 42*b693b51eSFrank Li - compatible 43*b693b51eSFrank Li - reg 44*b693b51eSFrank Li 45*b693b51eSFrank LiunevaluatedProperties: false 46*b693b51eSFrank Li 47*b693b51eSFrank LiallOf: 48*b693b51eSFrank Li - $ref: dsa.yaml# 49*b693b51eSFrank Li 50*b693b51eSFrank Liexamples: 51*b693b51eSFrank Li - | 52*b693b51eSFrank Li #include <dt-bindings/gpio/gpio.h> 53*b693b51eSFrank Li 54*b693b51eSFrank Li /* I2C managed mode */ 55*b693b51eSFrank Li i2c { 56*b693b51eSFrank Li #address-cells = <1>; 57*b693b51eSFrank Li #size-cells = <0>; 58*b693b51eSFrank Li 59*b693b51eSFrank Li switch@a { 60*b693b51eSFrank Li compatible = "smsc,lan9303-i2c"; 61*b693b51eSFrank Li reg = <0xa>; 62*b693b51eSFrank Li reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 63*b693b51eSFrank Li reset-duration = <200>; 64*b693b51eSFrank Li 65*b693b51eSFrank Li ports { 66*b693b51eSFrank Li #address-cells = <1>; 67*b693b51eSFrank Li #size-cells = <0>; 68*b693b51eSFrank Li 69*b693b51eSFrank Li port@0 { 70*b693b51eSFrank Li reg = <0>; 71*b693b51eSFrank Li label = "cpu"; 72*b693b51eSFrank Li ethernet = <&master>; 73*b693b51eSFrank Li }; 74*b693b51eSFrank Li 75*b693b51eSFrank Li port@1 { 76*b693b51eSFrank Li reg = <1>; 77*b693b51eSFrank Li label = "lan1"; 78*b693b51eSFrank Li }; 79*b693b51eSFrank Li 80*b693b51eSFrank Li port@2 { 81*b693b51eSFrank Li reg = <2>; 82*b693b51eSFrank Li label = "lan2"; 83*b693b51eSFrank Li }; 84*b693b51eSFrank Li }; 85*b693b51eSFrank Li }; 86*b693b51eSFrank Li }; 87*b693b51eSFrank Li 88*b693b51eSFrank Li - | 89*b693b51eSFrank Li #include <dt-bindings/gpio/gpio.h> 90*b693b51eSFrank Li 91*b693b51eSFrank Li /* MDIO managed mode */ 92*b693b51eSFrank Li mdio { 93*b693b51eSFrank Li #address-cells = <1>; 94*b693b51eSFrank Li #size-cells = <0>; 95*b693b51eSFrank Li 96*b693b51eSFrank Li switch@0 { 97*b693b51eSFrank Li compatible = "smsc,lan9303-mdio"; 98*b693b51eSFrank Li reg = <0>; 99*b693b51eSFrank Li reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; 100*b693b51eSFrank Li reset-duration = <100>; 101*b693b51eSFrank Li 102*b693b51eSFrank Li ports { 103*b693b51eSFrank Li #address-cells = <1>; 104*b693b51eSFrank Li #size-cells = <0>; 105*b693b51eSFrank Li 106*b693b51eSFrank Li port@0 { 107*b693b51eSFrank Li reg = <0>; 108*b693b51eSFrank Li label = "cpu"; 109*b693b51eSFrank Li ethernet = <&master>; 110*b693b51eSFrank Li }; 111*b693b51eSFrank Li 112*b693b51eSFrank Li port@1 { 113*b693b51eSFrank Li reg = <1>; 114*b693b51eSFrank Li label = "lan1"; 115*b693b51eSFrank Li }; 116*b693b51eSFrank Li 117*b693b51eSFrank Li port@2 { 118*b693b51eSFrank Li reg = <2>; 119*b693b51eSFrank Li label = "lan2"; 120*b693b51eSFrank Li }; 121*b693b51eSFrank Li }; 122*b693b51eSFrank Li }; 123*b693b51eSFrank Li }; 124