1*4882a593Smuzhiyun===================================================================== 2*4882a593SmuzhiyunSEC 4 Device Tree Binding 3*4882a593SmuzhiyunCopyright (C) 2008-2011 Freescale Semiconductor Inc. 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun CONTENTS 6*4882a593Smuzhiyun -Overview 7*4882a593Smuzhiyun -SEC 4 Node 8*4882a593Smuzhiyun -Job Ring Node 9*4882a593Smuzhiyun -Run Time Integrity Check (RTIC) Node 10*4882a593Smuzhiyun -Run Time Integrity Check (RTIC) Memory Node 11*4882a593Smuzhiyun -Secure Non-Volatile Storage (SNVS) Node 12*4882a593Smuzhiyun -Secure Non-Volatile Storage (SNVS) Low Power (LP) RTC Node 13*4882a593Smuzhiyun -Full Example 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunNOTE: the SEC 4 is also known as Freescale's Cryptographic Accelerator 16*4882a593SmuzhiyunAccelerator and Assurance Module (CAAM). 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun===================================================================== 19*4882a593SmuzhiyunOverview 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunDESCRIPTION 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunSEC 4 h/w can process requests from 2 types of sources. 24*4882a593Smuzhiyun1. DPAA Queue Interface (HW interface between Queue Manager & SEC 4). 25*4882a593Smuzhiyun2. Job Rings (HW interface between cores & SEC 4 registers). 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunHigh Speed Data Path Configuration: 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunHW interface between QM & SEC 4 and also BM & SEC 4, on DPAA-enabled parts 30*4882a593Smuzhiyunsuch as the P4080. The number of simultaneous dequeues the QI can make is 31*4882a593Smuzhiyunequal to the number of Descriptor Controller (DECO) engines in a particular 32*4882a593SmuzhiyunSEC version. E.g., the SEC 4.0 in the P4080 has 5 DECOs and can thus 33*4882a593Smuzhiyundequeue from 5 subportals simultaneously. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunJob Ring Data Path Configuration: 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunEach JR is located on a separate 4k page, they may (or may not) be made visible 38*4882a593Smuzhiyunin the memory partition devoted to a particular core. The P4080 has 4 JRs, so 39*4882a593Smuzhiyunup to 4 JRs can be configured; and all 4 JRs process requests in parallel. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun===================================================================== 42*4882a593SmuzhiyunSEC 4 Node 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunDescription 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun Node defines the base address of the SEC 4 block. 47*4882a593Smuzhiyun This block specifies the address range of all global 48*4882a593Smuzhiyun configuration registers for the SEC 4 block. It 49*4882a593Smuzhiyun also receives interrupts from the Run Time Integrity Check 50*4882a593Smuzhiyun (RTIC) function within the SEC 4 block. 51*4882a593Smuzhiyun 52*4882a593SmuzhiyunPROPERTIES 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun - compatible 55*4882a593Smuzhiyun Usage: required 56*4882a593Smuzhiyun Value type: <string> 57*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0" 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun - fsl,sec-era 60*4882a593Smuzhiyun Usage: optional 61*4882a593Smuzhiyun Value type: <u32> 62*4882a593Smuzhiyun Definition: A standard property. Define the 'ERA' of the SEC 63*4882a593Smuzhiyun device. 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun - #address-cells 66*4882a593Smuzhiyun Usage: required 67*4882a593Smuzhiyun Value type: <u32> 68*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 69*4882a593Smuzhiyun for representing physical addresses in child nodes. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun - #size-cells 72*4882a593Smuzhiyun Usage: required 73*4882a593Smuzhiyun Value type: <u32> 74*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 75*4882a593Smuzhiyun for representing the size of physical addresses in 76*4882a593Smuzhiyun child nodes. 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun - reg 79*4882a593Smuzhiyun Usage: required 80*4882a593Smuzhiyun Value type: <prop-encoded-array> 81*4882a593Smuzhiyun Definition: A standard property. Specifies the physical 82*4882a593Smuzhiyun address and length of the SEC4 configuration registers. 83*4882a593Smuzhiyun registers 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun - ranges 86*4882a593Smuzhiyun Usage: required 87*4882a593Smuzhiyun Value type: <prop-encoded-array> 88*4882a593Smuzhiyun Definition: A standard property. Specifies the physical address 89*4882a593Smuzhiyun range of the SEC 4.0 register space (-SNVS not included). A 90*4882a593Smuzhiyun triplet that includes the child address, parent address, & 91*4882a593Smuzhiyun length. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun - interrupts 94*4882a593Smuzhiyun Usage: required 95*4882a593Smuzhiyun Value type: <prop_encoded-array> 96*4882a593Smuzhiyun Definition: Specifies the interrupts generated by this 97*4882a593Smuzhiyun device. The value of the interrupts property 98*4882a593Smuzhiyun consists of one interrupt specifier. The format 99*4882a593Smuzhiyun of the specifier is defined by the binding document 100*4882a593Smuzhiyun describing the node's interrupt parent. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun - clocks 103*4882a593Smuzhiyun Usage: required if SEC 4.0 requires explicit enablement of clocks 104*4882a593Smuzhiyun Value type: <prop_encoded-array> 105*4882a593Smuzhiyun Definition: A list of phandle and clock specifier pairs describing 106*4882a593Smuzhiyun the clocks required for enabling and disabling SEC 4.0. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun - clock-names 109*4882a593Smuzhiyun Usage: required if SEC 4.0 requires explicit enablement of clocks 110*4882a593Smuzhiyun Value type: <string> 111*4882a593Smuzhiyun Definition: A list of clock name strings in the same order as the 112*4882a593Smuzhiyun clocks property. 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun Note: All other standard properties (see the Devicetree Specification) 115*4882a593Smuzhiyun are allowed but are optional. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun 118*4882a593SmuzhiyunEXAMPLE 119*4882a593Smuzhiyun 120*4882a593SmuzhiyuniMX6QDL/SX requires four clocks 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun crypto@300000 { 123*4882a593Smuzhiyun compatible = "fsl,sec-v4.0"; 124*4882a593Smuzhiyun fsl,sec-era = <2>; 125*4882a593Smuzhiyun #address-cells = <1>; 126*4882a593Smuzhiyun #size-cells = <1>; 127*4882a593Smuzhiyun reg = <0x300000 0x10000>; 128*4882a593Smuzhiyun ranges = <0 0x300000 0x10000>; 129*4882a593Smuzhiyun interrupt-parent = <&mpic>; 130*4882a593Smuzhiyun interrupts = <92 2>; 131*4882a593Smuzhiyun clocks = <&clks IMX6QDL_CLK_CAAM_MEM>, 132*4882a593Smuzhiyun <&clks IMX6QDL_CLK_CAAM_ACLK>, 133*4882a593Smuzhiyun <&clks IMX6QDL_CLK_CAAM_IPG>, 134*4882a593Smuzhiyun <&clks IMX6QDL_CLK_EIM_SLOW>; 135*4882a593Smuzhiyun clock-names = "mem", "aclk", "ipg", "emi_slow"; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun 139*4882a593SmuzhiyuniMX6UL does only require three clocks 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun crypto: crypto@2140000 { 142*4882a593Smuzhiyun compatible = "fsl,sec-v4.0"; 143*4882a593Smuzhiyun #address-cells = <1>; 144*4882a593Smuzhiyun #size-cells = <1>; 145*4882a593Smuzhiyun reg = <0x2140000 0x3c000>; 146*4882a593Smuzhiyun ranges = <0 0x2140000 0x3c000>; 147*4882a593Smuzhiyun interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun clocks = <&clks IMX6UL_CLK_CAAM_MEM>, 150*4882a593Smuzhiyun <&clks IMX6UL_CLK_CAAM_ACLK>, 151*4882a593Smuzhiyun <&clks IMX6UL_CLK_CAAM_IPG>; 152*4882a593Smuzhiyun clock-names = "mem", "aclk", "ipg"; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun===================================================================== 156*4882a593SmuzhiyunJob Ring (JR) Node 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun Child of the crypto node defines data processing interface to SEC 4 159*4882a593Smuzhiyun across the peripheral bus for purposes of processing 160*4882a593Smuzhiyun cryptographic descriptors. The specified address 161*4882a593Smuzhiyun range can be made visible to one (or more) cores. 162*4882a593Smuzhiyun The interrupt defined for this node is controlled within 163*4882a593Smuzhiyun the address range of this node. 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun - compatible 166*4882a593Smuzhiyun Usage: required 167*4882a593Smuzhiyun Value type: <string> 168*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0-job-ring" 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun - reg 171*4882a593Smuzhiyun Usage: required 172*4882a593Smuzhiyun Value type: <prop-encoded-array> 173*4882a593Smuzhiyun Definition: Specifies a two JR parameters: an offset from 174*4882a593Smuzhiyun the parent physical address and the length the JR registers. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun - fsl,liodn 177*4882a593Smuzhiyun Usage: optional-but-recommended 178*4882a593Smuzhiyun Value type: <prop-encoded-array> 179*4882a593Smuzhiyun Definition: 180*4882a593Smuzhiyun Specifies the LIODN to be used in conjunction with 181*4882a593Smuzhiyun the ppid-to-liodn table that specifies the PPID to LIODN mapping. 182*4882a593Smuzhiyun Needed if the PAMU is used. Value is a 12 bit value 183*4882a593Smuzhiyun where value is a LIODN ID for this JR. This property is 184*4882a593Smuzhiyun normally set by boot firmware. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun - interrupts 187*4882a593Smuzhiyun Usage: required 188*4882a593Smuzhiyun Value type: <prop_encoded-array> 189*4882a593Smuzhiyun Definition: Specifies the interrupts generated by this 190*4882a593Smuzhiyun device. The value of the interrupts property 191*4882a593Smuzhiyun consists of one interrupt specifier. The format 192*4882a593Smuzhiyun of the specifier is defined by the binding document 193*4882a593Smuzhiyun describing the node's interrupt parent. 194*4882a593Smuzhiyun 195*4882a593SmuzhiyunEXAMPLE 196*4882a593Smuzhiyun jr@1000 { 197*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 198*4882a593Smuzhiyun reg = <0x1000 0x1000>; 199*4882a593Smuzhiyun fsl,liodn = <0x081>; 200*4882a593Smuzhiyun interrupt-parent = <&mpic>; 201*4882a593Smuzhiyun interrupts = <88 2>; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun===================================================================== 206*4882a593SmuzhiyunRun Time Integrity Check (RTIC) Node 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun Child node of the crypto node. Defines a register space that 209*4882a593Smuzhiyun contains up to 5 sets of addresses and their lengths (sizes) that 210*4882a593Smuzhiyun will be checked at run time. After an initial hash result is 211*4882a593Smuzhiyun calculated, these addresses are checked by HW to monitor any 212*4882a593Smuzhiyun change. If any memory is modified, a Security Violation is 213*4882a593Smuzhiyun triggered (see SNVS definition). 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun - compatible 217*4882a593Smuzhiyun Usage: required 218*4882a593Smuzhiyun Value type: <string> 219*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0-rtic". 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun - #address-cells 222*4882a593Smuzhiyun Usage: required 223*4882a593Smuzhiyun Value type: <u32> 224*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 225*4882a593Smuzhiyun for representing physical addresses in child nodes. Must 226*4882a593Smuzhiyun have a value of 1. 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun - #size-cells 229*4882a593Smuzhiyun Usage: required 230*4882a593Smuzhiyun Value type: <u32> 231*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 232*4882a593Smuzhiyun for representing the size of physical addresses in 233*4882a593Smuzhiyun child nodes. Must have a value of 1. 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun - reg 236*4882a593Smuzhiyun Usage: required 237*4882a593Smuzhiyun Value type: <prop-encoded-array> 238*4882a593Smuzhiyun Definition: A standard property. Specifies a two parameters: 239*4882a593Smuzhiyun an offset from the parent physical address and the length 240*4882a593Smuzhiyun the SEC4 registers. 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun - ranges 243*4882a593Smuzhiyun Usage: required 244*4882a593Smuzhiyun Value type: <prop-encoded-array> 245*4882a593Smuzhiyun Definition: A standard property. Specifies the physical address 246*4882a593Smuzhiyun range of the SEC 4 register space (-SNVS not included). A 247*4882a593Smuzhiyun triplet that includes the child address, parent address, & 248*4882a593Smuzhiyun length. 249*4882a593Smuzhiyun 250*4882a593SmuzhiyunEXAMPLE 251*4882a593Smuzhiyun rtic@6000 { 252*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic"; 253*4882a593Smuzhiyun #address-cells = <1>; 254*4882a593Smuzhiyun #size-cells = <1>; 255*4882a593Smuzhiyun reg = <0x6000 0x100>; 256*4882a593Smuzhiyun ranges = <0x0 0x6100 0xe00>; 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun===================================================================== 260*4882a593SmuzhiyunRun Time Integrity Check (RTIC) Memory Node 261*4882a593Smuzhiyun A child node that defines individual RTIC memory regions that are used to 262*4882a593Smuzhiyun perform run-time integrity check of memory areas that should not modified. 263*4882a593Smuzhiyun The node defines a register that contains the memory address & 264*4882a593Smuzhiyun length (combined) and a second register that contains the hash result 265*4882a593Smuzhiyun in big endian format. 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun - compatible 268*4882a593Smuzhiyun Usage: required 269*4882a593Smuzhiyun Value type: <string> 270*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0-rtic-memory". 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun - reg 273*4882a593Smuzhiyun Usage: required 274*4882a593Smuzhiyun Value type: <prop-encoded-array> 275*4882a593Smuzhiyun Definition: A standard property. Specifies two parameters: 276*4882a593Smuzhiyun an offset from the parent physical address and the length: 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun 1. The location of the RTIC memory address & length registers. 279*4882a593Smuzhiyun 2. The location RTIC hash result. 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun - fsl,rtic-region 282*4882a593Smuzhiyun Usage: optional-but-recommended 283*4882a593Smuzhiyun Value type: <prop-encoded-array> 284*4882a593Smuzhiyun Definition: 285*4882a593Smuzhiyun Specifies the HW address (36 bit address) for this region 286*4882a593Smuzhiyun followed by the length of the HW partition to be checked; 287*4882a593Smuzhiyun the address is represented as a 64 bit quantity followed 288*4882a593Smuzhiyun by a 32 bit length. 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun - fsl,liodn 291*4882a593Smuzhiyun Usage: optional-but-recommended 292*4882a593Smuzhiyun Value type: <prop-encoded-array> 293*4882a593Smuzhiyun Definition: 294*4882a593Smuzhiyun Specifies the LIODN to be used in conjunction with 295*4882a593Smuzhiyun the ppid-to-liodn table that specifies the PPID to LIODN 296*4882a593Smuzhiyun mapping. Needed if the PAMU is used. Value is a 12 bit value 297*4882a593Smuzhiyun where value is a LIODN ID for this RTIC memory region. This 298*4882a593Smuzhiyun property is normally set by boot firmware. 299*4882a593Smuzhiyun 300*4882a593SmuzhiyunEXAMPLE 301*4882a593Smuzhiyun rtic-a@0 { 302*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic-memory"; 303*4882a593Smuzhiyun reg = <0x00 0x20 0x100 0x80>; 304*4882a593Smuzhiyun fsl,liodn = <0x03c>; 305*4882a593Smuzhiyun fsl,rtic-region = <0x12345678 0x12345678 0x12345678>; 306*4882a593Smuzhiyun }; 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun===================================================================== 309*4882a593SmuzhiyunSecure Non-Volatile Storage (SNVS) Node 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun Node defines address range and the associated 312*4882a593Smuzhiyun interrupt for the SNVS function. This function 313*4882a593Smuzhiyun monitors security state information & reports 314*4882a593Smuzhiyun security violations. This also included rtc, 315*4882a593Smuzhiyun system power off and ON/OFF key. 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun - compatible 318*4882a593Smuzhiyun Usage: required 319*4882a593Smuzhiyun Value type: <string> 320*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0-mon" and "syscon". 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun - reg 323*4882a593Smuzhiyun Usage: required 324*4882a593Smuzhiyun Value type: <prop-encoded-array> 325*4882a593Smuzhiyun Definition: A standard property. Specifies the physical 326*4882a593Smuzhiyun address and length of the SEC4 configuration 327*4882a593Smuzhiyun registers. 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun - #address-cells 330*4882a593Smuzhiyun Usage: required 331*4882a593Smuzhiyun Value type: <u32> 332*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 333*4882a593Smuzhiyun for representing physical addresses in child nodes. Must 334*4882a593Smuzhiyun have a value of 1. 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun - #size-cells 337*4882a593Smuzhiyun Usage: required 338*4882a593Smuzhiyun Value type: <u32> 339*4882a593Smuzhiyun Definition: A standard property. Defines the number of cells 340*4882a593Smuzhiyun for representing the size of physical addresses in 341*4882a593Smuzhiyun child nodes. Must have a value of 1. 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun - ranges 344*4882a593Smuzhiyun Usage: required 345*4882a593Smuzhiyun Value type: <prop-encoded-array> 346*4882a593Smuzhiyun Definition: A standard property. Specifies the physical address 347*4882a593Smuzhiyun range of the SNVS register space. A triplet that includes 348*4882a593Smuzhiyun the child address, parent address, & length. 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun - interrupts 351*4882a593Smuzhiyun Usage: optional 352*4882a593Smuzhiyun Value type: <prop_encoded-array> 353*4882a593Smuzhiyun Definition: Specifies the interrupts generated by this 354*4882a593Smuzhiyun device. The value of the interrupts property 355*4882a593Smuzhiyun consists of one interrupt specifier. The format 356*4882a593Smuzhiyun of the specifier is defined by the binding document 357*4882a593Smuzhiyun describing the node's interrupt parent. 358*4882a593Smuzhiyun 359*4882a593SmuzhiyunEXAMPLE 360*4882a593Smuzhiyun sec_mon@314000 { 361*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon", "syscon"; 362*4882a593Smuzhiyun reg = <0x314000 0x1000>; 363*4882a593Smuzhiyun ranges = <0 0x314000 0x1000>; 364*4882a593Smuzhiyun interrupt-parent = <&mpic>; 365*4882a593Smuzhiyun interrupts = <93 2>; 366*4882a593Smuzhiyun }; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun===================================================================== 369*4882a593SmuzhiyunSecure Non-Volatile Storage (SNVS) Low Power (LP) RTC Node 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun A SNVS child node that defines SNVS LP RTC. 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun - compatible 374*4882a593Smuzhiyun Usage: required 375*4882a593Smuzhiyun Value type: <string> 376*4882a593Smuzhiyun Definition: Must include "fsl,sec-v4.0-mon-rtc-lp". 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun - interrupts 379*4882a593Smuzhiyun Usage: required 380*4882a593Smuzhiyun Value type: <prop_encoded-array> 381*4882a593Smuzhiyun Definition: Specifies the interrupts generated by this 382*4882a593Smuzhiyun device. The value of the interrupts property 383*4882a593Smuzhiyun consists of one interrupt specifier. The format 384*4882a593Smuzhiyun of the specifier is defined by the binding document 385*4882a593Smuzhiyun describing the node's interrupt parent. 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun - regmap 388*4882a593Smuzhiyun Usage: required 389*4882a593Smuzhiyun Value type: <phandle> 390*4882a593Smuzhiyun Definition: this is phandle to the register map node. 391*4882a593Smuzhiyun 392*4882a593Smuzhiyun - offset 393*4882a593Smuzhiyun Usage: option 394*4882a593Smuzhiyun value type: <u32> 395*4882a593Smuzhiyun Definition: LP register offset. default it is 0x34. 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun - clocks 398*4882a593Smuzhiyun Usage: optional, required if SNVS LP RTC requires explicit 399*4882a593Smuzhiyun enablement of clocks 400*4882a593Smuzhiyun Value type: <prop_encoded-array> 401*4882a593Smuzhiyun Definition: a clock specifier describing the clock required for 402*4882a593Smuzhiyun enabling and disabling SNVS LP RTC. 403*4882a593Smuzhiyun 404*4882a593Smuzhiyun - clock-names 405*4882a593Smuzhiyun Usage: optional, required if SNVS LP RTC requires explicit 406*4882a593Smuzhiyun enablement of clocks 407*4882a593Smuzhiyun Value type: <string> 408*4882a593Smuzhiyun Definition: clock name string should be "snvs-rtc". 409*4882a593Smuzhiyun 410*4882a593SmuzhiyunEXAMPLE 411*4882a593Smuzhiyun sec_mon_rtc_lp@1 { 412*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon-rtc-lp"; 413*4882a593Smuzhiyun interrupts = <93 2>; 414*4882a593Smuzhiyun regmap = <&snvs>; 415*4882a593Smuzhiyun offset = <0x34>; 416*4882a593Smuzhiyun clocks = <&clks IMX7D_SNVS_CLK>; 417*4882a593Smuzhiyun clock-names = "snvs-rtc"; 418*4882a593Smuzhiyun }; 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun===================================================================== 421*4882a593SmuzhiyunSystem ON/OFF key driver 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun The snvs-pwrkey is designed to enable POWER key function which controlled 424*4882a593Smuzhiyun by SNVS ONOFF, the driver can report the status of POWER key and wakeup 425*4882a593Smuzhiyun system if pressed after system suspend. 426*4882a593Smuzhiyun 427*4882a593Smuzhiyun - compatible: 428*4882a593Smuzhiyun Usage: required 429*4882a593Smuzhiyun Value type: <string> 430*4882a593Smuzhiyun Definition: Mush include "fsl,sec-v4.0-pwrkey". 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun - interrupts: 433*4882a593Smuzhiyun Usage: required 434*4882a593Smuzhiyun Value type: <prop_encoded-array> 435*4882a593Smuzhiyun Definition: The SNVS ON/OFF interrupt number to the CPU(s). 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun - linux,keycode: 438*4882a593Smuzhiyun Usage: option 439*4882a593Smuzhiyun Value type: <int> 440*4882a593Smuzhiyun Definition: Keycode to emit, KEY_POWER by default. 441*4882a593Smuzhiyun 442*4882a593Smuzhiyun - wakeup-source: 443*4882a593Smuzhiyun Usage: option 444*4882a593Smuzhiyun Value type: <boo> 445*4882a593Smuzhiyun Definition: Button can wake-up the system. 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun - regmap: 448*4882a593Smuzhiyun Usage: required: 449*4882a593Smuzhiyun Value type: <phandle> 450*4882a593Smuzhiyun Definition: this is phandle to the register map node. 451*4882a593Smuzhiyun 452*4882a593SmuzhiyunEXAMPLE: 453*4882a593Smuzhiyun snvs-pwrkey@020cc000 { 454*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-pwrkey"; 455*4882a593Smuzhiyun regmap = <&snvs>; 456*4882a593Smuzhiyun interrupts = <0 4 0x4> 457*4882a593Smuzhiyun linux,keycode = <116>; /* KEY_POWER */ 458*4882a593Smuzhiyun wakeup-source; 459*4882a593Smuzhiyun }; 460*4882a593Smuzhiyun 461*4882a593Smuzhiyun===================================================================== 462*4882a593SmuzhiyunFULL EXAMPLE 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun crypto: crypto@300000 { 465*4882a593Smuzhiyun compatible = "fsl,sec-v4.0"; 466*4882a593Smuzhiyun #address-cells = <1>; 467*4882a593Smuzhiyun #size-cells = <1>; 468*4882a593Smuzhiyun reg = <0x300000 0x10000>; 469*4882a593Smuzhiyun ranges = <0 0x300000 0x10000>; 470*4882a593Smuzhiyun interrupt-parent = <&mpic>; 471*4882a593Smuzhiyun interrupts = <92 2>; 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun sec_jr0: jr@1000 { 474*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 475*4882a593Smuzhiyun reg = <0x1000 0x1000>; 476*4882a593Smuzhiyun interrupt-parent = <&mpic>; 477*4882a593Smuzhiyun interrupts = <88 2>; 478*4882a593Smuzhiyun }; 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun sec_jr1: jr@2000 { 481*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 482*4882a593Smuzhiyun reg = <0x2000 0x1000>; 483*4882a593Smuzhiyun interrupt-parent = <&mpic>; 484*4882a593Smuzhiyun interrupts = <89 2>; 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun sec_jr2: jr@3000 { 488*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 489*4882a593Smuzhiyun reg = <0x3000 0x1000>; 490*4882a593Smuzhiyun interrupt-parent = <&mpic>; 491*4882a593Smuzhiyun interrupts = <90 2>; 492*4882a593Smuzhiyun }; 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun sec_jr3: jr@4000 { 495*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-job-ring"; 496*4882a593Smuzhiyun reg = <0x4000 0x1000>; 497*4882a593Smuzhiyun interrupt-parent = <&mpic>; 498*4882a593Smuzhiyun interrupts = <91 2>; 499*4882a593Smuzhiyun }; 500*4882a593Smuzhiyun 501*4882a593Smuzhiyun rtic@6000 { 502*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic"; 503*4882a593Smuzhiyun #address-cells = <1>; 504*4882a593Smuzhiyun #size-cells = <1>; 505*4882a593Smuzhiyun reg = <0x6000 0x100>; 506*4882a593Smuzhiyun ranges = <0x0 0x6100 0xe00>; 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun rtic_a: rtic-a@0 { 509*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic-memory"; 510*4882a593Smuzhiyun reg = <0x00 0x20 0x100 0x80>; 511*4882a593Smuzhiyun }; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun rtic_b: rtic-b@20 { 514*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic-memory"; 515*4882a593Smuzhiyun reg = <0x20 0x20 0x200 0x80>; 516*4882a593Smuzhiyun }; 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun rtic_c: rtic-c@40 { 519*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic-memory"; 520*4882a593Smuzhiyun reg = <0x40 0x20 0x300 0x80>; 521*4882a593Smuzhiyun }; 522*4882a593Smuzhiyun 523*4882a593Smuzhiyun rtic_d: rtic-d@60 { 524*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-rtic-memory"; 525*4882a593Smuzhiyun reg = <0x60 0x20 0x500 0x80>; 526*4882a593Smuzhiyun }; 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun sec_mon: sec_mon@314000 { 531*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon"; 532*4882a593Smuzhiyun reg = <0x314000 0x1000>; 533*4882a593Smuzhiyun ranges = <0 0x314000 0x1000>; 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun sec_mon_rtc_lp@34 { 536*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-mon-rtc-lp"; 537*4882a593Smuzhiyun regmap = <&sec_mon>; 538*4882a593Smuzhiyun offset = <0x34>; 539*4882a593Smuzhiyun interrupts = <93 2>; 540*4882a593Smuzhiyun clocks = <&clks IMX7D_SNVS_CLK>; 541*4882a593Smuzhiyun clock-names = "snvs-rtc"; 542*4882a593Smuzhiyun }; 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun snvs-pwrkey@020cc000 { 545*4882a593Smuzhiyun compatible = "fsl,sec-v4.0-pwrkey"; 546*4882a593Smuzhiyun regmap = <&sec_mon>; 547*4882a593Smuzhiyun interrupts = <0 4 0x4>; 548*4882a593Smuzhiyun linux,keycode = <116>; /* KEY_POWER */ 549*4882a593Smuzhiyun wakeup-source; 550*4882a593Smuzhiyun }; 551*4882a593Smuzhiyun }; 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun===================================================================== 554