Documentation / devicetree / bindings / net / dsa / renesas,rzn1-a5psw.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/renesas,rzn1-a5psw.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas RZ/N1 Advanced 5 ports ethernet switch

maintainers:
  - Clément Léger <clement.leger@bootlin.com>

description: |
  The advanced 5 ports switch is present on the Renesas RZ/N1 SoC family and
  handles 4 ports + 1 CPU management port.

allOf:
  - $ref: dsa.yaml#/$defs/ethernet-ports

properties:
  compatible:
    items:
      - enum:
          - renesas,r9a06g032-a5psw
      - const: renesas,rzn1-a5psw

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: Device Level Ring (DLR) interrupt
      - description: Switch interrupt
      - description: Parallel Redundancy Protocol (PRP) interrupt
      - description: Integrated HUB module interrupt
      - description: Receive Pattern Match interrupt

  interrupt-names:
    items:
      - const: dlr
      - const: switch
      - const: prp
      - const: hub
      - const: ptrn

  power-domains:
    maxItems: 1

  mdio:
    $ref: /schemas/net/mdio.yaml#
    unevaluatedProperties: false

  clocks:
    items:
      - description: AHB clock used for the switch register interface
      - description: Switch system clock

  clock-names:
    items:
      - const: hclk
      - const: clk

  ethernet-ports:
    type: object
    additionalProperties: true
    patternProperties:
      "^(ethernet-)?port@[0-4]$":
        type: object
        additionalProperties: true
        properties:
          pcs-handle:
            maxItems: 1
            description:
              phandle pointing to a PCS sub-node compatible with
              renesas,rzn1-miic.yaml#

unevaluatedProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - power-domains

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/clock/r9a06g032-sysctrl.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    switch@44050000 {
        compatible = "renesas,r9a06g032-a5psw", "renesas,rzn1-a5psw";
        reg = <0x44050000 0x10000>;
        clocks = <&sysctrl R9A06G032_HCLK_SWITCH>, <&sysctrl R9A06G032_CLK_SWITCH>;
        clock-names = "hclk", "clk";
        power-domains = <&sysctrl>;
        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-names = "dlr", "switch", "prp", "hub", "ptrn";
 
        dsa,member = <0 0>;
 
        ethernet-ports {
            #address-cells = <1>;
            #size-cells = <0>;
 
            port@0 {
                reg = <0>;
                label = "lan0";
                phy-handle = <&switch0phy3>;
                pcs-handle = <&mii_conv4>;
            };
 
            port@1 {
                reg = <1>;
                label = "lan1";
                phy-handle = <&switch0phy1>;
                pcs-handle = <&mii_conv3>;
            };
 
            port@4 {
                reg = <4>;
                ethernet = <&gmac2>;
                phy-mode = "internal";
 
                fixed-link {
                  speed = <1000>;
                  full-duplex;
                };
            };
        };
 
        mdio {
            #address-cells = <1>;
            #size-cells = <0>;
 
            reset-gpios = <&gpio0a 2 GPIO_ACTIVE_HIGH>;
            reset-delay-us = <15>;
            clock-frequency = <2500000>;
 
            switch0phy1: ethernet-phy@1{
                reg = <1>;
            };
 
            switch0phy3: ethernet-phy@3{
                reg = <3>;
            };
        };
    };