summaryrefslogtreecommitdiff
path: root/drivers/pinctrl
AgeCommit message (Collapse)Author
2025-02-12pinctrl: tegra20: adjust pin type detectionSvyatoslav Ryhel
Pin detection on t20 depends on node name. With recent changes in node naming, let's remove '_' to be safe about both '_' or '-' use. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2025-02-12pinctrl: at91: Add support to align with Linux DevicetreeManikandan Muralidharan
U-Boot pinctrl driver expects a reg property explicitly unlike linux. To align the DT of U-boot with the Linux, reg property is also arrvied from child GPIO bank nodes when configured under the pinctrl node. Signed-off-by: Manikandan Muralidharan <[email protected]>
2025-02-12pinctrl: at91: Bind GPIO driver to the pinctrl DT nodeManikandan Muralidharan
In Linux DT,the pinctrl node acts as parent nodes with all other gpio banks as child nodes and a single driver in Linux handles both pinctrl settings and gpio requests.Current U-Boot DT maintains both pinctrl and gpio nodes as separate nodes and offers two different class of U-Boot drivers: UCLASS_PINCTRL which handles pin functions and UCLASS_GPIO which handles gpio requests. In order to align the DT of U-Boot with the DT of Linux, a hook is been added in the pinctrl driver to bind the gpio driver with the pinctrl driver so that when adding gpio nodes as subnodes to pinctrl node (as per the Linux ABI), the corresponding APIs will be redirected and handled by valid drivers attached to the pinctrl driver. Signed-off-by: Manikandan Muralidharan <[email protected]>
2025-02-10pinctrl: mediatek: support reading register base address by nameWeijie Gao
This patch add support to read register base address by name if provided. Also devfdt_get_addr_* is changed to dev_read_addr_* to support DT live tree. Signed-off-by: Weijie Gao <[email protected]>
2025-02-10pinctrl: mediatek: mt7988: remove _base from reg-namesWeijie Gao
The reg-names in mt7988.dtsi have no _base suffix. Remove the suffix will also make it match upstream linux format. Fixes: 8c2cb748ef5 (pinctrl: mediatek: mt7988: rename reg-names to upstream linux format) Signed-off-by: Weijie Gao <[email protected]>
2025-02-04Merge patch series "mediatek: final preparation for OF_UPSTREAM support"Tom Rini
Christian Marangi <[email protected]> says: This is the last batch of part to push actual support of OF_UPSTREAM for the mediatek SoC. The plan is to make the current downstream DTS on part with upstream implementation so we can permit a gradual transition to it while we don't cause any regression to any user. This is to have the same node downstream and upstream. Mediatek is working hard upstream to also push all the remaining nodes. All patch are the final changes after the pinctrl patch merged previously. All patch pass CI tests Link: https://github.com/u-boot/u-boot/pull/731 Link: https://lore.kernel.org/r/[email protected]
2025-02-04pinctrl: mediatek: mt7981: rename reg-names to upstream linux formatChristian Marangi
Rename reg-names to upstream linux format. Upstream linux drop the "_base". To make use of upstream DTSI, align to the upstream naming. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-03pinctrl: starfive: Correct driver declaration for starfive_gpioHal Feng
Use the driver macros so that the driver appears in the linker list. Reported-by: Simon Glass <[email protected]> Fixes: 732f01aabf53 ("pinctrl: starfive: Add StarFive JH7110 driver") Signed-off-by: Hal Feng <[email protected]> Reviewed-by: Anand Moon <[email protected]>
2025-01-31pinctrl: mediatek: update mt7981 pinctrl driver based on upstream kernelWeijie Gao
Update mt7981 pinctrl driver based on upstream kernel Signed-off-by: Sam Shih <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2025-01-30Merge patch series "Add support for MediaTek MT7987 SoC"Tom Rini
Weijie Gao <[email protected]> says: This patch series add support for MediaTek MT7987 SoC with its reference boards and related drivers. This patch series add basic boot support on eMMC/SD/SPI-NOR/SPI-NAND for these boards. The clock, pinctrl drivers and the SoC initializaton code are also included. Link: https://lore.kernel.org/r/[email protected]
2025-01-30pinctrl: mediatek: add pinctrl driver for MT7987 SoCWeijie Gao
This patch adds pinctrl and gpio support for MT7987 SoC Signed-off-by: Weijie Gao <[email protected]>
2025-01-25pinctrl: imx: Split MMIO accessors into pinctrl-imx-mmio.cMarek Vasut
Split MMIO accessors into pinctrl-imx-mmio.c and build this file only if Kconfig symbol PINCTRL_IMX_MMIO is selected. Select PINCTRL_IMX_MMIO Kconfig symbol for all but pinctrl-imx8.c driver, which does not use the MMIO accessors. This reduces the amount of code compiled on platforms which do not use the code. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Fold imx_pinctrl_set_state_scu() from pinctrl-imx8.cMarek Vasut
The only user of the SCU pinctrl code is pinctrl-imx8.c , fold the entire pinctrl-scu.c code into pinctrl-imx8.c and remove the matching Kconfig symbols and Makefile entries. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Split imx_pinctrl_set_state_scu() from ↵Marek Vasut
imx_pinctrl_set_state_mmio() Call imx_pinctrl_set_state_common() from imx_pinctrl_scu_conf_pins(), rename imx_pinctrl_scu_conf_pins() to imx_pinctrl_set_state_scu(). Get rid of the unnecessary ifdeffery in pinctrl-imx.h in the process. Remove all SCU support from pinctrl-imx.c imx_pinctrl_set_state_mmio() which makes that function a pure MMIO pinctrl configuration accessor. Update pinctrl-imx8.c to call imx_pinctrl_set_state_scu directly. No functional change. This patch is best viewed with git show -w due to indent change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Split imx_pinctrl_set_state() into common and mmio partsMarek Vasut
Split imx_pinctrl_set_state() into imx_pinctrl_set_state_common() and imx_pinctrl_set_state_mmio(). The former does the common configuration parsing, the later does call imx_pinctrl_set_state_common() and then does pin configuration using either SCU or MMIO accesses. The SCU part is going to be moved out in follow up patches. This is a preparatory patch for follow up pinctrl drivers which do not use the MMIO accessors, but some other means, like SCU or otherwise. Those will call the common imx_pinctrl_set_state_common() function wrapped into some other imx_pinctrl_set_state_*() function, in a way similar to imx_pinctrl_set_state_mmio() does so for MMIO accesses. Update all imx_pinctrl_set_state_mmio() call sites to call imx_pinctrl_set_state_mmio() instead. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Rename imx_pinctrl_remove() to imx_pinctrl_remove_mmio()Marek Vasut
The current implementation of imx_pinctrl_remove() is specific to the MMIO accessor implementation, rename the function to imx_pinctrl_remove_mmio() to make this obvious. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Split imx_pinctrl_probe() into common and mmio partsMarek Vasut
Split imx_pinctrl_probe() into imx_pinctrl_probe_common() and imx_pinctrl_probe_mmio(). The former does the common setup, the later does the common setup and MMIO access configuration. The common setup can be used as-is for SCU based systems, update the pinctrl-imx8 to call only the common setup, update all the other pinctrl drivers to call imx_pinctrl_probe_mmio(). No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Inline struct imx_pinctrl_soc_info access into probeMarek Vasut
The probe function is identical across all the pinctrl drivers. Inline the imx_pinctrl_soc_info access into imx_pinctrl_probe() and drop all the duplicate probe functions. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Drop .remove callback for SCU variantMarek Vasut
The return callback for SCU variant of the pinctrl drivers does nothing but returns 0. Remove the return callback from the SCU driver itself, that has the same effect. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Rename imx_pinctrl_ops to match driversMarek Vasut
Rename the structure instances to match driver names, so they can be easily looked up e.g. in objdump and readelf outputs. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-25pinctrl: imx: Push imx_pinctrl_ops into drivers and staticizeMarek Vasut
Move imx_pinctrl_ops into drivers and staticize. This is preparatory patch for follow up pinctrl drivers which will not use this variant of imx_pinctrl_ops content. This should not change size, as most of the deployments compiled in one pinctrl driver anyway. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2025-01-22pinctrl: qcom: x1e80100: add pcie[3456ab]_clk functionsNeil Armstrong
Add the missing PCIe clk_req function for the x1e80100 TLMM. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-01-22pinctrl: qcom: sm8650: add pcie[01]_clk_req_n functionNeil Armstrong
Add the missing PCIe clk_req functions for the SM8650 TLMM. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-01-22pinctrl: qcom: sm8550: add pcie1_clk_req_n functionNeil Armstrong
Add the missing PCIe clk_req function for the SM8550 TLMM. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-01-22pinctrl: qcom: Add X1E80100 pinctrl driverNeil Armstrong
Add pinctrl driver for the TLMM block found in the X1E80100 SoC. Signed-off-by: Neil Armstrong <[email protected]> Tested-by: Caleb Connolly <[email protected]> # Yoga Slim 7x Reviewed-by: Caleb Connolly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-01-20pinctrl: imx: Fix NULL dereference in imx_pinctrl_probe()Jesse Taube
When converting to ofnode `ofnode_read_u32` was accedentally used to replace `fdtdec_get_int` instead of `ofnode_read_u32_default`. Use `ofnode_read_u32_default` to fix this. Fixes: 59382d2 ("pinctrl: imx: Convert to use livetree API for fdt access") Signed-off-by: Jesse Taube <[email protected]>
2024-12-29pinctrl: renesas: Convert to IS_ENABLED() macroMarek Vasut
Use the IS_ENABLED() macro to reduce amount of #ifdef use in the driver and improve code coverage. With IS_ENABLED() macro, the code is compiled and then optimized out, which prevents bitrot. In case no PFC table matches the SoC in use, do not probe the driver and instead exit with -ENODEV. This should never happen under normal conditions, because this would mean the driver DT compatible string match happened, but the list in probe() cannot match the model listed in match data associated with the compatible string on which the match did happen. Signed-off-by: Marek Vasut <[email protected]>
2024-12-25Merge tag 'v2025.01-rc5' into nextTom Rini
Prepare v2025.01-rc5
2024-12-25pinctrl: renesas: Minimize R8A779H0 V4M PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - INTC/INTC-EX - MSIOF - PWM - SSI Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A779G0 V4H PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - INTC-EX - MSIOF - PWM - SSI Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A779F0 S4 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - INTC-EX - MSIOF Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A779A0 V3U PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - CAN/CANFD - DU - INTC-EX - MSIOF - PWM Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77995 D3 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77990 E3 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - INTC/INTC-EX - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77980 V3H PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - CANFD - DU - INTC-EX - MSIOF - PWM - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77970 V3M PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - CANFD - DU - INTC-EX - MSIOF - PWM - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77965 M3-N PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - INTC-EX - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77960 M3-W and R8A77961 M3-W+ PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - INTC-EX - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A77951 H3 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN/CANFD - DU - INTC-EX - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A7794 E2 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN - DU - INTC - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A7792 V2H PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - CAN - DU - INTC - MSIOF - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A7791 M2-W and R8A7793 M2-N PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN - DU - INTC - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Minimize R8A7790 H2 PFC tablesMarek Vasut
Reduce the PFC tables by ifdeffing out pinmux settings which are unlikely to be used by U-Boot. This helps reduce the size of the bootloader in the 10 kiB range. This includes conditional build of these PFC additions: - Audio - CAN - DU - INTC - MSIOF - PWM - SSI - VIN Signed-off-by: Marek Vasut <[email protected]>
2024-12-25pinctrl: renesas: Add Kconfig symbol for conditional build of full PFC tablesMarek Vasut
By default the pin multiplexing tables used by U-Boot are reduced to keep the size of the bootloader low. This option allows build of full pin multiplexing tables the same way they are included in the Linux kernel. This includes pin multiplexing options for Audio, CAN, CANFD, DU, INTC, INTC-EX, MSIOF, PWM, SSI, for which there is no U-Boot driver. This option is disabled by default. Signed-off-by: Marek Vasut <[email protected]>
2024-12-11pinctrl: renesas: Fix R-Car spellingMarek Vasut
The correct spelling is R-Car, including the dash, update the usage. Kconfig strings and comment changes only, no functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-12-09Merge tag 'v2025.01-rc4' into nextTom Rini
Prepare v2025.01-rc4
2024-12-08pinctrl: rzg2l: Drop unnecessary scopePaul Barker
In rzg2l_pinconf_set(), there are no new variables defined in the case statement for PIN_CONFIG_INPUT_ENABLE so no additional scope is needed. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08pinctrl: rzg2l: Support Ethernet TXC output enablePaul Barker
On the RZ/G2L SoC family, the direction of the Ethernet TXC/TX_CLK signal is selectable to support an Ethernet PHY operating in either MII or RGMII mode. By default, the signal is configured as an input and MII mode is supported. The ETH_MODE register can be modified to configure this signal as an output to support RGMII mode. As this signal is be default an input, and can optionally be switched to an output, it maps neatly onto an `output-enable` property in the device tree. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-08pinctrl: rzg2l: Support 2.5V PVDD for Ethernet interfacesPaul Barker
The Ethenet interfaces on the Renesas RZ/G2L SoC family can operate at multiple power supply voltages: 3.3V (default value), 2.5V and 1.8V. rzg2l_pinconf_set() is extended to support the 2.5V setting, with a check to ensure this is only used on Ethernet interfaces as it is not supported on the SD & QSPI interfaces. While we're modifying rzg2l_pinconf_set(), drop the unnecessary default value for pwr_reg as it is set in every branch of the following if condition. Signed-off-by: Paul Barker <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2024-12-07pinctrl: imx93: support i.MX91Peng Fan
Reuse i.MX93 pinctrl driver for i.MX91, because i.MX91 follows same design as i.MX93 in IOMUXC controller. Signed-off-by: Peng Fan <[email protected]>