static int __devinit tps6105x_startup(struct tps6105x *tps6105x) { int ret; u8 regval; ret = tps6105x_get(tps6105x, TPS6105X_REG_0, ®val); if (ret) return ret; switch (regval >> TPS6105X_REG0_MODE_SHIFT) { case TPS6105X_REG0_MODE_SHUTDOWN: dev_info(&tps6105x->client->dev, "TPS6105x found in SHUTDOWN mode\n"); break; case TPS6105X_REG0_MODE_TORCH: dev_info(&tps6105x->client->dev, "TPS6105x found in TORCH mode\n"); break; case TPS6105X_REG0_MODE_TORCH_FLASH: dev_info(&tps6105x->client->dev, "TPS6105x found in FLASH mode\n"); break; case TPS6105X_REG0_MODE_VOLTAGE: dev_info(&tps6105x->client->dev, "TPS6105x found in VOLTAGE mode\n"); break; default: break; } return ret; }
static int tps6105x_regulator_get_voltage_sel(struct regulator_dev *rdev) { struct tps6105x *tps6105x = rdev_get_drvdata(rdev); u8 regval; int ret; ret = tps6105x_get(tps6105x, TPS6105X_REG_0, ®val); if (ret) return ret; regval &= TPS6105X_REG0_VOLTAGE_MASK; regval >>= TPS6105X_REG0_VOLTAGE_SHIFT; return (int) regval; }
static int tps6105x_regulator_is_enabled(struct regulator_dev *rdev) { struct tps6105x *tps6105x = rdev_get_drvdata(rdev); u8 regval; int ret; ret = tps6105x_get(tps6105x, TPS6105X_REG_0, ®val); if (ret) return ret; regval &= TPS6105X_REG0_MODE_MASK; regval >>= TPS6105X_REG0_MODE_SHIFT; if (regval == TPS6105X_REG0_MODE_VOLTAGE) return 1; return 0; }