MediaTek GCE
===============

The Global Command Engine (GCE) is used to help read/write registers with
critical time limitation, such as updating display configuration during the
vblank. The GCE can be used to implement the Command Queue (CMDQ) driver.

CMDQ driver uses mailbox framework for communication. Please refer to
mailbox.txt for generic information about mailbox device-tree bindings.

Required properties:
- compatible: can be "mediatek,mt8173-gce", "mediatek,mt8183-gce",
  "mediatek,mt8186-gce", "mediatek,mt8192-gce", "mediatek,mt8195-gce" or
  "mediatek,mt6779-gce".
- reg: Address range of the GCE unit
- interrupts: The interrupt signal from the GCE block
- clock: Clocks according to the common clock binding
- clock-names: Must be "gce" to stand for GCE clock
- #mbox-cells: Should be 2.
	<&phandle channel priority>
	phandle: Label name of a gce node.
	channel: Channel of mailbox. Be equal to the thread id of GCE.
	priority: Priority of GCE thread.

Required properties for a client device:
- mboxes: Client use mailbox to communicate with GCE, it should have this
  property and list of phandle, mailbox specifiers.
Optional properties for a client device:
- mediatek,gce-client-reg: Specify the sub-system id which is corresponding
  to the register address, it should have this property and list of phandle,
  sub-system specifiers.
  <&phandle subsys_number start_offset size>
  phandle: Label name of a gce node.
  subsys_number: specify the sub-system id which is corresponding
                 to the register address.
  start_offset: the start offset of register address that GCE can access.
  size: the total size of register address that GCE can access.

Optional properties for a client mutex node:
- mediatek,gce-events: GCE events used by clients. The event numbers are
  defined in 'dt-bindings/gce/<chip>-gce.h'.

Some vaules of properties are defined in 'dt-bindings/gce/mt8173-gce.h',
'dt-bindings/gce/mt8183-gce.h', 'dt-bindings/gce/mt8186-gce.h'
'dt-bindings/gce/mt8192-gce.h', 'dt-bindings/gce/mt8195-gce.h' or
'dt-bindings/gce/mt6779-gce.h'.
Such as sub-system ids, thread priority, event ids.

Example:

	gce: gce@10212000 {
		compatible = "mediatek,mt8173-gce";
		reg = <0 0x10212000 0 0x1000>;
		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
		clocks = <&infracfg CLK_INFRA_GCE>;
		clock-names = "gce";
		#mbox-cells = <2>;
	};

Example for a client device:

	mmsys: clock-controller@14000000 {
		compatible = "mediatek,mt8173-mmsys";
		mboxes = <&gce 0 CMDQ_THR_PRIO_LOWEST>,
			 <&gce 1 CMDQ_THR_PRIO_LOWEST>;
		mutex-event-eof = <CMDQ_EVENT_MUTEX0_STREAM_EOF
				CMDQ_EVENT_MUTEX1_STREAM_EOF>;
		mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x3000 0x1000>,
					  <&gce SUBSYS_1401XXXX 0x2000 0x100>;
		...
	};

Example for a client mutex node:
	mutex: mutex@14020000 {
		compatible = "mediatek,mt8173-disp-mutex";
		reg = <0 0x14020000 0 0x1000>;
		interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>;
		power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
		clocks = <&mmsys CLK_MM_MUTEX_32K>;
		mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>,
				      <CMDQ_EVENT_MUTEX1_STREAM_EOF>;
	};
