aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/cpm_uart
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/cpm_uart')
-rw-r--r--drivers/serial/cpm_uart/cpm_uart_cpm2.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
index b422c3abfba6..c4c8f4b44f53 100644
--- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c
+++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
@@ -134,12 +134,21 @@ void scc1_lineif(struct uart_cpm_port *pinfo)
134 134
135void scc2_lineif(struct uart_cpm_port *pinfo) 135void scc2_lineif(struct uart_cpm_port *pinfo)
136{ 136{
137 /*
138 * STx GP3 uses the SCC2 secondary option pin assignment
139 * which this driver doesn't account for in the static
140 * pin assignments. This kind of board specific info
141 * really has to get out of the driver so boards can
142 * be supported in a sane fashion.
143 */
144#ifndef CONFIG_STX_GP3
137 volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; 145 volatile iop_cpm2_t *io = &cpm2_immr->im_ioport;
138 io->iop_pparb |= 0x008b0000; 146 io->iop_pparb |= 0x008b0000;
139 io->iop_pdirb |= 0x00880000; 147 io->iop_pdirb |= 0x00880000;
140 io->iop_psorb |= 0x00880000; 148 io->iop_psorb |= 0x00880000;
141 io->iop_pdirb &= ~0x00030000; 149 io->iop_pdirb &= ~0x00030000;
142 io->iop_psorb &= ~0x00030000; 150 io->iop_psorb &= ~0x00030000;
151#endif
143 cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff; 152 cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff;
144 cpm2_immr->im_cpmux.cmx_scr |= 0x00090000; 153 cpm2_immr->im_cpmux.cmx_scr |= 0x00090000;
145 pinfo->brg = 2; 154 pinfo->brg = 2;