On Tue 27 Jul 22:58 CDT 2021, Tinghan Shen wrote: > Convert the mtk,scp binding to DT schema format using json-schema. > > Signed-off-by: Tinghan Shen <tinghan.shen@xxxxxxxxxxxx> > --- > .../bindings/remoteproc/mtk,scp.txt | 41 --------- > .../bindings/remoteproc/mtk,scp.yaml | 85 +++++++++++++++++++ > 2 files changed, 85 insertions(+), 41 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.txt > create mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.txt b/Documentation/devicetree/bindings/remoteproc/mtk,scp.txt > deleted file mode 100644 > index 88f37dee7bca..000000000000 > --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.txt > +++ /dev/null > @@ -1,41 +0,0 @@ > -Mediatek SCP Bindings > ----------------------------------------- > - > -This binding provides support for ARM Cortex M4 Co-processor found on some > -Mediatek SoCs. > - > -Required properties: > -- compatible Should be one of: > - "mediatek,mt8183-scp" > - "mediatek,mt8192-scp" > - "mediatek,mt8195-scp" > -- reg Should contain the address ranges for memory regions: > - SRAM, CFG, and L1TCM. > -- reg-names Contains the corresponding names for the memory regions: > - "sram", "cfg", and "l1tcm". > -- clocks Required by mt8183 and mt8192. Clock for co-processor > - (See: ../clock/clock-bindings.txt) > -- clock-names Required by mt8183 and mt8192. Contains the > - corresponding name for the clock. This should be > - named "main". > - > -Subnodes > --------- > - > -Subnodes of the SCP represent rpmsg devices. The names of the devices are not > -important. The properties of these nodes are defined by the individual bindings > -for the rpmsg devices - but must contain the following property: > - > -- mtk,rpmsg-name Contains the name for the rpmsg device. Used to match > - the subnode to rpmsg device announced by SCP. > - > -Example: > - > - scp: scp@10500000 { > - compatible = "mediatek,mt8183-scp"; > - reg = <0 0x10500000 0 0x80000>, > - <0 0x105c0000 0 0x5000>; > - reg-names = "sram", "cfg"; > - clocks = <&infracfg CLK_INFRA_SCPSYS>; > - clock-names = "main"; > - }; > diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > new file mode 100644 > index 000000000000..dc5fcbe65dae > --- /dev/null > +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml > @@ -0,0 +1,85 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/remoteproc/mtk,scp.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Mediatek SCP Bindings > + > +maintainers: > + - Tinghan Shen <tinghan.shen@xxxxxxxxxxxx> > + > +description: > + This binding provides support for ARM Cortex M4 Co-processor found on some > + Mediatek SoCs. > + > +properties: > + compatible: > + enum: > + - mediatek,mt8183-scp > + - mediatek,mt8192-scp > + - mediatek,mt8195-scp > + > + reg: > + description: | The '|' means that you want to preserve the formatting of the text segment, there's no need for that. > + Should contain the address ranges for memory regions SRAM and CFG, > + maxItems: 2 > + > + reg-names: > + description: | > + Contains the corresponding names for the two memory regions. These > + should be named "sram", "cfg". reg-names: items: - sram - cfg > + > + clocks: > + description: | > + Clock for co-processor (see ../clock/clock-bindings.txt). > + Required by mt8183 and mt8192. > + maxItems: 1 > + > + clock-names: > + description: | > + Contains the corresponding name for the clock. This should be > + named "main". Required by mt8183 and mt8192. clock-names: const: main > + > +required: > + - compatible > + - reg > + - reg-names The old binding, and the comment about clocks above, says that clocks and clock-names are required for mt8183 and mt8192. > + > +patternProperties: > + ".*": > + if: > + type: object > + then: > + description: > + Subnodes of the SCP represent rpmsg devices. The names of the devices > + are not important. The properties of these nodes are defined by the > + individual bindings for the rpmsg devices. > + > + properties: > + mtk,rpmsg-name: > + description: > + Contains the name for the rpmsg device. Used to match > + the subnode to rpmsg device announced by SCP. > + > + required: > + - mtk,rpmsg-name > + > +additionalProperties: true What additional properties do you expect? > + > +examples: > + - | > + #include <dt-bindings/clock/mt8183-clk.h> > + > + soc { > + #address-cells = <2>; > + #size-cells = <2>; Skip soc and the two #-cells, and rewrite the reg to only use 1 address and size-cell. > + scp: scp@10500000 { The label doesn't add value in the example, please skip this. > + compatible = "mediatek,mt8183-scp"; > + reg = <0 0x10500000 0 0x80000>, > + <0 0x105c0000 0 0x5000>; > + reg-names = "sram", "cfg"; > + clocks = <&infracfg CLK_INFRA_SCPSYS>; > + clock-names = "main"; Can you please also add a subnode, to capture that part of the binding as well? Regards, Bjorn > + }; > + }; > -- > 2.18.0 >