[PATCH 1/4] dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: add bindings

From: Théo Lebrun
Date: Mon Dec 18 2023 - 12:20:47 EST


Add dt-schema type bindings for the Mobileye EyeQ5 pin controller.

Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx>
---
.../bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml | 125 +++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 126 insertions(+)

diff --git a/Documentation/devicetree/bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml
new file mode 100644
index 000000000000..5faddebe2413
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml
@@ -0,0 +1,125 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/mobileye,eyeq5-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mobileye EyeQ5 pinctrl (pinmux & pinconf) controller
+
+description:
+ The EyeQ5 pin controller handles a pin bank. It is custom to this platform,
+ its registers live in a shared region called OLB.
+ There are two pin banks on the platform, each having a specific compatible.
+ Pins and groups are bijective.
+
+maintainers:
+ - Grégory Clement <gregory.clement@xxxxxxxxxxx>
+ - Théo Lebrun <theo.lebrun@xxxxxxxxxxx>
+ - Vladimir Kondratiev <vladimir.kondratiev@xxxxxxxxxxxx>
+
+properties:
+ $nodename:
+ pattern: "^pinctrl([0-9]+)?$"
+ description:
+ We have no unique address, we rely on OLB; we therefore can't keep the
+ standard pattern and cannot inherit from pinctrl.yaml.
+
+ compatible:
+ enum:
+ - mobileye,eyeq5-a-pinctrl
+ - mobileye,eyeq5-b-pinctrl
+
+ "#pinctrl-cells":
+ const: 1
+
+ mobileye,olb:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ A phandle to the OLB syscon. This is a fallback to using the parent as
+ syscon node.
+
+required:
+ - compatible
+ - "#pinctrl-cells"
+
+patternProperties:
+ "-pins?$":
+ type: object
+ description: Pin muxing configuration.
+ $ref: pinmux-node.yaml#
+ additionalProperties: false
+ properties:
+ pins: true
+ function: true
+ bias-disable: true
+ bias-pull-down: true
+ bias-pull-up: true
+ drive-strength: true
+ required:
+ - pins
+ - function
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mobileye,eyeq5-a-pinctrl
+ then:
+ patternProperties:
+ "-pins?$":
+ properties:
+ function:
+ enum: [gpio, timer0, timer1, timer2, timer5, uart0, uart1, can0,
+ can1, spi0, spi1, refclk0]
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mobileye,eyeq5-b-pinctrl
+ then:
+ patternProperties:
+ "-pins?$":
+ properties:
+ function:
+ enum: [gpio, timer3, timer4, timer6, uart2, can2, spi2, spi3,
+ mclk0]
+
+additionalProperties: false
+
+examples:
+ - |
+ olb@e00000 {
+ compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd";
+ reg = <0xe00000 0x400>;
+ reg-io-width = <4>;
+
+ pinctrl0 {
+ compatible = "mobileye,eyeq5-a-pinctrl";
+ #pinctrl-cells = <1>;
+ };
+
+ pinctrl1 {
+ compatible = "mobileye,eyeq5-b-pinctrl";
+ #pinctrl-cells = <1>;
+ };
+ };
+ - |
+ olb: olb@e00000 {
+ compatible = "mobileye,eyeq5-olb", "syscon", "simple-mfd";
+ reg = <0xe00000 0x400>;
+ reg-io-width = <4>;
+ };
+
+ pinctrl0 {
+ compatible = "mobileye,eyeq5-a-pinctrl";
+ #pinctrl-cells = <1>;
+ mobileye,olb = <&olb>;
+ };
+
+ pinctrl1 {
+ compatible = "mobileye,eyeq5-b-pinctrl";
+ #pinctrl-cells = <1>;
+ mobileye,olb = <&olb>;
+ };
+
diff --git a/MAINTAINERS b/MAINTAINERS
index 138e0303c5da..d8d9583a5a06 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14553,6 +14553,7 @@ M: Théo Lebrun <theo.lebrun@xxxxxxxxxxx>
L: linux-mips@xxxxxxxxxxxxxxx
S: Maintained
F: Documentation/devicetree/bindings/mips/mobileye.yaml
+F: Documentation/devicetree/bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml
F: Documentation/devicetree/bindings/reset/mobileye,eyeq5-reset.yaml
F: arch/mips/boot/dts/mobileye/
F: arch/mips/configs/generic/board-eyeq5.config

--
2.43.0