summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/qcom
AgeCommit message (Collapse)Author
2025-03-17pinctrl/qcom: fix kconfig option namesCaleb Connolly
A copy-paste error is starting to get out of hand... Fix all these so they don't look like clock drivers in menuconfig. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17pinctrl: qcom: add sc7280 pinctrl driverCaleb Connolly
Introduce a pinctrl driver for SC7280/QCM6490, this is used by the RB3 Gen 2, FairPhone 5 and other devices. Tested-by: Christopher Obbard <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17pinctrl: qcom: Add ipq9574 pinctrl driverVaradarajan Narayanan
Add pinctrl driver for the TLMM block found in the ipq9574 SoC. Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Varadarajan Narayanan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-03-17pinctrl: qcom: Handle get_function_mux failureVaradarajan Narayanan
Presently, get_function_mux returns an unsigned int and cannot differentiate between failure and correct function value. Change its return type to int and check for failure in the caller. Additionally, updated drivers/pinctrl/qcom/pinctrl-*.c to accommodate the above return type change. Only compile test done. Signed-off-by: Varadarajan Narayanan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Caleb Connolly <[email protected]>
2025-02-26pinctrl: qcom: sm8250: fix pin countCaleb Connolly
The pin count wasn't updated when the special pins were added, as a result it was never possible to configure the special pins on SM8250 boards. Fix the pin count and allow the special pins to be configured. This fixes sdcard support on the RB5. Fixes: 58fa52042471 ("pinctr: qcom: sm8250: add special pins pins configuration data") Reviewed-by: Neil Armstrong <[email protected]> Tested-by: Amit Pundir <[email protected]> Signed-off-by: Caleb Connolly <[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]>
2024-10-04pinctr: qcom: sm8250: add special pins pins configuration dataNeil Armstrong
Add the special pins configuration data to allow setup the bias of the UFS and SDCard pins on the SM8250 SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Caleb Connolly <[email protected]>
2024-10-04pinctrl: qcom: add driver for SM8150 SoCJulius Lehmann
Add pinctrl and GPIO driver for SM8150. Driver code is based on the similar U-Boot drivers. All constants are taken from the corresponding Linux driver. This drivers differs from the similar U-Boot drivers, because SM8150 SoC have different function IDs for the same functions on different pins. Co-authored-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Julius Lehmann <[email protected]> Reviewed-by: Neil Armstrong <[email protected]>
2024-07-05pinctrl: qcom: sm8650: add special pins pins configuration dataNeil Armstrong
Add the special pins configuration data to allow setup the bias of the UFS and SDCard pins on the SM8650 SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: sm8550: add special pins pins configuration dataNeil Armstrong
Add the special pins configuration data to allow setup the bias of the UFS and SDCard pins on the SM8550 SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: add support setting pin configuration for special pinsNeil Armstrong
Use the previously introduced msm_special_pin_data to setup the special pins configuration if the SoC driver have them specified. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: add support for bias-pull-downNeil Armstrong
Add support for bias-pull-down as an alternate of bias-pull-up. Signed-off-by: Neil Armstrong <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07pinctrl: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this driver directory and when needed add missing include files directly. Reviewed-by: Peter Robinson <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-04-23Merge https://source.denx.de/u-boot/custodians/u-boot-snapdragonTom Rini
Support is added for 5 new Qualcomm SoCs: * QCM2290 and SM6115 are low and mid range SoCs used on the RB1 and RB2 respectively. SM6115 is also used in some mid-range smartphones/tablets. Initial support includes buttons and USB (host and gadget). * SM8250 is a flagship SoC from 2020 used on the RB5, as well as many flagship smartphones. The board can boot to a U-Boot prompt, but is missing regulators necessary for USB support. * SM8550, and SM8650 are flagship mobile SoCs from 2023 and 2024 respectively. Found on many high end smartphones. In addition: * Support is added for the Schneider HMIBSC board. * mach-snapdragon switches to OF_UPSTREAM * IPQ40xx gets several regressions fixed and some overall cleanup. * The MSM serial driver gains the ability to generate the bit-clock automatically, no longer relying on a custom DT property. * The Qualcomm SMMU driver gets a generic compatible (so per-SoC compatibles don't need to be added). * Support for the GENI I2C controller is added. * The qcom SPMI driver has SPMI v5 support fixed, and v7 support added. * The qcom sdhci driver gets some fixes for SDCC v5 support. * SDM845 gains sdcard support * Support is added for the Synopsys eUSB2 PHY driver (used on SM8550 and SM8650) * SYS_INIT_SP_BSS_OFFSET is set to 1.5M to give us more space for FDTs. * RB2 gets a work-around to fix the USB dr_mode property before booting Linux.
2024-04-23pinctrl: qcom: apq8016: Add GPIO pinctrl functionSumit Garg
Add GPIO pinctrl function to enable driving GPIO pins as output low or high. Signed-off-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: Add support for driving GPIO pins outputSumit Garg
Add support for driving the GPIO pins as output low or high. Signed-off-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23apq8016: Add support for UART1 clocks and pinmuxSumit Garg
SE HMIBSC board uses UART1 as the main debug console, so add corresponding clocks and pinmux support. Along with that update instructions to enable clocks for debug UART support. Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: ipq4019: support all pin functionsRobert Marko
Currently, IPQ4019 pinctrl driver supports only a very limited number of pin functions and is not fully DT compatible with Linux pinctrl nodes. IPQ40xx SoC-s sometimes use different pin function numbers for the same function depending on the pin number, so for example I2C0 on GPIO58 uses function number 3 while on GPIO59 it uses function number 2. So, in order to make the driver compatible with upstream DTS to avoid the need to patch the pinctrl nodes in U-Boot and support all of the missing pin functions lets rework the driver based on upstream Linux IPQ4019 pinctrl driver and the pending SM8150 U-Boot pinctrl driver which also uses different function numbers pased on the exact pin number. Signed-off-by: Robert Marko <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: ipq4019: enable DM_FLAG_PRE_RELOCRobert Marko
If compiled with logging and debug UART support, the following is printed: serial_msm serial@78af000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 This is due to the fact that IPQ4019 pinctrl driver is not available prior to relocation and thus MSM serial will fail probing as pinctrl provider is not available. So, lets enable DM_FLAG_PRE_RELOC for IPQ4019 pinctrl to fix this. Signed-off-by: Robert Marko <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: ipq4019: adapt pin name lookup to upstream DTSRobert Marko
We want to use OF_UPSTREAM on IPQ40XX as its well supported upstream, so as a preparation update pinctrl driver to look for the upstream pin format. Signed-off-by: Robert Marko <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: allow selecting with ARCH_IPQ40XXRobert Marko
IPQ4019 pinctrl driver was moved to the dedicated Qualcomm pinctrl directory, but the KConfig depends on ARCH_SNAPDRAGON only and thus PINCTRL_QCOM_IPQ4019 cannot be selected when ARCH_IPQ40XX is used. Fixes: 24d2908e987a ("pinctrl: qcom: move ipq4019 driver from mach-ipq40xx") Signed-off-by: Robert Marko <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: sdm845: add special pin namesCaleb Connolly
Adjust sdm845_get_pin_name() to return the correct names for the special pins. This fixes a non-fatal -ENOSYS error when probing MMC. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: add sm8250 pinctrl driverCaleb Connolly
This SoC features a pinctrl block with north, south, and west tiles accessible to the AP. Reviewed-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: add sm6115 pinctrl driverCaleb Connolly
This SoC features a pinctrl block with west, east, and south tiles. Reviewed-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: add qcm2290 pinctrl driverCaleb Connolly
This SoC has a basic pinctrl block with no tiles. Reviewed-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: Add SM8650 pinctrl driverNeil Armstrong
Add pinctrl driver for the TLMM block found in the SM8650 SoC. This driver only handles the gpio and qup2_se7 pinmux, and makes sure the pinconf applies on SDC2 pins. Signed-off-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-23pinctrl: qcom: Add SM8550 pinctrl driverNeil Armstrong
Add pinctrl driver for the TLMM block found in the SM8550 SoC. This driver only handles the gpio and qup1_se7 pinmux, and makes sure the pinconf applies on SDC2 pins. Signed-off-by: Neil Armstrong <[email protected]> Acked-by: Sumit Garg <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-04-04pinctrl: qcom: pass pin number to get_function_mux callbackVolodymyr Babchuk
This patch is the preparation for SM8150 support. This new SoC depending on the particular pin can have different numbers for the same function. For example "rgmii" function for GPIO4 has id=2 while for GPIO59 it has id=1. So, to support this type of SoCs, get_function_mux() callback needs to know for which pin the function is requested. Signed-off-by: Volodymyr Babchuk <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-03-01board: dragonboard410c: upstream DT compatCaleb Connolly
Use the root compatible strings from upstream Linux, add missing '#clock-cells' property to the gcc node. Adjust some of the msm8916/apq8016 drivers to use the correct upstream compatible properties and DT bindings. This prepares us to switch to upstream DT in a future patch. Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Tested-by: Sumit Garg <[email protected]> #qcs404 Signed-off-by: Caleb Connolly <[email protected]>
2024-03-01pinctrl: qcom: apq8016: init pre-reloactionCaleb Connolly
On the DB410c we support running as a first stage bootloader. This requires initialising the GPIOs which are muxed to UART before they can be used. Add DM_FLAG_PRE_RELOC to the apq8016 pinctrl driver to ensure that we do this early enough. This is required to prevent the first few lines of UART log from being dropped. Reported-by: Sumit Garg <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Tested-by: Sumit Garg <[email protected]> #qcs404 Signed-off-by: Caleb Connolly <[email protected]>
2024-03-01pinctrl: qcom: fix DT compatibilityCaleb Connolly
Upstream devicetrees label GPIOs with "gpioX", not "GPIO_X", fix this for SoCs where we're now using upstream DT. Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Tested-by: Sumit Garg <[email protected]> #qcs404 Signed-off-by: Caleb Connolly <[email protected]>
2024-03-01pinctrl: qcom: stub support for special GPIOsCaleb Connolly
Most platforms have a handful of "special" GPIOs, like the MMC clock/data lanes, UFS reset, etc. These don't follow the usual naming scheme of "gpioX" and also have unique capabilities and registers. We can get away without supporting them all for now, but DT compatibility is still an issue. Add support for allowing these to be specified after the other pins, and make all pinmux/pinconf calls for them nop. Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Tested-by: Sumit Garg <[email protected]> #qcs404 Signed-off-by: Caleb Connolly <[email protected]>
2024-01-16pinctrl: qcom: make compatible with linux DTsCaleb Connolly
The pinctrl and GPIO drivers are currently heavily incompatible with upstream. Most Qualcomm pinctrl blocks feature "tiles" of pins, each at it's own address. Introduce support for these by allowing the soc driver to specify per-pin register offsets similarly to the Linux driver. Adjust the GPIO driver to handle these too, and finally enable support for all pins with the same numbering as used in Linux. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-01-16pinctrl: qcom: move ipq4019 driver from mach-ipq40xxCaleb Connolly
Drop the duplicated pinctrl-snapdragon driver from mach-ipq40xx and add it to drivers/pinctrl/qcom. Acked-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-01-16pinctrl: qcom: move out of mach-snapdragonCaleb Connolly
Move the Qualcomm pinctrl drivers out of mach-snapdragon and over to the rest of the pinctrl drivers, adjust the drivers so that support for each platform can be enabled/disabled individually and introduce platform specific configuration options. Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>