aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty
diff options
context:
space:
mode:
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 */