Skip to contentSkip to conversation

pinctrl: qcom: Add IPQ8064 pinctrl support

PATCH In review Andy Gross 4 participants 9 messages Apr 15, 2014 – Apr 23, 2014

Subsystems (7)
lore
Share & tools
lore

Andy Gross

author
#0 lore raw

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
author
#1 lore raw

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
index aa3908f..917c46c 100644
@@ -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
index 9e1fb67..a9dc61a 100644
@@ -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
#2 lore raw

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.

Patch applied with Bj?rns requested change and Review tag.

Yours,
Linus Walleij

author
#3 lore raw

PATCH 2/3 dt: Document Qualcomm IPQ8064 pinctrl binding

In reply to Andy Gross

Define 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
new file mode 100644
index 0000000..e0d35a4
@@ -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
author
#4 lore raw

PATCH 3/3 ARM: qcom: Select PINCTRL by default for ARCH_QCOM

In reply to Andy Gross

Add 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
index aded06d..2c561c0 100644
@@ -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
#6 lore raw

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.

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
#7 lore raw
In reply to Andy Gross
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_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

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

Reviewed-by
#8 lore raw
Quoted 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_QCOM platforms. 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 for ARCH_QCOM

Bj?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