tps6105x
struct tps6105x *tps6105x = dev_get_platdata(&pdev->dev);
struct tps6105x_platform_data *pdata = tps6105x->pdata;
priv->regmap = tps6105x->regmap;
ret = regmap_update_bits(tps6105x->regmap, TPS6105X_REG_0,
struct tps6105x *tps6105x;
tps6105x = devm_kmalloc(&client->dev, sizeof(*tps6105x), GFP_KERNEL);
if (!tps6105x)
tps6105x->regmap = devm_regmap_init_i2c(client, &tps6105x_regmap_config);
if (IS_ERR(tps6105x->regmap))
return PTR_ERR(tps6105x->regmap);
i2c_set_clientdata(client, tps6105x);
tps6105x->client = client;
tps6105x->pdata = pdata;
ret = tps6105x_startup(tps6105x);
ret = tps6105x_add_device(tps6105x, &tps6105x_gpio_cell);
ret = tps6105x_add_device(tps6105x, &tps6105x_leds_cell);
ret = tps6105x_add_device(tps6105x, &tps6105x_flash_cell);
ret = tps6105x_add_device(tps6105x, &tps6105x_regulator_cell);
struct tps6105x *tps6105x = i2c_get_clientdata(client);
regmap_update_bits(tps6105x->regmap, TPS6105X_REG_0,
static int tps6105x_startup(struct tps6105x *tps6105x)
ret = regmap_read(tps6105x->regmap, TPS6105X_REG_0, ®val);
dev_info(&tps6105x->client->dev,
dev_info(&tps6105x->client->dev,
dev_info(&tps6105x->client->dev,
dev_info(&tps6105x->client->dev,
static int tps6105x_add_device(struct tps6105x *tps6105x,
cell->platform_data = tps6105x;
cell->pdata_size = sizeof(*tps6105x);
return mfd_add_devices(&tps6105x->client->dev,
struct tps6105x *tps6105x = dev_get_platdata(&pdev->dev);
struct tps6105x_platform_data *pdata = tps6105x->pdata;
config.dev = &tps6105x->client->dev;
config.driver_data = tps6105x;
config.regmap = tps6105x->regmap;
tps6105x->regulator = devm_regulator_register(&pdev->dev,
if (IS_ERR(tps6105x->regulator)) {
ret = PTR_ERR(tps6105x->regulator);
dev_err(&tps6105x->client->dev,
platform_set_drvdata(pdev, tps6105x);