xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/realtek,rtl9301-switch.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5f62a964SEmmanuel Vadot%YAML 1.2
3*5f62a964SEmmanuel Vadot---
4*5f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml#
5*5f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5f62a964SEmmanuel Vadot
7*5f62a964SEmmanuel Vadottitle: Realtek Switch with Internal CPU
8*5f62a964SEmmanuel Vadot
9*5f62a964SEmmanuel Vadotmaintainers:
10*5f62a964SEmmanuel Vadot  - Chris Packham <chris.packham@alliedtelesis.co.nz>
11*5f62a964SEmmanuel Vadot
12*5f62a964SEmmanuel Vadotdescription:
13*5f62a964SEmmanuel Vadot  The RTL9300 is a series of is an Ethernet switches with an integrated CPU. A
14*5f62a964SEmmanuel Vadot  number of different peripherals are accessed through a common register block,
15*5f62a964SEmmanuel Vadot  represented here as a syscon node.
16*5f62a964SEmmanuel Vadot
17*5f62a964SEmmanuel Vadotproperties:
18*5f62a964SEmmanuel Vadot  compatible:
19*5f62a964SEmmanuel Vadot    items:
20*5f62a964SEmmanuel Vadot      - enum:
21*5f62a964SEmmanuel Vadot          - realtek,rtl9301-switch
22*5f62a964SEmmanuel Vadot          - realtek,rtl9302b-switch
23*5f62a964SEmmanuel Vadot          - realtek,rtl9302c-switch
24*5f62a964SEmmanuel Vadot          - realtek,rtl9303-switch
25*5f62a964SEmmanuel Vadot      - const: syscon
26*5f62a964SEmmanuel Vadot      - const: simple-mfd
27*5f62a964SEmmanuel Vadot
28*5f62a964SEmmanuel Vadot  reg:
29*5f62a964SEmmanuel Vadot    maxItems: 1
30*5f62a964SEmmanuel Vadot
31*5f62a964SEmmanuel Vadot  '#address-cells':
32*5f62a964SEmmanuel Vadot    const: 1
33*5f62a964SEmmanuel Vadot
34*5f62a964SEmmanuel Vadot  '#size-cells':
35*5f62a964SEmmanuel Vadot    const: 1
36*5f62a964SEmmanuel Vadot
37*5f62a964SEmmanuel VadotpatternProperties:
38*5f62a964SEmmanuel Vadot  'reboot@[0-9a-f]+$':
39*5f62a964SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-reboot.yaml#
40*5f62a964SEmmanuel Vadot
41*5f62a964SEmmanuel Vadot  'i2c@[0-9a-f]+$':
42*5f62a964SEmmanuel Vadot    $ref: /schemas/i2c/realtek,rtl9301-i2c.yaml#
43*5f62a964SEmmanuel Vadot
44*5f62a964SEmmanuel Vadotrequired:
45*5f62a964SEmmanuel Vadot  - compatible
46*5f62a964SEmmanuel Vadot  - reg
47*5f62a964SEmmanuel Vadot
48*5f62a964SEmmanuel VadotadditionalProperties: false
49*5f62a964SEmmanuel Vadot
50*5f62a964SEmmanuel Vadotexamples:
51*5f62a964SEmmanuel Vadot  - |
52*5f62a964SEmmanuel Vadot    ethernet-switch@1b000000 {
53*5f62a964SEmmanuel Vadot      compatible = "realtek,rtl9301-switch", "syscon", "simple-mfd";
54*5f62a964SEmmanuel Vadot      reg = <0x1b000000 0x10000>;
55*5f62a964SEmmanuel Vadot      #address-cells = <1>;
56*5f62a964SEmmanuel Vadot      #size-cells = <1>;
57*5f62a964SEmmanuel Vadot
58*5f62a964SEmmanuel Vadot      reboot@c {
59*5f62a964SEmmanuel Vadot        compatible = "syscon-reboot";
60*5f62a964SEmmanuel Vadot        reg = <0x0c 0x4>;
61*5f62a964SEmmanuel Vadot        value = <0x01>;
62*5f62a964SEmmanuel Vadot      };
63*5f62a964SEmmanuel Vadot
64*5f62a964SEmmanuel Vadot      i2c@36c {
65*5f62a964SEmmanuel Vadot        compatible = "realtek,rtl9301-i2c";
66*5f62a964SEmmanuel Vadot        reg = <0x36c 0x14>;
67*5f62a964SEmmanuel Vadot        #address-cells = <1>;
68*5f62a964SEmmanuel Vadot        #size-cells = <0>;
69*5f62a964SEmmanuel Vadot
70*5f62a964SEmmanuel Vadot        i2c@0 {
71*5f62a964SEmmanuel Vadot          reg = <0>;
72*5f62a964SEmmanuel Vadot          #address-cells = <1>;
73*5f62a964SEmmanuel Vadot          #size-cells = <0>;
74*5f62a964SEmmanuel Vadot          gpio@20 {
75*5f62a964SEmmanuel Vadot            compatible = "nxp,pca9555";
76*5f62a964SEmmanuel Vadot            gpio-controller;
77*5f62a964SEmmanuel Vadot            #gpio-cells = <2>;
78*5f62a964SEmmanuel Vadot            reg = <0x20>;
79*5f62a964SEmmanuel Vadot          };
80*5f62a964SEmmanuel Vadot        };
81*5f62a964SEmmanuel Vadot
82*5f62a964SEmmanuel Vadot        i2c@2 {
83*5f62a964SEmmanuel Vadot          reg = <2>;
84*5f62a964SEmmanuel Vadot          #address-cells = <1>;
85*5f62a964SEmmanuel Vadot          #size-cells = <0>;
86*5f62a964SEmmanuel Vadot          gpio@20 {
87*5f62a964SEmmanuel Vadot            compatible = "nxp,pca9555";
88*5f62a964SEmmanuel Vadot            gpio-controller;
89*5f62a964SEmmanuel Vadot            #gpio-cells = <2>;
90*5f62a964SEmmanuel Vadot            reg = <0x20>;
91*5f62a964SEmmanuel Vadot          };
92*5f62a964SEmmanuel Vadot        };
93*5f62a964SEmmanuel Vadot      };
94*5f62a964SEmmanuel Vadot
95*5f62a964SEmmanuel Vadot      i2c@388 {
96*5f62a964SEmmanuel Vadot        compatible = "realtek,rtl9301-i2c";
97*5f62a964SEmmanuel Vadot        reg = <0x388 0x14>;
98*5f62a964SEmmanuel Vadot        #address-cells = <1>;
99*5f62a964SEmmanuel Vadot        #size-cells = <0>;
100*5f62a964SEmmanuel Vadot
101*5f62a964SEmmanuel Vadot        i2c@7 {
102*5f62a964SEmmanuel Vadot          reg = <7>;
103*5f62a964SEmmanuel Vadot          #address-cells = <1>;
104*5f62a964SEmmanuel Vadot          #size-cells = <0>;
105*5f62a964SEmmanuel Vadot          gpio@20 {
106*5f62a964SEmmanuel Vadot            compatible = "nxp,pca9555";
107*5f62a964SEmmanuel Vadot            gpio-controller;
108*5f62a964SEmmanuel Vadot            #gpio-cells = <2>;
109*5f62a964SEmmanuel Vadot            reg = <0x20>;
110*5f62a964SEmmanuel Vadot          };
111*5f62a964SEmmanuel Vadot        };
112*5f62a964SEmmanuel Vadot      };
113*5f62a964SEmmanuel Vadot    };
114*5f62a964SEmmanuel Vadot
115