linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] Enable pinctrl-single for omap2/3/4
@ 2012-09-06 18:58 Tony Lindgren
  2012-09-06 18:58 ` [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm Tony Lindgren
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,

Now that pinctrl-single driver is merged, this series enables
pinctrl for omap2/3/4.

Regards,

Tony

---

AnilKumar Ch (1):
      ARM: OMAP2+: select PINCTRL in Kconfig

Tony Lindgren (4):
      arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm
      arm/dts: Add pinctrl driver entries for omap2/3/4
      arm/dts: Mux uart pins for omap4-sdp
      omap-serial: Request pins using pinctrl framework


 arch/arm/boot/dts/omap2420-h4.dts             |    2 +
 arch/arm/boot/dts/omap2420.dtsi               |   22 +++++++++++++
 arch/arm/boot/dts/omap2430.dtsi               |   22 +++++++++++++
 arch/arm/boot/dts/omap3-beagle-xm.dts         |    6 ++--
 arch/arm/boot/dts/omap3.dtsi                  |   25 +++++++++++----
 arch/arm/boot/dts/omap36xx.dtsi               |   25 +++++++++++++++
 arch/arm/boot/dts/omap4-sdp.dts               |   42 +++++++++++++++++++++++++
 arch/arm/boot/dts/omap4.dtsi                  |   17 ++++++++++
 arch/arm/configs/omap2plus_defconfig          |    1 +
 arch/arm/mach-omap2/Kconfig                   |    1 +
 arch/arm/mach-omap2/Makefile.boot             |    2 +
 arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
 drivers/tty/serial/omap-serial.c              |   10 ++++++
 13 files changed, 164 insertions(+), 12 deletions(-)
 create mode 100644 arch/arm/boot/dts/omap2420.dtsi
 create mode 100644 arch/arm/boot/dts/omap2430.dtsi
 rename arch/arm/boot/dts/{omap3-beagle.dts => omap3-beagle-xm.dts} (89%)
 create mode 100644 arch/arm/boot/dts/omap36xx.dtsi

-- 
Signature

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm
  2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
@ 2012-09-06 18:58 ` Tony Lindgren
  2012-09-07 15:49   ` Benoit Cousson
  2012-09-06 18:58 ` [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4 Tony Lindgren
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

The extra serial port is not available on 34xx. And the current
omap3-beagle.dts file is for omap3-beagle-xm.dts as it lists 512MB
of memory.

Please somebody submit a new omap3-beagle.dts for the original 34xx
BeagleBoard after testing it properly.

Cc: Benoit Cousson <b-cousson@ti.com>
Cc: devicetree-discuss at lists.ozlabs.org
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap3-beagle-xm.dts |    6 +++---
 arch/arm/boot/dts/omap3.dtsi          |    7 -------
 arch/arm/boot/dts/omap36xx.dtsi       |   25 +++++++++++++++++++++++++
 arch/arm/mach-omap2/Makefile.boot     |    2 +-
 4 files changed, 29 insertions(+), 11 deletions(-)
 rename arch/arm/boot/dts/{omap3-beagle.dts => omap3-beagle-xm.dts} (89%)
 create mode 100644 arch/arm/boot/dts/omap36xx.dtsi

diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
similarity index 89%
rename from arch/arm/boot/dts/omap3-beagle.dts
rename to arch/arm/boot/dts/omap3-beagle-xm.dts
index e60cba0..df6d485 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -7,11 +7,11 @@
  */
 /dts-v1/;
 
-/include/ "omap3.dtsi"
+/include/ "omap36xx.dtsi"
 
 / {
-	model = "TI OMAP3 BeagleBoard";
-	compatible = "ti,omap3-beagle", "ti,omap3";
+	model = "TI OMAP3 BeagleBoard xM";
+	compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3";
 
 	memory {
 		device_type = "memory";
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 8109471..9965ed6 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -17,7 +17,6 @@
 		serial0 = &uart1;
 		serial1 = &uart2;
 		serial2 = &uart3;
-		serial3 = &uart4;
 	};
 
 	cpus {
@@ -141,12 +140,6 @@
 			clock-frequency = <48000000>;
 		};
 
-		uart4: serial at 49042000 {
-			compatible = "ti,omap3-uart";
-			ti,hwmods = "uart4";
-			clock-frequency = <48000000>;
-		};
-
 		i2c1: i2c at 48070000 {
 			compatible = "ti,omap3-i2c";
 			#address-cells = <1>;
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
new file mode 100644
index 0000000..96bf028
--- /dev/null
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -0,0 +1,25 @@
+/*
+ * Device Tree Source for OMAP3 SoC
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/include/ "omap3.dtsi"
+
+/ {
+	aliases {
+		serial3 = &uart4;
+	};
+
+	ocp {
+		uart4: serial at 49042000 {
+			compatible = "ti,omap3-uart";
+			ti,hwmods = "uart4";
+			clock-frequency = <48000000>;
+		};
+	};
+};
diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot
index 6cf1c2d..0e602b7 100644
--- a/arch/arm/mach-omap2/Makefile.boot
+++ b/arch/arm/mach-omap2/Makefile.boot
@@ -3,7 +3,7 @@ params_phys-y		:= 0x80000100
 initrd_phys-y		:= 0x80800000
 
 dtb-$(CONFIG_SOC_OMAP2420)	+= omap2420-h4.dtb
-dtb-$(CONFIG_ARCH_OMAP3)	+= omap3-beagle.dtb omap3-evm.dtb
+dtb-$(CONFIG_ARCH_OMAP3)	+= omap3-beagle-xm.dtb omap3-evm.dtb
 dtb-$(CONFIG_ARCH_OMAP4)	+= omap4-panda.dtb omap4-pandaES.dtb
 dtb-$(CONFIG_ARCH_OMAP4)	+= omap4-var_som.dtb omap4-sdp.dtb
 dtb-$(CONFIG_SOC_OMAP5)		+= omap5-evm.dtb

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4
  2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
  2012-09-06 18:58 ` [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm Tony Lindgren
@ 2012-09-06 18:58 ` Tony Lindgren
  2012-09-07  8:10   ` Linus Walleij
  2012-09-06 18:58 ` [PATCH 3/5] ARM: OMAP2+: select PINCTRL in Kconfig Tony Lindgren
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

Add pinctrl driver entries for omap2+. These all use
the generic pinctrl-single driver for the padconf
registers.

Note that as 2420 and 2430 have different padmux
registers, we now need to include omap2420.dtsi from
omap2420-h4.dts.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: devicetree-discuss at lists.ozlabs.org
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap2420-h4.dts |    2 +-
 arch/arm/boot/dts/omap2420.dtsi   |   22 ++++++++++++++++++++++
 arch/arm/boot/dts/omap2430.dtsi   |   22 ++++++++++++++++++++++
 arch/arm/boot/dts/omap3.dtsi      |   18 ++++++++++++++++++
 arch/arm/boot/dts/omap4.dtsi      |   17 +++++++++++++++++
 5 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/omap2420.dtsi
 create mode 100644 arch/arm/boot/dts/omap2430.dtsi

diff --git a/arch/arm/boot/dts/omap2420-h4.dts b/arch/arm/boot/dts/omap2420-h4.dts
index 25b50b7..77b84e1 100644
--- a/arch/arm/boot/dts/omap2420-h4.dts
+++ b/arch/arm/boot/dts/omap2420-h4.dts
@@ -7,7 +7,7 @@
  */
 /dts-v1/;
 
-/include/ "omap2.dtsi"
+/include/ "omap2420.dtsi"
 
 / {
 	model = "TI OMAP2420 H4 board";
diff --git a/arch/arm/boot/dts/omap2420.dtsi b/arch/arm/boot/dts/omap2420.dtsi
new file mode 100644
index 0000000..8097d13
--- /dev/null
+++ b/arch/arm/boot/dts/omap2420.dtsi
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/include/ "omap2.dtsi"
+
+/ {
+	ocp {
+		omap2420_pmx: pinmux at 48000030 {
+			compatible = "ti,omap2420-padconf", "pinctrl-single";
+			reg = <0x48000030 0x0113>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <8>;
+			pinctrl-single,function-mask = <0x3f>;
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi
new file mode 100644
index 0000000..d27b6f5
--- /dev/null
+++ b/arch/arm/boot/dts/omap2430.dtsi
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/include/ "omap2.dtsi"
+
+/ {
+	ocp {
+		omap2430_pmx: pinmux at 49002030 {
+			compatible = "ti,omap2430-padconf", "pinctrl-single";
+			reg = <0x49002030 0x0154>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <8>;
+			pinctrl-single,function-mask = <0x3f>;
+		};
+	};
+};
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 9965ed6..c3334bf 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -68,6 +68,24 @@
 			reg = <0x48200000 0x1000>;
 		};
 
+		omap3_pmx_core: pinmux at 48002030 {
+			compatible = "ti,omap3-padconf", "pinctrl-single";
+			reg = <0x48002030 0x05cc>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <16>;
+			pinctrl-single,function-mask = <0x7fff>;
+		};
+
+		omap3_pmx_wkup: pinmux at 0x48002a58 {
+			compatible = "ti,omap3-padconf", "pinctrl-single";
+			reg = <0x48002a58 0x5c>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <16>;
+			pinctrl-single,function-mask = <0x7fff>;
+		};
+
 		gpio1: gpio at 48310000 {
 			compatible = "ti,omap3-gpio";
 			ti,hwmods = "gpio1";
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 04cbbcb..4aaab12 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -104,6 +104,23 @@
 			      <0x48240100 0x0100>;
 		};
 
+		omap4_pmx_core: pinmux at 4a100040 {
+			compatible = "ti,omap4-padconf", "pinctrl-single";
+			reg = <0x4a100040 0x0196>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <16>;
+			pinctrl-single,function-mask = <0x7fff>;
+		};
+		omap4_pmx_wkup: pinmux at 4a31e040 {
+			compatible = "ti,omap4-padconf", "pinctrl-single";
+			reg = <0x4a31e040 0x0038>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			pinctrl-single,register-width = <16>;
+			pinctrl-single,function-mask = <0x7fff>;
+		};
+
 		gpio1: gpio at 4a310000 {
 			compatible = "ti,omap4-gpio";
 			ti,hwmods = "gpio1";

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/5] ARM: OMAP2+: select PINCTRL in Kconfig
  2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
  2012-09-06 18:58 ` [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm Tony Lindgren
  2012-09-06 18:58 ` [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4 Tony Lindgren
@ 2012-09-06 18:58 ` Tony Lindgren
  2012-09-06 18:58 ` [PATCH 4/5] arm/dts: Mux uart pins for omap4-sdp Tony Lindgren
  2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
  4 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

From: AnilKumar Ch <anilkumar@ti.com>

Select PINCTRL in Kconfig under Typical OMAP configuration, this
is required to add pinctrl driver to omap2+ family of devices.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
[tony at atomide.com: updated to select pinctrl-single in defconfig]
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/configs/omap2plus_defconfig |    1 +
 arch/arm/mach-omap2/Kconfig          |    1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index e58edc3..6230304 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -123,6 +123,7 @@ CONFIG_HW_RANDOM=y
 CONFIG_I2C_CHARDEV=y
 CONFIG_SPI=y
 CONFIG_SPI_OMAP24XX=y
+CONFIG_PINCTRL_SINGLE=y
 CONFIG_DEBUG_GPIO=y
 CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_TWL4030=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 4a4d058..e45bbff 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -18,6 +18,7 @@ config ARCH_OMAP2PLUS_TYPICAL
 	select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
 	select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
 	select HIGHMEM
+	select PINCTRL
 	help
 	  Compile a kernel suitable for booting most boards
 

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/5] arm/dts: Mux uart pins for omap4-sdp
  2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
                   ` (2 preceding siblings ...)
  2012-09-06 18:58 ` [PATCH 3/5] ARM: OMAP2+: select PINCTRL in Kconfig Tony Lindgren
@ 2012-09-06 18:58 ` Tony Lindgren
  2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
  4 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

Mux uart pins for the serial ports.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/boot/dts/omap4-sdp.dts |   42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index dbcdc4a..00edbe6 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -115,6 +115,33 @@
 	};
 };
 
+&omap4_pmx_core {
+	uart2_pins: pinmux_uart2_pins {
+		pinctrl-single,pins = <
+			0xd8 0x118	/* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */
+			0xda 0		/* uart2_rts.uart2_rts OUTPUT | MODE0 */
+			0xdc 0x118	/* uart2_rx.uart2_rx INPUT_PULLUP | MODE0 */
+			0xde 0		/* uart2_tx.uart2_tx OUTPUT | MODE0 */
+		>;
+	};
+
+	uart3_pins: pinmux_uart3_pins {
+		pinctrl-single,pins = <
+			0x100 0x118	/* uart3_cts_rctx.uart3_cts_rctx INPUT_PULLUP | MODE0 */
+			0x102 0		/* uart3_rts_sd.uart3_rts_sd OUTPUT | MODE0 */
+			0x104 0x100	/* uart3_rx_irrx.uart3_rx_irrx INPUT | MODE0 */
+			0x106 0		/* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
+		>;
+	};
+
+	uart4_pins: pinmux_uart4_pins {
+		pinctrl-single,pins = <
+			0x11c 0x100	/* uart4_rx.uart4_rx INPUT | MODE0 */
+			0x11e 0		/* uart4_tx.uart4_tx OUTPUT | MODE0 */
+		>;
+	};
+};
+
 &i2c1 {
 	clock-frequency = <400000>;
 
@@ -226,3 +253,18 @@
 	bus-width = <4>;
 	ti,non-removable;
 };
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins>;
+};
+
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart3_pins>;
+};
+
+&uart4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart4_pins>;
+};

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
                   ` (3 preceding siblings ...)
  2012-09-06 18:58 ` [PATCH 4/5] arm/dts: Mux uart pins for omap4-sdp Tony Lindgren
@ 2012-09-06 18:58 ` Tony Lindgren
  2012-09-06 19:12   ` Tony Lindgren
                     ` (2 more replies)
  4 siblings, 3 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 18:58 UTC (permalink / raw)
  To: linux-arm-kernel

Request pins using pinctrl framework. Only show a warning
on error as some boards set the pins in the bootloader
even if CONFIG_PINCTRL is enabled.

Cc: linux-serial at vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
 drivers/tty/serial/omap-serial.c              |   10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
index 1a52725..0f4de14 100644
--- a/arch/arm/plat-omap/include/plat/omap-serial.h
+++ b/arch/arm/plat-omap/include/plat/omap-serial.h
@@ -106,6 +106,7 @@ struct uart_omap_port {
 	struct uart_port	port;
 	struct uart_omap_dma	uart_dma;
 	struct platform_device	*pdev;
+	struct pinctrl		*pins;
 
 	unsigned char		ier;
 	unsigned char		lcr;
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index d3cda0c..068e88c 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -39,6 +39,7 @@
 #include <linux/irq.h>
 #include <linux/pm_runtime.h>
 #include <linux/of.h>
+#include <linux/pinctrl/consumer.h>
 
 #include <plat/dma.h>
 #include <plat/dmtimer.h>
@@ -1492,6 +1493,13 @@ static int serial_omap_probe(struct platform_device *pdev)
 		goto err_port_line;
 	}
 
+	up->pins = pinctrl_get_select_default(&pdev->dev);
+	if (IS_ERR(up->pins)) {
+		dev_warn(&pdev->dev, "did not get pins for uart%i error: %li\n",
+			 up->port.line, PTR_ERR(up->pins));
+		up->pins = NULL;
+	}
+
 	sprintf(up->name, "OMAP UART%d", up->port.line);
 	up->port.mapbase = mem->start;
 	up->port.membase = devm_ioremap(&pdev->dev, mem->start,
@@ -1570,6 +1578,8 @@ static int serial_omap_remove(struct platform_device *dev)
 		pm_runtime_disable(&up->pdev->dev);
 		uart_remove_one_port(&serial_omap_reg, &up->port);
 		pm_qos_remove_request(&up->pm_qos_request);
+		if (up->pins)
+			pinctrl_put(up->pins);
 	}
 
 	platform_set_drvdata(dev, NULL);

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
@ 2012-09-06 19:12   ` Tony Lindgren
  2012-09-06 19:56   ` Felipe Balbi
  2012-09-07  3:27   ` AnilKumar, Chimata
  2 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 19:12 UTC (permalink / raw)
  To: linux-arm-kernel

* Tony Lindgren <tony@atomide.com> [120906 11:59]:
> Request pins using pinctrl framework. Only show a warning
> on error as some boards set the pins in the bootloader
> even if CONFIG_PINCTRL is enabled.
> 
> Cc: linux-serial at vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---

Greg, this patch should be OK for you to pick, it should not break
anything even if pinctrl is not available yet. Let me know if it
needs rebasing on top of other things you've queued for omap-serial.

Regards,

Tony

>  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
>  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> index 1a52725..0f4de14 100644
> --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> @@ -106,6 +106,7 @@ struct uart_omap_port {
>  	struct uart_port	port;
>  	struct uart_omap_dma	uart_dma;
>  	struct platform_device	*pdev;
> +	struct pinctrl		*pins;
>  
>  	unsigned char		ier;
>  	unsigned char		lcr;
> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> index d3cda0c..068e88c 100644
> --- a/drivers/tty/serial/omap-serial.c
> +++ b/drivers/tty/serial/omap-serial.c
> @@ -39,6 +39,7 @@
>  #include <linux/irq.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/of.h>
> +#include <linux/pinctrl/consumer.h>
>  
>  #include <plat/dma.h>
>  #include <plat/dmtimer.h>
> @@ -1492,6 +1493,13 @@ static int serial_omap_probe(struct platform_device *pdev)
>  		goto err_port_line;
>  	}
>  
> +	up->pins = pinctrl_get_select_default(&pdev->dev);
> +	if (IS_ERR(up->pins)) {
> +		dev_warn(&pdev->dev, "did not get pins for uart%i error: %li\n",
> +			 up->port.line, PTR_ERR(up->pins));
> +		up->pins = NULL;
> +	}
> +
>  	sprintf(up->name, "OMAP UART%d", up->port.line);
>  	up->port.mapbase = mem->start;
>  	up->port.membase = devm_ioremap(&pdev->dev, mem->start,
> @@ -1570,6 +1578,8 @@ static int serial_omap_remove(struct platform_device *dev)
>  		pm_runtime_disable(&up->pdev->dev);
>  		uart_remove_one_port(&serial_omap_reg, &up->port);
>  		pm_qos_remove_request(&up->pm_qos_request);
> +		if (up->pins)
> +			pinctrl_put(up->pins);
>  	}
>  
>  	platform_set_drvdata(dev, NULL);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
  2012-09-06 19:12   ` Tony Lindgren
@ 2012-09-06 19:56   ` Felipe Balbi
  2012-09-06 21:17     ` Tony Lindgren
  2012-09-07  3:27   ` AnilKumar, Chimata
  2 siblings, 1 reply; 15+ messages in thread
From: Felipe Balbi @ 2012-09-06 19:56 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Thu, Sep 06, 2012 at 11:58:32AM -0700, Tony Lindgren wrote:
> Request pins using pinctrl framework. Only show a warning
> on error as some boards set the pins in the bootloader
> even if CONFIG_PINCTRL is enabled.
> 
> Cc: linux-serial at vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
>  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> index 1a52725..0f4de14 100644
> --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> @@ -106,6 +106,7 @@ struct uart_omap_port {
>  	struct uart_port	port;
>  	struct uart_omap_dma	uart_dma;
>  	struct platform_device	*pdev;
> +	struct pinctrl		*pins;

this won't apply to Greg's tty-next as I moved this structure to the C
file :-s

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120906/ee1a5573/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 19:56   ` Felipe Balbi
@ 2012-09-06 21:17     ` Tony Lindgren
  2012-09-07  5:26       ` Felipe Balbi
  0 siblings, 1 reply; 15+ messages in thread
From: Tony Lindgren @ 2012-09-06 21:17 UTC (permalink / raw)
  To: linux-arm-kernel

* Felipe Balbi <balbi@ti.com> [120906 13:01]:
> Hi,
> 
> On Thu, Sep 06, 2012 at 11:58:32AM -0700, Tony Lindgren wrote:
> > Request pins using pinctrl framework. Only show a warning
> > on error as some boards set the pins in the bootloader
> > even if CONFIG_PINCTRL is enabled.
> > 
> > Cc: linux-serial at vger.kernel.org
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
> >  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
> >  2 files changed, 11 insertions(+)
> > 
> > diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> > index 1a52725..0f4de14 100644
> > --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> > +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> > @@ -106,6 +106,7 @@ struct uart_omap_port {
> >  	struct uart_port	port;
> >  	struct uart_omap_dma	uart_dma;
> >  	struct platform_device	*pdev;
> > +	struct pinctrl		*pins;
> 
> this won't apply to Greg's tty-next as I moved this structure to the C
> file :-s

Hmm the tty-next fails to build right now for omaps:

drivers/tty/serial/omap-serial.c: In function ?serial_omap_set_mctrl?:
drivers/tty/serial/omap-serial.c:514: error: ?struct uart_omap_port? has no member named ?DTR_gpio?

Maybe check how you want to fix that first? I can then update
my patch for tty-next.

Regards,

Tony

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
  2012-09-06 19:12   ` Tony Lindgren
  2012-09-06 19:56   ` Felipe Balbi
@ 2012-09-07  3:27   ` AnilKumar, Chimata
  2012-09-07 17:28     ` Tony Lindgren
  2 siblings, 1 reply; 15+ messages in thread
From: AnilKumar, Chimata @ 2012-09-07  3:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Tony,

On Fri, Sep 07, 2012 at 00:28:32, Tony Lindgren wrote:
> Request pins using pinctrl framework. Only show a warning
> on error as some boards set the pins in the bootloader
> even if CONFIG_PINCTRL is enabled.
> 
> Cc: linux-serial at vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
>  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> index 1a52725..0f4de14 100644
> --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> @@ -106,6 +106,7 @@ struct uart_omap_port {
>  	struct uart_port	port;
>  	struct uart_omap_dma	uart_dma;
>  	struct platform_device	*pdev;
> +	struct pinctrl		*pins;
>  
>  	unsigned char		ier;
>  	unsigned char		lcr;
> diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> index d3cda0c..068e88c 100644
> --- a/drivers/tty/serial/omap-serial.c
> +++ b/drivers/tty/serial/omap-serial.c
> @@ -39,6 +39,7 @@
>  #include <linux/irq.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/of.h>
> +#include <linux/pinctrl/consumer.h>
>  
>  #include <plat/dma.h>
>  #include <plat/dmtimer.h>
> @@ -1492,6 +1493,13 @@ static int serial_omap_probe(struct platform_device *pdev)
>  		goto err_port_line;
>  	}
>  
> +	up->pins = pinctrl_get_select_default(&pdev->dev);
> +	if (IS_ERR(up->pins)) {
> +		dev_warn(&pdev->dev, "did not get pins for uart%i error: %li\n",
> +			 up->port.line, PTR_ERR(up->pins));
> +		up->pins = NULL;
> +	}
> +
>  	sprintf(up->name, "OMAP UART%d", up->port.line);
>  	up->port.mapbase = mem->start;
>  	up->port.membase = devm_ioremap(&pdev->dev, mem->start,
> @@ -1570,6 +1578,8 @@ static int serial_omap_remove(struct platform_device *dev)
>  		pm_runtime_disable(&up->pdev->dev);
>  		uart_remove_one_port(&serial_omap_reg, &up->port);
>  		pm_qos_remove_request(&up->pm_qos_request);
> +		if (up->pins)
> +			pinctrl_put(up->pins);

I think this can be removed if we use devm_pinctrl_get_select_default()
above.

Thanks
AnilKumar

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-06 21:17     ` Tony Lindgren
@ 2012-09-07  5:26       ` Felipe Balbi
  0 siblings, 0 replies; 15+ messages in thread
From: Felipe Balbi @ 2012-09-07  5:26 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Thu, Sep 06, 2012 at 02:17:26PM -0700, Tony Lindgren wrote:
> * Felipe Balbi <balbi@ti.com> [120906 13:01]:
> > Hi,
> > 
> > On Thu, Sep 06, 2012 at 11:58:32AM -0700, Tony Lindgren wrote:
> > > Request pins using pinctrl framework. Only show a warning
> > > on error as some boards set the pins in the bootloader
> > > even if CONFIG_PINCTRL is enabled.
> > > 
> > > Cc: linux-serial at vger.kernel.org
> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > > ---
> > >  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
> > >  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
> > >  2 files changed, 11 insertions(+)
> > > 
> > > diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> > > index 1a52725..0f4de14 100644
> > > --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> > > +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> > > @@ -106,6 +106,7 @@ struct uart_omap_port {
> > >  	struct uart_port	port;
> > >  	struct uart_omap_dma	uart_dma;
> > >  	struct platform_device	*pdev;
> > > +	struct pinctrl		*pins;
> > 
> > this won't apply to Greg's tty-next as I moved this structure to the C
> > file :-s
> 
> Hmm the tty-next fails to build right now for omaps:
> 
> drivers/tty/serial/omap-serial.c: In function ?serial_omap_set_mctrl?:
> drivers/tty/serial/omap-serial.c:514: error: ?struct uart_omap_port? has no member named ?DTR_gpio?
> 
> Maybe check how you want to fix that first? I can then update
> my patch for tty-next.

oops, my bad. Patch sent.

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120907/10cbd027/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4
  2012-09-06 18:58 ` [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4 Tony Lindgren
@ 2012-09-07  8:10   ` Linus Walleij
  0 siblings, 0 replies; 15+ messages in thread
From: Linus Walleij @ 2012-09-07  8:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Sep 6, 2012 at 8:58 PM, Tony Lindgren <tony@atomide.com> wrote:

> Add pinctrl driver entries for omap2+. These all use
> the generic pinctrl-single driver for the padconf
> registers.
>
> Note that as 2420 and 2430 have different padmux
> registers, we now need to include omap2420.dtsi from
> omap2420-h4.dts.
>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: devicetree-discuss at lists.ozlabs.org
> Signed-off-by: Tony Lindgren <tony@atomide.com>

FWIW:
Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm
  2012-09-06 18:58 ` [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm Tony Lindgren
@ 2012-09-07 15:49   ` Benoit Cousson
  0 siblings, 0 replies; 15+ messages in thread
From: Benoit Cousson @ 2012-09-07 15:49 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Tony,

On 09/06/2012 08:58 PM, Tony Lindgren wrote:
> The extra serial port is not available on 34xx. And the current
> omap3-beagle.dts file is for omap3-beagle-xm.dts as it lists 512MB
> of memory.

Indeed, my Beagle is in fact a xM :-)

It is too bad that we do have to duplicate the DTS file for all the board variants. Peter already did that for pandaES and at that time I was wondering if this was needed or not.

That being said, I'm not sure we have any good way to handle two boards using the same DTS. It means that will we will have to rely on the bootloader now to select the proper DTB.

Please not that's I'm queuing a bunch of OMAP2/3/4/5/AM33XX for you, so you might have to rebase that one on top.

The branch is there. 

git://git.kernel.org/pub/scm/linux/kernel/git/bcousson/linux-omap-dt.git for_3.7/dts

I'm still waiting for a couple of AM33xx pinmux patches from Anil that should re acked by some folks who know that (like you :-)).

I'll send you the pull request next week.

Regards,
Benoit

> Please somebody submit a new omap3-beagle.dts for the original 34xx
> BeagleBoard after testing it properly.
> 
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: devicetree-discuss at lists.ozlabs.org
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/boot/dts/omap3-beagle-xm.dts |    6 +++---
>  arch/arm/boot/dts/omap3.dtsi          |    7 -------
>  arch/arm/boot/dts/omap36xx.dtsi       |   25 +++++++++++++++++++++++++
>  arch/arm/mach-omap2/Makefile.boot     |    2 +-
>  4 files changed, 29 insertions(+), 11 deletions(-)
>  rename arch/arm/boot/dts/{omap3-beagle.dts => omap3-beagle-xm.dts} (89%)
>  create mode 100644 arch/arm/boot/dts/omap36xx.dtsi
> 
> diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
> similarity index 89%
> rename from arch/arm/boot/dts/omap3-beagle.dts
> rename to arch/arm/boot/dts/omap3-beagle-xm.dts
> index e60cba0..df6d485 100644
> --- a/arch/arm/boot/dts/omap3-beagle.dts
> +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
> @@ -7,11 +7,11 @@
>   */
>  /dts-v1/;
>  
> -/include/ "omap3.dtsi"
> +/include/ "omap36xx.dtsi"
>  
>  / {
> -	model = "TI OMAP3 BeagleBoard";
> -	compatible = "ti,omap3-beagle", "ti,omap3";
> +	model = "TI OMAP3 BeagleBoard xM";
> +	compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3";
>  
>  	memory {
>  		device_type = "memory";
> diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
> index 8109471..9965ed6 100644
> --- a/arch/arm/boot/dts/omap3.dtsi
> +++ b/arch/arm/boot/dts/omap3.dtsi
> @@ -17,7 +17,6 @@
>  		serial0 = &uart1;
>  		serial1 = &uart2;
>  		serial2 = &uart3;
> -		serial3 = &uart4;
>  	};
>  
>  	cpus {
> @@ -141,12 +140,6 @@
>  			clock-frequency = <48000000>;
>  		};
>  
> -		uart4: serial at 49042000 {
> -			compatible = "ti,omap3-uart";
> -			ti,hwmods = "uart4";
> -			clock-frequency = <48000000>;
> -		};
> -
>  		i2c1: i2c at 48070000 {
>  			compatible = "ti,omap3-i2c";
>  			#address-cells = <1>;
> diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
> new file mode 100644
> index 0000000..96bf028
> --- /dev/null
> +++ b/arch/arm/boot/dts/omap36xx.dtsi
> @@ -0,0 +1,25 @@
> +/*
> + * Device Tree Source for OMAP3 SoC
> + *
> + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
> + *
> + * This file is licensed under the terms of the GNU General Public License
> + * version 2.  This program is licensed "as is" without any warranty of any
> + * kind, whether express or implied.
> + */
> +
> +/include/ "omap3.dtsi"
> +
> +/ {
> +	aliases {
> +		serial3 = &uart4;
> +	};
> +
> +	ocp {
> +		uart4: serial at 49042000 {
> +			compatible = "ti,omap3-uart";
> +			ti,hwmods = "uart4";
> +			clock-frequency = <48000000>;
> +		};
> +	};
> +};
> diff --git a/arch/arm/mach-omap2/Makefile.boot b/arch/arm/mach-omap2/Makefile.boot
> index 6cf1c2d..0e602b7 100644
> --- a/arch/arm/mach-omap2/Makefile.boot
> +++ b/arch/arm/mach-omap2/Makefile.boot
> @@ -3,7 +3,7 @@ params_phys-y		:= 0x80000100
>  initrd_phys-y		:= 0x80800000
>  
>  dtb-$(CONFIG_SOC_OMAP2420)	+= omap2420-h4.dtb
> -dtb-$(CONFIG_ARCH_OMAP3)	+= omap3-beagle.dtb omap3-evm.dtb
> +dtb-$(CONFIG_ARCH_OMAP3)	+= omap3-beagle-xm.dtb omap3-evm.dtb
>  dtb-$(CONFIG_ARCH_OMAP4)	+= omap4-panda.dtb omap4-pandaES.dtb
>  dtb-$(CONFIG_ARCH_OMAP4)	+= omap4-var_som.dtb omap4-sdp.dtb
>  dtb-$(CONFIG_SOC_OMAP5)		+= omap5-evm.dtb
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-07  3:27   ` AnilKumar, Chimata
@ 2012-09-07 17:28     ` Tony Lindgren
  2012-09-07 18:03       ` Tony Lindgren
  0 siblings, 1 reply; 15+ messages in thread
From: Tony Lindgren @ 2012-09-07 17:28 UTC (permalink / raw)
  To: linux-arm-kernel

* AnilKumar, Chimata <anilkumar@ti.com> [120906 20:27]:
> Hi Tony,
> 
> On Fri, Sep 07, 2012 at 00:28:32, Tony Lindgren wrote:
> > Request pins using pinctrl framework. Only show a warning
> > on error as some boards set the pins in the bootloader
> > even if CONFIG_PINCTRL is enabled.
> > 
> > Cc: linux-serial at vger.kernel.org
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  arch/arm/plat-omap/include/plat/omap-serial.h |    1 +
> >  drivers/tty/serial/omap-serial.c              |   10 ++++++++++
> >  2 files changed, 11 insertions(+)
> > 
> > diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h
> > index 1a52725..0f4de14 100644
> > --- a/arch/arm/plat-omap/include/plat/omap-serial.h
> > +++ b/arch/arm/plat-omap/include/plat/omap-serial.h
> > @@ -106,6 +106,7 @@ struct uart_omap_port {
> >  	struct uart_port	port;
> >  	struct uart_omap_dma	uart_dma;
> >  	struct platform_device	*pdev;
> > +	struct pinctrl		*pins;
> >  
> >  	unsigned char		ier;
> >  	unsigned char		lcr;
> > diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
> > index d3cda0c..068e88c 100644
> > --- a/drivers/tty/serial/omap-serial.c
> > +++ b/drivers/tty/serial/omap-serial.c
> > @@ -39,6 +39,7 @@
> >  #include <linux/irq.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/of.h>
> > +#include <linux/pinctrl/consumer.h>
> >  
> >  #include <plat/dma.h>
> >  #include <plat/dmtimer.h>
> > @@ -1492,6 +1493,13 @@ static int serial_omap_probe(struct platform_device *pdev)
> >  		goto err_port_line;
> >  	}
> >  
> > +	up->pins = pinctrl_get_select_default(&pdev->dev);
> > +	if (IS_ERR(up->pins)) {
> > +		dev_warn(&pdev->dev, "did not get pins for uart%i error: %li\n",
> > +			 up->port.line, PTR_ERR(up->pins));
> > +		up->pins = NULL;
> > +	}
> > +
> >  	sprintf(up->name, "OMAP UART%d", up->port.line);
> >  	up->port.mapbase = mem->start;
> >  	up->port.membase = devm_ioremap(&pdev->dev, mem->start,
> > @@ -1570,6 +1578,8 @@ static int serial_omap_remove(struct platform_device *dev)
> >  		pm_runtime_disable(&up->pdev->dev);
> >  		uart_remove_one_port(&serial_omap_reg, &up->port);
> >  		pm_qos_remove_request(&up->pm_qos_request);
> > +		if (up->pins)
> > +			pinctrl_put(up->pins);
> 
> I think this can be removed if we use devm_pinctrl_get_select_default()
> above.

Yeah will do, I was initially thinking that would cause issues remuxing
pins back to safe mode on unload, but we can still do that in
serial_omap_remove().

Regards,

Tony

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] omap-serial: Request pins using pinctrl framework
  2012-09-07 17:28     ` Tony Lindgren
@ 2012-09-07 18:03       ` Tony Lindgren
  0 siblings, 0 replies; 15+ messages in thread
From: Tony Lindgren @ 2012-09-07 18:03 UTC (permalink / raw)
  To: linux-arm-kernel

* Tony Lindgren <tony@atomide.com> [120907 10:29]:
> * AnilKumar, Chimata <anilkumar@ti.com> [120906 20:27]:
> > > @@ -1570,6 +1578,8 @@ static int serial_omap_remove(struct platform_device *dev)
> > >  		pm_runtime_disable(&up->pdev->dev);
> > >  		uart_remove_one_port(&serial_omap_reg, &up->port);
> > >  		pm_qos_remove_request(&up->pm_qos_request);
> > > +		if (up->pins)
> > > +			pinctrl_put(up->pins);
> > 
> > I think this can be removed if we use devm_pinctrl_get_select_default()
> > above.
> 
> Yeah will do, I was initially thinking that would cause issues remuxing
> pins back to safe mode on unload, but we can still do that in
> serial_omap_remove().

Sent now as a separate patch with subject "[PATCH] serial: omap: Request
pins using pinctrl framework".

Regards,

Tony

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-09-07 18:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-06 18:58 [PATCH 0/5] Enable pinctrl-single for omap2/3/4 Tony Lindgren
2012-09-06 18:58 ` [PATCH 1/5] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm Tony Lindgren
2012-09-07 15:49   ` Benoit Cousson
2012-09-06 18:58 ` [PATCH 2/5] arm/dts: Add pinctrl driver entries for omap2/3/4 Tony Lindgren
2012-09-07  8:10   ` Linus Walleij
2012-09-06 18:58 ` [PATCH 3/5] ARM: OMAP2+: select PINCTRL in Kconfig Tony Lindgren
2012-09-06 18:58 ` [PATCH 4/5] arm/dts: Mux uart pins for omap4-sdp Tony Lindgren
2012-09-06 18:58 ` [PATCH 5/5] omap-serial: Request pins using pinctrl framework Tony Lindgren
2012-09-06 19:12   ` Tony Lindgren
2012-09-06 19:56   ` Felipe Balbi
2012-09-06 21:17     ` Tony Lindgren
2012-09-07  5:26       ` Felipe Balbi
2012-09-07  3:27   ` AnilKumar, Chimata
2012-09-07 17:28     ` Tony Lindgren
2012-09-07 18:03       ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).