18c2ecf20Sopenharmony_ciTexas Instruments System Control Interface (TI-SCI) Message Protocol
28c2ecf20Sopenharmony_ci--------------------------------------------------------------------
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciTexas Instrument's processors including those belonging to Keystone generation
58c2ecf20Sopenharmony_ciof processors have separate hardware entity which is now responsible for the
68c2ecf20Sopenharmony_cimanagement of the System on Chip (SoC) system. These include various system
78c2ecf20Sopenharmony_cilevel functions as well.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciAn example of such an SoC is K2G, which contains the system control hardware
108c2ecf20Sopenharmony_ciblock called Power Management Micro Controller (PMMC). This hardware block is
118c2ecf20Sopenharmony_ciinitialized early into boot process and provides services to Operating Systems
128c2ecf20Sopenharmony_cion multiple processors including ones running Linux.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciSee http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciTI-SCI controller Device Node:
178c2ecf20Sopenharmony_ci=============================
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciThe TI-SCI node describes the Texas Instrument's System Controller entity node.
208c2ecf20Sopenharmony_ciThis parent node may optionally have additional children nodes which describe
218c2ecf20Sopenharmony_cispecific functionality such as clocks, power domain, reset or additional
228c2ecf20Sopenharmony_cifunctionality as may be required for the SoC. This hierarchy also describes the
238c2ecf20Sopenharmony_cirelationship between the TI-SCI parent node to the child node.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciRequired properties:
268c2ecf20Sopenharmony_ci-------------------
278c2ecf20Sopenharmony_ci- compatible:	should be "ti,k2g-sci" for TI 66AK2G SoC
288c2ecf20Sopenharmony_ci		should be "ti,am654-sci" for for TI AM654 SoC
298c2ecf20Sopenharmony_ci- mbox-names:
308c2ecf20Sopenharmony_ci	"rx" - Mailbox corresponding to receive path
318c2ecf20Sopenharmony_ci	"tx" - Mailbox corresponding to transmit path
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci- mboxes: Mailboxes corresponding to the mbox-names. Each value of the mboxes
348c2ecf20Sopenharmony_ci	  property should contain a phandle to the mailbox controller device
358c2ecf20Sopenharmony_ci	  node and an args specifier that will be the phandle to the intended
368c2ecf20Sopenharmony_ci	  sub-mailbox child node to be used for communication.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciSee Documentation/devicetree/bindings/mailbox/mailbox.txt for more details
398c2ecf20Sopenharmony_ciabout the generic mailbox controller and client driver bindings. Also see
408c2ecf20Sopenharmony_ciDocumentation/devicetree/bindings/mailbox/ti,message-manager.txt for typical
418c2ecf20Sopenharmony_cicontroller that is used to communicate with this System controllers.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciOptional Properties:
448c2ecf20Sopenharmony_ci-------------------
458c2ecf20Sopenharmony_ci- reg-names:
468c2ecf20Sopenharmony_ci	debug_messages - Map the Debug message region
478c2ecf20Sopenharmony_ci- reg:  register space corresponding to the debug_messages
488c2ecf20Sopenharmony_ci- ti,system-reboot-controller: If system reboot can be triggered by SoC reboot
498c2ecf20Sopenharmony_ci- ti,host-id: Integer value corresponding to the host ID assigned by Firmware
508c2ecf20Sopenharmony_ci	for identification of host processing entities such as virtual
518c2ecf20Sopenharmony_ci	machines
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciExample (K2G):
548c2ecf20Sopenharmony_ci-------------
558c2ecf20Sopenharmony_ci	pmmc: pmmc {
568c2ecf20Sopenharmony_ci		compatible = "ti,k2g-sci";
578c2ecf20Sopenharmony_ci		ti,host-id = <2>;
588c2ecf20Sopenharmony_ci		mbox-names = "rx", "tx";
598c2ecf20Sopenharmony_ci		mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>,
608c2ecf20Sopenharmony_ci			<&msgmgr &msgmgr_proxy_pmmc_tx>;
618c2ecf20Sopenharmony_ci		reg-names = "debug_messages";
628c2ecf20Sopenharmony_ci		reg = <0x02921800 0x800>;
638c2ecf20Sopenharmony_ci	};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciTI-SCI Client Device Node:
678c2ecf20Sopenharmony_ci=========================
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciClient nodes are maintained as children of the relevant TI-SCI device node.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciExample (K2G):
728c2ecf20Sopenharmony_ci-------------
738c2ecf20Sopenharmony_ci	pmmc: pmmc {
748c2ecf20Sopenharmony_ci		compatible = "ti,k2g-sci";
758c2ecf20Sopenharmony_ci		...
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci		my_clk_node: clk_node {
788c2ecf20Sopenharmony_ci			...
798c2ecf20Sopenharmony_ci			...
808c2ecf20Sopenharmony_ci		};
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci		my_pd_node: pd_node {
838c2ecf20Sopenharmony_ci			...
848c2ecf20Sopenharmony_ci			...
858c2ecf20Sopenharmony_ci		};
868c2ecf20Sopenharmony_ci	};
87