18 #define MPSC_0_CR1_OFFSET 0x000c
20 #define MPSC_0_CR2_OFFSET 0x0010
21 #define MPSC_CHR_2_TCS (1 << 9)
23 #define MPSC_0_CHR_10_OFFSET 0x0030
25 #define MPSC_INTR_CAUSE_OFF_0 0x0004
26 #define MPSC_INTR_CAUSE_OFF_1 0x000c
27 #define MPSC_INTR_CAUSE_RCC (1<<6)
30 static void __iomem *mpsc_intr_cause;
32 static void mv64x60_udbg_putc(
char c)
35 mv64x60_udbg_putc(
'\r');
43 static int mv64x60_udbg_testc(
void)
48 static int mv64x60_udbg_getc(
void)
53 while (!mv64x60_udbg_testc())
62 static int mv64x60_udbg_getc_poll(
void)
64 if (!mv64x60_udbg_testc())
67 return mv64x60_udbg_getc();
70 static void mv64x60_udbg_init(
void)
77 int intr_cause_offset;
88 for_each_compatible_node(np,
"serial",
"marvell,mv64360-mpsc") {
101 switch (*block_index) {
122 of_node_put(mpscintr);
132 mpsc_intr_cause =
ioremap(
r[1].start, resource_size(&
r[1]));
133 if (!mpsc_intr_cause) {
137 mpsc_intr_cause += intr_cause_offset;