Hi Krzysztof, On Wed, Jul 27, 2022 at 10:54 AM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 27/07/2022 11:05, Lad, Prabhakar wrote: > > Hi Krzysztof, > > > > Thank you for the review. > > > > On Wed, Jul 27, 2022 at 9:54 AM Krzysztof Kozlowski > > <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> > >> On 26/07/2022 20:06, Lad Prabhakar wrote: > >>> Document Renesas RZ/Five (R9A07G043) SoC and SMARC EVK based on this SoC. > >>> > >>> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > >>> --- > >>> .../devicetree/bindings/riscv/renesas.yaml | 49 +++++++++++++++++++ > >>> 1 file changed, 49 insertions(+) > >>> create mode 100644 Documentation/devicetree/bindings/riscv/renesas.yaml > >>> > >>> diff --git a/Documentation/devicetree/bindings/riscv/renesas.yaml b/Documentation/devicetree/bindings/riscv/renesas.yaml > >>> new file mode 100644 > >>> index 000000000000..f72f8aea6a82 > >>> --- /dev/null > >>> +++ b/Documentation/devicetree/bindings/riscv/renesas.yaml > >>> @@ -0,0 +1,49 @@ > >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >>> +%YAML 1.2 > >>> +--- > >>> +$id: http://devicetree.org/schemas/riscv/renesas.yaml# > >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# > >>> + > >>> +title: Renesas RZ/Five Platform Device Tree Bindings > >>> + > >>> +maintainers: > >>> + - Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > >>> + - Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > >>> + > >>> +# We want to ignore this schema if the board is SMARC EVK based on ARM64 arch > >>> +select: > >>> + not: > >>> + properties: > >>> + compatible: > >>> + contains: > >>> + items: > >> > >> I think you should rather ignore the RiscV SoCs, not specific board. > >> > > You mean to ignore ARM/64 SoCs? > > > > Agreed just the below enum, should do the trick. > > > > - enum: > > - renesas,r9a07g043u11 > > - renesas,r9a07g043u12 > > - renesas,r9a07g044c1 > > - renesas,r9a07g044c2 > > - renesas,r9a07g044l1 > > - renesas,r9a07g044l2 > > - renesas,r9a07g054l1 > > - renesas,r9a07g054l2 > > > > > >>> + - const: renesas,smarc-evk > >>> + - enum: > >>> + - renesas,r9a07g043u11 > >>> + - renesas,r9a07g043u12 > >>> + - renesas,r9a07g044c1 > >>> + - renesas,r9a07g044c2 > >>> + - renesas,r9a07g044l1 > >>> + - renesas,r9a07g044l2 > >>> + - renesas,r9a07g054l1 > >>> + - renesas,r9a07g054l2 > >>> + - enum: > >>> + - renesas,r9a07g043 > >>> + - renesas,r9a07g044 > >>> + - renesas,r9a07g054 > >> > >> Did you actually test that it works and properly matches? > >> > > Yes I have run the dtbs_check and dt_binding _check for ARM64 and > > RISC-V. Do you see any cases where it can fail? > > > Just remove the renesas,smarc-evk2 from > arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts. Do you see the > error? Not from this schema. The only error you will see is that no > matching schema was found. > I did run the dtbs_check test as per your suggestion (below is the log) and didn't see "no matching schema error" prasmi@prasmi:~/work/linux$ git diff diff --git a/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts b/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts index 121e55282d18..b8129d85515f 100644 --- a/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts +++ b/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts @@ -11,5 +11,5 @@ / { model = "Renesas SMARC EVK based on r9a07g043u11"; - compatible = "renesas,smarc-evk", "renesas,r9a07g043u11", "renesas,r9a07g043"; + compatible = "renesas,r9a07g043u11", "renesas,r9a07g043"; }; prasmi@prasmi:~/work/linux$ rm Documentation/devicetree/bindings/processed-schema.json arch/arm64/boot/dts/renesas/*.dtb prasmi@prasmi:~/work/linux$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs_check -j6 LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json DTC arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb DTC arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dtb DTC arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dtb DTC arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dtb DTC arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dtb CHECK arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb CHECK arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dtb CHECK arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dtb CHECK arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dtb CHECK arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dtb /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dtb: flash@0: compatible: 'oneOf' conditional failed, one must be fixed: ['micron,mt25qu512a', 'jedec,spi-nor'] is too long 'micron,mt25qu512a' does not match '^((((micron|spansion|st),)?(m25p(40|80|16|32|64|128)|n25q(32b|064|128a11|128a13|256a|512a|164k)))|atmel,at25df(321a|641|081a)|everspin,mr25h(10|40|128|256)|(mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|(mxicy|macronix),mx25u(4033|4035)|(spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|(sst|microchip),sst25vf(016b|032b|040b)|(sst,)?sst26wf016b|(sst,)?sst25wf(040b|080)|winbond,w25x(80|32)|(winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$' 'micron,mt25qu512a' is not one of ['issi,is25lp016d', 'micron,mt25qu02g', 'mxicy,mx25r1635f', 'mxicy,mx25u6435f', 'mxicy,mx25v8035f', 'spansion,s25sl12801', 'spansion,s25fs512s'] 'jedec,spi-nor' was expected From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dtb:0:0: /soc/spi@10060000/flash@0: failed to match any schema with compatible: ['micron,mt25qu512a', 'jedec,spi-nor'] /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb: pinctrl@11030000: 'interrupt-controller' is a required property From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb: pinctrl@11030000: '#interrupt-cells' is a required property From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dtb: pinctrl@11030000: #address-cells: 'anyOf' conditional failed, one must be fixed: [[2]] is not of type 'object' From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dtb: flash@0: compatible: 'oneOf' conditional failed, one must be fixed: ['micron,mt25qu512a', 'jedec,spi-nor'] is too long 'micron,mt25qu512a' does not match '^((((micron|spansion|st),)?(m25p(40|80|16|32|64|128)|n25q(32b|064|128a11|128a13|256a|512a|164k)))|atmel,at25df(321a|641|081a)|everspin,mr25h(10|40|128|256)|(mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|(mxicy|macronix),mx25u(4033|4035)|(spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|(sst|microchip),sst25vf(016b|032b|040b)|(sst,)?sst26wf016b|(sst,)?sst25wf(040b|080)|winbond,w25x(80|32)|(winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$' 'micron,mt25qu512a' is not one of ['issi,is25lp016d', 'micron,mt25qu02g', 'mxicy,mx25r1635f', 'mxicy,mx25u6435f', 'mxicy,mx25v8035f', 'spansion,s25sl12801', 'spansion,s25fs512s'] 'jedec,spi-nor' was expected From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dtb:0:0: /soc/spi@10060000/flash@0: failed to match any schema with compatible: ['micron,mt25qu512a', 'jedec,spi-nor'] /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dtb: pinctrl@11030000: #address-cells: 'anyOf' conditional failed, one must be fixed: [[2]] is not of type 'object' From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dtb: flash@0: compatible: 'oneOf' conditional failed, one must be fixed: ['micron,mt25qu512a', 'jedec,spi-nor'] is too long 'micron,mt25qu512a' does not match '^((((micron|spansion|st),)?(m25p(40|80|16|32|64|128)|n25q(32b|064|128a11|128a13|256a|512a|164k)))|atmel,at25df(321a|641|081a)|everspin,mr25h(10|40|128|256)|(mxicy|macronix),mx25l(4005a|1606e|6405d|8005|12805d|25635e)|(mxicy|macronix),mx25u(4033|4035)|(spansion,)?s25fl(128s|256s1|512s|008k|064k|164k)|(sst|microchip),sst25vf(016b|032b|040b)|(sst,)?sst26wf016b|(sst,)?sst25wf(040b|080)|winbond,w25x(80|32)|(winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$' 'micron,mt25qu512a' is not one of ['issi,is25lp016d', 'micron,mt25qu02g', 'mxicy,mx25r1635f', 'mxicy,mx25u6435f', 'mxicy,mx25v8035f', 'spansion,s25sl12801', 'spansion,s25fs512s'] 'jedec,spi-nor' was expected From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dtb:0:0: /soc/spi@10060000/flash@0: failed to match any schema with compatible: ['micron,mt25qu512a', 'jedec,spi-nor'] /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb: usbphy-ctrl@11c40000: compatible:0: 'renesas,r9a07g043-usbphy-ctrl' is not one of ['renesas,r9a07g044-usbphy-ctrl', 'renesas,r9a07g054-usbphy-ctrl'] From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dtb:0:0: /soc/usbphy-ctrl@11c40000: failed to match any schema with compatible: ['renesas,r9a07g043-usbphy-ctrl', 'renesas,rzg2l-usbphy-ctrl'] /home/prasmi/work/linux/arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dtb: pinctrl@11030000: #address-cells: 'anyOf' conditional failed, one must be fixed: [[2]] is not of type 'object' From schema: /home/prasmi/work/linux/Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml prasmi@prasmi:~/work/linux$ prasmi@prasmi:~/work/linux$ Note: I am using dtschema version 2022.7. > I don't think you can use such selects... > > Best regards, > Krzysztof Cheers, Prabhakar