Ejemplo n.º 1
0
static ssize_t imapx200_serial_show_clksrc(struct device *dev,
	struct device_attribute *attr, char *buf)
{
	struct uart_port *port = imapx200_dev_to_port(dev);
	struct imapx200_uart_port *ourport = to_ourport(port);

	return snprintf(buf, PAGE_SIZE, "* %s\n", ourport->clksrc->name);
}
Ejemplo n.º 2
0
static int imapx200_serial_suspend(struct platform_device *dev, pm_message_t state)
{
	struct uart_port *port = imapx200_dev_to_port(&dev->dev);

	if (port)
		uart_suspend_port(&imapx200_uart_drv, port);

	return 0;
}
Ejemplo n.º 3
0
static int imapx200_serial_remove(struct platform_device *dev)
{
	struct uart_port *port = imapx200_dev_to_port(&dev->dev);

	if (port)
	{
		device_remove_file(&dev->dev, &dev_attr_clock_source);
		uart_remove_one_port(&imapx200_uart_drv, port);
	}

	return 0;
}
Ejemplo n.º 4
0
static int imapx200_serial_resume(struct platform_device *dev)
{
	struct uart_port *port = imapx200_dev_to_port(&dev->dev);
	struct imapx200_uart_port *ourport = to_ourport(port);

	if (port)
	{
		clk_enable(ourport->clk);
		imapx200_serial_resetport(port, imapx200_port_to_cfg(port));
		clk_disable(ourport->clk);

		uart_resume_port(&imapx200_uart_drv, port);
	}

	return 0;
}
Ejemplo n.º 5
0
static int imapx200_serial_resume(struct platform_device *dev)
{
	struct uart_port *port = imapx200_dev_to_port(&dev->dev);
	struct imapx200_uart_port *ourport = to_ourport(port);

	if (port)
	{
		clk_enable(ourport->clk);
		imapx200_serial_resetport(port, imapx200_port_to_cfg(port));
		clk_disable(ourport->clk);

		uart_resume_port(&imapx200_uart_drv, port);
	}

	if(port->irq == IRQ_UART3) {
		printk(KERN_ERR "resume port3: mdelay.\n");
		mdelay(20);
	}

	return 0;
}