static int tps6105x_regulator_set_voltage_sel(struct regulator_dev *rdev, unsigned selector) { struct tps6105x *tps6105x = rdev_get_drvdata(rdev); int ret; ret = tps6105x_mask_and_set(tps6105x, TPS6105X_REG_0, TPS6105X_REG0_VOLTAGE_MASK, selector << TPS6105X_REG0_VOLTAGE_SHIFT); if (ret) return ret; return 0; }
static int tps6105x_regulator_enable(struct regulator_dev *rdev) { struct tps6105x *tps6105x = rdev_get_drvdata(rdev); int ret; /* Activate voltage mode */ ret = tps6105x_mask_and_set(tps6105x, TPS6105X_REG_0, TPS6105X_REG0_MODE_MASK, TPS6105X_REG0_MODE_VOLTAGE << TPS6105X_REG0_MODE_SHIFT); if (ret) return ret; return 0; }
static int tps6105x_regulator_disable(struct regulator_dev *rdev) { struct tps6105x *tps6105x = rdev_get_drvdata(rdev); int ret; /* Set into shutdown mode */ ret = tps6105x_mask_and_set(tps6105x, TPS6105X_REG_0, TPS6105X_REG0_MODE_MASK, TPS6105X_REG0_MODE_SHUTDOWN << TPS6105X_REG0_MODE_SHIFT); if (ret) return ret; return 0; }
static int __devexit tps6105x_remove(struct i2c_client *client) { struct tps6105x *tps6105x = i2c_get_clientdata(client); mfd_remove_devices(&client->dev); /* */ tps6105x_mask_and_set(tps6105x, TPS6105X_REG_0, TPS6105X_REG0_MODE_MASK, TPS6105X_MODE_SHUTDOWN << TPS6105X_REG0_MODE_SHIFT); kfree(tps6105x); return 0; }