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 count = uart_fifo_out(port, p, pinfo->tx_fifosize); in cpm_uart_tx_pump()
692 bdp = pinfo->tx_bd_base; in cpm_uart_tx_pump()
696 pinfo->tx_cur = bdp; in cpm_uart_tx_pump()
712 static void cpm_uart_initbd(struct uart_cpm_port *pinfo) in cpm_uart_initbd() argument
718 pr_debug("CPM uart[%d]:initbd\n", pinfo->port.line); in cpm_uart_initbd()
724 mem_addr = pinfo->mem_addr; in cpm_uart_initbd()
725 bdp = pinfo->rx_cur = pinfo->rx_bd_base; in cpm_uart_initbd()
726 for (i = 0; i < (pinfo->rx_nrfifos - 1); i++, bdp++) { in cpm_uart_initbd()
727 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
729 mem_addr += pinfo->rx_fifosize; in cpm_uart_initbd()
732 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
739 mem_addr = pinfo->mem_addr + L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize); in cpm_uart_initbd()
740 bdp = pinfo->tx_cur = pinfo->tx_bd_base; in cpm_uart_initbd()
741 for (i = 0; i < (pinfo->tx_nrfifos - 1); i++, bdp++) { in cpm_uart_initbd()
742 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
744 mem_addr += pinfo->tx_fifosize; in cpm_uart_initbd()
747 out_be32(&bdp->cbd_bufaddr, cpu2cpm_addr(mem_addr, pinfo)); in cpm_uart_initbd()
751 static void cpm_uart_init_scc(struct uart_cpm_port *pinfo) in cpm_uart_init_scc() argument
756 pr_debug("CPM uart[%d]:init_scc\n", pinfo->port.line); in cpm_uart_init_scc()
758 scp = pinfo->sccp; in cpm_uart_init_scc()
759 sup = pinfo->sccup; in cpm_uart_init_scc()
762 out_be16(&pinfo->sccup->scc_genscc.scc_rbase, in cpm_uart_init_scc()
763 (u8 __iomem *)pinfo->rx_bd_base - DPRAM_BASE); in cpm_uart_init_scc()
764 out_be16(&pinfo->sccup->scc_genscc.scc_tbase, in cpm_uart_init_scc()
765 (u8 __iomem *)pinfo->tx_bd_base - DPRAM_BASE); in cpm_uart_init_scc()
774 out_be16(&sup->scc_genscc.scc_mrblr, pinfo->rx_fifosize); in cpm_uart_init_scc()
796 cpm_line_cr_cmd(pinfo, CPM_CR_INIT_TRX); in cpm_uart_init_scc()
814 static void cpm_uart_init_smc(struct uart_cpm_port *pinfo) in cpm_uart_init_smc() argument
819 pr_debug("CPM uart[%d]:init_smc\n", pinfo->port.line); in cpm_uart_init_smc()
821 sp = pinfo->smcp; in cpm_uart_init_smc()
822 up = pinfo->smcup; in cpm_uart_init_smc()
825 out_be16(&pinfo->smcup->smc_rbase, in cpm_uart_init_smc()
826 (u8 __iomem *)pinfo->rx_bd_base - DPRAM_BASE); in cpm_uart_init_smc()
827 out_be16(&pinfo->smcup->smc_tbase, in cpm_uart_init_smc()
828 (u8 __iomem *)pinfo->tx_bd_base - DPRAM_BASE); in cpm_uart_init_smc()
833 out_be16(&up->smc_rbptr, in_be16(&pinfo->smcup->smc_rbase)); in cpm_uart_init_smc()
834 out_be16(&up->smc_tbptr, in_be16(&pinfo->smcup->smc_tbase)); in cpm_uart_init_smc()
847 out_be16(&up->smc_mrblr, pinfo->rx_fifosize); in cpm_uart_init_smc()
871 static int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) in cpm_uart_allocbuf() argument
879 pr_debug("CPM uart[%d]:allocbuf\n", pinfo->port.line); in cpm_uart_allocbuf()
881 dpmemsz = sizeof(cbd_t) * (pinfo->rx_nrfifos + pinfo->tx_nrfifos); in cpm_uart_allocbuf()
890 memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + in cpm_uart_allocbuf()
891 L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); in cpm_uart_allocbuf()
901 mem_addr = dma_alloc_coherent(pinfo->port.dev, memsz, &dma_addr, in cpm_uart_allocbuf()
911 pinfo->dp_addr = dp_offset; in cpm_uart_allocbuf()
912 pinfo->mem_addr = mem_addr; in cpm_uart_allocbuf()
913 pinfo->dma_addr = dma_addr; in cpm_uart_allocbuf()
914 pinfo->mem_size = memsz; in cpm_uart_allocbuf()
916 pinfo->rx_buf = mem_addr; in cpm_uart_allocbuf()
917 pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos in cpm_uart_allocbuf()
918 * pinfo->rx_fifosize); in cpm_uart_allocbuf()
920 pinfo->rx_bd_base = (cbd_t __iomem *)dp_mem; in cpm_uart_allocbuf()
921 pinfo->tx_bd_base = pinfo->rx_bd_base + pinfo->rx_nrfifos; in cpm_uart_allocbuf()
926 static void cpm_uart_freebuf(struct uart_cpm_port *pinfo) in cpm_uart_freebuf() argument
928 dma_free_coherent(pinfo->port.dev, L1_CACHE_ALIGN(pinfo->rx_nrfifos * in cpm_uart_freebuf()
929 pinfo->rx_fifosize) + in cpm_uart_freebuf()
930 L1_CACHE_ALIGN(pinfo->tx_nrfifos * in cpm_uart_freebuf()
931 pinfo->tx_fifosize), (void __force *)pinfo->mem_addr, in cpm_uart_freebuf()
932 pinfo->dma_addr); in cpm_uart_freebuf()
934 cpm_muram_free(pinfo->dp_addr); in cpm_uart_freebuf()
943 struct uart_cpm_port *pinfo = in cpm_uart_request_port() local
949 if (pinfo->flags & FLAG_CONSOLE) in cpm_uart_request_port()
952 if (IS_SMC(pinfo)) { in cpm_uart_request_port()
953 clrbits8(&pinfo->smcp->smc_smcm, SMCM_RX | SMCM_TX); in cpm_uart_request_port()
954 clrbits16(&pinfo->smcp->smc_smcmr, SMCMR_REN | SMCMR_TEN); in cpm_uart_request_port()
956 clrbits16(&pinfo->sccp->scc_sccm, UART_SCCM_TX | UART_SCCM_RX); in cpm_uart_request_port()
957 clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); in cpm_uart_request_port()
960 ret = cpm_uart_allocbuf(pinfo, 0); in cpm_uart_request_port()
965 cpm_uart_initbd(pinfo); in cpm_uart_request_port()
966 if (IS_SMC(pinfo)) in cpm_uart_request_port()
967 cpm_uart_init_smc(pinfo); in cpm_uart_request_port()
969 cpm_uart_init_scc(pinfo); in cpm_uart_request_port()
976 struct uart_cpm_port *pinfo = in cpm_uart_release_port() local
979 if (!(pinfo->flags & FLAG_CONSOLE)) in cpm_uart_release_port()
980 cpm_uart_freebuf(pinfo); in cpm_uart_release_port()
1001 static void cpm_uart_early_write(struct uart_cpm_port *pinfo, in cpm_uart_early_write() argument
1010 bdp = pinfo->tx_cur; in cpm_uart_early_write()
1011 bdbase = pinfo->tx_bd_base; in cpm_uart_early_write()
1032 pinfo); in cpm_uart_early_write()
1049 pinfo); in cpm_uart_early_write()
1069 pinfo->tx_cur = bdp; in cpm_uart_early_write()
1084 static int poll_wait_key(char *obuf, struct uart_cpm_port *pinfo) in poll_wait_key() argument
1092 bdp = pinfo->rx_cur; in poll_wait_key()
1099 cp = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); in poll_wait_key()
1111 bdp = pinfo->rx_bd_base; in poll_wait_key()
1114 pinfo->rx_cur = (cbd_t *)bdp; in poll_wait_key()
1121 struct uart_cpm_port *pinfo = in cpm_get_poll_char() local
1129 int ret = poll_wait_key(poll_buf, pinfo); in cpm_get_poll_char()
1143 struct uart_cpm_port *pinfo = in cpm_put_poll_char() local
1148 cpm_uart_early_write(pinfo, ch, 1, false); in cpm_put_poll_char()
1253 struct uart_cpm_port *pinfo) in cpm_uart_init_port() argument
1257 struct device *dev = pinfo->port.dev; in cpm_uart_init_port()
1266 pinfo->clk = clk; in cpm_uart_init_port()
1268 if (!pinfo->clk) { in cpm_uart_init_port()
1275 pinfo->brg = *data; in cpm_uart_init_port()
1284 pinfo->command = *data; in cpm_uart_init_port()
1292 pinfo->sccp = mem; in cpm_uart_init_port()
1293 pinfo->sccup = pram = cpm_uart_map_pram(pinfo, np); in cpm_uart_init_port()
1296 pinfo->flags |= FLAG_SMC; in cpm_uart_init_port()
1297 pinfo->smcp = mem; in cpm_uart_init_port()
1298 pinfo->smcup = pram = cpm_uart_map_pram(pinfo, np); in cpm_uart_init_port()
1309 pinfo->tx_nrfifos = TX_NUM_FIFO; in cpm_uart_init_port()
1310 pinfo->tx_fifosize = TX_BUF_SIZE; in cpm_uart_init_port()
1311 pinfo->rx_nrfifos = RX_NUM_FIFO; in cpm_uart_init_port()
1312 pinfo->rx_fifosize = RX_BUF_SIZE; in cpm_uart_init_port()
1314 pinfo->port.uartclk = ppc_proc_freq; in cpm_uart_init_port()
1315 pinfo->port.mapbase = (unsigned long)mem; in cpm_uart_init_port()
1316 pinfo->port.type = PORT_CPM; in cpm_uart_init_port()
1317 pinfo->port.ops = &cpm_uart_pops; in cpm_uart_init_port()
1318 pinfo->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_CPM_CONSOLE); in cpm_uart_init_port()
1319 pinfo->port.iotype = UPIO_MEM; in cpm_uart_init_port()
1320 pinfo->port.fifosize = pinfo->tx_nrfifos * pinfo->tx_fifosize; in cpm_uart_init_port()
1321 spin_lock_init(&pinfo->port.lock); in cpm_uart_init_port()
1326 pinfo->gpios[i] = NULL; in cpm_uart_init_port()
1345 pinfo->gpios[i] = gpiod; in cpm_uart_init_port()
1356 return cpm_uart_request_port(&pinfo->port); in cpm_uart_init_port()
1359 cpm_uart_unmap_pram(pinfo, pram); in cpm_uart_init_port()
1375 struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index]; in cpm_uart_console_write() local
1380 cpm_uart_early_write(pinfo, s, count, true); in cpm_uart_console_write()
1383 uart_port_lock_irqsave(&pinfo->port, &flags); in cpm_uart_console_write()
1384 cpm_uart_early_write(pinfo, s, count, true); in cpm_uart_console_write()
1385 uart_port_unlock_irqrestore(&pinfo->port, flags); in cpm_uart_console_write()
1397 struct uart_cpm_port *pinfo; in cpm_uart_console_setup() local
1423 pinfo = &cpm_uart_ports[co->index]; in cpm_uart_console_setup()
1425 pinfo->flags |= FLAG_CONSOLE; in cpm_uart_console_setup()
1426 port = &pinfo->port; in cpm_uart_console_setup()
1428 ret = cpm_uart_init_port(np, pinfo); in cpm_uart_console_setup()
1441 if (IS_SMC(pinfo)) { in cpm_uart_console_setup()
1442 out_be16(&pinfo->smcup->smc_brkcr, 0); in cpm_uart_console_setup()
1443 cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX); in cpm_uart_console_setup()
1444 clrbits8(&pinfo->smcp->smc_smcm, SMCM_RX | SMCM_TX); in cpm_uart_console_setup()
1445 clrbits16(&pinfo->smcp->smc_smcmr, SMCMR_REN | SMCMR_TEN); in cpm_uart_console_setup()
1447 out_be16(&pinfo->sccup->scc_brkcr, 0); in cpm_uart_console_setup()
1448 cpm_line_cr_cmd(pinfo, CPM_CR_GRA_STOP_TX); in cpm_uart_console_setup()
1449 clrbits16(&pinfo->sccp->scc_sccm, UART_SCCM_TX | UART_SCCM_RX); in cpm_uart_console_setup()
1450 clrbits32(&pinfo->sccp->scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); in cpm_uart_console_setup()
1453 ret = cpm_uart_allocbuf(pinfo, 1); in cpm_uart_console_setup()
1458 cpm_uart_initbd(pinfo); in cpm_uart_console_setup()
1460 if (IS_SMC(pinfo)) in cpm_uart_console_setup()
1461 cpm_uart_init_smc(pinfo); in cpm_uart_console_setup()
1463 cpm_uart_init_scc(pinfo); in cpm_uart_console_setup()
1466 cpm_line_cr_cmd(pinfo, CPM_CR_RESTART_TX); in cpm_uart_console_setup()
1470 udbg_port = &pinfo->port; in cpm_uart_console_setup()
1520 struct uart_cpm_port *pinfo = &cpm_uart_ports[index]; in cpm_uart_probe() local
1523 pinfo->port.line = index; in cpm_uart_probe()
1528 platform_set_drvdata(ofdev, pinfo); in cpm_uart_probe()
1531 pinfo->port.dev = &ofdev->dev; in cpm_uart_probe()
1533 pinfo->port.irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); in cpm_uart_probe()
1534 if (!pinfo->port.irq) in cpm_uart_probe()
1537 ret = cpm_uart_init_port(ofdev->dev.of_node, pinfo); in cpm_uart_probe()
1539 return uart_add_one_port(&cpm_reg, &pinfo->port); in cpm_uart_probe()
1541 irq_dispose_mapping(pinfo->port.irq); in cpm_uart_probe()
1548 struct uart_cpm_port *pinfo = platform_get_drvdata(ofdev); in cpm_uart_remove() local
1550 uart_remove_one_port(&cpm_reg, &pinfo->port); in cpm_uart_remove()