arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / crypto / fsl,sec-v4.0-mon.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 # Copyright (C) 2008-2011 Freescale Semiconductor Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/crypto/fsl,sec-v4.0-mon.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Freescale Secure Non-Volatile Storage (SNVS)
9
10 maintainers:
11   - '"Horia Geantă" <horia.geanta@nxp.com>'
12   - Pankaj Gupta <pankaj.gupta@nxp.com>
13   - Gaurav Jain <gaurav.jain@nxp.com>
14
15 description:
16   Node defines address range and the associated interrupt for the SNVS function.
17   This function monitors security state information & reports security
18   violations. This also included rtc, system power off and ON/OFF key.
19
20 properties:
21   compatible:
22     oneOf:
23       - items:
24           - const: fsl,sec-v4.0-mon
25           - const: syscon
26           - const: simple-mfd
27       - items:
28           - const: fsl,sec-v5.0-mon
29           - const: fsl,sec-v4.0-mon
30       - items:
31           - enum:
32               - fsl,sec-v5.3-mon
33               - fsl,sec-v5.4-mon
34           - const: fsl,sec-v5.0-mon
35           - const: fsl,sec-v4.0-mon
36
37   reg:
38     maxItems: 1
39
40   interrupts:
41     maxItems: 2
42
43   snvs-rtc-lp:
44     type: object
45     additionalProperties: false
46     description:
47       Secure Non-Volatile Storage (SNVS) Low Power (LP) RTC Node
48
49     properties:
50       compatible:
51         const: fsl,sec-v4.0-mon-rtc-lp
52
53       clocks:
54         maxItems: 1
55
56       clock-names:
57         const: snvs-rtc
58
59       interrupts:
60         # VFxxx has only one. What is the 2nd one?
61         minItems: 1
62         maxItems: 2
63
64       regmap:
65         description: Parent node containing registers
66         $ref: /schemas/types.yaml#/definitions/phandle
67
68       offset:
69         description: LP register offset
70         $ref: /schemas/types.yaml#/definitions/uint32
71         default: 0x34
72
73     required:
74       - compatible
75       - interrupts
76       - regmap
77
78   snvs-powerkey:
79     type: object
80     additionalProperties: false
81     description:
82       The snvs-pwrkey is designed to enable POWER key function which controlled
83       by SNVS ONOFF, the driver can report the status of POWER key and wakeup
84       system if pressed after system suspend.
85
86     properties:
87       compatible:
88         const: fsl,sec-v4.0-pwrkey
89
90       clocks:
91         maxItems: 1
92
93       clock-names:
94         const: snvs-pwrkey
95
96       interrupts:
97         maxItems: 1
98
99       regmap:
100         description: Parent node containing registers
101         $ref: /schemas/types.yaml#/definitions/phandle
102
103       wakeup-source: true
104
105       linux,keycode:
106         $ref: /schemas/types.yaml#/definitions/uint32
107         default: 116
108         deprecated: true
109
110       linux,keycodes:
111         maxItems: 1
112         default: 116
113
114     required:
115       - compatible
116       - interrupts
117       - regmap
118
119   snvs-lpgpr:
120     $ref: /schemas/nvmem/snvs-lpgpr.yaml#
121
122   snvs-poweroff:
123     description:
124       The SNVS could drive signal to PMIC to turn off system power by setting
125       SNVS_LP LPCR register.
126     $ref: /schemas/power/reset/syscon-poweroff.yaml#
127
128 required:
129   - compatible
130   - reg
131
132 additionalProperties: false
133
134 examples:
135   - |
136     #include <dt-bindings/interrupt-controller/arm-gic.h>
137     #include <dt-bindings/clock/imx7d-clock.h>
138
139     sec_mon: sec-mon@314000 {
140         compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
141         reg = <0x314000 0x1000>;
142
143         snvs-rtc-lp {
144             compatible = "fsl,sec-v4.0-mon-rtc-lp";
145             regmap = <&sec_mon>;
146             offset = <0x34>;
147             clocks = <&clks IMX7D_SNVS_CLK>;
148             clock-names = "snvs-rtc";
149             interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
150                          <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
151         };
152
153         snvs-powerkey {
154             compatible = "fsl,sec-v4.0-pwrkey";
155             regmap = <&sec_mon>;
156             clocks = <&clks IMX7D_SNVS_CLK>;
157             clock-names = "snvs-pwrkey";
158             interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
159             linux,keycode = <116>; /* KEY_POWER */
160             wakeup-source;
161         };
162     };