aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-01 19:55:57 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-01 19:55:57 -0400
commitcb1595563880a81dab6eab9a5ecb4520d2e76077 (patch)
tree042907fc859287a40a454d57c034015742e38cbf /arch
parentc12e69c6aaf785fd307d05cb6f36ca0e7577ead7 (diff)
parent3a13884abea08a5043b98d9374486ec859d1e03a (diff)
Merge tag 'tty-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver update from Greg KH: "Here's the big tty/serial driver update for 3.15-rc1. Nothing major, a number of serial driver updates and a few tty core fixes as well. All have been in linux-next for a while" * tag 'tty-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (71 commits) tty/serial: omap: empty the RX FIFO at the end of half-duplex TX tty/serial: omap: fix RX interrupt enable/disable in half-duplex TX serial: sh-sci: Neaten dev_<level> uses serial: sh-sci: Replace hardcoded 3 by UART_PM_STATE_OFF serial: sh-sci: Add more register documentation serial: sh-sci: Remove useless casts serial: sh-sci: Replace printk() by pr_*() serial_core: Avoid NULL pointer dereference in uart_close() serial_core: Get a reference for port->tty in uart_remove_one_port() serial: clps711x: Give a chance to perform useful tasks during wait loop serial_core: Grammar s/ports/port's/ serial_core: Spelling s/contro/control/ serial: efm32: properly namespace location property serial: max310x: Add missing #include <linux/uaccess.h> synclink: fix info leak in ioctl serial: 8250: Clean up the locking for -rt serial: 8250_pci: change BayTrail default uartclk serial: 8250_pci: more BayTrail error-free bauds serial: sh-sci: Add missing call to uart_remove_one_port() in failure path serial_core: Unregister console in uart_remove_one_port() ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/atlas6.dtsi17
-rw-r--r--arch/arm/boot/dts/prima2.dtsi20
-rw-r--r--arch/arm/mach-imx/mach-mx31moboard.c21
3 files changed, 24 insertions, 34 deletions
diff --git a/arch/arm/boot/dts/atlas6.dtsi b/arch/arm/boot/dts/atlas6.dtsi
index f8674bcc4489..0c81dc945aed 100644
--- a/arch/arm/boot/dts/atlas6.dtsi
+++ b/arch/arm/boot/dts/atlas6.dtsi
@@ -217,8 +217,8 @@
217 interrupts = <17>; 217 interrupts = <17>;
218 fifosize = <128>; 218 fifosize = <128>;
219 clocks = <&clks 13>; 219 clocks = <&clks 13>;
220 sirf,uart-dma-rx-channel = <21>; 220 dmas = <&dmac1 5>, <&dmac0 2>;
221 sirf,uart-dma-tx-channel = <2>; 221 dma-names = "rx", "tx";
222 }; 222 };
223 223
224 uart1: uart@b0060000 { 224 uart1: uart@b0060000 {
@@ -228,6 +228,7 @@
228 interrupts = <18>; 228 interrupts = <18>;
229 fifosize = <32>; 229 fifosize = <32>;
230 clocks = <&clks 14>; 230 clocks = <&clks 14>;
231 dma-names = "no-rx", "no-tx";
231 }; 232 };
232 233
233 uart2: uart@b0070000 { 234 uart2: uart@b0070000 {
@@ -237,8 +238,8 @@
237 interrupts = <19>; 238 interrupts = <19>;
238 fifosize = <128>; 239 fifosize = <128>;
239 clocks = <&clks 15>; 240 clocks = <&clks 15>;
240 sirf,uart-dma-rx-channel = <6>; 241 dmas = <&dmac0 6>, <&dmac0 7>;
241 sirf,uart-dma-tx-channel = <7>; 242 dma-names = "rx", "tx";
242 }; 243 };
243 244
244 usp0: usp@b0080000 { 245 usp0: usp@b0080000 {
@@ -248,8 +249,8 @@
248 interrupts = <20>; 249 interrupts = <20>;
249 fifosize = <128>; 250 fifosize = <128>;
250 clocks = <&clks 28>; 251 clocks = <&clks 28>;
251 sirf,usp-dma-rx-channel = <17>; 252 dmas = <&dmac1 1>, <&dmac1 2>;
252 sirf,usp-dma-tx-channel = <18>; 253 dma-names = "rx", "tx";
253 }; 254 };
254 255
255 usp1: usp@b0090000 { 256 usp1: usp@b0090000 {
@@ -259,8 +260,8 @@
259 interrupts = <21>; 260 interrupts = <21>;
260 fifosize = <128>; 261 fifosize = <128>;
261 clocks = <&clks 29>; 262 clocks = <&clks 29>;
262 sirf,usp-dma-rx-channel = <14>; 263 dmas = <&dmac0 14>, <&dmac0 15>;
263 sirf,usp-dma-tx-channel = <15>; 264 dma-names = "rx", "tx";
264 }; 265 };
265 266
266 dmac0: dma-controller@b00b0000 { 267 dmac0: dma-controller@b00b0000 {
diff --git a/arch/arm/boot/dts/prima2.dtsi b/arch/arm/boot/dts/prima2.dtsi
index 0e219932d7cc..8582ae41a583 100644
--- a/arch/arm/boot/dts/prima2.dtsi
+++ b/arch/arm/boot/dts/prima2.dtsi
@@ -223,8 +223,8 @@
223 interrupts = <17>; 223 interrupts = <17>;
224 fifosize = <128>; 224 fifosize = <128>;
225 clocks = <&clks 13>; 225 clocks = <&clks 13>;
226 sirf,uart-dma-rx-channel = <21>; 226 dmas = <&dmac1 5>, <&dmac0 2>;
227 sirf,uart-dma-tx-channel = <2>; 227 dma-names = "rx", "tx";
228 }; 228 };
229 229
230 uart1: uart@b0060000 { 230 uart1: uart@b0060000 {
@@ -243,8 +243,8 @@
243 interrupts = <19>; 243 interrupts = <19>;
244 fifosize = <128>; 244 fifosize = <128>;
245 clocks = <&clks 15>; 245 clocks = <&clks 15>;
246 sirf,uart-dma-rx-channel = <6>; 246 dmas = <&dmac0 6>, <&dmac0 7>;
247 sirf,uart-dma-tx-channel = <7>; 247 dma-names = "rx", "tx";
248 }; 248 };
249 249
250 usp0: usp@b0080000 { 250 usp0: usp@b0080000 {
@@ -254,8 +254,8 @@
254 interrupts = <20>; 254 interrupts = <20>;
255 fifosize = <128>; 255 fifosize = <128>;
256 clocks = <&clks 28>; 256 clocks = <&clks 28>;
257 sirf,usp-dma-rx-channel = <17>; 257 dmas = <&dmac1 1>, <&dmac1 2>;
258 sirf,usp-dma-tx-channel = <18>; 258 dma-names = "rx", "tx";
259 }; 259 };
260 260
261 usp1: usp@b0090000 { 261 usp1: usp@b0090000 {
@@ -265,8 +265,8 @@
265 interrupts = <21>; 265 interrupts = <21>;
266 fifosize = <128>; 266 fifosize = <128>;
267 clocks = <&clks 29>; 267 clocks = <&clks 29>;
268 sirf,usp-dma-rx-channel = <14>; 268 dmas = <&dmac0 14>, <&dmac0 15>;
269 sirf,usp-dma-tx-channel = <15>; 269 dma-names = "rx", "tx";
270 }; 270 };
271 271
272 usp2: usp@b00a0000 { 272 usp2: usp@b00a0000 {
@@ -276,8 +276,8 @@
276 interrupts = <22>; 276 interrupts = <22>;
277 fifosize = <128>; 277 fifosize = <128>;
278 clocks = <&clks 30>; 278 clocks = <&clks 30>;
279 sirf,usp-dma-rx-channel = <10>; 279 dmas = <&dmac0 10>, <&dmac0 11>;
280 sirf,usp-dma-tx-channel = <11>; 280 dma-names = "rx", "tx";
281 }; 281 };
282 282
283 dmac0: dma-controller@b00b0000 { 283 dmac0: dma-controller@b00b0000 {
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c
index b3738e616f19..8f45afe785f8 100644
--- a/arch/arm/mach-imx/mach-mx31moboard.c
+++ b/arch/arm/mach-imx/mach-mx31moboard.c
@@ -128,27 +128,15 @@ static struct platform_device mx31moboard_flash = {
128 .num_resources = 1, 128 .num_resources = 1,
129}; 129};
130 130
131static int moboard_uart0_init(struct platform_device *pdev) 131static void __init moboard_uart0_init(void)
132{ 132{
133 int ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_CTS1), "uart0-cts-hack"); 133 if (!gpio_request(IOMUX_TO_GPIO(MX31_PIN_CTS1), "uart0-cts-hack")) {
134 if (ret) 134 gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CTS1), 0);
135 return ret;
136
137 ret = gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CTS1), 0);
138 if (ret)
139 gpio_free(IOMUX_TO_GPIO(MX31_PIN_CTS1)); 135 gpio_free(IOMUX_TO_GPIO(MX31_PIN_CTS1));
140 136 }
141 return ret;
142}
143
144static void moboard_uart0_exit(struct platform_device *pdev)
145{
146 gpio_free(IOMUX_TO_GPIO(MX31_PIN_CTS1));
147} 137}
148 138
149static const struct imxuart_platform_data uart0_pdata __initconst = { 139static const struct imxuart_platform_data uart0_pdata __initconst = {
150 .init = moboard_uart0_init,
151 .exit = moboard_uart0_exit,
152}; 140};
153 141
154static const struct imxuart_platform_data uart4_pdata __initconst = { 142static const struct imxuart_platform_data uart4_pdata __initconst = {
@@ -543,6 +531,7 @@ static void __init mx31moboard_init(void)
543 531
544 imx31_add_imx2_wdt(); 532 imx31_add_imx2_wdt();
545 533
534 moboard_uart0_init();
546 imx31_add_imx_uart0(&uart0_pdata); 535 imx31_add_imx_uart0(&uart0_pdata);
547 imx31_add_imx_uart4(&uart4_pdata); 536 imx31_add_imx_uart4(&uart4_pdata);
548 537