STMicroelectronics STM32 Remoteproc
-----------------------------------
This document defines the binding for the remoteproc component that loads and
boots firmwares on the ST32MP family chipset.

Required properties:
- compatible:	Must be "st,stm32mp1-m4"
- reg:		Address ranges of the RETRAM and MCU SRAM memories used by the
		remote processor.
- resets:	Reference to a reset controller asserting the remote processor.
- st,syscfg-holdboot: Reference to the system configuration which holds the
		remote processor reset hold boot
	1st cell: phandle of syscon block
	2nd cell: register offset containing the hold boot setting
	3rd cell: register bitmask for the hold boot field
- st,syscfg-tz: Reference to the system configuration which holds the RCC trust
		zone mode
	1st cell: phandle to syscon block
	2nd cell: register offset containing the RCC trust zone mode setting
	3rd cell: register bitmask for the RCC trust zone mode bit

Optional properties:
- interrupts:	Should contain the watchdog interrupt
- mboxes:	This property is required only if the rpmsg/virtio functionality
		is used. List of phandle and mailbox channel specifiers:
		- a channel (a) used to communicate through virtqueues with the
		  remote proc.
		  Bi-directional channel:
		      - from local to remote = send message
		      - from remote to local = send message ack
		- a channel (b) working the opposite direction of channel (a)
		- a channel (c) used by the local proc to notify the remote proc
		  that it is about to be shut down.
		  Unidirectional channel:
		      - from local to remote, where ACK from the remote means
		        that it is ready for shutdown
- mbox-names:	This property is required if the mboxes property is used.
		- must be "vq0" for channel (a)
		- must be "vq1" for channel (b)
		- must be "shutdown" for channel (c)
- memory-region: List of phandles to the reserved memory regions associated with
		the remoteproc device. This is variable and describes the
		memories shared with the remote processor (eg: remoteproc
		firmware and carveouts, rpmsg vrings, ...).
		(see ../reserved-memory/reserved-memory.txt)
- st,syscfg-pdds: Reference to the system configuration which holds the remote
		processor deep sleep setting
	1st cell: phandle to syscon block
	2nd cell: register offset containing the deep sleep setting
	3rd cell: register bitmask for the deep sleep bit
- st,auto-boot:	If defined, when remoteproc is probed, it loads the default
		firmware and starts the remote processor.

Example:
	m4_rproc: m4@10000000 {
		compatible = "st,stm32mp1-m4";
		reg = <0x10000000 0x40000>,
		      <0x30000000 0x40000>,
		      <0x38000000 0x10000>;
		resets = <&rcc MCU_R>;
		st,syscfg-holdboot = <&rcc 0x10C 0x1>;
		st,syscfg-tz = <&rcc 0x000 0x1>;
	};
