xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/delta,tn48m-cpld.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c9ccf3a3SEmmanuel Vadot%YAML 1.2
3*c9ccf3a3SEmmanuel Vadot---
4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/delta,tn48m-cpld.yaml#
5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9ccf3a3SEmmanuel Vadot
7*c9ccf3a3SEmmanuel Vadottitle: Delta Networks TN48M CPLD controller
8*c9ccf3a3SEmmanuel Vadot
9*c9ccf3a3SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Robert Marko <robert.marko@sartura.hr>
11*c9ccf3a3SEmmanuel Vadot
12*c9ccf3a3SEmmanuel Vadotdescription: |
13*c9ccf3a3SEmmanuel Vadot  Lattice CPLD onboard the TN48M switches is used for system
14*c9ccf3a3SEmmanuel Vadot  management.
15*c9ccf3a3SEmmanuel Vadot
16*c9ccf3a3SEmmanuel Vadot  It provides information about the hardware model, revision,
17*c9ccf3a3SEmmanuel Vadot  PSU status etc.
18*c9ccf3a3SEmmanuel Vadot
19*c9ccf3a3SEmmanuel Vadot  It is also being used as a GPIO expander and reset controller
20*c9ccf3a3SEmmanuel Vadot  for the switch MAC-s and other peripherals.
21*c9ccf3a3SEmmanuel Vadot
22*c9ccf3a3SEmmanuel Vadotproperties:
23*c9ccf3a3SEmmanuel Vadot  compatible:
24*c9ccf3a3SEmmanuel Vadot    const: delta,tn48m-cpld
25*c9ccf3a3SEmmanuel Vadot
26*c9ccf3a3SEmmanuel Vadot  reg:
27*c9ccf3a3SEmmanuel Vadot    description:
28*c9ccf3a3SEmmanuel Vadot      I2C device address.
29*c9ccf3a3SEmmanuel Vadot    maxItems: 1
30*c9ccf3a3SEmmanuel Vadot
31*c9ccf3a3SEmmanuel Vadot  "#address-cells":
32*c9ccf3a3SEmmanuel Vadot    const: 1
33*c9ccf3a3SEmmanuel Vadot
34*c9ccf3a3SEmmanuel Vadot  "#size-cells":
35*c9ccf3a3SEmmanuel Vadot    const: 0
36*c9ccf3a3SEmmanuel Vadot
37*c9ccf3a3SEmmanuel Vadotrequired:
38*c9ccf3a3SEmmanuel Vadot  - compatible
39*c9ccf3a3SEmmanuel Vadot  - reg
40*c9ccf3a3SEmmanuel Vadot  - "#address-cells"
41*c9ccf3a3SEmmanuel Vadot  - "#size-cells"
42*c9ccf3a3SEmmanuel Vadot
43*c9ccf3a3SEmmanuel VadotpatternProperties:
44*c9ccf3a3SEmmanuel Vadot  "^gpio(@[0-9a-f]+)?$":
45*c9ccf3a3SEmmanuel Vadot    $ref: ../gpio/delta,tn48m-gpio.yaml
46*c9ccf3a3SEmmanuel Vadot
47*c9ccf3a3SEmmanuel Vadot  "^reset-controller?$":
48*c9ccf3a3SEmmanuel Vadot    $ref: ../reset/delta,tn48m-reset.yaml
49*c9ccf3a3SEmmanuel Vadot
50*c9ccf3a3SEmmanuel VadotadditionalProperties: false
51*c9ccf3a3SEmmanuel Vadot
52*c9ccf3a3SEmmanuel Vadotexamples:
53*c9ccf3a3SEmmanuel Vadot  - |
54*c9ccf3a3SEmmanuel Vadot    i2c {
55*c9ccf3a3SEmmanuel Vadot        #address-cells = <1>;
56*c9ccf3a3SEmmanuel Vadot        #size-cells = <0>;
57*c9ccf3a3SEmmanuel Vadot
58*c9ccf3a3SEmmanuel Vadot        cpld@41 {
59*c9ccf3a3SEmmanuel Vadot            compatible = "delta,tn48m-cpld";
60*c9ccf3a3SEmmanuel Vadot            reg = <0x41>;
61*c9ccf3a3SEmmanuel Vadot            #address-cells = <1>;
62*c9ccf3a3SEmmanuel Vadot            #size-cells = <0>;
63*c9ccf3a3SEmmanuel Vadot
64*c9ccf3a3SEmmanuel Vadot            gpio@31 {
65*c9ccf3a3SEmmanuel Vadot                compatible = "delta,tn48m-gpo";
66*c9ccf3a3SEmmanuel Vadot                reg = <0x31>;
67*c9ccf3a3SEmmanuel Vadot                gpio-controller;
68*c9ccf3a3SEmmanuel Vadot                #gpio-cells = <2>;
69*c9ccf3a3SEmmanuel Vadot            };
70*c9ccf3a3SEmmanuel Vadot
71*c9ccf3a3SEmmanuel Vadot            gpio@3a {
72*c9ccf3a3SEmmanuel Vadot                compatible = "delta,tn48m-gpi";
73*c9ccf3a3SEmmanuel Vadot                reg = <0x3a>;
74*c9ccf3a3SEmmanuel Vadot                gpio-controller;
75*c9ccf3a3SEmmanuel Vadot                #gpio-cells = <2>;
76*c9ccf3a3SEmmanuel Vadot            };
77*c9ccf3a3SEmmanuel Vadot
78*c9ccf3a3SEmmanuel Vadot            gpio@40 {
79*c9ccf3a3SEmmanuel Vadot                compatible = "delta,tn48m-gpi";
80*c9ccf3a3SEmmanuel Vadot                reg = <0x40>;
81*c9ccf3a3SEmmanuel Vadot                gpio-controller;
82*c9ccf3a3SEmmanuel Vadot                #gpio-cells = <2>;
83*c9ccf3a3SEmmanuel Vadot            };
84*c9ccf3a3SEmmanuel Vadot
85*c9ccf3a3SEmmanuel Vadot            reset-controller {
86*c9ccf3a3SEmmanuel Vadot              compatible = "delta,tn48m-reset";
87*c9ccf3a3SEmmanuel Vadot              #reset-cells = <1>;
88*c9ccf3a3SEmmanuel Vadot            };
89*c9ccf3a3SEmmanuel Vadot        };
90*c9ccf3a3SEmmanuel Vadot    };
91