From: Jason-jh Lin jason-jh.lin@mediatek.corp-partner.google.com
The property "mediatek,gce-events" is used for GCE event ID corresponding to a hardware event signal sent by the hardware or a software driver. If the mailbox providers or consumers want to manipulate the value of the event ID, they need to know the specific event ID.
Since mediatek,gce-events property is used for both mailbox producers and consumers, we add a mediatek,gce-props.yaml to place the common GCE properties like mediatek,gce-events.
Change in v4: 1. Fix some typo. 2. Change maxItems of gce-events from 1024 to 32.
Change in v3: 1. Add more description and fix typo and grammar. 2. Fix $ref as full path.
Change in v2: 1. Add mediatek,gce-props.yaml for other binding reference.
Jason-JH.Lin (3): dt-bindings: mailbox: Add mediatek,gce-props.yaml dt-bindings: media: mediatek: mdp: Change mediatek,gce-events to reference dt-bindings: soc: mediatek: Change mediatek,gce-events to refernece
.../bindings/mailbox/mediatek,gce-props.yaml | 52 +++++++++++++++++++ .../bindings/media/mediatek,mdp3-rdma.yaml | 11 ++-- .../bindings/media/mediatek,mdp3-rsz.yaml | 12 ++--- .../bindings/media/mediatek,mdp3-wrot.yaml | 12 ++--- .../bindings/soc/mediatek/mediatek,ccorr.yaml | 12 ++--- .../bindings/soc/mediatek/mediatek,mutex.yaml | 11 ++-- .../bindings/soc/mediatek/mediatek,wdma.yaml | 12 ++--- 7 files changed, 74 insertions(+), 48 deletions(-) create mode 100644 Documentation/devicetree/bindings/mailbox/mediatek,gce-props.yaml
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 software 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 Reviewed-by: Conor Dooley conor.dooley@microchip.com --- .../bindings/mailbox/mediatek,gce-props.yaml | 52 +++++++++++++++++++ 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..c25eed4606fe --- /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 Properties + +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 + reserve a mailbox channel to configure GCE hardware register by the specific + 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: 32 + +additionalProperties: true
Il 24/01/24 02:14, Jason-JH.Lin ha scritto:
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 software 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 Reviewed-by: Conor Dooley conor.dooley@microchip.com
Reviewed-by: AngeloGioacchino Del Regno angelogioacchino.delregno@collabora.com
Change mediatek,gce-events property to reference mediatek,gce-props.yaml instead of defining itself.
Signed-off-by: Jason-JH.Lin jason-jh.lin@mediatek.com Reviewed-by: Conor Dooley conor.dooley@microchip.com --- .../bindings/media/mediatek,mdp3-rdma.yaml | 11 +++-------- .../devicetree/bindings/media/mediatek,mdp3-rsz.yaml | 12 ++++-------- .../bindings/media/mediatek,mdp3-wrot.yaml | 12 ++++-------- 3 files changed, 11 insertions(+), 24 deletions(-)
diff --git a/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml b/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml index 59db8306485b..4a286d46c8ee 100644 --- a/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml +++ b/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml @@ -44,13 +44,6 @@ properties: 4 arguments defined in this property. Each GCE subsys id is mapping to a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - mediatek,scp: $ref: /schemas/types.yaml#/definitions/phandle description: @@ -96,6 +89,8 @@ required: - '#dma-cells'
allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml + - if: properties: compatible: @@ -142,7 +137,7 @@ allOf: clocks: maxItems: 1
-additionalProperties: false +unevaluatedProperties: false
examples: - | diff --git a/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml b/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml index f5676bec4326..4774fdde1a1b 100644 --- a/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml +++ b/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml @@ -38,13 +38,6 @@ properties: 4 arguments defined in this property. Each GCE subsys id is mapping to a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - clocks: minItems: 1
@@ -55,7 +48,10 @@ required: - mediatek,gce-events - clocks
-additionalProperties: false +allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml + +unevaluatedProperties: false
examples: - | diff --git a/Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml b/Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml index 53a679338402..a31f3f5aea96 100644 --- a/Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml +++ b/Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml @@ -38,13 +38,6 @@ properties: 4 arguments defined in this property. Each GCE subsys id is mapping to a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - power-domains: maxItems: 1
@@ -67,7 +60,10 @@ required: - iommus - '#dma-cells'
-additionalProperties: false +allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml + +unevaluatedProperties: false
examples: - |
Il 24/01/24 02:14, Jason-JH.Lin ha scritto:
Change mediatek,gce-events property to reference mediatek,gce-props.yaml instead of defining itself.
Signed-off-by: Jason-JH.Lin jason-jh.lin@mediatek.com Reviewed-by: Conor Dooley conor.dooley@microchip.com
Reviewed-by: AngeloGioacchino Del Regno angelogioacchino.delregno@collabora.com
Change mediatek,gce-events property to reference mediatek,gce-props.yaml instead of defining itself.
Signed-off-by: Jason-JH.Lin jason-jh.lin@mediatek.com Reviewed-by: Conor Dooley conor.dooley@microchip.com --- .../bindings/soc/mediatek/mediatek,ccorr.yaml | 12 ++++-------- .../bindings/soc/mediatek/mediatek,mutex.yaml | 11 +++-------- .../bindings/soc/mediatek/mediatek,wdma.yaml | 12 ++++-------- 3 files changed, 11 insertions(+), 24 deletions(-)
diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,ccorr.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,ccorr.yaml index 4380b98b0dfe..305f2cd9f865 100644 --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,ccorr.yaml +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,ccorr.yaml @@ -34,13 +34,6 @@ properties: 4 arguments defined in this property. Each GCE subsys id is mapping to a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - clocks: minItems: 1
@@ -51,7 +44,10 @@ required: - mediatek,gce-events - clocks
-additionalProperties: false +allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml# + +unevaluatedProperties: false
examples: - | diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml index ba2014a8725c..61cf16ce8b0b 100644 --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,mutex.yaml @@ -53,13 +53,6 @@ properties: items: - description: MUTEX Clock
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - mediatek,gce-client-reg: $ref: /schemas/types.yaml#/definitions/phandle-array items: @@ -73,6 +66,8 @@ properties: a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml# + - if: properties: compatible: @@ -97,7 +92,7 @@ required: - interrupts - power-domains
-additionalProperties: false +unevaluatedProperties: false
examples: - | diff --git a/Documentation/devicetree/bindings/soc/mediatek/mediatek,wdma.yaml b/Documentation/devicetree/bindings/soc/mediatek/mediatek,wdma.yaml index 69afb329e5f4..d9dd4428c036 100644 --- a/Documentation/devicetree/bindings/soc/mediatek/mediatek,wdma.yaml +++ b/Documentation/devicetree/bindings/soc/mediatek/mediatek,wdma.yaml @@ -35,13 +35,6 @@ properties: 4 arguments defined in this property. Each GCE subsys id is mapping to a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
- mediatek,gce-events: - description: - The event id which is mapping to the specific hardware event signal - to gce. The event id is defined in the gce header - include/dt-bindings/gce/<chip>-gce.h of each chips. - $ref: /schemas/types.yaml#/definitions/uint32-array - power-domains: maxItems: 1
@@ -60,7 +53,10 @@ required: - clocks - iommus
-additionalProperties: false +allOf: + - $ref: /schemas/mailbox/mediatek,gce-props.yaml# + +unevaluatedProperties: false
examples: - |
Il 24/01/24 02:14, Jason-JH.Lin ha scritto:
Change mediatek,gce-events property to reference mediatek,gce-props.yaml instead of defining itself.
Signed-off-by: Jason-JH.Lin jason-jh.lin@mediatek.com Reviewed-by: Conor Dooley conor.dooley@microchip.com
Reviewed-by: AngeloGioacchino Del Regno angelogioacchino.delregno@collabora.com
linaro-mm-sig@lists.linaro.org