159bf87eeSMoudy Ho# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 259bf87eeSMoudy Ho%YAML 1.2 359bf87eeSMoudy Ho--- 459bf87eeSMoudy Ho$id: http://devicetree.org/schemas/soc/mediatek/mediatek,mutex.yaml# 559bf87eeSMoudy Ho$schema: http://devicetree.org/meta-schemas/core.yaml# 659bf87eeSMoudy Ho 759bf87eeSMoudy Hotitle: Mediatek mutex 859bf87eeSMoudy Ho 959bf87eeSMoudy Homaintainers: 1059bf87eeSMoudy Ho - Chun-Kuang Hu <chunkuang.hu@kernel.org> 1159bf87eeSMoudy Ho - Philipp Zabel <p.zabel@pengutronix.de> 1259bf87eeSMoudy Ho 1359bf87eeSMoudy Hodescription: | 1459bf87eeSMoudy Ho Mediatek mutex, namely MUTEX, is used to send the triggers signals called 1559bf87eeSMoudy Ho Start Of Frame (SOF) / End Of Frame (EOF) to each sub-modules on the display 1659bf87eeSMoudy Ho data path or MDP data path. 1759bf87eeSMoudy Ho In some SoC, such as mt2701, MUTEX could be a hardware mutex which protects 1859bf87eeSMoudy Ho the shadow register. 1959bf87eeSMoudy Ho MUTEX device node must be siblings to the central MMSYS_CONFIG node. 2059bf87eeSMoudy Ho For a description of the MMSYS_CONFIG binding, see 2159bf87eeSMoudy Ho Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml 2259bf87eeSMoudy Ho for details. 2359bf87eeSMoudy Ho 2459bf87eeSMoudy Hoproperties: 2559bf87eeSMoudy Ho compatible: 2659bf87eeSMoudy Ho enum: 2759bf87eeSMoudy Ho - mediatek,mt2701-disp-mutex 2859bf87eeSMoudy Ho - mediatek,mt2712-disp-mutex 29f3894f96SAngeloGioacchino Del Regno - mediatek,mt6795-disp-mutex 3059bf87eeSMoudy Ho - mediatek,mt8167-disp-mutex 3159bf87eeSMoudy Ho - mediatek,mt8173-disp-mutex 3259bf87eeSMoudy Ho - mediatek,mt8183-disp-mutex 3359bf87eeSMoudy Ho - mediatek,mt8186-disp-mutex 347c4ddc81SAllen-KH Cheng - mediatek,mt8186-mdp3-mutex 355d98c635SNathan Lu - mediatek,mt8188-disp-mutex 3659bf87eeSMoudy Ho - mediatek,mt8192-disp-mutex 3759bf87eeSMoudy Ho - mediatek,mt8195-disp-mutex 387ceff25aSRoy-CW.Yeh - mediatek,mt8195-vpp-mutex 39*fa041c4dSAlexandre Mergnat - mediatek,mt8365-disp-mutex 4059bf87eeSMoudy Ho 4159bf87eeSMoudy Ho reg: 4259bf87eeSMoudy Ho maxItems: 1 4359bf87eeSMoudy Ho 4459bf87eeSMoudy Ho interrupts: 4559bf87eeSMoudy Ho maxItems: 1 4659bf87eeSMoudy Ho 4759bf87eeSMoudy Ho power-domains: 4859bf87eeSMoudy Ho description: A phandle and PM domain specifier as defined by bindings of 4959bf87eeSMoudy Ho the power controller specified by phandle. See 5059bf87eeSMoudy Ho Documentation/devicetree/bindings/power/power-domain.yaml for details. 5159bf87eeSMoudy Ho 5259bf87eeSMoudy Ho clocks: 5359bf87eeSMoudy Ho items: 5459bf87eeSMoudy Ho - description: MUTEX Clock 5559bf87eeSMoudy Ho 5659bf87eeSMoudy Ho mediatek,gce-events: 5759bf87eeSMoudy Ho description: 5859bf87eeSMoudy Ho The event id which is mapping to the specific hardware event signal 5959bf87eeSMoudy Ho to gce. The event id is defined in the gce header 6059bf87eeSMoudy Ho include/dt-bindings/gce/<chip>-gce.h of each chips. 6159bf87eeSMoudy Ho $ref: /schemas/types.yaml#/definitions/uint32-array 6259bf87eeSMoudy Ho 63e3b6b5a9SMoudy Ho mediatek,gce-client-reg: 64e3b6b5a9SMoudy Ho $ref: /schemas/types.yaml#/definitions/phandle-array 65e3b6b5a9SMoudy Ho items: 66e3b6b5a9SMoudy Ho items: 67e3b6b5a9SMoudy Ho - description: phandle of GCE 68e3b6b5a9SMoudy Ho - description: GCE subsys id 69e3b6b5a9SMoudy Ho - description: register offset 70e3b6b5a9SMoudy Ho - description: register size 71e3b6b5a9SMoudy Ho description: The register of client driver can be configured by gce with 72e3b6b5a9SMoudy Ho 4 arguments defined in this property. Each GCE subsys id is mapping to 73e3b6b5a9SMoudy Ho a client defined in the header include/dt-bindings/gce/<chip>-gce.h. 74e3b6b5a9SMoudy Ho 7559e9c5e2SAlexandre MergnatallOf: 7659e9c5e2SAlexandre Mergnat - if: 7759e9c5e2SAlexandre Mergnat properties: 7859e9c5e2SAlexandre Mergnat compatible: 7959e9c5e2SAlexandre Mergnat contains: 8059e9c5e2SAlexandre Mergnat enum: 8159e9c5e2SAlexandre Mergnat - mediatek,mt2701-disp-mutex 8259e9c5e2SAlexandre Mergnat - mediatek,mt2712-disp-mutex 8359e9c5e2SAlexandre Mergnat - mediatek,mt6795-disp-mutex 8459e9c5e2SAlexandre Mergnat - mediatek,mt8173-disp-mutex 8559e9c5e2SAlexandre Mergnat - mediatek,mt8186-disp-mutex 8659e9c5e2SAlexandre Mergnat - mediatek,mt8186-mdp3-mutex 8759e9c5e2SAlexandre Mergnat - mediatek,mt8192-disp-mutex 8859e9c5e2SAlexandre Mergnat - mediatek,mt8195-disp-mutex 8959e9c5e2SAlexandre Mergnat then: 9059e9c5e2SAlexandre Mergnat required: 9159e9c5e2SAlexandre Mergnat - clocks 9259e9c5e2SAlexandre Mergnat 9359e9c5e2SAlexandre Mergnat 9459bf87eeSMoudy Horequired: 9559bf87eeSMoudy Ho - compatible 9659bf87eeSMoudy Ho - reg 9759bf87eeSMoudy Ho - interrupts 9859bf87eeSMoudy Ho - power-domains 9959bf87eeSMoudy Ho 10059bf87eeSMoudy HoadditionalProperties: false 10159bf87eeSMoudy Ho 10259bf87eeSMoudy Hoexamples: 10359bf87eeSMoudy Ho - | 10459bf87eeSMoudy Ho #include <dt-bindings/interrupt-controller/arm-gic.h> 10559bf87eeSMoudy Ho #include <dt-bindings/clock/mt8173-clk.h> 10659bf87eeSMoudy Ho #include <dt-bindings/power/mt8173-power.h> 10759bf87eeSMoudy Ho #include <dt-bindings/gce/mt8173-gce.h> 10859bf87eeSMoudy Ho 10959bf87eeSMoudy Ho soc { 11059bf87eeSMoudy Ho #address-cells = <2>; 11159bf87eeSMoudy Ho #size-cells = <2>; 11259bf87eeSMoudy Ho 11359bf87eeSMoudy Ho mutex: mutex@14020000 { 11459bf87eeSMoudy Ho compatible = "mediatek,mt8173-disp-mutex"; 11559bf87eeSMoudy Ho reg = <0 0x14020000 0 0x1000>; 11659bf87eeSMoudy Ho interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>; 11759bf87eeSMoudy Ho power-domains = <&spm MT8173_POWER_DOMAIN_MM>; 11859bf87eeSMoudy Ho clocks = <&mmsys CLK_MM_MUTEX_32K>; 11959bf87eeSMoudy Ho mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>, 12059bf87eeSMoudy Ho <CMDQ_EVENT_MUTEX1_STREAM_EOF>; 12159bf87eeSMoudy Ho }; 12259bf87eeSMoudy Ho }; 123