[PATCH v2 0/3] Add Tegra268 pinmux support
flat view
COOLING9d
From: Prateek Agarwal <hidden>
Date: 2026-10-14 10:42:16
Also in:
linux-gpio, linux-tegra, lkml
Revision v2 of 2 in this series.
Revisions (2)
- v1 [diff vs current]
- v2 current
This series adds pinctrl support for the three pin controllers (MAIN, UPHY and AON) found on Tegra268. The pin, function and pin group data is self-contained in the new driver. Patch 1 adds the ARCH_TEGRA_268_SOC Kconfig symbol. This symbol gates the Tegra268 specific support code, and PINCTRL_TEGRA268 in patch 3 uses it as its default. It is kept as a separate patch because drivers/soc/tegra is merged through the Tegra tree rather than the pinctrl tree. Patch 2 documents the three compatible strings and describes the pins and functions they provide. Patch 3 adds the driver and the PINCTRL_TEGRA268 Kconfig symbol. Patches 2 and 3 build without patch 1. PINCTRL_TEGRA268 only references ARCH_TEGRA_268_SOC in a "default m if" expression, and Kconfig treats an unknown symbol in that position as false, so the driver simply defaults to off if patch 1 is not present. Patches 2 and 3 can therefore be applied to the pinctrl tree independently of patch 1, and no temporary build break occurs if the trees are merged in either order. There is no Tegra268 device tree in the tree yet. The device tree nodes for these controllers will be posted together with the Tegra268 device tree once that work is ready. If it is preferred that the bindings land alongside their first consumer instead, patch 2 can be held back and reposted with the device tree. Changes in v2: - pinctrl: Mark open-drain, io-reset and rcv-sel as unsupported (-1) in every pin group. They previously defaulted to 0, so setting one of these parameters wrote bit 0 of the mux register and changed the selected function instead of being rejected. - pinctrl: Remove pin, drive group and function definitions for pads that do not exist on Tegra268. - pinctrl: Return -ENODEV from probe if no match data is found. - dt-bindings: Drop the functions that no Tegra268 pin group provides, and rename the example node to match the pin it configures. v1: https://lore.kernel.org/all/20261004192921.2460405-1-praagarwal@nvidia.com/ (local) Prathamesh Shete (3): soc/tegra: Add Tegra268 Kconfig symbol dt-bindings: pinctrl: Document Tegra268 pin controllers pinctrl: tegra: Add support for Tegra268 .../pinctrl/nvidia,tegra268-pinmux-aon.yaml | 78 + .../nvidia,tegra268-pinmux-common.yaml | 72 + .../pinctrl/nvidia,tegra268-pinmux-main.yaml | 136 ++ .../pinctrl/nvidia,tegra268-pinmux-uphy.yaml | 75 + drivers/pinctrl/tegra/Kconfig | 11 + drivers/pinctrl/tegra/Makefile | 1 + drivers/pinctrl/tegra/pinctrl-tegra268.c | 1742 +++++++++++++++++ drivers/soc/tegra/Kconfig | 9 + 8 files changed, 2124 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra268-pinmux-aon.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra268-pinmux-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra268-pinmux-main.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra268-pinmux-uphy.yaml create mode 100644 drivers/pinctrl/tegra/pinctrl-tegra268.c base-commit: 72d3fcf802c45d00b300f25b848a93c3a2bd7c7e -- 2.17.1