[PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
Xu Yang
xu.yang_2 at nxp.com
Thu Jan 18 23:19:33 PST 2024
Change reg, interrupts, clock and clock-names as common properties and add
restrictions on them for different compatibles.
Signed-off-by: Xu Yang <xu.yang_2 at nxp.com>
---
Changes in v4:
- new patch since v3's discussion
- split the reg, interrupts, clock and clock-names properties into
common part and device-specific
---
.../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
1 file changed, 102 insertions(+), 16 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
index b7e664f7395b..78e30ca0a8ca 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
@@ -73,22 +73,10 @@ properties:
- nuvoton,npcm845-udc
- const: nuvoton,npcm750-udc
- reg:
- minItems: 1
- maxItems: 2
-
- interrupts:
- minItems: 1
- maxItems: 2
-
- clocks:
- minItems: 1
- maxItems: 3
-
- clock-names:
- minItems: 1
- maxItems: 3
-
+ reg: true
+ interrupts: true
+ clocks: true
+ clock-names: true
dr_mode: true
power-domains:
@@ -412,6 +400,104 @@ allOf:
samsung,picophy-pre-emp-curr-control: false
samsung,picophy-dc-vol-level-adjust: false
+ - if:
+ properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: fsl,imx27-usb
+ - items:
+ - enum:
+ - fsl,imx25-usb
+ - fsl,imx35-usb
+ - const: fsl,imx27-usb
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ minItems: 3
+ maxItems: 3
+ items:
+ anyOf:
+ - const: ipg
+ - const: ahb
+ - const: per
+
+ - if:
+ properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: qcom,ci-hdrc
+ then:
+ properties:
+ reg:
+ minItems: 2
+ maxItems: 2
+ interrupts:
+ minItems: 1
+ maxItems: 2
+ clocks:
+ minItems: 2
+ maxItems: 3
+ clock-names:
+ minItems: 2
+ maxItems: 3
+ items:
+ anyOf:
+ - const: core
+ - const: iface
+ - const: fs
+ description: optional
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ oneOf:
+ - const: chipidea,usb2
+ - const: fsl,imx23-usb
+ - const: fsl,imx28-usb
+ - const: fsl,imx7d-usb
+ - const: fsl,vf610-usb
+ - const: lsi,zevio-usb
+ - const: nuvoton,npcm750-udc
+ - pattern: '^fsl,imx5[0-3]+-usb$'
+ - pattern: '^fsl,imx6[a-z]+-usb$'
+ - pattern: '^nvidia,tegra[0-9]+-ehci$'
+ - pattern: '^nvidia,tegra[0-9]+-udc$'
+ then:
+ properties:
+ clocks:
+ minItems: 1
+ maxItems: 1
+ clock-names:
+ minItems: 1
+ maxItems: 1
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ oneOf:
+ - const: chipidea,usb2
+ - const: fsl,imx27-usb
+ - const: fsl,imx6ul-usb
+ - const: lsi,zevio-usb
+ - const: nuvoton,npcm750-udc
+ - pattern: '^nvidia,tegra[0-9]+-ehci$'
+ - pattern: '^nvidia,tegra[0-9]+-udc$'
+ then:
+ properties:
+ reg:
+ minItems: 1
+ maxItems: 1
+ interrupts:
+ minItems: 1
+ maxItems: 1
+
unevaluatedProperties: false
examples:
--
2.34.1
More information about the linux-arm-kernel
mailing list