xref: /freebsd/sys/contrib/device-tree/Bindings/soc/imx/fsl,imx-anatop.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*01950c46SEmmanuel Vadot%YAML 1.2
3*01950c46SEmmanuel Vadot---
4*01950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/soc/imx/fsl,imx-anatop.yaml#
5*01950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*01950c46SEmmanuel Vadot
7*01950c46SEmmanuel Vadottitle: ANATOP register
8*01950c46SEmmanuel Vadot
9*01950c46SEmmanuel Vadotmaintainers:
10*01950c46SEmmanuel Vadot  - Shawn Guo <shawnguo@kernel.org>
11*01950c46SEmmanuel Vadot  - Sascha Hauer <s.hauer@pengutronix.de>
12*01950c46SEmmanuel Vadot
13*01950c46SEmmanuel Vadotproperties:
14*01950c46SEmmanuel Vadot  compatible:
15*01950c46SEmmanuel Vadot    oneOf:
16*01950c46SEmmanuel Vadot      - items:
17*01950c46SEmmanuel Vadot          - enum:
18*01950c46SEmmanuel Vadot              - fsl,imx6sl-anatop
19*01950c46SEmmanuel Vadot              - fsl,imx6sll-anatop
20*01950c46SEmmanuel Vadot              - fsl,imx6sx-anatop
21*01950c46SEmmanuel Vadot              - fsl,imx6ul-anatop
22*01950c46SEmmanuel Vadot              - fsl,imx7d-anatop
23*01950c46SEmmanuel Vadot          - const: fsl,imx6q-anatop
24*01950c46SEmmanuel Vadot          - const: syscon
25*01950c46SEmmanuel Vadot          - const: simple-mfd
26*01950c46SEmmanuel Vadot      - items:
27*01950c46SEmmanuel Vadot          - const: fsl,imx6q-anatop
28*01950c46SEmmanuel Vadot          - const: syscon
29*01950c46SEmmanuel Vadot          - const: simple-mfd
30*01950c46SEmmanuel Vadot
31*01950c46SEmmanuel Vadot  reg:
32*01950c46SEmmanuel Vadot    maxItems: 1
33*01950c46SEmmanuel Vadot
34*01950c46SEmmanuel Vadot  interrupts:
35*01950c46SEmmanuel Vadot    items:
36*01950c46SEmmanuel Vadot      - description: Temperature sensor event
37*01950c46SEmmanuel Vadot      - description: Brown-out event on either of the support regulators
38*01950c46SEmmanuel Vadot      - description: Brown-out event on either the core, gpu or soc regulators
39*01950c46SEmmanuel Vadot
40*01950c46SEmmanuel Vadot  tempmon:
41*01950c46SEmmanuel Vadot    type: object
42*01950c46SEmmanuel Vadot    unevaluatedProperties: false
43*01950c46SEmmanuel Vadot    $ref: /schemas/thermal/imx-thermal.yaml
44*01950c46SEmmanuel Vadot
45*01950c46SEmmanuel VadotpatternProperties:
46*01950c46SEmmanuel Vadot  "regulator-((1p1)|(2p5)|(3p0)|(vddcore)|(vddpu)|(vddsoc))$":
47*01950c46SEmmanuel Vadot    type: object
48*01950c46SEmmanuel Vadot    unevaluatedProperties: false
49*01950c46SEmmanuel Vadot    $ref: /schemas/regulator/anatop-regulator.yaml
50*01950c46SEmmanuel Vadot
51*01950c46SEmmanuel Vadotrequired:
52*01950c46SEmmanuel Vadot  - compatible
53*01950c46SEmmanuel Vadot  - reg
54*01950c46SEmmanuel Vadot
55*01950c46SEmmanuel VadotadditionalProperties: false
56*01950c46SEmmanuel Vadot
57*01950c46SEmmanuel Vadotexamples:
58*01950c46SEmmanuel Vadot  - |
59*01950c46SEmmanuel Vadot    #include <dt-bindings/clock/imx6ul-clock.h>
60*01950c46SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
61*01950c46SEmmanuel Vadot
62*01950c46SEmmanuel Vadot    anatop: anatop@20c8000 {
63*01950c46SEmmanuel Vadot        compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
64*01950c46SEmmanuel Vadot                     "syscon", "simple-mfd";
65*01950c46SEmmanuel Vadot        reg = <0x020c8000 0x1000>;
66*01950c46SEmmanuel Vadot        interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
67*01950c46SEmmanuel Vadot                     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
68*01950c46SEmmanuel Vadot                     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
69*01950c46SEmmanuel Vadot
70*01950c46SEmmanuel Vadot        reg_3p0: regulator-3p0 {
71*01950c46SEmmanuel Vadot            compatible = "fsl,anatop-regulator";
72*01950c46SEmmanuel Vadot            regulator-name = "vdd3p0";
73*01950c46SEmmanuel Vadot            regulator-min-microvolt = <2625000>;
74*01950c46SEmmanuel Vadot            regulator-max-microvolt = <3400000>;
75*01950c46SEmmanuel Vadot            anatop-reg-offset = <0x120>;
76*01950c46SEmmanuel Vadot            anatop-vol-bit-shift = <8>;
77*01950c46SEmmanuel Vadot            anatop-vol-bit-width = <5>;
78*01950c46SEmmanuel Vadot            anatop-min-bit-val = <0>;
79*01950c46SEmmanuel Vadot            anatop-min-voltage = <2625000>;
80*01950c46SEmmanuel Vadot            anatop-max-voltage = <3400000>;
81*01950c46SEmmanuel Vadot            anatop-enable-bit = <0>;
82*01950c46SEmmanuel Vadot        };
83*01950c46SEmmanuel Vadot
84*01950c46SEmmanuel Vadot        reg_arm: regulator-vddcore {
85*01950c46SEmmanuel Vadot            compatible = "fsl,anatop-regulator";
86*01950c46SEmmanuel Vadot            regulator-name = "cpu";
87*01950c46SEmmanuel Vadot            regulator-min-microvolt = <725000>;
88*01950c46SEmmanuel Vadot            regulator-max-microvolt = <1450000>;
89*01950c46SEmmanuel Vadot            regulator-always-on;
90*01950c46SEmmanuel Vadot            anatop-reg-offset = <0x140>;
91*01950c46SEmmanuel Vadot            anatop-vol-bit-shift = <0>;
92*01950c46SEmmanuel Vadot            anatop-vol-bit-width = <5>;
93*01950c46SEmmanuel Vadot            anatop-delay-reg-offset = <0x170>;
94*01950c46SEmmanuel Vadot            anatop-delay-bit-shift = <24>;
95*01950c46SEmmanuel Vadot            anatop-delay-bit-width = <2>;
96*01950c46SEmmanuel Vadot            anatop-min-bit-val = <1>;
97*01950c46SEmmanuel Vadot            anatop-min-voltage = <725000>;
98*01950c46SEmmanuel Vadot            anatop-max-voltage = <1450000>;
99*01950c46SEmmanuel Vadot        };
100*01950c46SEmmanuel Vadot
101*01950c46SEmmanuel Vadot        reg_soc: regulator-vddsoc {
102*01950c46SEmmanuel Vadot            compatible = "fsl,anatop-regulator";
103*01950c46SEmmanuel Vadot            regulator-name = "vddsoc";
104*01950c46SEmmanuel Vadot            regulator-min-microvolt = <725000>;
105*01950c46SEmmanuel Vadot            regulator-max-microvolt = <1450000>;
106*01950c46SEmmanuel Vadot            regulator-always-on;
107*01950c46SEmmanuel Vadot            anatop-reg-offset = <0x140>;
108*01950c46SEmmanuel Vadot            anatop-vol-bit-shift = <18>;
109*01950c46SEmmanuel Vadot            anatop-vol-bit-width = <5>;
110*01950c46SEmmanuel Vadot            anatop-delay-reg-offset = <0x170>;
111*01950c46SEmmanuel Vadot            anatop-delay-bit-shift = <28>;
112*01950c46SEmmanuel Vadot            anatop-delay-bit-width = <2>;
113*01950c46SEmmanuel Vadot            anatop-min-bit-val = <1>;
114*01950c46SEmmanuel Vadot            anatop-min-voltage = <725000>;
115*01950c46SEmmanuel Vadot            anatop-max-voltage = <1450000>;
116*01950c46SEmmanuel Vadot        };
117*01950c46SEmmanuel Vadot
118*01950c46SEmmanuel Vadot        tempmon: tempmon {
119*01950c46SEmmanuel Vadot            compatible = "fsl,imx6ul-tempmon", "fsl,imx6sx-tempmon";
120*01950c46SEmmanuel Vadot            interrupt-parent = <&gpc>;
121*01950c46SEmmanuel Vadot            interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
122*01950c46SEmmanuel Vadot            fsl,tempmon = <&anatop>;
123*01950c46SEmmanuel Vadot            nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
124*01950c46SEmmanuel Vadot            nvmem-cell-names = "calib", "temp_grade";
125*01950c46SEmmanuel Vadot            clocks = <&clks IMX6UL_CLK_PLL3_USB_OTG>;
126*01950c46SEmmanuel Vadot            #thermal-sensor-cells = <0>;
127*01950c46SEmmanuel Vadot        };
128*01950c46SEmmanuel Vadot    };
129