示例#1
0
static int __devinit adv739x_probe(struct i2c_client *client,
		const struct i2c_device_id *id)
{
	struct fsl_mxc_lcd_platform_data *plat = client->dev.platform_data;
	struct adv739x_data *adv739x;
	int ret;

	if (!i2c_check_functionality(client->adapter,
				I2C_FUNC_SMBUS_BYTE | I2C_FUNC_SMBUS_BYTE_DATA)) {
		pr_err("%s: need smbus\n", __func__);
		return -ENODEV;
	}

	adv739x = kzalloc(sizeof(struct adv739x_data), GFP_KERNEL);
	if (!adv739x) {
		pr_err("%s: no mem\n", __func__);
		return -ENOMEM;
	}
	
	adv739x->client = client;
	adv739x->ifmt = plat->default_ifmt;

	adv739x->disp_adv739x = mxc_dispdrv_register(&adv739x_drv);
	mxc_dispdrv_setdata(adv739x->disp_adv739x, adv739x);

	i2c_set_clientdata(client, adv739x);
	ret = device_create_file(&client->dev, &dev_attr_adv739x_reg);
	if (ret < 0)
		pr_warn("failed to add adv739x sysfs files\n");
	return 0;
}
示例#2
0
文件: ldb.c 项目: AvalueAES/rev-sa01
/*!
 * This function is called by the driver framework to initialize the LDB
 * device.
 *
 * @param	dev	The device structure for the LDB passed in by the
 *			driver framework.
 *
 * @return      Returns 0 on success or negative error code on error
 */
static int ldb_probe(struct platform_device *pdev)
{
	int ret = 0;
	struct ldb_data *ldb;

	ldb = kzalloc(sizeof(struct ldb_data), GFP_KERNEL);
	if (!ldb) {
		ret = -ENOMEM;
		goto alloc_failed;
	}

	ldb->pdev = pdev;
	ldb->disp_ldb = mxc_dispdrv_register(&ldb_drv);
	mxc_dispdrv_setdata(ldb->disp_ldb, ldb);

	dev_set_drvdata(&pdev->dev, ldb);

alloc_failed:
	return ret;
}
示例#3
0
static int mxc_lcdif_probe(struct platform_device *pdev)
{
	int ret = 0;
	struct mxc_lcdif_data *lcdif;

	lcdif = kzalloc(sizeof(struct mxc_lcdif_data), GFP_KERNEL);
	if (!lcdif) {
		ret = -ENOMEM;
		goto alloc_failed;
	}

	lcdif->pdev = pdev;
	lcdif->disp_lcdif = mxc_dispdrv_register(&lcdif_drv);
	mxc_dispdrv_setdata(lcdif->disp_lcdif, lcdif);

	dev_set_drvdata(&pdev->dev, lcdif);

alloc_failed:
	return ret;
}