162306a36Sopenharmony_ciTI Wakeup M3 Remoteproc Driver
262306a36Sopenharmony_ci==============================
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciThe TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor
562306a36Sopenharmony_ci(commonly referred to as Wakeup M3 or CM3) to help with various low power tasks
662306a36Sopenharmony_cithat cannot be controlled from the MPU. This CM3 processor requires a firmware
762306a36Sopenharmony_cibinary to accomplish this. The wkup_m3 remoteproc driver handles the loading of
862306a36Sopenharmony_cithe firmware and booting of the CM3.
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciWkup M3 Device Node:
1162306a36Sopenharmony_ci====================
1262306a36Sopenharmony_ciA wkup_m3 device node is used to represent the Wakeup M3 processor instance
1362306a36Sopenharmony_ciwithin the SoC. It is added as a child node of the parent interconnect bus
1462306a36Sopenharmony_ci(l4_wkup) through which it is accessible to the MPU.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciRequired properties:
1762306a36Sopenharmony_ci--------------------
1862306a36Sopenharmony_ci- compatible:		Should be one of,
1962306a36Sopenharmony_ci				"ti,am3352-wkup-m3" for AM33xx SoCs
2062306a36Sopenharmony_ci				"ti,am4372-wkup-m3" for AM43xx SoCs
2162306a36Sopenharmony_ci- reg:			Should contain the address ranges for the two internal
2262306a36Sopenharmony_ci			memory regions, UMEM and DMEM. The parent node should
2362306a36Sopenharmony_ci			provide an appropriate ranges property for properly
2462306a36Sopenharmony_ci			translating these into bus addresses.
2562306a36Sopenharmony_ci- reg-names:		Contains the corresponding names for the two memory
2662306a36Sopenharmony_ci			regions. These should be named "umem" & "dmem".
2762306a36Sopenharmony_ci- ti,hwmods:		Name of the hwmod associated with the wkupm3 device.
2862306a36Sopenharmony_ci- ti,pm-firmware:	Name of firmware file to be used for loading and
2962306a36Sopenharmony_ci			booting the wkup_m3 remote processor.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciExample:
3262306a36Sopenharmony_ci--------
3362306a36Sopenharmony_ci/* AM33xx */
3462306a36Sopenharmony_ciocp {
3562306a36Sopenharmony_ci	 l4_wkup: l4_wkup@44c00000 {
3662306a36Sopenharmony_ci		compatible = "am335-l4-wkup", "simple-bus";
3762306a36Sopenharmony_ci		ranges = <0 0x44c00000 0x400000>;
3862306a36Sopenharmony_ci		#address-cells = <1>;
3962306a36Sopenharmony_ci		#size-cells = <1>;
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci		wkup_m3: wkup_m3@100000 {
4262306a36Sopenharmony_ci			compatible = "ti,am3352-wkup-m3";
4362306a36Sopenharmony_ci			reg = <0x100000 0x4000>,
4462306a36Sopenharmony_ci			      <0x180000 0x2000>;
4562306a36Sopenharmony_ci			reg-names = "umem", "dmem";
4662306a36Sopenharmony_ci			ti,hwmods = "wkup_m3";
4762306a36Sopenharmony_ci			ti,pm-firmware = "am335x-pm-firmware.elf";
4862306a36Sopenharmony_ci		};
4962306a36Sopenharmony_ci	};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	...
5262306a36Sopenharmony_ci};
53