On Tue, Sep 19, 2023 at 03:21:50AM +0800, Jason-JH.Lin wrote: > Add mboxes to define a GCE loopping thread as a secure irq handler. > Add mediatek,event to define a GCE software event siganl as a secure > irq. > > These 2 properties are required for CMDQ secure driver. > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@xxxxxxxxxxxx> > --- > .../mailbox/mediatek,gce-mailbox.yaml | 30 +++++++++++++++---- > 1 file changed, 24 insertions(+), 6 deletions(-) > > diff --git a/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml > index cef9d7601398..5c9aebe83d2d 100644 > --- a/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml > +++ b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml > @@ -49,6 +49,21 @@ properties: > items: > - const: gce > > + mboxes: > + description: > + A mailbox channel used as a secure irq handler in normal world. > + Using mailbox to communicate with GCE to setup looping thread, > + it should have this property and a phandle, mailbox specifiers. All cases of 'mboxes' have a phandle and specifiers. No need to repeat that here. > + $ref: /schemas/types.yaml#/definitions/phandle-array Already has a type definition too. You need to define how many entries and what each entry is if more than one. IOW, the same thing as clocks, resets, interrupts, etc. > + > + mediatek,gce-events: This is used all over. It really needs a single definition which is then referenced by the users. > + description: > + The event id which is mapping to a software event signal to gce. > + It is used as a secure irq for every secure gce threads. > + The event id is defined in the gce header > + include/dt-bindings/mailbox/mediatek,<chip>-gce.h of each chips. > + $ref: /schemas/types.yaml#/definitions/uint32-array > + > required: > - compatible > - "#mbox-cells" > @@ -71,20 +86,23 @@ additionalProperties: false > > examples: > - | > - #include <dt-bindings/clock/mt8173-clk.h> > + #include <dt-bindings/clock/mediatek,mt8188-clk.h> > #include <dt-bindings/interrupt-controller/arm-gic.h> > #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/mailbox/mediatek,mt8188-gce.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>; > + gce0: mailbox@10320000 { > + compatible = "mediatek,mt8188-gce"; Are these new properties only for mt8188? If so, then you need a schema saying that. If not, then this is an unnecessary change to the example. > + reg = <0 0x10320000 0 0x4000>; > + interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH 0>; > #mbox-cells = <2>; > - clocks = <&infracfg CLK_INFRA_GCE>; > + clocks = <&infracfg_ao CLK_INFRA_AO_GCE>; > clock-names = "gce"; > + mboxes = <&gce0 15 CMDQ_THR_PRIO_1>; The provider is also a consumer? > + mediatek,gce-events = <CMDQ_SYNC_TOKEN_SECURE_THR_EOF>; > }; > }; > -- > 2.18.0 >