|
@@ -0,0 +1,57 @@
|
|
|
|
+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: Must be "mediatek,mt8173-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 3.
|
|
|
|
+ <&phandle channel priority atomic_exec>
|
|
|
|
+ phandle: Label name of a gce node.
|
|
|
|
+ channel: Channel of mailbox. Be equal to the thread id of GCE.
|
|
|
|
+ priority: Priority of GCE thread.
|
|
|
|
+ atomic_exec: GCE processing continuous packets of commands in atomic
|
|
|
|
+ way.
|
|
|
|
+
|
|
|
|
+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.
|
|
|
|
+- mediatek,gce-subsys: u32, specify the sub-system id which is corresponding
|
|
|
|
+ to the register address.
|
|
|
|
+
|
|
|
|
+Some vaules of properties are defined in 'dt-bindings/gce/mt8173-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";
|
|
|
|
+ thread-num = CMDQ_THR_MAX_COUNT;
|
|
|
|
+ #mbox-cells = <3>;
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+Example for a client device:
|
|
|
|
+
|
|
|
|
+ mmsys: clock-controller@14000000 {
|
|
|
|
+ compatible = "mediatek,mt8173-mmsys";
|
|
|
|
+ mboxes = <&gce 0 CMDQ_THR_PRIO_LOWEST 1>,
|
|
|
|
+ <&gce 1 CMDQ_THR_PRIO_LOWEST 1>;
|
|
|
|
+ mediatek,gce-subsys = <SUBSYS_1400XXXX>;
|
|
|
|
+ mutex-event-eof = <CMDQ_EVENT_MUTEX0_STREAM_EOF
|
|
|
|
+ CMDQ_EVENT_MUTEX1_STREAM_EOF>;
|
|
|
|
+
|
|
|
|
+ ...
|
|
|
|
+ };
|