1Wakeup M3 IPC Driver 2===================== 3 4The 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 6that cannot be controlled from the MPU, like suspend/resume and certain deep 7C-states for CPU Idle. Once the wkup_m3_ipc driver uses the wkup_m3_rproc driver 8to boot the wkup_m3, it handles communication with the CM3 using IPC registers 9present in the SoC's control module and a mailbox. The wkup_m3_ipc exposes an 10API to allow the SoC PM code to execute specific PM tasks. 11 12Wkup M3 Device Node: 13==================== 14A wkup_m3_ipc device node is used to represent the IPC registers within an 15SoC. 16 17Required 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 32Example: 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 }; 58