summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Dooley <conor.dooley@microchip.com>2026-02-24 16:39:05 +0300
committerLinus Walleij <linusw@kernel.org>2026-02-27 03:18:49 +0300
commita901e8705f89f3616fad3bb6aeddba33be86b08a (patch)
tree8fd9bed7cd2a0a824eb6e10f465961780074b272
parent9c105255108b57f0b0241ee488e5b84d6196789c (diff)
downloadlinux-a901e8705f89f3616fad3bb6aeddba33be86b08a.tar.xz
dt-bindings: pinctrl: pincfg-node: add restrictions on conflicting properties
Many of the possible pincfg properties are not compatible with one another, either because they represent mutually exclusive states for a pin or because they provide the same information in different units. Add some simple restrictions to prevent invalid configurations. Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
-rw-r--r--Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml105
1 files changed, 98 insertions, 7 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml b/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml
index a916d0fc79a9..fe936ab09104 100644
--- a/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml
@@ -162,12 +162,103 @@ properties:
this affects the expected delay in ps before latching a value to
an output pin.
-if:
- required:
- - skew-delay
-then:
- properties:
- skew-delay-input-ps: false
- skew-delay-output-ps: false
+allOf:
+ - if:
+ required:
+ - skew-delay
+ then:
+ properties:
+ skew-delay-input-ps: false
+ skew-delay-output-ps: false
+
+ - if:
+ required:
+ - input-disable
+ then:
+ properties:
+ input-enable: false
+
+ - if:
+ required:
+ - output-disable
+ then:
+ properties:
+ output-enable: false
+ output-impedance-ohms: false
+
+ - if:
+ required:
+ - output-low
+ then:
+ properties:
+ output-high: false
+
+ - if:
+ required:
+ - low-power-enable
+ then:
+ properties:
+ low-power-disable: false
+
+ - if:
+ required:
+ - input-schmitt-disable
+ then:
+ properties:
+ input-schmitt-enable: false
+ input-schmitt-microvolt: false
+
+ - if:
+ required:
+ - drive-strength
+ then:
+ properties:
+ drive-strength-microamp: false
+
+ - if:
+ anyOf:
+ - required:
+ - drive-open-source
+ - required:
+ - drive-open-drain
+ - required:
+ - drive-push-pull
+ then:
+ oneOf:
+ - required:
+ - drive-open-source
+ - required:
+ - drive-open-drain
+ - required:
+ - drive-push-pull
+
+ - if:
+ anyOf:
+ - required:
+ - bias-disable
+ - required:
+ - bias-high-impedance
+ - required:
+ - bias-bus-hold
+ - required:
+ - bias-pull-up
+ - required:
+ - bias-pull-down
+ - required:
+ - bias-pull-pin-default
+ then:
+ oneOf:
+ - required:
+ - bias-disable
+ - required:
+ - bias-high-impedance
+ - required:
+ - bias-bus-hold
+ - required:
+ - bias-pull-up
+ - required:
+ - bias-pull-down
+ - required:
+ - bias-pull-pin-default
additionalProperties: true