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;