int s3c24xx_serial_probe(struct platform_device *dev,
2013-07-23 10:38
477 查看
drivers/tty/serial/samsung.c
int s3c24xx_serial_probe(struct platform_device *dev,
struct s3c24xx_uart_info *info)
{
struct s3c24xx_uart_port *ourport;
int ret;
dbg("s3c24xx_serial_probe(%p, %p) %d\n", dev, info, probe_index);
ourport = &s3c24xx_serial_ports[probe_index];
probe_index++;
dbg("%s: initialising port %p...\n", __func__, ourport);
ret = s3c24xx_serial_init_port(ourport, info, dev);
if (ret < 0)
goto probe_err;
dbg("%s: adding port\n", __func__);
uart_add_one_port(&s3c24xx_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 = s3c24xx_serial_cpufreq_register(ourport);
if (ret < 0)
dev_err(&dev->dev, "failed to add cpufreq notifier\n");
return 0;
probe_err:
return ret;
}
EXPORT_SYMBOL_GPL(s3c24xx_serial_probe);
int s3c24xx_serial_probe(struct platform_device *dev,
struct s3c24xx_uart_info *info)
{
struct s3c24xx_uart_port *ourport;
int ret;
dbg("s3c24xx_serial_probe(%p, %p) %d\n", dev, info, probe_index);
ourport = &s3c24xx_serial_ports[probe_index];
probe_index++;
dbg("%s: initialising port %p...\n", __func__, ourport);
ret = s3c24xx_serial_init_port(ourport, info, dev);
if (ret < 0)
goto probe_err;
dbg("%s: adding port\n", __func__);
uart_add_one_port(&s3c24xx_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 = s3c24xx_serial_cpufreq_register(ourport);
if (ret < 0)
dev_err(&dev->dev, "failed to add cpufreq notifier\n");
return 0;
probe_err:
return ret;
}
EXPORT_SYMBOL_GPL(s3c24xx_serial_probe);
相关文章推荐
- s3c2410_lcd & frame buffer 驱动分析 int __init s3c2410fb_probe(struct device *dev) { struct s3c2410f
- int device_register(struct device *dev)
- 查找struct device *dev
- new style I2C设备驱动分析,probe,struct i2c_device_id
- 关于struct device_driver结构中的probe探测函数的调用(内核版本:2.6.29)
- struct platform_device
- struct device_driver的probe的调用
- new style I2C设备驱动分析,probe,struct i2c_device_id
- struct device dev;&nbs…
- struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata,
- new style I2C设备驱动分析,probe,struct i2c_device_id
- struct platform_device/platform_driver
- struct clk *clk_get(struct device *dev, const char *id)
- struct device *dev
- new style I2C设备驱动分析,probe,struct i2c_device_id
- new style I2C设备驱动分析,probe,struct i2c_device_id
- int platform_driver_register(struct platform_driver *drv)
- 关于struct device_driver结构中的probe探测函数的调用
- struct&nbsp;device&nbsp;中的dev_id哪里去了…
- int driver_register(struct device_driver *drv)