xref: /linux/Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
18956e96cSClément Léger# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28956e96cSClément Léger%YAML 1.2
38956e96cSClément Léger---
48956e96cSClément Léger$id: http://devicetree.org/schemas/net/dsa/renesas,rzn1-a5psw.yaml#
58956e96cSClément Léger$schema: http://devicetree.org/meta-schemas/core.yaml#
68956e96cSClément Léger
78956e96cSClément Légertitle: Renesas RZ/N1 Advanced 5 ports ethernet switch
88956e96cSClément Léger
98956e96cSClément Légermaintainers:
108956e96cSClément Léger  - Clément Léger <clement.leger@bootlin.com>
118956e96cSClément Léger
128956e96cSClément Légerdescription: |
138956e96cSClément Léger  The advanced 5 ports switch is present on the Renesas RZ/N1 SoC family and
148956e96cSClément Léger  handles 4 ports + 1 CPU management port.
158956e96cSClément Léger
168956e96cSClément LégerallOf:
173cec368aSColin Foster  - $ref: dsa.yaml#/$defs/ethernet-ports
188956e96cSClément Léger
198956e96cSClément Légerproperties:
208956e96cSClément Léger  compatible:
218956e96cSClément Léger    items:
228956e96cSClément Léger      - enum:
238956e96cSClément Léger          - renesas,r9a06g032-a5psw
248956e96cSClément Léger      - const: renesas,rzn1-a5psw
258956e96cSClément Léger
268956e96cSClément Léger  reg:
278956e96cSClément Léger    maxItems: 1
288956e96cSClément Léger
29326569ccSClément Léger  interrupts:
30326569ccSClément Léger    items:
31326569ccSClément Léger      - description: Device Level Ring (DLR) interrupt
32326569ccSClément Léger      - description: Switch interrupt
33326569ccSClément Léger      - description: Parallel Redundancy Protocol (PRP) interrupt
34326569ccSClément Léger      - description: Integrated HUB module interrupt
35326569ccSClément Léger      - description: Receive Pattern Match interrupt
36326569ccSClément Léger
37326569ccSClément Léger  interrupt-names:
38326569ccSClément Léger    items:
39326569ccSClément Léger      - const: dlr
40326569ccSClément Léger      - const: switch
41326569ccSClément Léger      - const: prp
42326569ccSClément Léger      - const: hub
43326569ccSClément Léger      - const: ptrn
44326569ccSClément Léger
458956e96cSClément Léger  power-domains:
468956e96cSClément Léger    maxItems: 1
478956e96cSClément Léger
488956e96cSClément Léger  mdio:
498956e96cSClément Léger    $ref: /schemas/net/mdio.yaml#
508956e96cSClément Léger    unevaluatedProperties: false
518956e96cSClément Léger
528956e96cSClément Léger  clocks:
538956e96cSClément Léger    items:
548956e96cSClément Léger      - description: AHB clock used for the switch register interface
558956e96cSClément Léger      - description: Switch system clock
568956e96cSClément Léger
578956e96cSClément Léger  clock-names:
588956e96cSClément Léger    items:
598956e96cSClément Léger      - const: hclk
608956e96cSClément Léger      - const: clk
618956e96cSClément Léger
628956e96cSClément Léger  ethernet-ports:
638956e96cSClément Léger    type: object
64*659fd097SRob Herring    additionalProperties: true
658956e96cSClément Léger    patternProperties:
668956e96cSClément Léger      "^(ethernet-)?port@[0-4]$":
678956e96cSClément Léger        type: object
68*659fd097SRob Herring        additionalProperties: true
698956e96cSClément Léger        properties:
708956e96cSClément Léger          pcs-handle:
7176025ee5SSean Anderson            maxItems: 1
728956e96cSClément Léger            description:
738956e96cSClément Léger              phandle pointing to a PCS sub-node compatible with
748956e96cSClément Léger              renesas,rzn1-miic.yaml#
758956e96cSClément Léger
768956e96cSClément LégerunevaluatedProperties: false
778956e96cSClément Léger
788956e96cSClément Légerrequired:
798956e96cSClément Léger  - compatible
808956e96cSClément Léger  - reg
818956e96cSClément Léger  - clocks
828956e96cSClément Léger  - clock-names
838956e96cSClément Léger  - power-domains
848956e96cSClément Léger
858956e96cSClément Légerexamples:
868956e96cSClément Léger  - |
878956e96cSClément Léger    #include <dt-bindings/gpio/gpio.h>
888956e96cSClément Léger    #include <dt-bindings/clock/r9a06g032-sysctrl.h>
89326569ccSClément Léger    #include <dt-bindings/interrupt-controller/arm-gic.h>
908956e96cSClément Léger
918956e96cSClément Léger    switch@44050000 {
928956e96cSClément Léger        compatible = "renesas,r9a06g032-a5psw", "renesas,rzn1-a5psw";
938956e96cSClément Léger        reg = <0x44050000 0x10000>;
948956e96cSClément Léger        clocks = <&sysctrl R9A06G032_HCLK_SWITCH>, <&sysctrl R9A06G032_CLK_SWITCH>;
958956e96cSClément Léger        clock-names = "hclk", "clk";
968956e96cSClément Léger        power-domains = <&sysctrl>;
97326569ccSClément Léger        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
98326569ccSClément Léger                     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
99326569ccSClément Léger                     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
100326569ccSClément Léger                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
101326569ccSClément Léger                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
102326569ccSClément Léger        interrupt-names = "dlr", "switch", "prp", "hub", "ptrn";
1038956e96cSClément Léger
1048956e96cSClément Léger        dsa,member = <0 0>;
1058956e96cSClément Léger
1068956e96cSClément Léger        ethernet-ports {
1078956e96cSClément Léger            #address-cells = <1>;
1088956e96cSClément Léger            #size-cells = <0>;
1098956e96cSClément Léger
1108956e96cSClément Léger            port@0 {
1118956e96cSClément Léger                reg = <0>;
1128956e96cSClément Léger                label = "lan0";
1138956e96cSClément Léger                phy-handle = <&switch0phy3>;
1148956e96cSClément Léger                pcs-handle = <&mii_conv4>;
1158956e96cSClément Léger            };
1168956e96cSClément Léger
1178956e96cSClément Léger            port@1 {
1188956e96cSClément Léger                reg = <1>;
1198956e96cSClément Léger                label = "lan1";
1208956e96cSClément Léger                phy-handle = <&switch0phy1>;
1218956e96cSClément Léger                pcs-handle = <&mii_conv3>;
1228956e96cSClément Léger            };
1238956e96cSClément Léger
1248956e96cSClément Léger            port@4 {
1258956e96cSClément Léger                reg = <4>;
1268956e96cSClément Léger                ethernet = <&gmac2>;
127f3c8168fSVladimir Oltean                phy-mode = "internal";
128f3c8168fSVladimir Oltean
1298956e96cSClément Léger                fixed-link {
1308956e96cSClément Léger                  speed = <1000>;
1318956e96cSClément Léger                  full-duplex;
1328956e96cSClément Léger                };
1338956e96cSClément Léger            };
1348956e96cSClément Léger        };
1358956e96cSClément Léger
1368956e96cSClément Léger        mdio {
1378956e96cSClément Léger            #address-cells = <1>;
1388956e96cSClément Léger            #size-cells = <0>;
1398956e96cSClément Léger
1408956e96cSClément Léger            reset-gpios = <&gpio0a 2 GPIO_ACTIVE_HIGH>;
1418956e96cSClément Léger            reset-delay-us = <15>;
1428956e96cSClément Léger            clock-frequency = <2500000>;
1438956e96cSClément Léger
1448956e96cSClément Léger            switch0phy1: ethernet-phy@1{
1458956e96cSClément Léger                reg = <1>;
1468956e96cSClément Léger            };
1478956e96cSClément Léger
1488956e96cSClément Léger            switch0phy3: ethernet-phy@3{
1498956e96cSClément Léger                reg = <3>;
1508956e96cSClément Léger            };
1518956e96cSClément Léger        };
1528956e96cSClément Léger    };
153