|
@@ -310,11 +310,17 @@ static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
|
|
|
struct wm831x_pdata *pdata = wm831x->dev->platform_data;
|
|
|
- int id = pdev->id % ARRAY_SIZE(pdata->ldo);
|
|
|
+ int id;
|
|
|
struct wm831x_ldo *ldo;
|
|
|
struct resource *res;
|
|
|
int ret, irq;
|
|
|
|
|
|
+ if (pdata && pdata->wm831x_num)
|
|
|
+ id = (pdata->wm831x_num * 10) + 1;
|
|
|
+ else
|
|
|
+ id = 0;
|
|
|
+ id = pdev->id - id;
|
|
|
+
|
|
|
dev_dbg(&pdev->dev, "Probing LDO%d\n", id + 1);
|
|
|
|
|
|
if (pdata == NULL || pdata->ldo[id] == NULL)
|
|
@@ -574,11 +580,17 @@ static __devinit int wm831x_aldo_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
|
|
|
struct wm831x_pdata *pdata = wm831x->dev->platform_data;
|
|
|
- int id = pdev->id % ARRAY_SIZE(pdata->ldo);
|
|
|
+ int id;
|
|
|
struct wm831x_ldo *ldo;
|
|
|
struct resource *res;
|
|
|
int ret, irq;
|
|
|
|
|
|
+ if (pdata && pdata->wm831x_num)
|
|
|
+ id = (pdata->wm831x_num * 10) + 1;
|
|
|
+ else
|
|
|
+ id = 0;
|
|
|
+ id = pdev->id - id;
|
|
|
+
|
|
|
dev_dbg(&pdev->dev, "Probing LDO%d\n", id + 1);
|
|
|
|
|
|
if (pdata == NULL || pdata->ldo[id] == NULL)
|
|
@@ -764,11 +776,18 @@ static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
|
|
|
struct wm831x_pdata *pdata = wm831x->dev->platform_data;
|
|
|
- int id = pdev->id % ARRAY_SIZE(pdata->ldo);
|
|
|
+ int id;
|
|
|
struct wm831x_ldo *ldo;
|
|
|
struct resource *res;
|
|
|
int ret;
|
|
|
|
|
|
+ if (pdata && pdata->wm831x_num)
|
|
|
+ id = (pdata->wm831x_num * 10) + 1;
|
|
|
+ else
|
|
|
+ id = 0;
|
|
|
+ id = pdev->id - id;
|
|
|
+
|
|
|
+
|
|
|
dev_dbg(&pdev->dev, "Probing LDO%d\n", id + 1);
|
|
|
|
|
|
if (pdata == NULL || pdata->ldo[id] == NULL)
|