pinctrl: qcom: Add IPQ8064 pinctrl support
Subsystems (7)
cover pinctrl: qcom: Add IPQ8064 pinctrl support
This set of patches adds pinctrl support for the Qualcomm IPQ8064 platform. The IPQ8064 uses the same TLMM block as the APQ8064, but has a different number of pins, functions, and function assignments. The second patch contains the devicetree documentation. The last patch selects PINCTRL for all ARCH_QCOM platforms. This allows for selection of pinctrl support via a make menuconfig.
Andy Gross (3):
pinctrl: qcom: Add definitions for IPQ8064
dt: Document Qualcomm IPQ8064 pinctrl binding
ARM: qcom: Select PINCTRL by default for ARCH_QCOM
.../bindings/pinctrl/qcom,ipq8064-pinctrl.txt | 95 +++ arch/arm/mach-qcom/Kconfig | 1 + drivers/pinctrl/Kconfig | 8 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-ipq8064.c | 653 ++++++++++++++++++++ 5 files changed, 758 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt create mode 100644 drivers/pinctrl/pinctrl-ipq8064.c
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 1/3 pinctrl: qcom: Add definitions for IPQ8064
This adds pinctrl definitions for the GPIO pins of the TLMM v2 block in the Qualcomm IPQ8064 platform.
--- drivers/pinctrl/Kconfig | 8 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-ipq8064.c | 653 +++++++++++++++++++++++++++++++++++++ 3 files changed, 662 insertions(+) create mode 100644 drivers/pinctrl/pinctrl-ipq8064.c
drivers/pinctrl/Kconfig +8 -0
@@ -222,6 +222,14 @@ config PINCTRL_MSM select PINCONF select GENERIC_PINCONF +config PINCTRL_IPQ8064 + tristate "Qualcomm IPQ8064 pin controller driver" + depends on GPIOLIB && OF + select PINCTRL_MSM + help + This is the pinctrl, pinmux, pinconf and gpiolib driver for the + Qualcomm TLMM block found in the Qualcomm IPQ8064 platform. + config PINCTRL_APQ8064 tristate "Qualcomm APQ8064 pin controller driver" depends on GPIOLIB && OF
drivers/pinctrl/Makefile +1 -0
@@ -38,6 +38,7 @@ obj-$(CONFIG_PINCTRL_IMX23) += pinctrl-imx23.o obj-$(CONFIG_PINCTRL_IMX25) += pinctrl-imx25.o obj-$(CONFIG_PINCTRL_IMX28) += pinctrl-imx28.o obj-$(CONFIG_PINCTRL_MSM) += pinctrl-msm.o +obj-$(CONFIG_PINCTRL_IPQ8064) += pinctrl-ipq8064.o obj-$(CONFIG_PINCTRL_APQ8064) += pinctrl-apq8064.o obj-$(CONFIG_PINCTRL_MSM8X74) += pinctrl-msm8x74.o obj-$(CONFIG_PINCTRL_NOMADIK) += pinctrl-nomadik.o
drivers/pinctrl/pinctrl-ipq8064.c new file +653 -0
653 lines not on this page · raw message
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 1/3] pinctrl: qcom: Add definitions for IPQ8064
Quoted 4 lines · Andy Gross
This adds pinctrl definitions for the GPIO pins of the TLMM v2 block in the Qualcomm IPQ8064 platform.
Signed-off-by Andy Gross <[email protected]>
Patch applied with Bj?rns requested change and Review tag.
Yours,
Linus Walleij
PATCH 2/3 dt: Document Qualcomm IPQ8064 pinctrl binding
In reply to Andy GrossDefine a new binding for the Qualcomm TLMMv2 based pin controller inside the IPQ8064.
--- .../bindings/pinctrl/qcom,ipq8064-pinctrl.txt | 95 ++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt
Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt new file +95 -0
@@ -0,0 +1,95 @@ +Qualcomm IPQ8064 TLMM block + +Required properties: +- compatible: "qcom,ipq8064-pinctrl" +- reg: Should be the base address and length of the TLMM block. +- interrupts: Should be the parent IRQ of the TLMM block. +- interrupt-controller: Marks the device node as an interrupt controller. +- #interrupt-cells: Should be two. +- gpio-controller: Marks the device node as a GPIO controller. +- #gpio-cells : Should be two. + The first cell is the gpio pin number and the + second cell is used for optional parameters. + +Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for +a general description of GPIO and interrupt bindings. + +Please refer to pinctrl-bindings.txt in this directory for details of the +common pinctrl bindings used by client devices, including the meaning of the +phrase "pin configuration node". + +Qualcomm's pin configuration nodes act as a container for an abitrary number of +subnodes. Each of these subnodes represents some desired configuration for a +pin, a group, or a list of pins or groups. This configuration can include the +mux function to select on those pin(s)/group(s), and various pin configuration +parameters, such as pull-up, drive strength, etc. + +The name of each subnode is not important; all subnodes should be enumerated +and processed purely based on their content. + +Each subnode only affects those parameters that are explicitly listed. In +other words, a subnode that lists a mux function but no pin configuration +parameters implies no information about any pin configuration parameters. +Similarly, a pin subnode that describes a pullup parameter implies no +information about e.g. the mux function. + + +The following generic properties as defined in pinctrl-bindings.txt are valid +to specify in a pin configuration subnode: + + pins, function, bias-disable, bias-pull-down, bias-pull,up, drive-strength, + output-low, output-high. + +Non-empty subnodes must specify the 'pins' property. + +Valid values for qcom,pins are: + gpio0-gpio68 + Supports mux, bias, and drive-strength + + sdc3_clk, sdc3_cmd, sdc3_data + Supports bias and drive-strength + + +Valid values for function are: + mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gsbi1, gsbi2, gsbi4, gsbi5, + gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1, + spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata, + pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt, + pcie1_clk_req, pcie2_rst, pcie2_prsnt, pcie2_pwren_n, pcie2_pwren, + pcie2_pwrflt, pcie2_clk_req, pcie3_rst, pcie3_prsnt, pcie3_pwren_n, + pcie3_pwren, pcie3_pwrflt, pcie3_clk_req, ps_hold + +Example: + + pinmux: pinctrl at 800000 { + compatible = "qcom,ipq8064-pinctrl"; + reg = <0x800000 0x4000>; + + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <0 32 0x4>; + + pinctrl-names = "default"; + pinctrl-0 = <&gsbi5_uart_default>; + + gsbi5_uart_default: gsbi5_uart_default { + mux { + pins = "gpio18", "gpio19"; + function = "gsbi5"; + }; + + tx { + pins = "gpio18"; + drive-strength = <4>; + bias-disable; + }; + + rx { + pins = "gpio19"; + drive-strength = <2>; + bias-pull-up; + }; + }; + };
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
PATCH 3/3 ARM: qcom: Select PINCTRL by default for ARCH_QCOM
In reply to Andy GrossAdd missing PINCTRL selection. This enables selection of pinctrollers for Qualcomm processors.
--- arch/arm/mach-qcom/Kconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/mach-qcom/Kconfig +1 -0
@@ -5,6 +5,7 @@ config ARCH_QCOM select CLKSRC_OF select GENERIC_CLOCKEVENTS select HAVE_SMP + select PINCTRL select QCOM_SCM if SMP help Support for Qualcomm's devicetree based systems.
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 3/3] ARM: qcom: Select PINCTRL by default for ARCH_QCOM
Quoted 4 lines · Andy Gross
Add missing PINCTRL selection. This enables selection of pinctrollers for Qualcomm processors.
Signed-off-by Andy Gross <[email protected]>
David are you picking this to the Qualcomm tree?
Yours,
Linus Walleij
Re: [PATCH 3/3] ARM: qcom: Select PINCTRL by default for ARCH_QCOM
Quoted 10 lines · Linus Walleij
Quoted 4 lines · Andy Gross
Add missing PINCTRL selection. This enables selection of pinctrollers for Qualcomm processors.
Signed-off-by Andy Gross <[email protected]>Acked-by Linus Walleij <[email protected]>David are you picking this to the Qualcomm tree?
I?ll pick it up
- k
Signature · 2 lines
Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Quoted 10 lines · Andy Gross
This set of patches adds pinctrl support for the Qualcomm IPQ8064 platform. The IPQ8064 uses the same TLMM block as the APQ8064, but has a different number of pins, functions, and function assignments. The second patch contains the devicetree documentation. The last patch selects PINCTRL for all
ARCH_QCOMplatforms. This allows for selection of pinctrl support via a make menuconfig.Andy Gross (3):
pinctrl: qcom: Add definitions for IPQ8064
dt: Document Qualcomm IPQ8064 pinctrl binding
ARM: qcom: Select PINCTRL by default forARCH_QCOM
Bj?rn can you look at this series?
David/Bryan: can either of you ACK the changes hitting arch/arm/mach-qcom/Kconfig
so I can merge this through the pinctrl tree?
Yours,
Linus Walleij
Bjorn Andersson
Reviewed-byQuoted 8 lines · Linus Walleij
Quoted 6 lines · Andy Gross
This set of patches adds pinctrl support for the Qualcomm IPQ8064 platform. The IPQ8064 uses the same TLMM block as the APQ8064, but has a different number of pins, functions, and function assignments. The second patch contains the devicetree documentation. The last patch selects PINCTRL for all
ARCH_QCOMplatforms. This allows for selection of pinctrl support via a make menuconfig.
Quoted 6 lines
Quoted 4 lines
Andy Gross (3):
pinctrl: qcom: Add definitions for IPQ8064
dt: Document Qualcomm IPQ8064 pinctrl binding
ARM: qcom: Select PINCTRL by default forARCH_QCOMBj?rn can you look at this series?
I don't have access to documentation for this platform, but I think the "code" looks sane.
I would however like to push for the sort order of the Makefile and Kconfig to be corrected (IPQ should come after APQ). Maybe you could do that while picking the patches up?
With that change I find this
Quoted 4 lines
David/Bryan: can either of you ACK the changes hitting
arch/arm/mach-qcom/Kconfig
so I can merge this through the pinctrl tree?
Maintainer for qcom-soc is Kumar, I added him to the To list. May I suggest that Kumar picks the last change in the series (addition of PINCTRL), as it is unrelated to the rest of the series?
Quoted 3 lines
Yours,
Linus Walleij
Regards,
Bjorn