Lines Matching refs:pinfo
51 static void cpm_uart_initbd(struct uart_cpm_port *pinfo);
67 struct uart_cpm_port *pinfo = in cpm_uart_tx_empty() local
69 cbd_t __iomem *bdp = pinfo->tx_bd_base; in cpm_uart_tx_empty()
90 struct uart_cpm_port *pinfo = in cpm_uart_set_mctrl() local
93 if (pinfo->gpios[GPIO_RTS]) in cpm_uart_set_mctrl()
94 gpiod_set_value(pinfo->gpios[GPIO_RTS], !(mctrl & TIOCM_RTS)); in cpm_uart_set_mctrl()
96 if (pinfo->gpios[GPIO_DTR]) in cpm_uart_set_mctrl()
97 gpiod_set_value(pinfo->gpios[GPIO_DTR], !(mctrl & TIOCM_DTR)); in cpm_uart_set_mctrl()
102 struct uart_cpm_port *pinfo = in cpm_uart_get_mctrl() local
106 if (pinfo->gpios[GPIO_CTS]) { in cpm_uart_get_mctrl()
107 if (gpiod_get_value(pinfo->gpios[GPIO_CTS])) in cpm_uart_get_mctrl()
111 if (pinfo->gpios[GPIO_DSR]) { in cpm_uart_get_mctrl()
112 if (gpiod_get_value(pinfo->gpios[GPIO_DSR])) in cpm_uart_get_mctrl()
116 if (pinfo->gpios[GPIO_DCD]) { in cpm_uart_get_mctrl()
117 if (gpiod_get_value(pinfo->gpios[GPIO_DCD])) in cpm_uart_get_mctrl()
121 if (pinfo->gpios[GPIO_RI]) { in cpm_uart_get_mctrl()
122 if (!gpiod_get_value(pinfo->gpios[GPIO_RI])) in cpm_uart_get_mctrl()
134 struct uart_cpm_port *pinfo = in cpm_uart_stop_tx() local
136 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_stop_tx()
137 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_stop_tx()
141 if (IS_SMC(pinfo)) in cpm_uart_stop_tx()
152 struct uart_cpm_port *pinfo = in cpm_uart_start_tx() local
154 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_start_tx()
155 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_start_tx()
159 if (IS_SMC(pinfo)) { in cpm_uart_start_tx()
168 if (IS_SMC(pinfo)) { in cpm_uart_start_tx()
181 struct uart_cpm_port *pinfo = in cpm_uart_stop_rx() local
183 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_stop_rx()
184 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_stop_rx()
188 if (IS_SMC(pinfo)) in cpm_uart_stop_rx()
199 struct uart_cpm_port *pinfo = in cpm_uart_break_ctl() local
206 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX); in cpm_uart_break_ctl()
208 cpm_line_cr_cmd(pinfo, CPM_CR_RESTART_TX); in cpm_uart_break_ctl()
234 struct uart_cpm_port *pinfo = in cpm_uart_int_rx() local
245 bdp = pinfo->rx_cur; in cpm_uart_int_rx()
271 cp = cpm2cpu_addr(in_be32(&bdp->cbd_bufaddr), pinfo); in cpm_uart_int_rx()
301 bdp = pinfo->rx_bd_base; in cpm_uart_int_rx()
308 pinfo->rx_cur = bdp; in cpm_uart_int_rx()
359 struct uart_cpm_port *pinfo = (struct uart_cpm_port *)port; in cpm_uart_int() local
360 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_int()
361 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_int()
365 if (IS_SMC(pinfo)) { in cpm_uart_int()
390 struct uart_cpm_port *pinfo = in cpm_uart_startup() local
396 if (!(pinfo->flags & FLAG_CONSOLE)) { in cpm_uart_startup()
398 if (IS_SMC(pinfo)) { in cpm_uart_startup()
399 clrbits16(&pinfo->smcp->smc_smcmr, SMCMR_REN); in cpm_uart_startup()
400 clrbits8(&pinfo->smcp->smc_smcm, SMCM_RX); in cpm_uart_startup()
402 clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR); in cpm_uart_startup()
403 clrbits16(&pinfo->sccp->scc_sccm, UART_SCCM_RX); in cpm_uart_startup()
405 cpm_uart_initbd(pinfo); in cpm_uart_startup()
406 if (IS_SMC(pinfo)) { in cpm_uart_startup()
407 out_be32(&pinfo->smcup->smc_rstate, 0); in cpm_uart_startup()
408 out_be32(&pinfo->smcup->smc_tstate, 0); in cpm_uart_startup()
409 out_be16(&pinfo->smcup->smc_rbptr, in cpm_uart_startup()
410 in_be16(&pinfo->smcup->smc_rbase)); in cpm_uart_startup()
411 out_be16(&pinfo->smcup->smc_tbptr, in cpm_uart_startup()
412 in_be16(&pinfo->smcup->smc_tbase)); in cpm_uart_startup()
414 cpm_line_cr_cmd(pinfo, CPM_CR_INIT_TRX); in cpm_uart_startup()
423 if (IS_SMC(pinfo)) { in cpm_uart_startup()
424 setbits8(&pinfo->smcp->smc_smcm, SMCM_RX); in cpm_uart_startup()
425 setbits16(&pinfo->smcp->smc_smcmr, (SMCMR_REN | SMCMR_TEN)); in cpm_uart_startup()
427 setbits16(&pinfo->sccp->scc_sccm, UART_SCCM_RX); in cpm_uart_startup()
428 setbits32(&pinfo->sccp->scc_gsmrl, (SCC_GSMRL_ENR | SCC_GSMRL_ENT)); in cpm_uart_startup()
434 inline void cpm_uart_wait_until_send(struct uart_cpm_port *pinfo) in cpm_uart_wait_until_send() argument
437 schedule_timeout(pinfo->wait_closing); in cpm_uart_wait_until_send()
445 struct uart_cpm_port *pinfo = in cpm_uart_shutdown() local
454 if (!(pinfo->flags & FLAG_CONSOLE)) { in cpm_uart_shutdown()
461 if (pinfo->wait_closing) in cpm_uart_shutdown()
462 cpm_uart_wait_until_send(pinfo); in cpm_uart_shutdown()
465 if (IS_SMC(pinfo)) { in cpm_uart_shutdown()
466 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_shutdown()
470 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_shutdown()
476 if (IS_SMC(pinfo)) { in cpm_uart_shutdown()
477 out_be16(&pinfo->smcup->smc_brkcr, 0); in cpm_uart_shutdown()
478 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX); in cpm_uart_shutdown()
480 out_be16(&pinfo->sccup->scc_brkcr, 0); in cpm_uart_shutdown()
481 cpm_line_cr_cmd(pinfo, CPM_CR_GRA_STOP_TX); in cpm_uart_shutdown()
484 cpm_uart_initbd(pinfo); in cpm_uart_shutdown()
495 struct uart_cpm_port *pinfo = in cpm_uart_set_termios() local
497 smc_t __iomem *smcp = pinfo->smcp; in cpm_uart_set_termios()
498 scc_t __iomem *sccp = pinfo->sccp; in cpm_uart_set_termios()
505 pinfo->rx_fifosize = 1; in cpm_uart_set_termios()
507 pinfo->rx_fifosize = RX_BUF_SIZE; in cpm_uart_set_termios()
574 if (IS_SMC(pinfo)) { in cpm_uart_set_termios()
586 out_be16(&pinfo->smcup->smc_mrblr, pinfo->rx_fifosize); in cpm_uart_set_termios()
587 out_be16(&pinfo->smcup->smc_maxidl, maxidl); in cpm_uart_set_termios()
603 out_be16(&pinfo->sccup->scc_genscc.scc_mrblr, pinfo->rx_fifosize); in cpm_uart_set_termios()
604 out_be16(&pinfo->sccup->scc_maxidl, maxidl); in cpm_uart_set_termios()
608 if (pinfo->clk) in cpm_uart_set_termios()
609 clk_set_rate(pinfo->clk, baud); in cpm_uart_set_termios()
611 cpm_setbrg(pinfo->brg - 1, baud); in cpm_uart_set_termios()
649 struct uart_cpm_port *pinfo = in cpm_uart_tx_pump() local
656 bdp = pinfo->tx_cur; in cpm_uart_tx_pump()
658 p = cpm2cpu_addr(in_be32(&bdp->cbd_bufaddr), pinfo); in cpm_uart_tx_pump()
666 bdp = pinfo->tx_bd_base; in cpm_uart_tx_pump()
669 pinfo->tx_cur = bdp; in cpm_uart_tx_pump()
682 bdp = pinfo->tx_cur; in cpm_uart_tx_pump()
686 p = cpm2cpu_addr(in_be32(&bdp->cbd_bufaddr), pinfo); in cpm_uart_tx_pump()
687 while (count < pinfo->tx_fifosize) { in cpm_uart_tx_pump()
698 bdp = pinfo->tx_bd_base; in cpm_uart_tx_pump()
702 pinfo->tx_cur = bdp; in cpm_uart_tx_pump()
718 static void cpm_uart_initbd(struct uart_cpm_port *pinfo) in cpm_uart_initbd() argument
724 pr_debug("CPM uart[%d]:initbd\n", pinfo->port.line); in cpm_uart_initbd()
730 mem_addr = pinfo->mem_addr; in cpm_uart_initbd()
731 bdp = pinfo->rx_cur = pinfo->rx_bd_base; in cpm_uart_initbd()
732 for (i = 0; i < (pinfo->rx_nrfifos - 1); i++, bdp++) { in cpm_uart_initbd()
733 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
735 mem_addr += pinfo->rx_fifosize; in cpm_uart_initbd()
738 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
745 mem_addr = pinfo->mem_addr + L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize); in cpm_uart_initbd()
746 bdp = pinfo->tx_cur = pinfo->tx_bd_base; in cpm_uart_initbd()
747 for (i = 0; i < (pinfo->tx_nrfifos - 1); i++, bdp++) { in cpm_uart_initbd()
748 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
750 mem_addr += pinfo->tx_fifosize; in cpm_uart_initbd()
753 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
757 static void cpm_uart_init_scc(struct uart_cpm_port *pinfo) in cpm_uart_init_scc() argument
762 pr_debug("CPM uart[%d]:init_scc\n", pinfo->port.line); in cpm_uart_init_scc()
764 scp = pinfo->sccp; in cpm_uart_init_scc()
765 sup = pinfo->sccup; in cpm_uart_init_scc()
768 out_be16(&pinfo->sccup->scc_genscc.scc_rbase, in cpm_uart_init_scc()
769 (u8 __iomem *)pinfo->rx_bd_base - DPRAM_BASE); in cpm_uart_init_scc()
770 out_be16(&pinfo->sccup->scc_genscc.scc_tbase, in cpm_uart_init_scc()
771 (u8 __iomem *)pinfo->tx_bd_base - DPRAM_BASE); in cpm_uart_init_scc()
780 out_be16(&sup->scc_genscc.scc_mrblr, pinfo->rx_fifosize); in cpm_uart_init_scc()
802 cpm_line_cr_cmd(pinfo, CPM_CR_INIT_TRX); in cpm_uart_init_scc()
820 static void cpm_uart_init_smc(struct uart_cpm_port *pinfo) in cpm_uart_init_smc() argument
825 pr_debug("CPM uart[%d]:init_smc\n", pinfo->port.line); in cpm_uart_init_smc()
827 sp = pinfo->smcp; in cpm_uart_init_smc()
828 up = pinfo->smcup; in cpm_uart_init_smc()
831 out_be16(&pinfo->smcup->smc_rbase, in cpm_uart_init_smc()
832 (u8 __iomem *)pinfo->rx_bd_base - DPRAM_BASE); in cpm_uart_init_smc()
833 out_be16(&pinfo->smcup->smc_tbase, in cpm_uart_init_smc()
834 (u8 __iomem *)pinfo->tx_bd_base - DPRAM_BASE); in cpm_uart_init_smc()
839 out_be16(&up->smc_rbptr, in_be16(&pinfo->smcup->smc_rbase)); in cpm_uart_init_smc()
840 out_be16(&up->smc_tbptr, in_be16(&pinfo->smcup->smc_tbase)); in cpm_uart_init_smc()
853 out_be16(&up->smc_mrblr, pinfo->rx_fifosize); in cpm_uart_init_smc()
877 static int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) in cpm_uart_allocbuf() argument
885 pr_debug("CPM uart[%d]:allocbuf\n", pinfo->port.line); in cpm_uart_allocbuf()
887 dpmemsz = sizeof(cbd_t) * (pinfo->rx_nrfifos + pinfo->tx_nrfifos); in cpm_uart_allocbuf()
896 memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + in cpm_uart_allocbuf()
897 L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); in cpm_uart_allocbuf()
907 mem_addr = dma_alloc_coherent(pinfo->port.dev, memsz, &dma_addr, in cpm_uart_allocbuf()
917 pinfo->dp_addr = dp_offset; in cpm_uart_allocbuf()
918 pinfo->mem_addr = mem_addr; in cpm_uart_allocbuf()
919 pinfo->dma_addr = dma_addr; in cpm_uart_allocbuf()
920 pinfo->mem_size = memsz; in cpm_uart_allocbuf()
922 pinfo->rx_buf = mem_addr; in cpm_uart_allocbuf()
923 pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos in cpm_uart_allocbuf()
924 * pinfo->rx_fifosize); in cpm_uart_allocbuf()
926 pinfo->rx_bd_base = (cbd_t __iomem *)dp_mem; in cpm_uart_allocbuf()
927 pinfo->tx_bd_base = pinfo->rx_bd_base + pinfo->rx_nrfifos; in cpm_uart_allocbuf()
932 static void cpm_uart_freebuf(struct uart_cpm_port *pinfo) in cpm_uart_freebuf() argument
934 dma_free_coherent(pinfo->port.dev, L1_CACHE_ALIGN(pinfo->rx_nrfifos * in cpm_uart_freebuf()
935 pinfo->rx_fifosize) + in cpm_uart_freebuf()
936 L1_CACHE_ALIGN(pinfo->tx_nrfifos * in cpm_uart_freebuf()
937 pinfo->tx_fifosize), (void __force *)pinfo->mem_addr, in cpm_uart_freebuf()
938 pinfo->dma_addr); in cpm_uart_freebuf()
940 cpm_muram_free(pinfo->dp_addr); in cpm_uart_freebuf()
949 struct uart_cpm_port *pinfo = in cpm_uart_request_port() local
955 if (pinfo->flags & FLAG_CONSOLE) in cpm_uart_request_port()
958 if (IS_SMC(pinfo)) { in cpm_uart_request_port()
959 clrbits8(&pinfo->smcp->smc_smcm, SMCM_RX | SMCM_TX); in cpm_uart_request_port()
960 clrbits16(&pinfo->smcp->smc_smcmr, SMCMR_REN | SMCMR_TEN); in cpm_uart_request_port()
962 clrbits16(&pinfo->sccp->scc_sccm, UART_SCCM_TX | UART_SCCM_RX); in cpm_uart_request_port()
963 clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); in cpm_uart_request_port()
966 ret = cpm_uart_allocbuf(pinfo, 0); in cpm_uart_request_port()
971 cpm_uart_initbd(pinfo); in cpm_uart_request_port()
972 if (IS_SMC(pinfo)) in cpm_uart_request_port()
973 cpm_uart_init_smc(pinfo); in cpm_uart_request_port()
975 cpm_uart_init_scc(pinfo); in cpm_uart_request_port()
982 struct uart_cpm_port *pinfo = in cpm_uart_release_port() local
985 if (!(pinfo->flags & FLAG_CONSOLE)) in cpm_uart_release_port()
986 cpm_uart_freebuf(pinfo); in cpm_uart_release_port()
1007 static void cpm_uart_early_write(struct uart_cpm_port *pinfo, in cpm_uart_early_write() argument
1016 bdp = pinfo->tx_cur; in cpm_uart_early_write()
1017 bdbase = pinfo->tx_bd_base; in cpm_uart_early_write()
1038 pinfo); in cpm_uart_early_write()
1055 pinfo); in cpm_uart_early_write()
1075 pinfo->tx_cur = bdp; in cpm_uart_early_write()
1090 static int poll_wait_key(char *obuf, struct uart_cpm_port *pinfo) in poll_wait_key() argument
1098 bdp = pinfo->rx_cur; in poll_wait_key()
1105 cp = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); in poll_wait_key()
1117 bdp = pinfo->rx_bd_base; in poll_wait_key()
1120 pinfo->rx_cur = (cbd_t *)bdp; in poll_wait_key()
1127 struct uart_cpm_port *pinfo = in cpm_get_poll_char() local
1135 int ret = poll_wait_key(poll_buf, pinfo); in cpm_get_poll_char()
1149 struct uart_cpm_port *pinfo = in cpm_put_poll_char() local
1154 cpm_uart_early_write(pinfo, ch, 1, false); in cpm_put_poll_char()
1259 struct uart_cpm_port *pinfo) in cpm_uart_init_port() argument
1263 struct device *dev = pinfo->port.dev; in cpm_uart_init_port()
1272 pinfo->clk = clk; in cpm_uart_init_port()
1274 if (!pinfo->clk) { in cpm_uart_init_port()
1281 pinfo->brg = *data; in cpm_uart_init_port()
1290 pinfo->command = *data; in cpm_uart_init_port()
1298 pinfo->sccp = mem; in cpm_uart_init_port()
1299 pinfo->sccup = pram = cpm_uart_map_pram(pinfo, np); in cpm_uart_init_port()
1302 pinfo->flags |= FLAG_SMC; in cpm_uart_init_port()
1303 pinfo->smcp = mem; in cpm_uart_init_port()
1304 pinfo->smcup = pram = cpm_uart_map_pram(pinfo, np); in cpm_uart_init_port()
1315 pinfo->tx_nrfifos = TX_NUM_FIFO; in cpm_uart_init_port()
1316 pinfo->tx_fifosize = TX_BUF_SIZE; in cpm_uart_init_port()
1317 pinfo->rx_nrfifos = RX_NUM_FIFO; in cpm_uart_init_port()
1318 pinfo->rx_fifosize = RX_BUF_SIZE; in cpm_uart_init_port()
1320 pinfo->port.uartclk = ppc_proc_freq; in cpm_uart_init_port()
1321 pinfo->port.mapbase = (unsigned long)mem; in cpm_uart_init_port()
1322 pinfo->port.type = PORT_CPM; in cpm_uart_init_port()
1323 pinfo->port.ops = &cpm_uart_pops; in cpm_uart_init_port()
1324 pinfo->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_CPM_CONSOLE); in cpm_uart_init_port()
1325 pinfo->port.iotype = UPIO_MEM; in cpm_uart_init_port()
1326 pinfo->port.fifosize = pinfo->tx_nrfifos * pinfo->tx_fifosize; in cpm_uart_init_port()
1327 spin_lock_init(&pinfo->port.lock); in cpm_uart_init_port()
1332 pinfo->gpios[i] = NULL; in cpm_uart_init_port()
1351 pinfo->gpios[i] = gpiod; in cpm_uart_init_port()
1362 return cpm_uart_request_port(&pinfo->port); in cpm_uart_init_port()
1365 cpm_uart_unmap_pram(pinfo, pram); in cpm_uart_init_port()
1381 struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index]; in cpm_uart_console_write() local
1386 cpm_uart_early_write(pinfo, s, count, true); in cpm_uart_console_write()
1389 spin_lock_irqsave(&pinfo->port.lock, flags); in cpm_uart_console_write()
1390 cpm_uart_early_write(pinfo, s, count, true); in cpm_uart_console_write()
1391 spin_unlock_irqrestore(&pinfo->port.lock, flags); in cpm_uart_console_write()
1403 struct uart_cpm_port *pinfo; in cpm_uart_console_setup() local
1429 pinfo = &cpm_uart_ports[co->index]; in cpm_uart_console_setup()
1431 pinfo->flags |= FLAG_CONSOLE; in cpm_uart_console_setup()
1432 port = &pinfo->port; in cpm_uart_console_setup()
1434 ret = cpm_uart_init_port(np, pinfo); in cpm_uart_console_setup()
1447 if (IS_SMC(pinfo)) { in cpm_uart_console_setup()
1448 out_be16(&pinfo->smcup->smc_brkcr, 0); in cpm_uart_console_setup()
1449 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX); in cpm_uart_console_setup()
1450 clrbits8(&pinfo->smcp->smc_smcm, SMCM_RX | SMCM_TX); in cpm_uart_console_setup()
1451 clrbits16(&pinfo->smcp->smc_smcmr, SMCMR_REN | SMCMR_TEN); in cpm_uart_console_setup()
1453 out_be16(&pinfo->sccup->scc_brkcr, 0); in cpm_uart_console_setup()
1454 cpm_line_cr_cmd(pinfo, CPM_CR_GRA_STOP_TX); in cpm_uart_console_setup()
1455 clrbits16(&pinfo->sccp->scc_sccm, UART_SCCM_TX | UART_SCCM_RX); in cpm_uart_console_setup()
1456 clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); in cpm_uart_console_setup()
1459 ret = cpm_uart_allocbuf(pinfo, 1); in cpm_uart_console_setup()
1464 cpm_uart_initbd(pinfo); in cpm_uart_console_setup()
1466 if (IS_SMC(pinfo)) in cpm_uart_console_setup()
1467 cpm_uart_init_smc(pinfo); in cpm_uart_console_setup()
1469 cpm_uart_init_scc(pinfo); in cpm_uart_console_setup()
1472 cpm_line_cr_cmd(pinfo, CPM_CR_RESTART_TX); in cpm_uart_console_setup()
1476 udbg_port = &pinfo->port; in cpm_uart_console_setup()
1526 struct uart_cpm_port *pinfo = &cpm_uart_ports[index]; in cpm_uart_probe() local
1529 pinfo->port.line = index; in cpm_uart_probe()
1534 platform_set_drvdata(ofdev, pinfo); in cpm_uart_probe()
1537 pinfo->port.dev = &ofdev->dev; in cpm_uart_probe()
1539 pinfo->port.irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); in cpm_uart_probe()
1540 if (!pinfo->port.irq) in cpm_uart_probe()
1543 ret = cpm_uart_init_port(ofdev->dev.of_node, pinfo); in cpm_uart_probe()
1545 return uart_add_one_port(&cpm_reg, &pinfo->port); in cpm_uart_probe()
1547 irq_dispose_mapping(pinfo->port.irq); in cpm_uart_probe()
1554 struct uart_cpm_port *pinfo = platform_get_drvdata(ofdev); in cpm_uart_remove() local
1556 uart_remove_one_port(&cpm_reg, &pinfo->port); in cpm_uart_remove()