diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-22 23:25:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-22 23:25:50 -0400 |
commit | 7fc86a7908a4e9eb2da4b6498f86193d113842d3 (patch) | |
tree | c1b2faab48d2a6003c8e8efae5f356a4e792ce0a /drivers/tty | |
parent | 90597b6cfc1fc9926a4d54f09bbf5b3254b1b028 (diff) | |
parent | 51dddfe839a0ebcb5ff61a779e3f2768714f9957 (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.c | 24 | ||||
-rw-r--r-- | drivers/tty/serial/sirfsoc_uart.h | 2 |
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 | ||
696 | port_err: | 694 | port_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); | 698 | pin_err: |
701 | } | ||
702 | pmx_err: | ||
703 | irq_err: | 699 | irq_err: |
704 | devm_iounmap(&pdev->dev, port->membase); | 700 | devm_iounmap(&pdev->dev, port->membase); |
705 | err: | 701 | err: |
@@ -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 */ |