Skip to contentSkip to conversation

Add Tegra238 and Tegra264 pinctrl support

PATCH In review [email protected] 4 participants 14 messages Apr 27 – May 27

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v3 cover Add Tegra238 and Tegra264 pinctrl support

From: Prathamesh Shete <[email protected]>

Add pinctrl driver support for Tegra238 and Tegra264 along with the corresponding device tree binding documentation. Additionally, export tegra_pinctrl_probe() to allow the drivers to be built as loadable modules.

Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Drop the "arm64: defconfig: make Tegra238 and Tegra264 Pinctrl ..." patch and instead add 'default m if ARCH_TEGRA_{238,264}_SOC' to the PINCTRL_TEGRA238 / PINCTRL_TEGRA264 Kconfig entries so the drivers are auto-enabled as modules.
- New patch "arm64: tegra: Add pinctrl nodes for Tegra264" that describes the three Tegra264 pin controllers (pinmux_main, pinmux_aon, pinmux_uphy) in tegra264.dtsi.
- dt-bindings (Tegra238 and Tegra264 pinmux):
* Add 'required: compatible, reg' to the top-level schemas.
* Switch 'unevaluatedProperties: false' to 'additionalProperties: false' on the top-level schemas.
- Reword commit messages to use imperative mood.

Link to v1:
https://lore.kernel.org/linux-tegra/[email protected]/

Prathamesh Shete (6):
pinctrl: tegra: Export tegra_pinctrl_probe()
dt-bindings: pinctrl: Document Tegra238 pin controllers
pinctrl: tegra: Add Tegra238 pinmux driver
dt-bindings: pinctrl: Document Tegra264 pin controllers
pinctrl: tegra: Add Tegra264 pinmux driver
arm64: tegra: Add pinctrl nodes for Tegra264

 .../pinctrl/nvidia,tegra238-pinmux-aon.yaml   |   82 +
 .../nvidia,tegra238-pinmux-common.yaml        |   73 +
 .../pinctrl/nvidia,tegra238-pinmux.yaml       |  219 ++
 .../pinctrl/nvidia,tegra264-pinmux-aon.yaml   |   80 +
 .../nvidia,tegra264-pinmux-common.yaml        |   84 +
 .../pinctrl/nvidia,tegra264-pinmux-main.yaml  |  167 ++
 .../pinctrl/nvidia,tegra264-pinmux-uphy.yaml  |   78 +
 arch/arm64/boot/dts/nvidia/tegra264.dtsi      |   15 +
 drivers/pinctrl/tegra/Kconfig                 |   20 +
 drivers/pinctrl/tegra/Makefile                |    2 +
 drivers/pinctrl/tegra/pinctrl-tegra.c         |    2 +
 drivers/pinctrl/tegra/pinctrl-tegra238.c      | 2056 +++++++++++++++
 drivers/pinctrl/tegra/pinctrl-tegra264.c      | 2216 +++++++++++++++++
 13 files changed, 5094 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-aon.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-common.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-aon.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-common.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-main.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-uphy.yaml
 create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra238.c
 create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra264.c
Signature · 1 line
2.43.0
#1 lore raw

PATCH v3 1/6 pinctrl: tegra: Export tegra_pinctrl_probe()

From: Prathamesh Shete <[email protected]>

Export tegra_pinctrl_probe() to allow SoC-specific Tegra pinctrl drivers built as modules to use the common probe path.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- No Change

---
 drivers/pinctrl/tegra/pinctrl-tegra.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/pinctrl/tegra/pinctrl-tegra.c +2 -0
index bac2adeb5c63..3f58f7db525f 100644
@@ -13,6 +13,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/io.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/seq_file.h>
@@ -936,3 +937,4 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(tegra_pinctrl_probe);
Signature · 1 line
2.43.0
#2 lore raw

PATCH v3 2/6 dt-bindings: pinctrl: Document Tegra238 pin controllers

In reply to [email protected]

From: Prathamesh Shete <[email protected]>

Tegra238 contains two pin controllers. Document their compatible strings and describe the list of pins and functions that they provide.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add a 'required:' block listing 'compatible' and 'reg'.
- Switch top-level 'unevaluatedProperties: false' to 'additionalProperties: false'.

---
 .../pinctrl/nvidia,tegra238-pinmux-aon.yaml   |  82 +++++++
 .../nvidia,tegra238-pinmux-common.yaml        |  73 ++++++
 .../pinctrl/nvidia,tegra238-pinmux.yaml       | 219 ++++++++++++++++++
 3 files changed, 374 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-aon.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-common.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux.yaml
Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-aon.yaml new file +82 -0
new file mode 100644
index 000000000000..ab9264d87c88
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/nvidia,tegra238-pinmux-aon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra238 AON Pinmux Controller
+
+maintainers:
+  - Thierry Reding <[email protected]>
+  - Jon Hunter <[email protected]>
+
+properties:
+  compatible:
+    const: nvidia,tegra238-pinmux-aon
+
+  reg:
+    maxItems: 1
+
+patternProperties:
+  "^pinmux(-[a-z0-9-]+)?$":
+    type: object
+
+    # pin groups
+    additionalProperties:
+      $ref: nvidia,tegra238-pinmux-common.yaml
+
+      properties:
+        nvidia,pins:
+          items:
+            enum: [ bootv_ctl_n_paa0, soc_gpio00_paa1, vcomp_alert_paa2,
+                    pwm1_paa3, batt_oc_paa4, soc_gpio04_paa5,
+                    soc_gpio25_paa6, soc_gpio26_paa7,
+                    hdmi_cec_pbb0,
+                    spi2_sck_pcc0, spi2_miso_pcc1, spi2_mosi_pcc2,
+                    spi2_cs0_pcc3, spi2_cs1_pcc4, uart3_tx_pcc5,
+                    uart3_rx_pcc6, gen2_i2c_scl_pcc7,
+                    gen2_i2c_sda_pdd0, gen8_i2c_scl_pdd1,
+                    gen8_i2c_sda_pdd2, touch_clk_pdd3, dmic1_clk_pdd4,
+                    dmic1_dat_pdd5, soc_gpio19_pdd6, pwm2_pdd7,
+                    pwm3_pee0, pwm7_pee1,
+                    # drive groups (ordered PAA, PBB, PCC, PDD, PEE)
+                    drive_bootv_ctl_n_paa0, drive_soc_gpio00_paa1,
+                    drive_vcomp_alert_paa2, drive_pwm1_paa3,
+                    drive_batt_oc_paa4, drive_soc_gpio04_paa5,
+                    drive_soc_gpio25_paa6, drive_soc_gpio26_paa7,
+                    drive_hdmi_cec_pbb0,
+                    drive_spi2_sck_pcc0, drive_spi2_miso_pcc1,
+                    drive_spi2_mosi_pcc2, drive_spi2_cs0_pcc3,
+                    drive_spi2_cs1_pcc4, drive_uart3_tx_pcc5,
+                    drive_uart3_rx_pcc6, drive_gen2_i2c_scl_pcc7,
+                    drive_gen2_i2c_sda_pdd0, drive_gen8_i2c_scl_pdd1,
+                    drive_gen8_i2c_sda_pdd2, drive_touch_clk_pdd3,
+                    drive_dmic1_clk_pdd4, drive_dmic1_dat_pdd5,
+                    drive_soc_gpio19_pdd6, drive_pwm2_pdd7,
+                    drive_pwm3_pee0, drive_pwm7_pee1 ]
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/pinctrl-tegra.h>
+
+    pinmux@c300000 {
+      compatible = "nvidia,tegra238-pinmux-aon";
+      reg = <0x0c300000 0x4000>;
+
+      pinctrl-names = "cec";
+      pinctrl-0 = <&cec_state>;
+
+      cec_state: pinmux-cec {
+        cec {
+          nvidia,pins = "hdmi_cec_pbb0";
+          nvidia,function = "hdmi_cec";
+        };
+      };
+    };
+...
Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-common.yaml new file +73 -0

73 lines not on this page · raw message

Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux.yaml new file +219 -0

219 lines not on this page · raw message

Signature · 1 line
2.43.0
Reviewed-by on v3 2/6
#3 lore raw

Re: [PATCH v3 2/6] dt-bindings: pinctrl: Document Tegra238 pin controllers

Quoted 5 lines · On Mon, Apr 27, 2026 at 01:42:27PM +0000, [email protected] wrote:

From: Prathamesh Shete <[email protected]>

Tegra238 contains two pin controllers. Document their compatible strings and describe the list of pins and functions that they provide.

Quoted 8 lines

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add a 'required:' block listing 'compatible' and 'reg'.
- Switch top-level 'unevaluatedProperties: false' to 'additionalProperties: false'.

Best regards,
Krzysztof

#4 lore raw

PATCH v3 3/6 pinctrl: tegra: Add Tegra238 pinmux driver

In reply to [email protected]

From: Prathamesh Shete <[email protected]>

Add support for the two pin controllers (MAIN and AON) found on Tegra238.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add 'default m if ARCH_TEGRA_238_SOC' to the PINCTRL_TEGRA238 Kconfig.
- Reword commit message to use imperative mood.

---
 drivers/pinctrl/tegra/Kconfig            |   10 +
 drivers/pinctrl/tegra/Makefile           |    1 +
 drivers/pinctrl/tegra/pinctrl-tegra238.c | 2056 ++++++++++++++++++++++
 3 files changed, 2067 insertions(+)
 create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra238.c
drivers/pinctrl/tegra/Kconfig +10 -0
index 660d101ea367..cb3a7ab02e72 100644
@@ -36,6 +36,16 @@ config PINCTRL_TEGRA234
 	bool
 	select PINCTRL_TEGRA
 
+config PINCTRL_TEGRA238
+	tristate "NVIDIA Tegra238 pinctrl driver"
+	default m if ARCH_TEGRA_238_SOC
+	select PINCTRL_TEGRA
+	help
+	  Say Y or M here to enable support for the pinctrl driver for
+	  NVIDIA Tegra238 SoC. This driver controls the pin multiplexing
+	  and configuration for the MAIN and AON pin controllers found
+	  on Tegra238.
+
 config PINCTRL_TEGRA_XUSB
 	def_bool y if ARCH_TEGRA
 	select GENERIC_PHY
drivers/pinctrl/tegra/Makefile +1 -0
index 82176526549e..ce700bbcbf6e 100644
@@ -8,4 +8,5 @@ obj-$(CONFIG_PINCTRL_TEGRA210)		+= pinctrl-tegra210.o
 obj-$(CONFIG_PINCTRL_TEGRA186)		+= pinctrl-tegra186.o
 obj-$(CONFIG_PINCTRL_TEGRA194)		+= pinctrl-tegra194.o
 obj-$(CONFIG_PINCTRL_TEGRA234)		+= pinctrl-tegra234.o
+obj-$(CONFIG_PINCTRL_TEGRA238)		+= pinctrl-tegra238.o
 obj-$(CONFIG_PINCTRL_TEGRA_XUSB)	+= pinctrl-tegra-xusb.o
drivers/pinctrl/tegra/pinctrl-tegra238.c new file +2056 -0

2,056 lines not on this page · raw message

Signature · 1 line
2.43.0
#5 lore raw

PATCH v3 4/6 dt-bindings: pinctrl: Document Tegra264 pin controllers

In reply to [email protected]

From: Prathamesh Shete <[email protected]>

Tegra264 contains three pin controllers. Document their compatible strings and describe the list of pins and functions that they provide.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add a 'required:' block listing 'compatible' and 'reg'.
- Switch top-level 'unevaluatedProperties: false' to 'additionalProperties: false'.

---
 .../pinctrl/nvidia,tegra264-pinmux-aon.yaml   |  80 +++++++++
 .../nvidia,tegra264-pinmux-common.yaml        |  84 +++++++++
 .../pinctrl/nvidia,tegra264-pinmux-main.yaml  | 167 ++++++++++++++++++
 .../pinctrl/nvidia,tegra264-pinmux-uphy.yaml  |  78 ++++++++
 4 files changed, 409 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-aon.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-common.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-main.yaml
 create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-uphy.yaml
Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-aon.yaml new file +80 -0
new file mode 100644
index 000000000000..682e6510ed45
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/nvidia,tegra264-pinmux-aon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra264 AON Pinmux Controller
+
+maintainers:
+  - Thierry Reding <[email protected]>
+  - Jon Hunter <[email protected]>
+
+properties:
+  compatible:
+    const: nvidia,tegra264-pinmux-aon
+
+  reg:
+    maxItems: 1
+
+patternProperties:
+  "^pinmux(-[a-z0-9-]+)?$":
+    type: object
+
+    # pin groups
+    additionalProperties:
+      $ref: nvidia,tegra264-pinmux-common.yaml
+
+      properties:
+        nvidia,pins:
+          items:
+            enum: [ soc_gpio00_paa0, vcomp_alert_paa1, ao_retention_n_paa2,
+                    batt_oc_paa3, bootv_ctl_n_paa4, power_on_paa5,
+                    hdmi_cec_paa6, soc_gpio07_paa7, soc_gpio08_pbb0,
+                    soc_gpio09_pbb1, gen2_i2c_scl_pcc0, gen2_i2c_sda_pcc1,
+                    gen3_i2c_scl_pcc2, gen3_i2c_sda_pcc3, gp_pwm4_pcc4,
+                    uart0_tx_pcc5, uart0_rx_pcc6, spi2_sck_pcc7,
+                    spi2_miso_pdd0, spi2_mosi_pdd1, spi2_cs0_n_pdd2,
+                    soc_gpio21_pdd3, soc_gpio22_pdd4, soc_gpio23_pdd5,
+                    soc_gpio24_pdd6, soc_gpio25_pdd7, soc_gpio26_pee0,
+                    soc_gpio27_pee1, soc_gpio28_pee2, soc_gpio29_pee3,
+                    drive_ao_retention_n_paa2, drive_batt_oc_paa3,
+                    drive_power_on_paa5, drive_vcomp_alert_paa1,
+                    drive_bootv_ctl_n_paa4, drive_soc_gpio00_paa0,
+                    drive_soc_gpio07_paa7, drive_soc_gpio08_pbb0,
+                    drive_soc_gpio09_pbb1, drive_hdmi_cec_paa6,
+                    drive_gen2_i2c_scl_pcc0, drive_gen2_i2c_sda_pcc1,
+                    drive_gen3_i2c_scl_pcc2, drive_gen3_i2c_sda_pcc3,
+                    drive_gp_pwm4_pcc4, drive_uart0_tx_pcc5,
+                    drive_uart0_rx_pcc6, drive_spi2_sck_pcc7,
+                    drive_spi2_miso_pdd0, drive_spi2_mosi_pdd1,
+                    drive_spi2_cs0_n_pdd2, drive_soc_gpio21_pdd3,
+                    drive_soc_gpio22_pdd4, drive_soc_gpio23_pdd5,
+                    drive_soc_gpio24_pdd6, drive_soc_gpio25_pdd7,
+                    drive_soc_gpio26_pee0, drive_soc_gpio27_pee1,
+                    drive_soc_gpio28_pee2, drive_soc_gpio29_pee3 ]
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/pinctrl-tegra.h>
+
+    pinmux@c7a2000 {
+        compatible = "nvidia,tegra264-pinmux-aon";
+        reg = <0xc7a2000 0x2000>;
+
+        pinctrl-names = "default";
+        pinctrl-0 = <&state_default>;
+
+        state_default: pinmux-default {
+            uart0 {
+                nvidia,pins = "uart0_tx_pcc5";
+                nvidia,function = "uarta_txd";
+            };
+        };
+    };
Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-common.yaml new file +84 -0

84 lines not on this page · raw message

Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-main.yaml new file +167 -0

167 lines not on this page · raw message

Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-uphy.yaml new file +78 -0

78 lines not on this page · raw message

Signature · 1 line
2.43.0
Reviewed-by on v3 4/6
#6 lore raw

Re: [PATCH v3 4/6] dt-bindings: pinctrl: Document Tegra264 pin controllers

Quoted 7 lines · On Mon, Apr 27, 2026 at 01:42:29PM +0000, [email protected] wrote:

From: Prathamesh Shete <[email protected]>

Tegra264 contains three pin controllers. Document their compatible strings and describe the list of pins and functions that they provide.

Quoted 7 lines

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add a 'required:' block listing 'compatible' and 'reg'.
- Switch top-level 'unevaluatedProperties: false' to 'additionalProperties: false'.

Best regards,
Krzysztof

#7 lore raw

PATCH v3 5/6 pinctrl: tegra: Add Tegra264 pinmux driver

In reply to [email protected]

From: Prathamesh Shete <[email protected]>

Add support for the three pin controllers (MAIN, UPHY and AON) found on Tegra264.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Add 'default m if ARCH_TEGRA_264_SOC' to the PINCTRL_TEGRA264 Kconfig.

---
 drivers/pinctrl/tegra/Kconfig            |   10 +
 drivers/pinctrl/tegra/Makefile           |    1 +
 drivers/pinctrl/tegra/pinctrl-tegra264.c | 2216 ++++++++++++++++++++++
 3 files changed, 2227 insertions(+)
 create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra264.c
drivers/pinctrl/tegra/Kconfig +10 -0
index cb3a7ab02e72..54263b4554c0 100644
@@ -46,6 +46,16 @@ config PINCTRL_TEGRA238
 	  and configuration for the MAIN and AON pin controllers found
 	  on Tegra238.
 
+config PINCTRL_TEGRA264
+	tristate "NVIDIA Tegra264 pinctrl driver"
+	default m if ARCH_TEGRA_264_SOC
+	select PINCTRL_TEGRA
+	help
+	  Say Y or M here to enable support for the pinctrl driver for
+	  NVIDIA Tegra264 SoC. This driver controls the pin multiplexing
+	  and configuration for the MAIN, AON and UPHY pin controllers found
+	  on Tegra264.
+
 config PINCTRL_TEGRA_XUSB
 	def_bool y if ARCH_TEGRA
 	select GENERIC_PHY
drivers/pinctrl/tegra/Makefile +1 -0
index ce700bbcbf6e..71ade768bf9c 100644
@@ -9,4 +9,5 @@ obj-$(CONFIG_PINCTRL_TEGRA186)		+= pinctrl-tegra186.o
 obj-$(CONFIG_PINCTRL_TEGRA194)		+= pinctrl-tegra194.o
 obj-$(CONFIG_PINCTRL_TEGRA234)		+= pinctrl-tegra234.o
 obj-$(CONFIG_PINCTRL_TEGRA238)		+= pinctrl-tegra238.o
+obj-$(CONFIG_PINCTRL_TEGRA264)		+= pinctrl-tegra264.o
 obj-$(CONFIG_PINCTRL_TEGRA_XUSB)	+= pinctrl-tegra-xusb.o
drivers/pinctrl/tegra/pinctrl-tegra264.c new file +2216 -0

2,216 lines not on this page · raw message

Signature · 1 line
2.43.0
#8 lore raw

PATCH v3 6/6 arm64: tegra: Add pinctrl nodes for Tegra264

In reply to [email protected]

From: Prathamesh Shete <[email protected]>

Add the three pin controller (MAIN, UPHY, AON) device-tree nodes found on Tegra264.

---
Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- This patch is added as part of v2.

---
 arch/arm64/boot/dts/nvidia/tegra264.dtsi | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
arch/arm64/boot/dts/nvidia/tegra264.dtsi +15 -0
index 06d8357bdf52..dc7793088d2e 100644
@@ -3380,6 +3380,11 @@ i2c3: i2c@c610000 {
 			status = "disabled";
 		};
 
+		pinmux_aon: pinmux@c7a2000 {
+			compatible = "nvidia,tegra264-pinmux-aon";
+			reg = <0x0 0x0c7a2000 0x0 0x2000>;
+		};
+
 		pmc: pmc@c800000 {
 			compatible = "nvidia,tegra264-pmc";
 			reg = <0x0 0x0c800000 0x0 0x100000>,
@@ -3586,6 +3591,11 @@ pci@c000000 {
 			status = "disabled";
 		};
 
+		pinmux_main: pinmux@c281000 {
+			compatible = "nvidia,tegra264-pinmux-main";
+			reg = <0x00 0x0c281000 0x0 0xc000>;
+		};
+
 		i2c14: i2c@c410000 {
 			compatible = "nvidia,tegra264-i2c";
 			reg = <0x00 0x0c410000 0x0 0x10000>;
@@ -3862,6 +3872,11 @@ bus@a800000000 {
 			 <0x00 0x20000000 0x00 0x20000000 0x00 0x60000000>, /* non-prefetchable memory (32-bit, 1536 GiB) */
 			 <0xa8 0x80000000 0xa8 0x80000000 0x57 0x80000000>; /* I/O, ECAM, prefetchable memory (64-bit) */
 
+		pinmux_uphy: pinmux@82e0000 {
+			compatible = "nvidia,tegra264-pinmux-uphy";
+			reg = <0x00 0x082e0000 0x0 0x4000>;
+		};
+
 		gpio_uphy: gpio@8300000 {
 			compatible = "nvidia,tegra264-gpio-uphy";
 			reg = <0x00 0x08300000 0x0 0x2000>,
Signature · 1 line
2.43.0
#9 lore raw
In reply to [email protected]
Quoted 8 lines · On Mon, Apr 27, 2026 at 01:42:25PM +0000, [email protected] wrote:

From: Prathamesh Shete <[email protected]>

Add pinctrl driver support for Tegra238 and Tegra264 along with the corresponding device tree binding documentation. Additionally, export tegra_pinctrl_probe() to allow the drivers to be built as loadable modules.

Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).

For the record:

b4 diff [email protected]
Looking up https://lore.kernel.org/all/[email protected]/
Grabbing thread from lore.kernel.org/all/[email protected]/t.mbox.gz Checking for older revisions
Grabbing search results from lore.kernel.org
Added from v2: 6 patches
---
Analyzing 27 messages in the thread
Preparing fake-am for v2: pinctrl: tegra: Export tegra_pinctrl_probe()
ERROR: v2 series incomplete; unable to create a fake-am range
---
Could not create fake-am range for lower series v2

When we ask to use standard process to send patches, we ask for this for a reason.

Best regards,
Krzysztof

maintainer Reviewed-by on the v3 series
#10 lore raw
In reply to [email protected]
Quoted 48 lines · On 27/04/2026 14:42, [email protected] wrote:

From: Prathamesh Shete <[email protected]>

Add pinctrl driver support for Tegra238 and Tegra264 along with the corresponding device tree binding documentation. Additionally, export tegra_pinctrl_probe() to allow the drivers to be built as loadable modules.

Changes in v3:
- Wrap commit message to 75 chars per line (v2 was too short).
Changes in v2:
- Drop the "arm64: defconfig: make Tegra238 and Tegra264 Pinctrl ..." patch and instead add 'default m if ARCH_TEGRA_{238,264}_SOC' to the PINCTRL_TEGRA238 / PINCTRL_TEGRA264 Kconfig entries so the drivers are auto-enabled as modules.
- New patch "arm64: tegra: Add pinctrl nodes for Tegra264" that describes the three Tegra264 pin controllers (pinmux_main, pinmux_aon, pinmux_uphy) in tegra264.dtsi.
- dt-bindings (Tegra238 and Tegra264 pinmux):
* Add 'required: compatible, reg' to the top-level schemas.
* Switch 'unevaluatedProperties: false' to 'additionalProperties: false' on the top-level schemas.
- Reword commit messages to use imperative mood.

Link to v1:
https://lore.kernel.org/linux-tegra/[email protected]/

Prathamesh Shete (6):
pinctrl: tegra: Export tegra_pinctrl_probe()
dt-bindings: pinctrl: Document Tegra238 pin controllers
pinctrl: tegra: Add Tegra238 pinmux driver
dt-bindings: pinctrl: Document Tegra264 pin controllers
pinctrl: tegra: Add Tegra264 pinmux driver
arm64: tegra: Add pinctrl nodes for Tegra264

  .../pinctrl/nvidia,tegra238-pinmux-aon.yaml   |   82 +
  .../nvidia,tegra238-pinmux-common.yaml        |   73 +
  .../pinctrl/nvidia,tegra238-pinmux.yaml       |  219 ++
  .../pinctrl/nvidia,tegra264-pinmux-aon.yaml   |   80 +
  .../nvidia,tegra264-pinmux-common.yaml        |   84 +
  .../pinctrl/nvidia,tegra264-pinmux-main.yaml  |  167 ++
  .../pinctrl/nvidia,tegra264-pinmux-uphy.yaml  |   78 +
  arch/arm64/boot/dts/nvidia/tegra264.dtsi      |   15 +
  drivers/pinctrl/tegra/Kconfig                 |   20 +
  drivers/pinctrl/tegra/Makefile                |    2 +
  drivers/pinctrl/tegra/pinctrl-tegra.c         |    2 +
  drivers/pinctrl/tegra/pinctrl-tegra238.c      | 2056 +++++++++++++++
  drivers/pinctrl/tegra/pinctrl-tegra264.c      | 2216 +++++++++++++++++
  13 files changed, 5094 insertions(+)
Quoted 10 lines

create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-aon.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra238-pinmux.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-aon.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-main.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra264-pinmux-uphy.yaml create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra238.c
create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra264.c

For the series ...

Thanks!
Jon

Signature · 1 line
nvpublic
maintainer
#11 lore raw

Hi Linus,

Quoted 62 lines · Jon Hunter
Quoted 48 lines · On 27/04/2026 14:42, [email protected] wrote:

From: Prathamesh Shete <[email protected]>

Add pinctrl driver support for Tegra238 and Tegra264 along with the corresponding device tree binding documentation. Additionally, export tegra_pinctrl_probe() to allow the drivers to be built as loadable modules.

Changes in v3:
   - Wrap commit message to 75 chars per line (v2 was too short). Changes in v2:
   - Drop the "arm64: defconfig: make Tegra238 and Tegra264 Pinctrl ..." patch and instead add 'default m if ARCH_TEGRA_{238,264}_SOC' to the PINCTRL_TEGRA238 / PINCTRL_TEGRA264 Kconfig entries so the drivers are auto-enabled as modules.
   - New patch "arm64: tegra: Add pinctrl nodes for Tegra264" that describes the three Tegra264 pin controllers (pinmux_main, pinmux_aon, pinmux_uphy) in tegra264.dtsi.
   - dt-bindings (Tegra238 and Tegra264 pinmux):
      * Add 'required: compatible, reg' to the top-level schemas.
      * Switch 'unevaluatedProperties: false' to 'additionalProperties: false' on the top-level schemas.
   - Reword commit messages to use imperative mood.

Link to v1:
https://lore.kernel.org/linux-tegra/20260409131340.168556-1- [email protected]/

Prathamesh Shete (6):
   pinctrl: tegra: Export tegra_pinctrl_probe()
   dt-bindings: pinctrl: Document Tegra238 pin controllers
   pinctrl: tegra: Add Tegra238 pinmux driver
   dt-bindings: pinctrl: Document Tegra264 pin controllers
   pinctrl: tegra: Add Tegra264 pinmux driver
   arm64: tegra: Add pinctrl nodes for Tegra264

  .../pinctrl/nvidia,tegra238-pinmux-aon.yaml   |   82 + .../nvidia,tegra238-pinmux-common.yaml        |   73 + .../pinctrl/nvidia,tegra238-pinmux.yaml       |  219 ++ .../pinctrl/nvidia,tegra264-pinmux-aon.yaml   |   80 + .../nvidia,tegra264-pinmux-common.yaml        |   84 + .../pinctrl/nvidia,tegra264-pinmux-main.yaml  |  167 ++ .../pinctrl/nvidia,tegra264-pinmux-uphy.yaml  |   78 + arch/arm64/boot/dts/nvidia/tegra264.dtsi      |   15 + drivers/pinctrl/tegra/Kconfig                 |   20 + drivers/pinctrl/tegra/Makefile                |    2 + drivers/pinctrl/tegra/pinctrl-tegra.c         |    2 + drivers/pinctrl/tegra/pinctrl-tegra238.c      | 2056 +++++++++++++++ drivers/pinctrl/tegra/pinctrl-tegra264.c      | 2216 +++++++++++++++++

  13 files changed, 5094 insertions(+)
Quoted 10 lines

  create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra238-pinmux-aon.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra238-pinmux-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra238-pinmux.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra264-pinmux-aon.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra264-pinmux-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra264-pinmux-main.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/ nvidia,tegra264-pinmux-uphy.yaml create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra238.c
  create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra264.c

Quoted 3 lines

For the series ...

Please can you let us know if you are OK to pick these up? Would be good to get them into -next if there are no objections.

Thanks!
Jon

Signature · 1 line
nvpublic
maintainer
#12 lore raw
Quoted 2 lines · Jon Hunter

Please can you let us know if you are OK to pick these up? Would be good to get them into -next if there are no objections.

Applied now, sorry for the long delay from my side :(

Yours,
Linus Walleij

maintainer
#13 lore raw
In reply to [email protected]
Quoted 5 lines · On Mon, Apr 27, 2026 at 3:43 PM <[email protected]> wrote:

From: Prathamesh Shete <[email protected]>

Add pinctrl driver support for Tegra238 and Tegra264 along with the corresponding device tree binding documentation. Additionally, export tegra_pinctrl_probe() to allow the drivers to be built as loadable modules.

(...)

Quoted 6 lines

Prathamesh Shete (6):
pinctrl: tegra: Export tegra_pinctrl_probe()
dt-bindings: pinctrl: Document Tegra238 pin controllers
pinctrl: tegra: Add Tegra238 pinmux driver
dt-bindings: pinctrl: Document Tegra264 pin controllers
pinctrl: tegra: Add Tegra264 pinmux driver

These 5 patches applied to the pinctrl tree.

Quoted 1 line

arm64: tegra: Add pinctrl nodes for Tegra264

Please funnel this through the SoC tree.

Sorry for taking so long, trying to use korgalore
and manage to screw things up for myself...

Yours,
Linus Walleij