| 
     1 Wakeup M3 IPC Driver
    2 =====================
    3 
    4 The TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor
    5 (commonly referred to as Wakeup M3 or CM3) to help with various low power tasks
    6 that cannot be controlled from the MPU, like suspend/resume and certain deep
    7 C-states for CPU Idle. Once the wkup_m3_ipc driver uses the wkup_m3_rproc driver
    8 to boot the wkup_m3, it handles communication with the CM3 using IPC registers
    9 present in the SoC's control module and a mailbox. The wkup_m3_ipc exposes an
   10 API to allow the SoC PM code to execute specific PM tasks.
   11 
   12 Wkup M3 Device Node:
   13 ====================
   14 A wkup_m3_ipc device node is used to represent the IPC registers within an
   15 SoC.
   16 
   17 Required properties:
   18 --------------------
   19 - compatible:           Should be,
   20                                 "ti,am3352-wkup-m3-ipc" for AM33xx SoCs
   21                                 "ti,am4372-wkup-m3-ipc" for AM43xx SoCs
   22 - reg:                  Contains the IPC register address space to communicate
   23                         with the Wakeup M3 processor
   24 - interrupts:           Contains the interrupt information for the wkup_m3
   25                         interrupt that signals the MPU.
   26 - ti,rproc:             phandle to the wkup_m3 rproc node so the IPC driver
   27                         can boot it.
   28 - mboxes:               phandles used by IPC framework to get correct mbox
   29                         channel for communication. Must point to appropriate
   30                         mbox_wkupm3 child node.
   31 
   32 Example:
   33 --------
   34 /* AM33xx */
   35         l4_wkup: l4_wkup@44c00000 {
   36                 ...
   37 
   38                 scm: scm@210000 {
   39                         compatible = "ti,am3-scm", "simple-bus";
   40                         reg = <0x210000 0x2000>;
   41                         #address-cells = <1>;
   42                         #size-cells = <1>;
   43                         ranges = <0 0x210000 0x2000>;
   44 
   45                         ...
   46 
   47                         wkup_m3_ipc: wkup_m3_ipc@1324 {
   48                                 compatible = "ti,am3352-wkup-m3-ipc";
   49                                 reg = <0x1324 0x24>;
   50                                 interrupts = <78>;
   51                                 ti,rproc = <&wkup_m3>;
   52                                 mboxes = <&mailbox &mbox_wkupm3>;
   53                         };
   54 
   55                         ...
   56                 };
   57         };
Cache object: 6e0f0b4397b1b8d86b087374b6a64ac3 
 
 |