Wakeup M3 IPC Driver 
 | 
===================== 
 | 
  
 | 
The TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor 
 | 
(commonly referred to as Wakeup M3 or CM3) to help with various low power tasks 
 | 
that cannot be controlled from the MPU, like suspend/resume and certain deep 
 | 
C-states for CPU Idle. Once the wkup_m3_ipc driver uses the wkup_m3_rproc driver 
 | 
to boot the wkup_m3, it handles communication with the CM3 using IPC registers 
 | 
present in the SoC's control module and a mailbox. The wkup_m3_ipc exposes an 
 | 
API to allow the SoC PM code to execute specific PM tasks. 
 | 
  
 | 
Wkup M3 Device Node: 
 | 
==================== 
 | 
A wkup_m3_ipc device node is used to represent the IPC registers within an 
 | 
SoC. 
 | 
  
 | 
Required properties: 
 | 
-------------------- 
 | 
- compatible:        Should be, 
 | 
                "ti,am3352-wkup-m3-ipc" for AM33xx SoCs 
 | 
                "ti,am4372-wkup-m3-ipc" for AM43xx SoCs 
 | 
- reg:            Contains the IPC register address space to communicate 
 | 
            with the Wakeup M3 processor 
 | 
- interrupts:        Contains the interrupt information for the wkup_m3 
 | 
            interrupt that signals the MPU. 
 | 
- ti,rproc:        phandle to the wkup_m3 rproc node so the IPC driver 
 | 
            can boot it. 
 | 
- mboxes:        phandles used by IPC framework to get correct mbox 
 | 
            channel for communication. Must point to appropriate 
 | 
            mbox_wkupm3 child node. 
 | 
  
 | 
Example: 
 | 
-------- 
 | 
/* AM33xx */ 
 | 
    l4_wkup: l4_wkup@44c00000 { 
 | 
        ... 
 | 
  
 | 
        scm: scm@210000 { 
 | 
            compatible = "ti,am3-scm", "simple-bus"; 
 | 
            reg = <0x210000 0x2000>; 
 | 
            #address-cells = <1>; 
 | 
            #size-cells = <1>; 
 | 
            ranges = <0 0x210000 0x2000>; 
 | 
  
 | 
            ... 
 | 
  
 | 
            wkup_m3_ipc: wkup_m3_ipc@1324 { 
 | 
                compatible = "ti,am3352-wkup-m3-ipc"; 
 | 
                reg = <0x1324 0x24>; 
 | 
                interrupts = <78>; 
 | 
                ti,rproc = <&wkup_m3>; 
 | 
                mboxes = <&mailbox &mbox_wkupm3>; 
 | 
            }; 
 | 
  
 | 
            ... 
 | 
        }; 
 | 
    }; 
 |