diff options
Diffstat (limited to 'arch/arm/mach-omap2/serial.c')
-rw-r--r-- | arch/arm/mach-omap2/serial.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index c1b93c752d70..0405c8190803 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -29,11 +29,11 @@ | |||
29 | 29 | ||
30 | #include <plat/omap-serial.h> | 30 | #include <plat/omap-serial.h> |
31 | #include "common.h" | 31 | #include "common.h" |
32 | #include <plat/board.h> | ||
33 | #include <plat/dma.h> | 32 | #include <plat/dma.h> |
34 | #include <plat/omap_hwmod.h> | 33 | #include <plat/omap_hwmod.h> |
35 | #include <plat/omap_device.h> | 34 | #include <plat/omap_device.h> |
36 | #include <plat/omap-pm.h> | 35 | #include <plat/omap-pm.h> |
36 | #include <plat/serial.h> | ||
37 | 37 | ||
38 | #include "prm2xxx_3xxx.h" | 38 | #include "prm2xxx_3xxx.h" |
39 | #include "pm.h" | 39 | #include "pm.h" |
@@ -81,8 +81,9 @@ static struct omap_uart_port_info omap_serial_default_info[] __initdata = { | |||
81 | }; | 81 | }; |
82 | 82 | ||
83 | #ifdef CONFIG_PM | 83 | #ifdef CONFIG_PM |
84 | static void omap_uart_enable_wakeup(struct platform_device *pdev, bool enable) | 84 | static void omap_uart_enable_wakeup(struct device *dev, bool enable) |
85 | { | 85 | { |
86 | struct platform_device *pdev = to_platform_device(dev); | ||
86 | struct omap_device *od = to_omap_device(pdev); | 87 | struct omap_device *od = to_omap_device(pdev); |
87 | 88 | ||
88 | if (!od) | 89 | if (!od) |
@@ -99,15 +100,17 @@ static void omap_uart_enable_wakeup(struct platform_device *pdev, bool enable) | |||
99 | * in Smartidle Mode When Configured for DMA Operations. | 100 | * in Smartidle Mode When Configured for DMA Operations. |
100 | * WA: configure uart in force idle mode. | 101 | * WA: configure uart in force idle mode. |
101 | */ | 102 | */ |
102 | static void omap_uart_set_noidle(struct platform_device *pdev) | 103 | static void omap_uart_set_noidle(struct device *dev) |
103 | { | 104 | { |
105 | struct platform_device *pdev = to_platform_device(dev); | ||
104 | struct omap_device *od = to_omap_device(pdev); | 106 | struct omap_device *od = to_omap_device(pdev); |
105 | 107 | ||
106 | omap_hwmod_set_slave_idlemode(od->hwmods[0], HWMOD_IDLEMODE_NO); | 108 | omap_hwmod_set_slave_idlemode(od->hwmods[0], HWMOD_IDLEMODE_NO); |
107 | } | 109 | } |
108 | 110 | ||
109 | static void omap_uart_set_smartidle(struct platform_device *pdev) | 111 | static void omap_uart_set_smartidle(struct device *dev) |
110 | { | 112 | { |
113 | struct platform_device *pdev = to_platform_device(dev); | ||
111 | struct omap_device *od = to_omap_device(pdev); | 114 | struct omap_device *od = to_omap_device(pdev); |
112 | u8 idlemode; | 115 | u8 idlemode; |
113 | 116 | ||
@@ -120,10 +123,10 @@ static void omap_uart_set_smartidle(struct platform_device *pdev) | |||
120 | } | 123 | } |
121 | 124 | ||
122 | #else | 125 | #else |
123 | static void omap_uart_enable_wakeup(struct platform_device *pdev, bool enable) | 126 | static void omap_uart_enable_wakeup(struct device *dev, bool enable) |
124 | {} | 127 | {} |
125 | static void omap_uart_set_noidle(struct platform_device *pdev) {} | 128 | static void omap_uart_set_noidle(struct device *dev) {} |
126 | static void omap_uart_set_smartidle(struct platform_device *pdev) {} | 129 | static void omap_uart_set_smartidle(struct device *dev) {} |
127 | #endif /* CONFIG_PM */ | 130 | #endif /* CONFIG_PM */ |
128 | 131 | ||
129 | #ifdef CONFIG_OMAP_MUX | 132 | #ifdef CONFIG_OMAP_MUX |
@@ -229,9 +232,8 @@ static int __init omap_serial_early_init(void) | |||
229 | 232 | ||
230 | if (console_loglevel >= 10) { | 233 | if (console_loglevel >= 10) { |
231 | uart_debug = true; | 234 | uart_debug = true; |
232 | pr_info("%s used as console in debug mode" | 235 | pr_info("%s used as console in debug mode: uart%d clocks will not be gated", |
233 | " uart%d clocks will not be" | 236 | uart_name, uart->num); |
234 | " gated", uart_name, uart->num); | ||
235 | } | 237 | } |
236 | 238 | ||
237 | if (cmdline_find_option("no_console_suspend")) | 239 | if (cmdline_find_option("no_console_suspend")) |
@@ -304,6 +306,9 @@ void __init omap_serial_init_port(struct omap_board_data *bdata, | |||
304 | omap_up.dma_rx_timeout = info->dma_rx_timeout; | 306 | omap_up.dma_rx_timeout = info->dma_rx_timeout; |
305 | omap_up.dma_rx_poll_rate = info->dma_rx_poll_rate; | 307 | omap_up.dma_rx_poll_rate = info->dma_rx_poll_rate; |
306 | omap_up.autosuspend_timeout = info->autosuspend_timeout; | 308 | omap_up.autosuspend_timeout = info->autosuspend_timeout; |
309 | omap_up.DTR_gpio = info->DTR_gpio; | ||
310 | omap_up.DTR_inverted = info->DTR_inverted; | ||
311 | omap_up.DTR_present = info->DTR_present; | ||
307 | 312 | ||
308 | pdata = &omap_up; | 313 | pdata = &omap_up; |
309 | pdata_size = sizeof(struct omap_uart_port_info); | 314 | pdata_size = sizeof(struct omap_uart_port_info); |
@@ -313,8 +318,11 @@ void __init omap_serial_init_port(struct omap_board_data *bdata, | |||
313 | 318 | ||
314 | pdev = omap_device_build(name, uart->num, oh, pdata, pdata_size, | 319 | pdev = omap_device_build(name, uart->num, oh, pdata, pdata_size, |
315 | NULL, 0, false); | 320 | NULL, 0, false); |
316 | WARN(IS_ERR(pdev), "Could not build omap_device for %s: %s.\n", | 321 | if (IS_ERR(pdev)) { |
317 | name, oh->name); | 322 | WARN(1, "Could not build omap_device for %s: %s.\n", name, |
323 | oh->name); | ||
324 | return; | ||
325 | } | ||
318 | 326 | ||
319 | if ((console_uart_id == bdata->id) && no_console_suspend) | 327 | if ((console_uart_id == bdata->id) && no_console_suspend) |
320 | omap_device_disable_idle_on_suspend(pdev); | 328 | omap_device_disable_idle_on_suspend(pdev); |