The pin-controller is used to control the Soc pins.
There are two pin-controllers on Cix Sky1 platform.
One is used under S0 state, the other is used under
S0 and S5 state.
Signed-off-by: Gary Yang <gary.yang@cixtech.com>
---
.../bindings/pinctrl/cix,sky1-pinctrl.yaml | 84 +++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pinctrl/cix,sky1-pinctrl.yaml
diff --git a/Documentation/devicetree/bindings/pinctrl/cix,sky1-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/cix,sky1-pinctrl.yaml
new file mode 100644
index 000000000000..6c83eb47f974
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/cix,sky1-pinctrl.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/cix,sky1-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cix Sky1 Pin Controller
+
+maintainers:
+ - Gary Yang <gary.yang@cixtech.com>
+
+description:
+ The pin-controller is used to control Soc pins. There are two pin-controllers
+ on Cix Sky1 platform. one is used under S0 state, the other one is used under
+ S0 and S5 state.
+
+properties:
+ compatible:
+ enum:
+ - cix,sky1-iomuxc
+ - cix,sky1-iomuxc-s5
+
+ reg:
+ items:
+ - description: gpio base
+
+required:
+ - compatible
+ - reg
+
+# Client device subnode's properties
+patternProperties:
+ 'pins$':
+ type: object
+ additionalProperties: false
+ patternProperties:
+ '(^pins|pins?$)':
+ type: object
+ additionalProperties: false
+ description:
+ A pinctrl node should contain at least one subnodes representing the
+ pinctrl groups available on the machine. Each subnode will list the
+ pins it needs, and how they should be configured, with regard to muxer
+ configuration, pullups, and drive strength.
+
+ properties:
+ pinmux:
+ description:
+ Values are constructed from pin number and mux setting and are
+ defined as macros in arch/arm64/boot/dts/cix/sky1-pinfunc.h directly.
+
+ bias-disable: true
+
+ bias-pull-up: true
+
+ bias-pull-down: true
+
+ drive-strength:
+ description:
+ Can support 15 levels, from DS_LEVEL1 to DS_LEVEL15.
+ defined as macros in arch/arm64/boot/dts/cix/sky1-pinfunc.h.
+
+ required:
+ - pinmux
+
+additionalProperties: false
+
+examples:
+ # Pinmux controller node
+ - |
+ #define CIX_PAD_GPIO012_FUNC_GPIO012 (11 << 8 | 0x0)
+ #define DS_LEVEL4 (4)
+ iomuxc: pinctrl@4170000 {
+ compatible = "cix,sky1-iomuxc";
+ reg = <0x4170000 0x1000>;
+
+ wifi_vbat_gpio: wifi-vbat-gpio-pins {
+ pins {
+ pinmux = <CIX_PAD_GPIO012_FUNC_GPIO012>;
+ bias-pull-up;
+ drive-strength = <DS_LEVEL4>;
+ };
+ };
+ };
--
2.49.0
Hi Gary,
thanks for your patch!
On Tue, Oct 14, 2025 at 3:57 AM Gary Yang <gary.yang@cixtech.com> wrote:
> +# Client device subnode's properties
> +patternProperties:
> + 'pins$':
> + type: object
> + additionalProperties: false
> + patternProperties:
> + '(^pins|pins?$)':
> + type: object
> + additionalProperties: false
> + description:
> + A pinctrl node should contain at least one subnodes representing the
> + pinctrl groups available on the machine. Each subnode will list the
> + pins it needs, and how they should be configured, with regard to muxer
> + configuration, pullups, and drive strength.
> +
> + properties:
> + pinmux:
> + description:
> + Values are constructed from pin number and mux setting and are
> + defined as macros in arch/arm64/boot/dts/cix/sky1-pinfunc.h directly.
> +
> + bias-disable: true
> +
> + bias-pull-up: true
> +
> + bias-pull-down: true
> +
> + drive-strength:
> + description:
> + Can support 15 levels, from DS_LEVEL1 to DS_LEVEL15.
> + defined as macros in arch/arm64/boot/dts/cix/sky1-pinfunc.h.
> +
> + required:
> + - pinmux
Can't you just include both pinmux-node.yaml and pincfg-node.yaml
to get validation from the generic schemas?
'pins$':
type: object
additionalProperties: false
patternProperties:
'(^pins|pins?$)':
type: object
$ref: /schemas/pinctrl/pinmux-node.yaml
$ref: /schemas/pinctrl/pincfg-node.yaml
additionalProperties: false
Something like this, I never get this right before actually testcompiling...
Yours,
Linus Walleij
© 2016 - 2025 Red Hat, Inc.