Il 19/01/24 17:44, Conor Dooley ha scritto:
Rob,
On Fri, Jan 19, 2024 at 02:32:22PM +0800, Jason-JH.Lin wrote:
Add mediatek,gce-props.yaml for common GCE properties that is used for both mailbox providers and consumers. We place the common property "mediatek,gce-events" in this binding currently.
The property "mediatek,gce-events" is used for GCE event ID corresponding to a hardware event signal sent by the hardware or a sofware driver. If the mailbox providers or consumers want to manipulate the value of the event ID, they need to know the specific event ID.
Signed-off-by: Jason-JH.Lin jason-jh.lin@mediatek.com
.../bindings/mailbox/mediatek,gce-props.yaml | 52 +++++++++++++++++++
Is bindings/mailbox the correct directory to put this in?
Well, the GCE is a mailbox :-)
...but I get why you're asking... and I don't think that this should go to arm/mediatek/ as it's really just only referring to extra properties for kind of "special" mailbox client events...
Cheers, Angelo
1 file changed, 52 insertions(+) create mode 100644 Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml
diff --git a/Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml b/Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml new file mode 100644 index 000000000000..68b519ff089f --- /dev/null +++ b/Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mailbox/mediatek,gce-props.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: MediaTek Global Command Engine Common Propertes
+maintainers:
- Houlong Wei houlong.wei@mediatek.com
+description:
- The Global Command Engine (GCE) is an instruction based, multi-threaded,
- single-core command dispatcher for MediaTek hardware. The Command Queue
- (CMDQ) mailbox driver is a driver for GCE, implemented using the Linux
- mailbox framework. It is used to receive messages from mailbox consumers
- and configure GCE to execute the specified instruction set in the message.
- We use mediatek,gce-mailbox.yaml to define the properties for CMDQ mailbox
- driver. A device driver that uses the CMDQ driver to configure its hardware
- registers is a mailbox consumer. The mailbox consumer can request a mailbox
- channel corresponding to a GCE hardware thread to send a message, specifying
- that the GCE thread to configure its hardware. The mailbox provider can also
- reserved a mailbox channel to configure GCE hardware register by the spcific
- GCE thread. This binding defines the common GCE properties for both mailbox
- provider and consumers.
+properties:
- mediatek,gce-events:
- description:
GCE has an event table in SRAM, consisting of 1024 event IDs (0~1023).
Each event ID has a boolean event value with the default value 0.
The property mediatek,gce-events is used to obtain the event IDs.
Some gce-events are hardware-bound and cannot be changed by software.
For instance, in MT8195, when VDO0_MUTEX is stream done, VDO_MUTEX will
send an event signal to GCE, setting the value of event ID 597 to 1.
Similarly, in MT8188, the value of event ID 574 will be set to 1 when
VOD0_MUTEX is stream done.
On the other hand, some gce-events are not hardware-bound and can be
changed by software. For example, in MT8188, we can set the value of
event ID 855, which is not bound to any hardware, to 1 when the driver
in the secure world completes a task. However, in MT8195, event ID 855
is already bound to VDEC_LAT1, so we need to select another event ID to
achieve the same purpose. This event ID can be any ID that is not bound
to any hardware and is not yet used in any software driver.
To determine if the event ID is bound to the hardware or used by a
software driver, refer to the GCE header
include/dt-bindings/gce/<chip>-gce.h of each chip.
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 1024
+additionalProperties: true
2.18.0