Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: renesas: Document preferred compatible naming

Compatibles can come in two formats. Either "vendor,ip-soc" or
"vendor,soc-ip". Add a DT schema file documenting Renesas preferred
policy and enforcing it for all new compatibles, except few existing
patterns.

Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240213224259.2967533-1-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

authored by

Niklas Söderlund and committed by
Geert Uytterhoeven
3a9856e8 ce3e7d48

+73
+73
Documentation/devicetree/bindings/soc/renesas/renesas-soc.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/soc/renesas/renesas-soc.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Renesas SoC compatibles naming convention 8 + 9 + maintainers: 10 + - Geert Uytterhoeven <geert+renesas@glider.be> 11 + - Niklas Söderlund <niklas.soderlund@ragnatech.se> 12 + 13 + description: | 14 + Guidelines for new compatibles for SoC blocks/components. 15 + When adding new compatibles in new bindings, use the format:: 16 + renesas,SoC-IP 17 + 18 + For example:: 19 + renesas,r8a77965-csi2 20 + 21 + When adding new compatibles to existing bindings, use the format in the 22 + existing binding, even if it contradicts the above. 23 + 24 + select: 25 + properties: 26 + compatible: 27 + contains: 28 + pattern: "^renesas,.+-.+$" 29 + required: 30 + - compatible 31 + 32 + properties: 33 + compatible: 34 + minItems: 1 35 + maxItems: 4 36 + items: 37 + anyOf: 38 + # Preferred naming style for compatibles of SoC components 39 + - pattern: "^renesas,(emev2|r(7s|8a|9a)[a-z0-9]+|rcar|rmobile|rz[a-z0-9]*|sh(7[a-z0-9]+)?|mobile)-[a-z0-9-]+$" 40 + - pattern: "^renesas,(condor|falcon|gr-peach|salvator|sk-rz|smar(c(2)?)?|spider|white-hawk)(.*)?$" 41 + 42 + # Legacy compatibles 43 + # 44 + # New compatibles are not allowed. 45 + - pattern: "^renesas,(can|cpg|dmac|du|(g)?ether(avb)?|gpio|hscif|(r)?i[i2]c|imr|intc|ipmmu|irqc|jpu|mmcif|msiof|mtu2|pci(e)?|pfc|pwm|[rq]spi|rcar_sound|sata|scif[ab]*|sdhi|thermal|tmu|tpu|usb(2|hs)?|vin|xhci)-[a-z0-9-]+$" 46 + - pattern: "^renesas,(d|s)?bsc(3)?-(r8a73a4|r8a7740|sh73a0)$" 47 + - pattern: "^renesas,em-(gio|sti|uart)$" 48 + - pattern: "^renesas,fsi2-(r8a7740|sh73a0)$" 49 + - pattern: "^renesas,hspi-r8a777[89]$" 50 + - pattern: "^renesas,sysc-(r8a73a4|r8a7740|rmobile|sh73a0)$" 51 + - enum: 52 + - renesas,imr-lx4 53 + - renesas,mtu2-r7s72100 54 + 55 + # None SoC component compatibles 56 + # 57 + # Compatibles with the Renesas vendor prefix that do not relate to any SoC 58 + # component are OK. New compatibles are allowed. 59 + - enum: 60 + - renesas,smp-sram 61 + 62 + # Do not fail compatibles not matching the select pattern 63 + # 64 + # Some SoC components in addition to a Renesas compatible list 65 + # compatibles not related to Renesas. The select pattern for this 66 + # schema hits all compatibles that have at lest one Renesas compatible 67 + # and try to validate all values in that compatible array, allow all 68 + # that don't match the schema select pattern. For example, 69 + # 70 + # compatible = "renesas,r9a07g044-mali", "arm,mali-bifrost"; 71 + - pattern: "^(?!renesas,.+-.+).+$" 72 + 73 + additionalProperties: true