diff options
Diffstat (limited to 'drivers/serial/cpm_uart/cpm_uart_cpm2.c')
-rw-r--r-- | drivers/serial/cpm_uart/cpm_uart_cpm2.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c index c4c8f4b44f53..15ad58d94889 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c | |||
@@ -142,6 +142,14 @@ void scc2_lineif(struct uart_cpm_port *pinfo) | |||
142 | * be supported in a sane fashion. | 142 | * be supported in a sane fashion. |
143 | */ | 143 | */ |
144 | #ifndef CONFIG_STX_GP3 | 144 | #ifndef CONFIG_STX_GP3 |
145 | #ifdef CONFIG_MPC8560_ADS | ||
146 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; | ||
147 | io->iop_ppard |= 0x00000018; | ||
148 | io->iop_psord &= ~0x00000008; /* Rx */ | ||
149 | io->iop_psord &= ~0x00000010; /* Tx */ | ||
150 | io->iop_pdird &= ~0x00000008; /* Rx */ | ||
151 | io->iop_pdird |= 0x00000010; /* Tx */ | ||
152 | #else | ||
145 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; | 153 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; |
146 | io->iop_pparb |= 0x008b0000; | 154 | io->iop_pparb |= 0x008b0000; |
147 | io->iop_pdirb |= 0x00880000; | 155 | io->iop_pdirb |= 0x00880000; |
@@ -149,6 +157,7 @@ void scc2_lineif(struct uart_cpm_port *pinfo) | |||
149 | io->iop_pdirb &= ~0x00030000; | 157 | io->iop_pdirb &= ~0x00030000; |
150 | io->iop_psorb &= ~0x00030000; | 158 | io->iop_psorb &= ~0x00030000; |
151 | #endif | 159 | #endif |
160 | #endif | ||
152 | cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff; | 161 | cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff; |
153 | cpm2_immr->im_cpmux.cmx_scr |= 0x00090000; | 162 | cpm2_immr->im_cpmux.cmx_scr |= 0x00090000; |
154 | pinfo->brg = 2; | 163 | pinfo->brg = 2; |
@@ -257,6 +266,7 @@ int cpm_uart_init_portdesc(void) | |||
257 | cpm_uart_ports[UART_SMC1].smcp = (smc_t *) & cpm2_immr->im_smc[0]; | 266 | cpm_uart_ports[UART_SMC1].smcp = (smc_t *) & cpm2_immr->im_smc[0]; |
258 | cpm_uart_ports[UART_SMC1].smcup = | 267 | cpm_uart_ports[UART_SMC1].smcup = |
259 | (smc_uart_t *) & cpm2_immr->im_dprambase[PROFF_SMC1]; | 268 | (smc_uart_t *) & cpm2_immr->im_dprambase[PROFF_SMC1]; |
269 | *(u16 *)(&cpm2_immr->im_dprambase[PROFF_SMC1_BASE]) = PROFF_SMC1; | ||
260 | cpm_uart_ports[UART_SMC1].port.mapbase = | 270 | cpm_uart_ports[UART_SMC1].port.mapbase = |
261 | (unsigned long)&cpm2_immr->im_smc[0]; | 271 | (unsigned long)&cpm2_immr->im_smc[0]; |
262 | cpm_uart_ports[UART_SMC1].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | 272 | cpm_uart_ports[UART_SMC1].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); |
@@ -269,6 +279,7 @@ int cpm_uart_init_portdesc(void) | |||
269 | cpm_uart_ports[UART_SMC2].smcp = (smc_t *) & cpm2_immr->im_smc[1]; | 279 | cpm_uart_ports[UART_SMC2].smcp = (smc_t *) & cpm2_immr->im_smc[1]; |
270 | cpm_uart_ports[UART_SMC2].smcup = | 280 | cpm_uart_ports[UART_SMC2].smcup = |
271 | (smc_uart_t *) & cpm2_immr->im_dprambase[PROFF_SMC2]; | 281 | (smc_uart_t *) & cpm2_immr->im_dprambase[PROFF_SMC2]; |
282 | *(u16 *)(&cpm2_immr->im_dprambase[PROFF_SMC2_BASE]) = PROFF_SMC2; | ||
272 | cpm_uart_ports[UART_SMC2].port.mapbase = | 283 | cpm_uart_ports[UART_SMC2].port.mapbase = |
273 | (unsigned long)&cpm2_immr->im_smc[1]; | 284 | (unsigned long)&cpm2_immr->im_smc[1]; |
274 | cpm_uart_ports[UART_SMC2].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | 285 | cpm_uart_ports[UART_SMC2].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); |