[PATCH v2 10/15] arm64: dts: st: introduce stm32mp21 pinctrl files

Antonio Borneo posted 15 patches 1 week, 6 days ago
[PATCH v2 10/15] arm64: dts: st: introduce stm32mp21 pinctrl files
Posted by Antonio Borneo 1 week, 6 days ago
From: Amelie Delaunay <amelie.delaunay@foss.st.com>

Four packages exist for stm32mp21 dies. As ball-out is different between
them, this patch cover those differences by introducing dedicated pinctrl
dtsi files. Each dtsi pinctrl package file describes the package ball-out
through gpio-ranges.

Available packages are:
STM32MP21xxAL: 10*10 VFBGA361 / 123 GPIOs
STM32MP21xxAM: 14*14 VFBGA289 / 123 GPIOs
STM32MP21xxAN: 11*11 VFBGA273 / 123 GPIOs
STM32MP21xxAO: 8*8 VFBGA225 / 98 GPIOs

It includes also the common file used for pin groups definition.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp21-pinctrl.dtsi |  6 ++
 .../boot/dts/st/stm32mp21xxal-pinctrl.dtsi    | 71 +++++++++++++++++++
 .../boot/dts/st/stm32mp21xxam-pinctrl.dtsi    | 71 +++++++++++++++++++
 .../boot/dts/st/stm32mp21xxan-pinctrl.dtsi    | 71 +++++++++++++++++++
 .../boot/dts/st/stm32mp21xxao-pinctrl.dtsi    | 63 ++++++++++++++++
 5 files changed, 282 insertions(+)
 create mode 100644 arch/arm64/boot/dts/st/stm32mp21-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp21xxal-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp21xxam-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp21xxan-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/st/stm32mp21xxao-pinctrl.dtsi

diff --git a/arch/arm64/boot/dts/st/stm32mp21-pinctrl.dtsi b/arch/arm64/boot/dts/st/stm32mp21-pinctrl.dtsi
new file mode 100644
index 0000000000000..7e9b74f3d9d96
--- /dev/null
+++ b/arch/arm64/boot/dts/st/stm32mp21-pinctrl.dtsi
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024-2025, STMicroelectronics - All Rights Reserved
+ * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
+ */
+#include <dt-bindings/pinctrl/stm32-pinfunc.h>
diff --git a/arch/arm64/boot/dts/st/stm32mp21xxal-pinctrl.dtsi b/arch/arm64/boot/dts/st/stm32mp21xxal-pinctrl.dtsi
new file mode 100644
index 0000000000000..7acf8a7e40e62
--- /dev/null
+++ b/arch/arm64/boot/dts/st/stm32mp21xxal-pinctrl.dtsi
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2024-2025 - All Rights Reserved
+ * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
+ */
+
+&pinctrl {
+	st,package = "AL";
+
+	gpioa: gpio@44240000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 0 16>;
+		status = "okay";
+	};
+
+	gpiob: gpio@44250000 {
+		ngpios = <13>;
+		gpio-ranges = <&pinctrl 1 17 3>, <&pinctrl 5 21 3>, <&pinctrl 9 25 7>;
+		status = "okay";
+	};
+
+	gpioc: gpio@44260000 {
+		ngpios = <14>;
+		gpio-ranges = <&pinctrl 0 32 14>;
+		status = "okay";
+	};
+
+	gpiod: gpio@44270000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 48 16>;
+		status = "okay";
+	};
+
+	gpioe: gpio@44280000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 64 16>;
+		status = "okay";
+	};
+
+	gpiof: gpio@44290000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 80 14>, <&pinctrl 15 95 1>;
+		status = "okay";
+	};
+
+	gpiog: gpio@442a0000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 96 6>, <&pinctrl 7 103 9>;
+		status = "okay";
+	};
+
+	gpioh: gpio@442b0000 {
+		ngpios = <9>;
+		gpio-ranges = <&pinctrl 4 116 2>, <&pinctrl 7 119 7>;
+		status = "okay";
+	};
+
+	gpioi: gpio@442c0000 {
+		ngpios = <6>;
+		gpio-ranges = <&pinctrl 0 128 2>, <&pinctrl 4 132 3>, <&pinctrl 8 136 1>;
+		status = "okay";
+	};
+};
+
+&pinctrl_z {
+	gpioz: gpio@46200000 {
+		ngpios = <3>;
+		gpio-ranges = <&pinctrl_z 0 400 2>, <&pinctrl_z 3 403 1>;
+		status = "okay";
+	};
+};
diff --git a/arch/arm64/boot/dts/st/stm32mp21xxam-pinctrl.dtsi b/arch/arm64/boot/dts/st/stm32mp21xxam-pinctrl.dtsi
new file mode 100644
index 0000000000000..2e66028f50a6c
--- /dev/null
+++ b/arch/arm64/boot/dts/st/stm32mp21xxam-pinctrl.dtsi
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2024-2025 - All Rights Reserved
+ * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
+ */
+
+&pinctrl {
+	st,package = "AM";
+
+	gpioa: gpio@44240000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 0 16>;
+		status = "okay";
+	};
+
+	gpiob: gpio@44250000 {
+		ngpios = <13>;
+		gpio-ranges = <&pinctrl 1 17 3>, <&pinctrl 5 21 3>, <&pinctrl 9 25 7>;
+		status = "okay";
+	};
+
+	gpioc: gpio@44260000 {
+		ngpios = <14>;
+		gpio-ranges = <&pinctrl 0 32 14>;
+		status = "okay";
+	};
+
+	gpiod: gpio@44270000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 48 16>;
+		status = "okay";
+	};
+
+	gpioe: gpio@44280000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 64 16>;
+		status = "okay";
+	};
+
+	gpiof: gpio@44290000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 80 14>, <&pinctrl 15 95 1>;
+		status = "okay";
+	};
+
+	gpiog: gpio@442a0000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 96 6>, <&pinctrl 7 103 9>;
+		status = "okay";
+	};
+
+	gpioh: gpio@442b0000 {
+		ngpios = <9>;
+		gpio-ranges = <&pinctrl 4 116 2>, <&pinctrl 7 119 7>;
+		status = "okay";
+	};
+
+	gpioi: gpio@442c0000 {
+		ngpios = <6>;
+		gpio-ranges = <&pinctrl 0 128 2>, <&pinctrl 4 132 3>, <&pinctrl 8 136 1>;
+		status = "okay";
+	};
+};
+
+&pinctrl_z {
+	gpioz: gpio@46200000 {
+		ngpios = <3>;
+		gpio-ranges = <&pinctrl_z 0 400 2>, <&pinctrl_z 3 403 1>;
+		status = "okay";
+	};
+};
diff --git a/arch/arm64/boot/dts/st/stm32mp21xxan-pinctrl.dtsi b/arch/arm64/boot/dts/st/stm32mp21xxan-pinctrl.dtsi
new file mode 100644
index 0000000000000..0e48f411262f1
--- /dev/null
+++ b/arch/arm64/boot/dts/st/stm32mp21xxan-pinctrl.dtsi
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2024-2025 - All Rights Reserved
+ * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
+ */
+
+&pinctrl {
+	st,package = "AN";
+
+	gpioa: gpio@44240000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 0 16>;
+		status = "okay";
+	};
+
+	gpiob: gpio@44250000 {
+		ngpios = <13>;
+		gpio-ranges = <&pinctrl 1 17 3>, <&pinctrl 5 21 3>, <&pinctrl 9 25 7>;
+		status = "okay";
+	};
+
+	gpioc: gpio@44260000 {
+		ngpios = <14>;
+		gpio-ranges = <&pinctrl 0 32 14>;
+		status = "okay";
+	};
+
+	gpiod: gpio@44270000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 48 16>;
+		status = "okay";
+	};
+
+	gpioe: gpio@44280000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 64 16>;
+		status = "okay";
+	};
+
+	gpiof: gpio@44290000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 80 14>, <&pinctrl 15 95 1>;
+		status = "okay";
+	};
+
+	gpiog: gpio@442a0000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 96 6>, <&pinctrl 7 103 9>;
+		status = "okay";
+	};
+
+	gpioh: gpio@442b0000 {
+		ngpios = <9>;
+		gpio-ranges = <&pinctrl 4 116 2>, <&pinctrl 7 119 7>;
+		status = "okay";
+	};
+
+	gpioi: gpio@442c0000 {
+		ngpios = <6>;
+		gpio-ranges = <&pinctrl 0 128 2>, <&pinctrl 4 132 3>, <&pinctrl 8 136 1>;
+		status = "okay";
+	};
+};
+
+&pinctrl_z {
+	gpioz: gpio@46200000 {
+		ngpios = <3>;
+		gpio-ranges = <&pinctrl_z 0 400 2>, <&pinctrl_z 3 403 1>;
+		status = "okay";
+	};
+};
diff --git a/arch/arm64/boot/dts/st/stm32mp21xxao-pinctrl.dtsi b/arch/arm64/boot/dts/st/stm32mp21xxao-pinctrl.dtsi
new file mode 100644
index 0000000000000..0c4ed4a6d6401
--- /dev/null
+++ b/arch/arm64/boot/dts/st/stm32mp21xxao-pinctrl.dtsi
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2024-2025 - All Rights Reserved
+ * Author: Amelie Delaunay <amelie.delaunay@foss.st.com> for STMicroelectronics.
+ */
+
+&pinctrl {
+	st,package = "AO";
+
+	gpioa: gpio@44240000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 0 12>, <&pinctrl 13 13 3>;
+		status = "okay";
+	};
+
+	gpiob: gpio@44250000 {
+		ngpios = <5>;
+		gpio-ranges = <&pinctrl 11 27 5>;
+		status = "okay";
+	};
+
+	gpioc: gpio@44260000 {
+		ngpios = <14>;
+		gpio-ranges = <&pinctrl 0 32 14>;
+		status = "okay";
+	};
+
+	gpiod: gpio@44270000 {
+		ngpios = <16>;
+		gpio-ranges = <&pinctrl 0 48 16>;
+		status = "okay";
+	};
+
+	gpioe: gpio@44280000 {
+		ngpios = <14>;
+		gpio-ranges = <&pinctrl 0 64 10>, <&pinctrl 11 75 3>, <&pinctrl 15 79 1>;
+		status = "okay";
+	};
+
+	gpiof: gpio@44290000 {
+		ngpios = <15>;
+		gpio-ranges = <&pinctrl 0 80 14>, <&pinctrl 15 95 1>;
+		status = "okay";
+	};
+
+	gpiog: gpio@442a0000 {
+		ngpios = <9>;
+		gpio-ranges = <&pinctrl 0 96 6>, <&pinctrl 7 103 1>, <&pinctrl 11 107 2>;
+		status = "okay";
+	};
+
+	gpioh: gpio@442b0000 {
+		ngpios = <7>;
+		gpio-ranges = <&pinctrl 4 116 2>, <&pinctrl 9 121 5>;
+		status = "okay";
+	};
+
+	gpioi: gpio@442c0000 {
+		ngpios = <3>;
+		gpio-ranges = <&pinctrl 0 128 2>, <&pinctrl 4 132 1>;
+		status = "okay";
+	};
+};
-- 
2.34.1