Ejemplo n.º 1
0
static int s3c_serial_probe(struct device_d *dev)
{
	struct resource *iores;
	struct s3c_uart *priv;
	struct console_device *cdev;

	priv = xzalloc(sizeof(struct s3c_uart));
	cdev = &priv->cdev;
	iores = dev_request_mem_resource(dev, 0);
	if (IS_ERR(iores))
		return PTR_ERR(iores);
	priv->regs = IOMEM(iores->start);
	dev->priv = priv;
	cdev->dev = dev;
	cdev->tstc = s3c_serial_tstc;
	cdev->putc = s3c_serial_putc;
	cdev->getc = s3c_serial_getc;
	cdev->flush = s3c_serial_flush;
	cdev->setbrg = s3c_serial_setbaudrate;

	s3c_serial_init_port(cdev);

	/* Enable UART */
	console_register(cdev);

	return 0;
}
Ejemplo n.º 2
0
int s3c_serial_probe(struct platform_device *dev,
			 struct s3c_uart_info *info)
{
	struct s3c_uart_port *ourport;
	int ret;

	dbg("s3c_serial_probe(%p, %p) %d\n", dev, info, probe_index);

	ourport = &s3c_serial_ports[probe_index];
	probe_index++;

	dbg("%s: initialising port %p...\n", __func__, ourport);

	ret = s3c_serial_init_port(ourport, info, dev);
	if (ret < 0)
		goto probe_err;

	dbg("%s: adding port\n", __func__);
	uart_add_one_port(&s3c_uart_drv, &ourport->port);
	platform_set_drvdata(dev, &ourport->port);

	ret = device_create_file(&dev->dev, &dev_attr_clock_source);
	if (ret < 0)
		printk(KERN_ERR "%s: failed to add clksrc attr.\n", __func__);

	ret = s3c_serial_cpufreq_register(ourport);
	if (ret < 0)
		dev_err(&dev->dev, "failed to add cpufreq notifier\n");

	return 0;

 probe_err:
	return ret;
}
Ejemplo n.º 3
0
static int s3c6400_serial_probe(struct platform_device *dev,
				struct s3c_uart_info *info)
{
	struct s3c_uart_port *ourport;
	int ret;

	dbg("s3c_serial_probe(%p) %d\n", dev, probe_index);

	ourport = &s3c_serial_ports[probe_index];
	probe_index++;

	dbg("%s: initialising port %p...\n", __FUNCTION__, ourport);

	//ret = s3c_serial_init_port(ourport, &s3c_uart_inf, dev);
	ret = s3c_serial_init_port(ourport, info, dev);
	if (ret < 0)
		goto probe_err;

	dbg("%s: adding port\n", __FUNCTION__);
	uart_add_one_port(&s3c_uart_drv, &ourport->port);
	platform_set_drvdata(dev, &ourport->port);

	return 0;

 probe_err:
	return ret;
}
Ejemplo n.º 4
0
static int s3c_serial_init_ports(struct s3c_uart_info *info)
{
	struct s3c_uart_port *ptr = s3c_serial_ports;
	struct platform_device **platdev_ptr;
	int i;

	dbg("s3c_serial_init_ports: initialising ports...\n");

	platdev_ptr = s3c_uart_devs;

	for (i = 0; i < CONFIG_SERIAL_SAMSUNG_UARTS; i++, ptr++, platdev_ptr++) {
		s3c_serial_init_port(ptr, info, *platdev_ptr);
	}

	return 0;
}