dt-bindings: mailbox: Convert mtk-gce to DT schema
Convert the mtk-gce mailbox binding to DT schema format. During the conversion, the examples for client device/mutex nodes were removed, as these are found in their respective bindings: arm/mediatek/mediatek,mmsys.yaml for "mediatek,mt8173-mmsys" soc/mediatek/mediatek,mutex.yaml for "mediatek,mt8173-disp-mutex" Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20220921090006.37642-1-angelogioacchino.delregno@collabora.com Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
committed by
Rob Herring
parent
88269151be
commit
cd42580728
@@ -52,7 +52,8 @@ properties:
|
||||
description:
|
||||
Using mailbox to communicate with GCE, it should have this
|
||||
property and list of phandle, mailbox specifiers. See
|
||||
Documentation/devicetree/bindings/mailbox/mtk-gce.txt for details.
|
||||
Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
|
||||
for details.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
|
||||
mediatek,gce-client-reg:
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/mailbox/mediatek,gce-mailbox.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek Global Command Engine Mailbox
|
||||
|
||||
maintainers:
|
||||
- Houlong Wei <houlong.wei@mediatek.com>
|
||||
|
||||
description:
|
||||
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.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt6779-gce
|
||||
- mediatek,mt8173-gce
|
||||
- mediatek,mt8183-gce
|
||||
- mediatek,mt8186-gce
|
||||
- mediatek,mt8192-gce
|
||||
- mediatek,mt8195-gce
|
||||
|
||||
"#mbox-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell describes the Thread ID of the GCE,
|
||||
the second cell describes the priority of the GCE thread
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Global Command Engine clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: gce
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#mbox-cells"
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: mediatek,mt8195-gce
|
||||
then:
|
||||
required:
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
gce: mailbox@10212000 {
|
||||
compatible = "mediatek,mt8173-gce";
|
||||
reg = <0 0x10212000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
|
||||
#mbox-cells = <2>;
|
||||
clocks = <&infracfg CLK_INFRA_GCE>;
|
||||
clock-names = "gce";
|
||||
};
|
||||
};
|
||||
@@ -1,82 +0,0 @@
|
||||
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: can be "mediatek,mt8173-gce", "mediatek,mt8183-gce",
|
||||
"mediatek,mt8186-gce", "mediatek,mt8192-gce", "mediatek,mt8195-gce" or
|
||||
"mediatek,mt6779-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 2.
|
||||
<&phandle channel priority>
|
||||
phandle: Label name of a gce node.
|
||||
channel: Channel of mailbox. Be equal to the thread id of GCE.
|
||||
priority: Priority of GCE thread.
|
||||
|
||||
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.
|
||||
Optional properties for a client device:
|
||||
- mediatek,gce-client-reg: Specify the sub-system id which is corresponding
|
||||
to the register address, it should have this property and list of phandle,
|
||||
sub-system specifiers.
|
||||
<&phandle subsys_number start_offset size>
|
||||
phandle: Label name of a gce node.
|
||||
subsys_number: specify the sub-system id which is corresponding
|
||||
to the register address.
|
||||
start_offset: the start offset of register address that GCE can access.
|
||||
size: the total size of register address that GCE can access.
|
||||
|
||||
Optional properties for a client mutex node:
|
||||
- mediatek,gce-events: GCE events used by clients. The event numbers are
|
||||
defined in 'dt-bindings/gce/<chip>-gce.h'.
|
||||
|
||||
Some vaules of properties are defined in 'dt-bindings/gce/mt8173-gce.h',
|
||||
'dt-bindings/gce/mt8183-gce.h', 'dt-bindings/gce/mt8186-gce.h'
|
||||
'dt-bindings/gce/mt8192-gce.h', 'dt-bindings/gce/mt8195-gce.h' or
|
||||
'dt-bindings/gce/mt6779-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";
|
||||
#mbox-cells = <2>;
|
||||
};
|
||||
|
||||
Example for a client device:
|
||||
|
||||
mmsys: clock-controller@14000000 {
|
||||
compatible = "mediatek,mt8173-mmsys";
|
||||
mboxes = <&gce 0 CMDQ_THR_PRIO_LOWEST>,
|
||||
<&gce 1 CMDQ_THR_PRIO_LOWEST>;
|
||||
mutex-event-eof = <CMDQ_EVENT_MUTEX0_STREAM_EOF
|
||||
CMDQ_EVENT_MUTEX1_STREAM_EOF>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x3000 0x1000>,
|
||||
<&gce SUBSYS_1401XXXX 0x2000 0x100>;
|
||||
...
|
||||
};
|
||||
|
||||
Example for a client mutex node:
|
||||
mutex: mutex@14020000 {
|
||||
compatible = "mediatek,mt8173-disp-mutex";
|
||||
reg = <0 0x14020000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
|
||||
clocks = <&mmsys CLK_MM_MUTEX_32K>;
|
||||
mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>,
|
||||
<CMDQ_EVENT_MUTEX1_STREAM_EOF>;
|
||||
};
|
||||
Reference in New Issue
Block a user