Lines Matching refs:mvuart
387 struct mvebu_uart *mvuart = to_mvuart(port); in mvebu_uart_startup() local
406 if (!mvuart->irq[UART_TX_IRQ]) { in mvebu_uart_startup()
408 ret = devm_request_irq(port->dev, mvuart->irq[UART_IRQ_SUM], in mvebu_uart_startup()
413 mvuart->irq[UART_IRQ_SUM]); in mvebu_uart_startup()
418 ret = devm_request_irq(port->dev, mvuart->irq[UART_RX_IRQ], in mvebu_uart_startup()
423 mvuart->irq[UART_RX_IRQ]); in mvebu_uart_startup()
427 ret = devm_request_irq(port->dev, mvuart->irq[UART_TX_IRQ], in mvebu_uart_startup()
433 mvuart->irq[UART_TX_IRQ]); in mvebu_uart_startup()
434 devm_free_irq(port->dev, mvuart->irq[UART_RX_IRQ], in mvebu_uart_startup()
445 struct mvebu_uart *mvuart = to_mvuart(port); in mvebu_uart_shutdown() local
449 if (!mvuart->irq[UART_TX_IRQ]) { in mvebu_uart_shutdown()
450 devm_free_irq(port->dev, mvuart->irq[UART_IRQ_SUM], port); in mvebu_uart_shutdown()
452 devm_free_irq(port->dev, mvuart->irq[UART_RX_IRQ], port); in mvebu_uart_shutdown()
453 devm_free_irq(port->dev, mvuart->irq[UART_TX_IRQ], port); in mvebu_uart_shutdown()
776 struct mvebu_uart *mvuart = dev_get_drvdata(dev); in mvebu_uart_suspend() local
777 struct uart_port *port = mvuart->port; in mvebu_uart_suspend()
781 mvuart->pm_regs.rbr = readl(port->membase + UART_RBR(port)); in mvebu_uart_suspend()
782 mvuart->pm_regs.tsh = readl(port->membase + UART_TSH(port)); in mvebu_uart_suspend()
783 mvuart->pm_regs.ctrl = readl(port->membase + UART_CTRL(port)); in mvebu_uart_suspend()
784 mvuart->pm_regs.intr = readl(port->membase + UART_INTR(port)); in mvebu_uart_suspend()
785 mvuart->pm_regs.stat = readl(port->membase + UART_STAT); in mvebu_uart_suspend()
786 mvuart->pm_regs.brdv = readl(port->membase + UART_BRDV); in mvebu_uart_suspend()
787 mvuart->pm_regs.osamp = readl(port->membase + UART_OSAMP); in mvebu_uart_suspend()
796 struct mvebu_uart *mvuart = dev_get_drvdata(dev); in mvebu_uart_resume() local
797 struct uart_port *port = mvuart->port; in mvebu_uart_resume()
799 writel(mvuart->pm_regs.rbr, port->membase + UART_RBR(port)); in mvebu_uart_resume()
800 writel(mvuart->pm_regs.tsh, port->membase + UART_TSH(port)); in mvebu_uart_resume()
801 writel(mvuart->pm_regs.ctrl, port->membase + UART_CTRL(port)); in mvebu_uart_resume()
802 writel(mvuart->pm_regs.intr, port->membase + UART_INTR(port)); in mvebu_uart_resume()
803 writel(mvuart->pm_regs.stat, port->membase + UART_STAT); in mvebu_uart_resume()
804 writel(mvuart->pm_regs.brdv, port->membase + UART_BRDV); in mvebu_uart_resume()
805 writel(mvuart->pm_regs.osamp, port->membase + UART_OSAMP); in mvebu_uart_resume()
829 struct mvebu_uart *mvuart; in mvebu_uart_probe() local
877 mvuart = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_uart), in mvebu_uart_probe()
879 if (!mvuart) in mvebu_uart_probe()
883 mvuart->data = (struct mvebu_uart_driver_data *)match->data; in mvebu_uart_probe()
884 mvuart->port = port; in mvebu_uart_probe()
886 port->private_data = mvuart; in mvebu_uart_probe()
887 platform_set_drvdata(pdev, mvuart); in mvebu_uart_probe()
890 mvuart->clk = devm_clk_get(&pdev->dev, NULL); in mvebu_uart_probe()
891 if (IS_ERR(mvuart->clk)) { in mvebu_uart_probe()
892 if (PTR_ERR(mvuart->clk) == -EPROBE_DEFER) in mvebu_uart_probe()
893 return PTR_ERR(mvuart->clk); in mvebu_uart_probe()
897 return PTR_ERR(mvuart->clk); in mvebu_uart_probe()
900 if (!clk_prepare_enable(mvuart->clk)) in mvebu_uart_probe()
901 port->uartclk = clk_get_rate(mvuart->clk); in mvebu_uart_probe()
911 mvuart->irq[UART_IRQ_SUM] = irq; in mvebu_uart_probe()
922 mvuart->irq[UART_RX_IRQ] = irq; in mvebu_uart_probe()
928 mvuart->irq[UART_TX_IRQ] = irq; in mvebu_uart_probe()