1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/mailbox/med 4 $id: http://devicetree.org/schemas/mailbox/mediatek,gce-props.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: MediaTek Global Command Engine Common P 7 title: MediaTek Global Command Engine Common Properties 8 8 9 maintainers: 9 maintainers: 10 - Houlong Wei <houlong.wei@mediatek.com> 10 - Houlong Wei <houlong.wei@mediatek.com> 11 11 12 description: 12 description: 13 The Global Command Engine (GCE) is an instru 13 The Global Command Engine (GCE) is an instruction based, multi-threaded, 14 single-core command dispatcher for MediaTek 14 single-core command dispatcher for MediaTek hardware. The Command Queue 15 (CMDQ) mailbox driver is a driver for GCE, i 15 (CMDQ) mailbox driver is a driver for GCE, implemented using the Linux 16 mailbox framework. It is used to receive mes 16 mailbox framework. It is used to receive messages from mailbox consumers 17 and configure GCE to execute the specified i 17 and configure GCE to execute the specified instruction set in the message. 18 We use mediatek,gce-mailbox.yaml to define t 18 We use mediatek,gce-mailbox.yaml to define the properties for CMDQ mailbox 19 driver. A device driver that uses the CMDQ d 19 driver. A device driver that uses the CMDQ driver to configure its hardware 20 registers is a mailbox consumer. The mailbox 20 registers is a mailbox consumer. The mailbox consumer can request a mailbox 21 channel corresponding to a GCE hardware thre 21 channel corresponding to a GCE hardware thread to send a message, specifying 22 that the GCE thread to configure its hardwar 22 that the GCE thread to configure its hardware. The mailbox provider can also 23 reserve a mailbox channel to configure GCE h 23 reserve a mailbox channel to configure GCE hardware register by the specific 24 GCE thread. This binding defines the common 24 GCE thread. This binding defines the common GCE properties for both mailbox 25 provider and consumers. 25 provider and consumers. 26 26 27 properties: 27 properties: 28 mediatek,gce-events: 28 mediatek,gce-events: 29 description: 29 description: 30 GCE has an event table in SRAM, consisti 30 GCE has an event table in SRAM, consisting of 1024 event IDs (0~1023). 31 Each event ID has a boolean event value 31 Each event ID has a boolean event value with the default value 0. 32 The property mediatek,gce-events is used 32 The property mediatek,gce-events is used to obtain the event IDs. 33 Some gce-events are hardware-bound and c 33 Some gce-events are hardware-bound and cannot be changed by software. 34 For instance, in MT8195, when VDO0_MUTEX 34 For instance, in MT8195, when VDO0_MUTEX is stream done, VDO_MUTEX will 35 send an event signal to GCE, setting the 35 send an event signal to GCE, setting the value of event ID 597 to 1. 36 Similarly, in MT8188, the value of event 36 Similarly, in MT8188, the value of event ID 574 will be set to 1 when 37 VOD0_MUTEX is stream done. 37 VOD0_MUTEX is stream done. 38 On the other hand, some gce-events are n 38 On the other hand, some gce-events are not hardware-bound and can be 39 changed by software. For example, in MT8 39 changed by software. For example, in MT8188, we can set the value of 40 event ID 855, which is not bound to any 40 event ID 855, which is not bound to any hardware, to 1 when the driver 41 in the secure world completes a task. Ho 41 in the secure world completes a task. However, in MT8195, event ID 855 42 is already bound to VDEC_LAT1, so we nee 42 is already bound to VDEC_LAT1, so we need to select another event ID to 43 achieve the same purpose. This event ID 43 achieve the same purpose. This event ID can be any ID that is not bound 44 to any hardware and is not yet used in a 44 to any hardware and is not yet used in any software driver. 45 To determine if the event ID is bound to 45 To determine if the event ID is bound to the hardware or used by a 46 software driver, refer to the GCE header 46 software driver, refer to the GCE header 47 include/dt-bindings/gce/<chip>-gce.h of 47 include/dt-bindings/gce/<chip>-gce.h of each chip. 48 $ref: /schemas/types.yaml#/definitions/uin 48 $ref: /schemas/types.yaml#/definitions/uint32-array 49 minItems: 1 49 minItems: 1 50 maxItems: 32 50 maxItems: 32 51 51 52 additionalProperties: true 52 additionalProperties: true
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.