xref: /linux/Documentation/devicetree/bindings/net/realtek,rtl9301-switch.yaml (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
13fa33765SChris Packham# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23fa33765SChris Packham%YAML 1.2
33fa33765SChris Packham---
43fa33765SChris Packham$id: http://devicetree.org/schemas/net/realtek,rtl9301-switch.yaml#
53fa33765SChris Packham$schema: http://devicetree.org/meta-schemas/core.yaml#
63fa33765SChris Packham
73fa33765SChris Packhamtitle: Realtek Switch with Internal CPU
83fa33765SChris Packham
93fa33765SChris Packhammaintainers:
103fa33765SChris Packham  - Chris Packham <chris.packham@alliedtelesis.co.nz>
113fa33765SChris Packham
123fa33765SChris Packhamdescription:
133fa33765SChris Packham  The RTL9300 is a series of is an Ethernet switches with an integrated CPU. A
143fa33765SChris Packham  number of different peripherals are accessed through a common register block,
153fa33765SChris Packham  represented here as a syscon node.
163fa33765SChris Packham
1792575a21SChris Packham$ref: ethernet-switch.yaml#/$defs/ethernet-ports
1892575a21SChris Packham
193fa33765SChris Packhamproperties:
203fa33765SChris Packham  compatible:
213fa33765SChris Packham    items:
223fa33765SChris Packham      - enum:
233fa33765SChris Packham          - realtek,rtl9301-switch
243fa33765SChris Packham          - realtek,rtl9302b-switch
253fa33765SChris Packham          - realtek,rtl9302c-switch
263fa33765SChris Packham          - realtek,rtl9303-switch
273fa33765SChris Packham      - const: syscon
283fa33765SChris Packham      - const: simple-mfd
293fa33765SChris Packham
303fa33765SChris Packham  reg:
313fa33765SChris Packham    maxItems: 1
323fa33765SChris Packham
3392575a21SChris Packham  interrupts:
3492575a21SChris Packham    maxItems: 2
3592575a21SChris Packham
3692575a21SChris Packham  interrupt-names:
3792575a21SChris Packham    items:
3892575a21SChris Packham      - const: switch
3992575a21SChris Packham      - const: nic
4092575a21SChris Packham
413fa33765SChris Packham  '#address-cells':
423fa33765SChris Packham    const: 1
433fa33765SChris Packham
443fa33765SChris Packham  '#size-cells':
453fa33765SChris Packham    const: 1
463fa33765SChris Packham
4792575a21SChris Packham  ethernet-ports:
4892575a21SChris Packham    type: object
4992575a21SChris Packham
503fa33765SChris PackhampatternProperties:
513fa33765SChris Packham  'reboot@[0-9a-f]+$':
523fa33765SChris Packham    $ref: /schemas/power/reset/syscon-reboot.yaml#
533fa33765SChris Packham
543fa33765SChris Packham  'i2c@[0-9a-f]+$':
553fa33765SChris Packham    $ref: /schemas/i2c/realtek,rtl9301-i2c.yaml#
563fa33765SChris Packham
57*96757457SChris Packham  'mdio-controller@[0-9a-f]+$':
58*96757457SChris Packham    $ref: realtek,rtl9301-mdio.yaml#
59*96757457SChris Packham
603fa33765SChris Packhamrequired:
613fa33765SChris Packham  - compatible
623fa33765SChris Packham  - reg
6392575a21SChris Packham  - interrupts
6492575a21SChris Packham  - interrupt-names
653fa33765SChris Packham
663fa33765SChris PackhamadditionalProperties: false
673fa33765SChris Packham
683fa33765SChris Packhamexamples:
693fa33765SChris Packham  - |
703fa33765SChris Packham    ethernet-switch@1b000000 {
713fa33765SChris Packham      compatible = "realtek,rtl9301-switch", "syscon", "simple-mfd";
723fa33765SChris Packham      reg = <0x1b000000 0x10000>;
7392575a21SChris Packham      interrupt-parent = <&intc>;
7492575a21SChris Packham      interrupts = <23>, <24>;
7592575a21SChris Packham      interrupt-names = "switch", "nic";
763fa33765SChris Packham      #address-cells = <1>;
773fa33765SChris Packham      #size-cells = <1>;
783fa33765SChris Packham
793fa33765SChris Packham      reboot@c {
803fa33765SChris Packham        compatible = "syscon-reboot";
813fa33765SChris Packham        reg = <0x0c 0x4>;
823fa33765SChris Packham        value = <0x01>;
833fa33765SChris Packham      };
843fa33765SChris Packham
853fa33765SChris Packham      i2c@36c {
863fa33765SChris Packham        compatible = "realtek,rtl9301-i2c";
873fa33765SChris Packham        reg = <0x36c 0x14>;
883fa33765SChris Packham        #address-cells = <1>;
893fa33765SChris Packham        #size-cells = <0>;
903fa33765SChris Packham
913fa33765SChris Packham        i2c@0 {
923fa33765SChris Packham          reg = <0>;
933fa33765SChris Packham          #address-cells = <1>;
943fa33765SChris Packham          #size-cells = <0>;
953fa33765SChris Packham          gpio@20 {
963fa33765SChris Packham            compatible = "nxp,pca9555";
973fa33765SChris Packham            gpio-controller;
983fa33765SChris Packham            #gpio-cells = <2>;
993fa33765SChris Packham            reg = <0x20>;
1003fa33765SChris Packham          };
1013fa33765SChris Packham        };
1023fa33765SChris Packham
1033fa33765SChris Packham        i2c@2 {
1043fa33765SChris Packham          reg = <2>;
1053fa33765SChris Packham          #address-cells = <1>;
1063fa33765SChris Packham          #size-cells = <0>;
1073fa33765SChris Packham          gpio@20 {
1083fa33765SChris Packham            compatible = "nxp,pca9555";
1093fa33765SChris Packham            gpio-controller;
1103fa33765SChris Packham            #gpio-cells = <2>;
1113fa33765SChris Packham            reg = <0x20>;
1123fa33765SChris Packham          };
1133fa33765SChris Packham        };
1143fa33765SChris Packham      };
1153fa33765SChris Packham
1163fa33765SChris Packham      i2c@388 {
1173fa33765SChris Packham        compatible = "realtek,rtl9301-i2c";
1183fa33765SChris Packham        reg = <0x388 0x14>;
1193fa33765SChris Packham        #address-cells = <1>;
1203fa33765SChris Packham        #size-cells = <0>;
1213fa33765SChris Packham
1223fa33765SChris Packham        i2c@7 {
1233fa33765SChris Packham          reg = <7>;
1243fa33765SChris Packham          #address-cells = <1>;
1253fa33765SChris Packham          #size-cells = <0>;
1263fa33765SChris Packham          gpio@20 {
1273fa33765SChris Packham            compatible = "nxp,pca9555";
1283fa33765SChris Packham            gpio-controller;
1293fa33765SChris Packham            #gpio-cells = <2>;
1303fa33765SChris Packham            reg = <0x20>;
1313fa33765SChris Packham          };
1323fa33765SChris Packham        };
1333fa33765SChris Packham      };
13492575a21SChris Packham
135*96757457SChris Packham      mdio-controller@ca00 {
136*96757457SChris Packham        compatible = "realtek,rtl9301-mdio";
137*96757457SChris Packham        reg = <0xca00 0x200>;
138*96757457SChris Packham        #address-cells = <1>;
139*96757457SChris Packham        #size-cells = <0>;
140*96757457SChris Packham
141*96757457SChris Packham        mdio-bus@0 {
142*96757457SChris Packham          reg = <0>;
143*96757457SChris Packham          #address-cells = <1>;
144*96757457SChris Packham          #size-cells = <0>;
145*96757457SChris Packham
146*96757457SChris Packham          phy1: ethernet-phy@0 {
147*96757457SChris Packham            reg = <0>;
148*96757457SChris Packham          };
149*96757457SChris Packham        };
150*96757457SChris Packham        mdio-bus@1 {
151*96757457SChris Packham          reg = <1>;
152*96757457SChris Packham          #address-cells = <1>;
153*96757457SChris Packham          #size-cells = <0>;
154*96757457SChris Packham
155*96757457SChris Packham          phy2: ethernet-phy@0 {
156*96757457SChris Packham            reg = <0>;
157*96757457SChris Packham          };
158*96757457SChris Packham        };
159*96757457SChris Packham      };
160*96757457SChris Packham
16192575a21SChris Packham      ethernet-ports {
16292575a21SChris Packham        #address-cells = <1>;
16392575a21SChris Packham        #size-cells = <0>;
16492575a21SChris Packham
16592575a21SChris Packham        port@0 {
16692575a21SChris Packham          reg = <0>;
167*96757457SChris Packham          phy-handle = <&phy1>;
16892575a21SChris Packham        };
16992575a21SChris Packham        port@1 {
17092575a21SChris Packham          reg = <1>;
171*96757457SChris Packham          phy-handle = <&phy2>;
17292575a21SChris Packham        };
17392575a21SChris Packham      };
1743fa33765SChris Packham    };
1753fa33765SChris Packham
176