diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c @@ -89,11 +89,19 @@ void smc1_lineif(struct uart_cpm_port *p { volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; +#ifdef CONFIG_8272 + /* SMC1 is only on port C on 8272 */ + io->iop_pparc |= 0x0c000000; + io->iop_pdirc |= 0x04000000; + io->iop_pdirc &= ~0x08000000; + io->iop_psorc &= ~0x0c000000; +#else /* SMC1 is only on port D */ io->iop_ppard |= 0x00c00000; io->iop_pdird |= 0x00400000; io->iop_pdird &= ~0x00800000; io->iop_psord &= ~0x00c00000; +#endif /* Wire BRG1 to SMC1 */ cpm2_immr->im_cpmux.cmx_smr &= 0x0f;