xref: /linux/Documentation/devicetree/bindings/crypto/fsl,sec-v4.0-mon.yaml (revision e78f70bad29c5ae1e1076698b690b15794e9b81e)
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
8title: Freescale Secure Non-Volatile Storage (SNVS)
9
10maintainers:
11  - '"Horia Geantă" <horia.geanta@nxp.com>'
12  - Pankaj Gupta <pankaj.gupta@nxp.com>
13  - Gaurav Jain <gaurav.jain@nxp.com>
14
15description:
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
20properties:
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    $ref: /schemas/input/input.yaml
87
88    properties:
89      compatible:
90        const: fsl,sec-v4.0-pwrkey
91
92      clocks:
93        maxItems: 1
94
95      clock-names:
96        const: snvs-pwrkey
97
98      interrupts:
99        maxItems: 1
100
101      regmap:
102        description: Parent node containing registers
103        $ref: /schemas/types.yaml#/definitions/phandle
104
105      wakeup-source: true
106
107      linux,keycode:
108        $ref: /schemas/types.yaml#/definitions/uint32
109        default: 116
110        deprecated: true
111
112      linux,keycodes:
113        maxItems: 1
114        default: 116
115
116      power-off-time-sec:
117        enum: [0, 5, 10, 15]
118
119    required:
120      - compatible
121      - interrupts
122      - regmap
123
124  snvs-lpgpr:
125    $ref: /schemas/nvmem/snvs-lpgpr.yaml#
126
127  snvs-poweroff:
128    description:
129      The SNVS could drive signal to PMIC to turn off system power by setting
130      SNVS_LP LPCR register.
131    $ref: /schemas/power/reset/syscon-poweroff.yaml#
132
133required:
134  - compatible
135  - reg
136
137additionalProperties: false
138
139examples:
140  - |
141    #include <dt-bindings/interrupt-controller/arm-gic.h>
142    #include <dt-bindings/clock/imx7d-clock.h>
143
144    sec_mon: sec-mon@314000 {
145        compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
146        reg = <0x314000 0x1000>;
147
148        snvs-rtc-lp {
149            compatible = "fsl,sec-v4.0-mon-rtc-lp";
150            regmap = <&sec_mon>;
151            offset = <0x34>;
152            clocks = <&clks IMX7D_SNVS_CLK>;
153            clock-names = "snvs-rtc";
154            interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
155                         <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
156        };
157
158        snvs-powerkey {
159            compatible = "fsl,sec-v4.0-pwrkey";
160            regmap = <&sec_mon>;
161            clocks = <&clks IMX7D_SNVS_CLK>;
162            clock-names = "snvs-pwrkey";
163            interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
164            linux,keycode = <116>; /* KEY_POWER */
165            wakeup-source;
166        };
167    };
168