aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-22 23:25:50 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-22 23:25:50 -0400
commit7fc86a7908a4e9eb2da4b6498f86193d113842d3 (patch)
treec1b2faab48d2a6003c8e8efae5f356a4e792ce0a /drivers/tty
parent90597b6cfc1fc9926a4d54f09bbf5b3254b1b028 (diff)
parent51dddfe839a0ebcb5ff61a779e3f2768714f9957 (diff)
Merge tag 'pinctrl-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pinctrl updates for v3.4 from Linus Walleij (*): - Switches the PXA 168, 910 and MMP over to use pinctrl - Locking revamped - Massive refactorings... - Reform the driver API to use multiple states - Support pin config in the mapping tables - Pinctrl drivers for the nVidia Tegra series - Generic pin config support lib for simple pin controllers - Implement pin config for the U300 * tag 'pinctrl-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (48 commits) ARM: u300: configure some pins as an example pinctrl: support pinconfig on the U300 pinctrl/coh901: use generic pinconf enums and parameters pinctrl: introduce generic pin config pinctrl: fix error path in pinconf_map_to_setting() pinctrl: allow concurrent gpio and mux function ownership of pins pinctrl: forward-declare struct device pinctrl: split pincontrol states into its own header pinctrl: include machine header to core.h ARM: tegra: Select PINCTRL Kconfig variables pinctrl: add a driver for NVIDIA Tegra pinctrl: Show selected function and group in pinmux-pins debugfs pinctrl: enhance mapping table to support pin config operations pinctrl: API changes to support multiple states per device pinctrl: add usecount to pins for muxing pinctrl: refactor struct pinctrl handling in core.c vs pinmux.c pinctrl: fix and simplify locking pinctrl: fix the pin descriptor kerneldoc pinctrl: assume map table entries can't have a NULL name field pinctrl: introduce PINCTRL_STATE_DEFAULT, define hogs as that state ... (*) What is it with all these Linuses these days? There's a Linus at google too. Some day I will get myself my own broadsword, and run around screaming "There can be only one". I used to be _special_ dammit. Snif.
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/serial/sirfsoc_uart.c24
-rw-r--r--drivers/tty/serial/sirfsoc_uart.h2
2 files changed, 10 insertions, 16 deletions
diff --git a/drivers/tty/serial/sirfsoc_uart.c b/drivers/tty/serial/sirfsoc_uart.c
index a60523fee11b..5b3eda2024fe 100644
--- a/drivers/tty/serial/sirfsoc_uart.c
+++ b/drivers/tty/serial/sirfsoc_uart.c
@@ -22,7 +22,7 @@
22#include <linux/io.h> 22#include <linux/io.h>
23#include <asm/irq.h> 23#include <asm/irq.h>
24#include <asm/mach/irq.h> 24#include <asm/mach/irq.h>
25#include <linux/pinctrl/pinmux.h> 25#include <linux/pinctrl/consumer.h>
26 26
27#include "sirfsoc_uart.h" 27#include "sirfsoc_uart.h"
28 28
@@ -673,12 +673,10 @@ int sirfsoc_uart_probe(struct platform_device *pdev)
673 port->irq = res->start; 673 port->irq = res->start;
674 674
675 if (sirfport->hw_flow_ctrl) { 675 if (sirfport->hw_flow_ctrl) {
676 sirfport->pmx = pinmux_get(&pdev->dev, NULL); 676 sirfport->p = pinctrl_get_select_default(&pdev->dev);
677 ret = IS_ERR(sirfport->pmx); 677 ret = IS_ERR(sirfport->p);
678 if (ret) 678 if (ret)
679 goto pmx_err; 679 goto pin_err;
680
681 pinmux_enable(sirfport->pmx);
682 } 680 }
683 681
684 port->ops = &sirfsoc_uart_ops; 682 port->ops = &sirfsoc_uart_ops;
@@ -695,11 +693,9 @@ int sirfsoc_uart_probe(struct platform_device *pdev)
695 693
696port_err: 694port_err:
697 platform_set_drvdata(pdev, NULL); 695 platform_set_drvdata(pdev, NULL);
698 if (sirfport->hw_flow_ctrl) { 696 if (sirfport->hw_flow_ctrl)
699 pinmux_disable(sirfport->pmx); 697 pinctrl_put(sirfport->p);
700 pinmux_put(sirfport->pmx); 698pin_err:
701 }
702pmx_err:
703irq_err: 699irq_err:
704 devm_iounmap(&pdev->dev, port->membase); 700 devm_iounmap(&pdev->dev, port->membase);
705err: 701err:
@@ -711,10 +707,8 @@ static int sirfsoc_uart_remove(struct platform_device *pdev)
711 struct sirfsoc_uart_port *sirfport = platform_get_drvdata(pdev); 707 struct sirfsoc_uart_port *sirfport = platform_get_drvdata(pdev);
712 struct uart_port *port = &sirfport->port; 708 struct uart_port *port = &sirfport->port;
713 platform_set_drvdata(pdev, NULL); 709 platform_set_drvdata(pdev, NULL);
714 if (sirfport->hw_flow_ctrl) { 710 if (sirfport->hw_flow_ctrl)
715 pinmux_disable(sirfport->pmx); 711 pinctrl_put(sirfport->p);
716 pinmux_put(sirfport->pmx);
717 }
718 devm_iounmap(&pdev->dev, port->membase); 712 devm_iounmap(&pdev->dev, port->membase);
719 uart_remove_one_port(&sirfsoc_uart_drv, port); 713 uart_remove_one_port(&sirfsoc_uart_drv, port);
720 return 0; 714 return 0;
diff --git a/drivers/tty/serial/sirfsoc_uart.h b/drivers/tty/serial/sirfsoc_uart.h
index fc64260fa93c..6e207fdc2fed 100644
--- a/drivers/tty/serial/sirfsoc_uart.h
+++ b/drivers/tty/serial/sirfsoc_uart.h
@@ -162,7 +162,7 @@ struct sirfsoc_uart_port {
162 unsigned char ms_enabled; 162 unsigned char ms_enabled;
163 163
164 struct uart_port port; 164 struct uart_port port;
165 struct pinmux *pmx; 165 struct pinctrl *p;
166}; 166};
167 167
168/* Hardware Flow Control */ 168/* Hardware Flow Control */