10415d5a0SRob Herring# SPDX-License-Identifier: GPL-2.0
20415d5a0SRob Herring# Copyright (C) 2008-2011 Freescale Semiconductor Inc.
30415d5a0SRob Herring%YAML 1.2
40415d5a0SRob Herring---
50415d5a0SRob Herring$id: http://devicetree.org/schemas/crypto/fsl,sec-v4.0-mon.yaml#
60415d5a0SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
70415d5a0SRob Herring
80415d5a0SRob Herringtitle: Freescale Secure Non-Volatile Storage (SNVS)
90415d5a0SRob Herring
100415d5a0SRob Herringmaintainers:
110415d5a0SRob Herring  - '"Horia Geantă" <horia.geanta@nxp.com>'
120415d5a0SRob Herring  - Pankaj Gupta <pankaj.gupta@nxp.com>
130415d5a0SRob Herring  - Gaurav Jain <gaurav.jain@nxp.com>
140415d5a0SRob Herring
150415d5a0SRob Herringdescription:
160415d5a0SRob Herring  Node defines address range and the associated interrupt for the SNVS function.
170415d5a0SRob Herring  This function monitors security state information & reports security
180415d5a0SRob Herring  violations. This also included rtc, system power off and ON/OFF key.
190415d5a0SRob Herring
200415d5a0SRob Herringproperties:
210415d5a0SRob Herring  compatible:
220415d5a0SRob Herring    oneOf:
230415d5a0SRob Herring      - items:
240415d5a0SRob Herring          - const: fsl,sec-v4.0-mon
250415d5a0SRob Herring          - const: syscon
260415d5a0SRob Herring          - const: simple-mfd
270415d5a0SRob Herring      - items:
280415d5a0SRob Herring          - const: fsl,sec-v5.0-mon
290415d5a0SRob Herring          - const: fsl,sec-v4.0-mon
300415d5a0SRob Herring      - items:
310415d5a0SRob Herring          - enum:
320415d5a0SRob Herring              - fsl,sec-v5.3-mon
330415d5a0SRob Herring              - fsl,sec-v5.4-mon
340415d5a0SRob Herring          - const: fsl,sec-v5.0-mon
350415d5a0SRob Herring          - const: fsl,sec-v4.0-mon
360415d5a0SRob Herring
370415d5a0SRob Herring  reg:
380415d5a0SRob Herring    maxItems: 1
390415d5a0SRob Herring
400415d5a0SRob Herring  interrupts:
410415d5a0SRob Herring    maxItems: 2
420415d5a0SRob Herring
430415d5a0SRob Herring  snvs-rtc-lp:
440415d5a0SRob Herring    type: object
450415d5a0SRob Herring    additionalProperties: false
460415d5a0SRob Herring    description:
470415d5a0SRob Herring      Secure Non-Volatile Storage (SNVS) Low Power (LP) RTC Node
480415d5a0SRob Herring
490415d5a0SRob Herring    properties:
500415d5a0SRob Herring      compatible:
510415d5a0SRob Herring        const: fsl,sec-v4.0-mon-rtc-lp
520415d5a0SRob Herring
530415d5a0SRob Herring      clocks:
540415d5a0SRob Herring        maxItems: 1
550415d5a0SRob Herring
560415d5a0SRob Herring      clock-names:
570415d5a0SRob Herring        const: snvs-rtc
580415d5a0SRob Herring
590415d5a0SRob Herring      interrupts:
600415d5a0SRob Herring        # VFxxx has only one. What is the 2nd one?
610415d5a0SRob Herring        minItems: 1
620415d5a0SRob Herring        maxItems: 2
630415d5a0SRob Herring
640415d5a0SRob Herring      regmap:
650415d5a0SRob Herring        description: Parent node containing registers
660415d5a0SRob Herring        $ref: /schemas/types.yaml#/definitions/phandle
670415d5a0SRob Herring
680415d5a0SRob Herring      offset:
690415d5a0SRob Herring        description: LP register offset
700415d5a0SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
710415d5a0SRob Herring        default: 0x34
720415d5a0SRob Herring
730415d5a0SRob Herring    required:
740415d5a0SRob Herring      - compatible
750415d5a0SRob Herring      - interrupts
760415d5a0SRob Herring      - regmap
770415d5a0SRob Herring
780415d5a0SRob Herring  snvs-powerkey:
790415d5a0SRob Herring    type: object
800415d5a0SRob Herring    additionalProperties: false
810415d5a0SRob Herring    description:
820415d5a0SRob Herring      The snvs-pwrkey is designed to enable POWER key function which controlled
830415d5a0SRob Herring      by SNVS ONOFF, the driver can report the status of POWER key and wakeup
840415d5a0SRob Herring      system if pressed after system suspend.
850415d5a0SRob Herring
860415d5a0SRob Herring    properties:
870415d5a0SRob Herring      compatible:
880415d5a0SRob Herring        const: fsl,sec-v4.0-pwrkey
890415d5a0SRob Herring
900415d5a0SRob Herring      clocks:
910415d5a0SRob Herring        maxItems: 1
920415d5a0SRob Herring
930415d5a0SRob Herring      clock-names:
940415d5a0SRob Herring        const: snvs-pwrkey
950415d5a0SRob Herring
960415d5a0SRob Herring      interrupts:
970415d5a0SRob Herring        maxItems: 1
980415d5a0SRob Herring
990415d5a0SRob Herring      regmap:
1000415d5a0SRob Herring        description: Parent node containing registers
1010415d5a0SRob Herring        $ref: /schemas/types.yaml#/definitions/phandle
1020415d5a0SRob Herring
1030415d5a0SRob Herring      wakeup-source: true
1040415d5a0SRob Herring
1050415d5a0SRob Herring      linux,keycode:
106e7f4f656SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
1070415d5a0SRob Herring        default: 116
108*0778a2e9SRob Herring        deprecated: true
109*0778a2e9SRob Herring
110*0778a2e9SRob Herring      linux,keycodes:
111*0778a2e9SRob Herring        maxItems: 1
112*0778a2e9SRob Herring        default: 116
1130415d5a0SRob Herring
1140415d5a0SRob Herring    required:
1150415d5a0SRob Herring      - compatible
1160415d5a0SRob Herring      - interrupts
1170415d5a0SRob Herring      - regmap
1180415d5a0SRob Herring
1190415d5a0SRob Herring  snvs-lpgpr:
1200415d5a0SRob Herring    $ref: /schemas/nvmem/snvs-lpgpr.yaml#
1210415d5a0SRob Herring
122ef998fafSPeng Fan  snvs-poweroff:
123ef998fafSPeng Fan    description:
124ef998fafSPeng Fan      The SNVS could drive signal to PMIC to turn off system power by setting
125ef998fafSPeng Fan      SNVS_LP LPCR register.
126ef998fafSPeng Fan    $ref: /schemas/power/reset/syscon-poweroff.yaml#
127ef998fafSPeng Fan
1280415d5a0SRob Herringrequired:
1290415d5a0SRob Herring  - compatible
1300415d5a0SRob Herring  - reg
1310415d5a0SRob Herring
1320415d5a0SRob HerringadditionalProperties: false
1330415d5a0SRob Herring
1340415d5a0SRob Herringexamples:
1350415d5a0SRob Herring  - |
1360415d5a0SRob Herring    #include <dt-bindings/interrupt-controller/arm-gic.h>
1370415d5a0SRob Herring    #include <dt-bindings/clock/imx7d-clock.h>
1380415d5a0SRob Herring
1390415d5a0SRob Herring    sec_mon: sec-mon@314000 {
1400415d5a0SRob Herring        compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
1410415d5a0SRob Herring        reg = <0x314000 0x1000>;
1420415d5a0SRob Herring
1430415d5a0SRob Herring        snvs-rtc-lp {
1440415d5a0SRob Herring            compatible = "fsl,sec-v4.0-mon-rtc-lp";
1450415d5a0SRob Herring            regmap = <&sec_mon>;
1460415d5a0SRob Herring            offset = <0x34>;
1470415d5a0SRob Herring            clocks = <&clks IMX7D_SNVS_CLK>;
1480415d5a0SRob Herring            clock-names = "snvs-rtc";
1490415d5a0SRob Herring            interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
1500415d5a0SRob Herring                         <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
1510415d5a0SRob Herring        };
1520415d5a0SRob Herring
1530415d5a0SRob Herring        snvs-powerkey {
1540415d5a0SRob Herring            compatible = "fsl,sec-v4.0-pwrkey";
1550415d5a0SRob Herring            regmap = <&sec_mon>;
1560415d5a0SRob Herring            clocks = <&clks IMX7D_SNVS_CLK>;
1570415d5a0SRob Herring            clock-names = "snvs-pwrkey";
1580415d5a0SRob Herring            interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1590415d5a0SRob Herring            linux,keycode = <116>; /* KEY_POWER */
1600415d5a0SRob Herring            wakeup-source;
1610415d5a0SRob Herring        };
1620415d5a0SRob Herring    };
163