|
@@ -79,6 +79,11 @@ struct da903x_regulator_info {
|
|
|
int enable_bit;
|
|
|
};
|
|
|
|
|
|
+static inline struct device *to_da903x_dev(struct regulator_dev *rdev)
|
|
|
+{
|
|
|
+ return rdev_get_dev(rdev)->parent->parent;
|
|
|
+}
|
|
|
+
|
|
|
static inline int check_range(struct da903x_regulator_info *info,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
@@ -93,7 +98,7 @@ static int da903x_set_ldo_voltage(struct regulator_dev *rdev,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
|
|
|
if (check_range(info, min_uV, max_uV)) {
|
|
@@ -111,7 +116,7 @@ static int da903x_set_ldo_voltage(struct regulator_dev *rdev,
|
|
|
static int da903x_get_voltage(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int ret;
|
|
|
|
|
@@ -128,7 +133,7 @@ static int da903x_get_voltage(struct regulator_dev *rdev)
|
|
|
static int da903x_enable(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
|
|
|
return da903x_set_bits(da9034_dev, info->enable_reg,
|
|
|
1 << info->enable_bit);
|
|
@@ -137,7 +142,7 @@ static int da903x_enable(struct regulator_dev *rdev)
|
|
|
static int da903x_disable(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
|
|
|
return da903x_clr_bits(da9034_dev, info->enable_reg,
|
|
|
1 << info->enable_bit);
|
|
@@ -146,7 +151,7 @@ static int da903x_disable(struct regulator_dev *rdev)
|
|
|
static int da903x_is_enabled(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t reg_val;
|
|
|
int ret;
|
|
|
|
|
@@ -162,7 +167,7 @@ static int da9030_set_ldo1_15_voltage(struct regulator_dev *rdev,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da903x_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da903x_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int ret;
|
|
|
|
|
@@ -189,7 +194,7 @@ static int da9030_set_ldo14_voltage(struct regulator_dev *rdev,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da903x_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da903x_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int thresh;
|
|
|
|
|
@@ -215,7 +220,7 @@ static int da9030_set_ldo14_voltage(struct regulator_dev *rdev,
|
|
|
static int da9030_get_ldo14_voltage(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da903x_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da903x_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int ret;
|
|
|
|
|
@@ -238,7 +243,7 @@ static int da9034_set_dvc_voltage(struct regulator_dev *rdev,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int ret;
|
|
|
|
|
@@ -264,7 +269,7 @@ static int da9034_set_ldo12_voltage(struct regulator_dev *rdev,
|
|
|
int min_uV, int max_uV)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
|
|
|
if (check_range(info, min_uV, max_uV)) {
|
|
@@ -283,7 +288,7 @@ static int da9034_set_ldo12_voltage(struct regulator_dev *rdev,
|
|
|
static int da9034_get_ldo12_voltage(struct regulator_dev *rdev)
|
|
|
{
|
|
|
struct da903x_regulator_info *info = rdev_get_drvdata(rdev);
|
|
|
- struct device *da9034_dev = rdev_get_dev(rdev)->parent;
|
|
|
+ struct device *da9034_dev = to_da903x_dev(rdev);
|
|
|
uint8_t val, mask;
|
|
|
int ret;
|
|
|
|
|
@@ -466,7 +471,7 @@ static int __devinit da903x_regulator_probe(struct platform_device *pdev)
|
|
|
if (ri->desc.id == DA9030_ID_LDO1 || ri->desc.id == DA9030_ID_LDO15)
|
|
|
ri->desc.ops = &da9030_regulator_ldo1_15_ops;
|
|
|
|
|
|
- rdev = regulator_register(&ri->desc, pdev->dev.parent, ri);
|
|
|
+ rdev = regulator_register(&ri->desc, &pdev->dev, ri);
|
|
|
if (IS_ERR(rdev)) {
|
|
|
dev_err(&pdev->dev, "failed to register regulator %s\n",
|
|
|
ri->desc.name);
|