blob: 7419deb1b948f1b8954a6579db72b951b30880bb [file] [log] [blame]
Jamie Ilesaf756552011-07-25 17:36:42 +01001/*
2 * Copyright (c) 2011 Picochip Ltd., Jamie Iles
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit
9 * accesses to the 8250.
10 */
11#include <linux/serial_reg.h>
Jamie Ilesaf756552011-07-25 17:36:42 +010012
13#define UART_SHIFT 2
Rob Herring59bba2a2012-09-06 14:14:46 -050014#define PICOXCELL_UART1_BASE 0x80230000
15#define PHYS_TO_IO(x) (((x) & 0x00ffffff) | 0xfe000000)
Jamie Ilesaf756552011-07-25 17:36:42 +010016
Jamie Iles0836b5cd2011-11-04 01:13:20 +000017 .macro addruart, rp, rv, tmp
Jamie Ilesaf756552011-07-25 17:36:42 +010018 ldr \rv, =PHYS_TO_IO(PICOXCELL_UART1_BASE)
19 ldr \rp, =PICOXCELL_UART1_BASE
20 .endm
21
22 .macro senduart,rd,rx
23 str \rd, [\rx, #UART_TX << UART_SHIFT]
24 .endm
25
26 .macro busyuart,rd,rx
271002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
28 and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
29 teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
30 bne 1002b
31 .endm
32
33 /* The UART's don't have any flow control IO's wired up. */
34 .macro waituart,rd,rx
35 .endm