TI K3 R5F processor subsystems
==============================

The TI K3 family of SoCs usually have one or more dual-core Arm Cortex
R5F processor subsystems/clusters (R5FSS). The dual core cluster can be
used either in a LockStep mode providing safety/fault tolerance features
or in a Split mode providing two individual compute cores for doubling
the compute capacity. These are used together with other processors
present on the SoC to achieve various system level goals.

R5F Sub-System Device Node:
===========================
Each Dual-Core R5F sub-system is represented as a single DTS node representing
the cluster, with a pair of child DT nodes representing the individual R5F
cores. Each node has a number of required or optional properties that enable
the OS running on the host processor to perform the device management of the
remote processor and to communicate with the remote processor.

Required properties:
--------------------
The following are the mandatory properties:

- compatible:		Should be one of the following,
			    "ti,am654-r5fss" for R5F clusters/subsystems on
			                       K3 AM65x SoCs
			    "ti,j721e-r5fss" for R5F clusters/subsystems on
			                       K3 J721E SoCs
			    "ti,j7200-r5fss" for R5F clusters/subsystems on
			                       K3 J7200 SoCs
- power-domains:	Should contain a phandle to a PM domain provider node
			and an args specifier containing the R5FSS device id
			value. This property is as per the binding,
			Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
- #address-cells:	Should be 1
- #size-cells:		Should be 1
- ranges:		Standard ranges definition providing translations for
			R5F TCM address spaces

Optional properties:
--------------------
- lockstep-mode:	Configuration Mode for the Dual R5F cores within the R5F
			cluster. Should be either a value of 1 (LockStep mode) or
			0 (Split mode), default is LockStep mode if omitted.


R5F Processor Child Nodes:
==========================
The R5F Sub-System device node should define two R5F child nodes, each node
representing a TI instantiation of the Arm Cortex R5F core. There are some
specific integration differences for the IP like the usage of a Region Address
Translator (RAT) for translating the larger SoC bus addresses into a 32-bit
address space for the processor.

Required properties:
--------------------
The following are the mandatory properties:

- compatible:		Should be one of the following,
			    "ti,am654-r5f" for the R5F cores in K3 AM65x SoCs
			    "ti,j721e-r5f" for the R5F cores in K3 J721E SOCs
			    "ti,j7200-r5f" for the R5F cores in K3 J7200 SOCs
- reg:			Should contain an entry for each value in 'reg-names'.
			Each entry should have the memory region's start address
			and the size of the region, the representation matching
			the parent node's '#address-cells' and '#size-cells' values.
- reg-names:		Should contain strings with the following names, each
			representing a specific internal memory region, and
			should be defined in this order,
			     "atcm", "btcm"
- ti,sci:		Should be a phandle to the TI-SCI System Controller node
- ti,sci-dev-id:	Should contain the TI-SCI device id corresponding to the
			R5F Core. Please refer to the corresponding System
			Controller documentation for valid values for the R5F
			cores.
- ti,sci-proc-ids:	Should contain 2 integer values. The first cell should
			contain the TI-SCI processor id for the R5F core device
			and the second cell should contain the TI-SCI host id to
			which the processor control ownership should be
			transferred to.
- resets:		Should contain the phandle to the reset controller node
			managing the resets for this device, and a reset
			specifier. Please refer to the following reset bindings
			for the reset argument specifier,
			Documentation/devicetree/bindings/reset/ti,sci-reset.txt
			    for AM65x, J721E and J7200 SoCs

Optional properties:
--------------------
The following properties are optional properties for each of the R5F cores:

- atcm-enable:		R5F core configuration mode dictating if ATCM should be
			enabled. Should be either a value of 1 (enabled) or
			0 (disabled), default is disabled if omitted. R5F view
			of ATCM dictated by loczrama property.
- btcm-enable:		R5F core configuration mode dictating if BTCM should be
			enabled. Should be either a value of 1 (enabled) or
			0 (disabled), default is enabled if omitted. R5F view
			of BTCM dictated by loczrama property.
- loczrama:		R5F core configuration mode dictating which TCM should
			appear at address 0 (from core's view). Should be either
			a value of 1 (ATCM at 0x0) or 0 (BTCM at 0x0), default
			value is 1 if omitted.

Example:
--------
1. AM654 SoC
	/* AM65x remoteproc alias */
	aliases {
		remoteproc0 = &mcu_r5fss0_core0;
	};

	cbass_main: interconnect@100000 {
		compatible = "simple-bus";
		#address-cells = <2>;
		#size-cells = <2>;
		ranges = <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
			 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
			 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00080000>;

		cbass_mcu: interconnect@28380000 {
			compatible = "simple-bus";
			#address-cells = <2>;
			#size-cells = <2>;
			ranges = <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
				 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
				 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00080000>; /* MCU SRAM */

			/* AM65x MCU R5FSS node */
			mcu_r5fss0: r5fss@41000000 {
				compatible = "ti,am654-r5fss";
				power-domains = <&k3_pds 129>;
				lockstep-mode = <1>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x41000000 0x00 0x41000000 0x20000>,
					 <0x41400000 0x00 0x41400000 0x20000>;

				mcu_r5f0: r5f@41000000 {
					compatible = "ti,am654-r5f";
					reg = <0x41000000 0x00008000>,
					      <0x41010000 0x00008000>;
					reg-names = "atcm", "btcm";
					ti,sci = <&dmsc>;
					ti,sci-dev-id = <159>;
					ti,sci-proc-ids = <0x01 0xFF>;
					resets = <&k3_reset 159 1>;
					atcm-enable = <1>;
					btcm-enable = <1>;
					loczrama = <1>;
				};

				mcu_r5f1: r5f@41400000 {
					compatible = "ti,am654-r5f";
					reg = <0x41400000 0x00008000>,
					      <0x41410000 0x00008000>;
					reg-names = "atcm", "btcm";
					ti,sci = <&dmsc>;
					ti,sci-dev-id = <245>;
					ti,sci-proc-ids = <0x02 0xFF>;
					resets = <&k3_reset 245 1>;
					atcm-enable = <1>;
					btcm-enable = <1>;
					loczrama = <1>;
				};
			};
		};
	};
