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