Lines Matching refs:mvuart
383 struct mvebu_uart *mvuart = to_mvuart(port); in mvebu_uart_startup() local
402 if (!mvuart->irq[UART_TX_IRQ]) { in mvebu_uart_startup()
404 ret = devm_request_irq(port->dev, mvuart->irq[UART_IRQ_SUM], in mvebu_uart_startup()
409 mvuart->irq[UART_IRQ_SUM]); in mvebu_uart_startup()
414 ret = devm_request_irq(port->dev, mvuart->irq[UART_RX_IRQ], in mvebu_uart_startup()
419 mvuart->irq[UART_RX_IRQ]); in mvebu_uart_startup()
423 ret = devm_request_irq(port->dev, mvuart->irq[UART_TX_IRQ], in mvebu_uart_startup()
429 mvuart->irq[UART_TX_IRQ]); in mvebu_uart_startup()
430 devm_free_irq(port->dev, mvuart->irq[UART_RX_IRQ], in mvebu_uart_startup()
441 struct mvebu_uart *mvuart = to_mvuart(port); in mvebu_uart_shutdown() local
445 if (!mvuart->irq[UART_TX_IRQ]) { in mvebu_uart_shutdown()
446 devm_free_irq(port->dev, mvuart->irq[UART_IRQ_SUM], port); in mvebu_uart_shutdown()
448 devm_free_irq(port->dev, mvuart->irq[UART_RX_IRQ], port); in mvebu_uart_shutdown()
449 devm_free_irq(port->dev, mvuart->irq[UART_TX_IRQ], port); in mvebu_uart_shutdown()
822 struct mvebu_uart *mvuart = dev_get_drvdata(dev); in mvebu_uart_suspend() local
823 struct uart_port *port = mvuart->port; in mvebu_uart_suspend()
828 mvuart->pm_regs.rbr = readl(port->membase + UART_RBR(port)); in mvebu_uart_suspend()
829 mvuart->pm_regs.tsh = readl(port->membase + UART_TSH(port)); in mvebu_uart_suspend()
830 mvuart->pm_regs.ctrl = readl(port->membase + UART_CTRL(port)); in mvebu_uart_suspend()
831 mvuart->pm_regs.intr = readl(port->membase + UART_INTR(port)); in mvebu_uart_suspend()
832 mvuart->pm_regs.stat = readl(port->membase + UART_STAT); in mvebu_uart_suspend()
834 mvuart->pm_regs.brdv = readl(port->membase + UART_BRDV); in mvebu_uart_suspend()
836 mvuart->pm_regs.osamp = readl(port->membase + UART_OSAMP); in mvebu_uart_suspend()
845 struct mvebu_uart *mvuart = dev_get_drvdata(dev); in mvebu_uart_resume() local
846 struct uart_port *port = mvuart->port; in mvebu_uart_resume()
849 writel(mvuart->pm_regs.rbr, port->membase + UART_RBR(port)); in mvebu_uart_resume()
850 writel(mvuart->pm_regs.tsh, port->membase + UART_TSH(port)); in mvebu_uart_resume()
851 writel(mvuart->pm_regs.ctrl, port->membase + UART_CTRL(port)); in mvebu_uart_resume()
852 writel(mvuart->pm_regs.intr, port->membase + UART_INTR(port)); in mvebu_uart_resume()
853 writel(mvuart->pm_regs.stat, port->membase + UART_STAT); in mvebu_uart_resume()
855 writel(mvuart->pm_regs.brdv, port->membase + UART_BRDV); in mvebu_uart_resume()
857 writel(mvuart->pm_regs.osamp, port->membase + UART_OSAMP); in mvebu_uart_resume()
880 struct mvebu_uart *mvuart; in mvebu_uart_probe() local
924 mvuart = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_uart), in mvebu_uart_probe()
926 if (!mvuart) in mvebu_uart_probe()
930 mvuart->data = (struct mvebu_uart_driver_data *)match->data; in mvebu_uart_probe()
931 mvuart->port = port; in mvebu_uart_probe()
933 port->private_data = mvuart; in mvebu_uart_probe()
934 platform_set_drvdata(pdev, mvuart); in mvebu_uart_probe()
937 mvuart->clk = devm_clk_get(&pdev->dev, NULL); in mvebu_uart_probe()
938 if (IS_ERR(mvuart->clk)) { in mvebu_uart_probe()
939 if (PTR_ERR(mvuart->clk) == -EPROBE_DEFER) in mvebu_uart_probe()
940 return PTR_ERR(mvuart->clk); in mvebu_uart_probe()
944 return PTR_ERR(mvuart->clk); in mvebu_uart_probe()
947 if (!clk_prepare_enable(mvuart->clk)) in mvebu_uart_probe()
948 port->uartclk = clk_get_rate(mvuart->clk); in mvebu_uart_probe()
958 mvuart->irq[UART_IRQ_SUM] = irq; in mvebu_uart_probe()
969 mvuart->irq[UART_RX_IRQ] = irq; in mvebu_uart_probe()
975 mvuart->irq[UART_TX_IRQ] = irq; in mvebu_uart_probe()