1MediaTek GCE 2=============== 3 4The Global Command Engine (GCE) is used to help read/write registers with 5critical time limitation, such as updating display configuration during the 6vblank. The GCE can be used to implement the Command Queue (CMDQ) driver. 7 8CMDQ driver uses mailbox framework for communication. Please refer to 9mailbox.txt for generic information about mailbox device-tree bindings. 10 11Required properties: 12- compatible: Must be "mediatek,mt8173-gce" 13- reg: Address range of the GCE unit 14- interrupts: The interrupt signal from the GCE block 15- clock: Clocks according to the common clock binding 16- clock-names: Must be "gce" to stand for GCE clock 17- #mbox-cells: Should be 3. 18 <&phandle channel priority atomic_exec> 19 phandle: Label name of a gce node. 20 channel: Channel of mailbox. Be equal to the thread id of GCE. 21 priority: Priority of GCE thread. 22 atomic_exec: GCE processing continuous packets of commands in atomic 23 way. 24 25Required properties for a client device: 26- mboxes: Client use mailbox to communicate with GCE, it should have this 27 property and list of phandle, mailbox specifiers. 28- mediatek,gce-subsys: u32, specify the sub-system id which is corresponding 29 to the register address. 30 31Some vaules of properties are defined in 'dt-bindings/gce/mt8173-gce.h'. Such as 32sub-system ids, thread priority, event ids. 33 34Example: 35 36 gce: gce@10212000 { 37 compatible = "mediatek,mt8173-gce"; 38 reg = <0 0x10212000 0 0x1000>; 39 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>; 40 clocks = <&infracfg CLK_INFRA_GCE>; 41 clock-names = "gce"; 42 thread-num = CMDQ_THR_MAX_COUNT; 43 #mbox-cells = <3>; 44 }; 45 46Example for a client device: 47 48 mmsys: clock-controller@14000000 { 49 compatible = "mediatek,mt8173-mmsys"; 50 mboxes = <&gce 0 CMDQ_THR_PRIO_LOWEST 1>, 51 <&gce 1 CMDQ_THR_PRIO_LOWEST 1>; 52 mediatek,gce-subsys = <SUBSYS_1400XXXX>; 53 mutex-event-eof = <CMDQ_EVENT_MUTEX0_STREAM_EOF 54 CMDQ_EVENT_MUTEX1_STREAM_EOF>; 55 56 ... 57 }; 58