Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8a8fc28 authored by Mark Brown's avatar Mark Brown
Browse files

mfd: wm8994: Store platform data in device



This is better style as platform data is supposed to be discardable after
init (though hotplug usually prevents this) and will ease implementation
of device tree property bindings.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent cd22000a
Loading
Loading
Loading
Loading
+19 −16
Original line number Diff line number Diff line
@@ -401,13 +401,19 @@ static const __devinitconst struct reg_default wm1811_reva_patch[] = {
 */
static __devinit int wm8994_device_init(struct wm8994 *wm8994, int irq)
{
	struct wm8994_pdata *pdata = wm8994->dev->platform_data;
	struct wm8994_pdata *pdata;
	struct regmap_config *regmap_config;
	const struct reg_default *regmap_patch = NULL;
	const char *devname;
	int ret, i, patch_regs;
	int pulls = 0;

	if (dev_get_platdata(wm8994->dev)) {
		pdata = dev_get_platdata(wm8994->dev);
		wm8994->pdata = *pdata;
	}
	pdata = &wm8994->pdata;

	dev_set_drvdata(wm8994->dev, wm8994);

	/* Add the on-chip regulators first for bootstrapping */
@@ -604,7 +610,6 @@ static __devinit int wm8994_device_init(struct wm8994 *wm8994, int irq)
		}
	}

	if (pdata) {
	wm8994->irq_base = pdata->irq_base;
	wm8994->gpio_base = pdata->gpio_base;

@@ -612,8 +617,7 @@ static __devinit int wm8994_device_init(struct wm8994 *wm8994, int irq)
	for (i = 0; i < ARRAY_SIZE(pdata->gpio_defaults); i++) {
		if (pdata->gpio_defaults[i]) {
			wm8994_set_bits(wm8994, WM8994_GPIO_1 + i,
						0xffff,
						pdata->gpio_defaults[i]);
					0xffff, pdata->gpio_defaults[i]);
		}
	}

@@ -621,7 +625,6 @@ static __devinit int wm8994_device_init(struct wm8994 *wm8994, int irq)

	if (pdata->spkmode_pu)
		pulls |= WM8994_SPKMODE_PU;
	}

	/* Disable unneeded pulls */
	wm8994_set_bits(wm8994, WM8994_PULL_CONTROL_2,
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@
#include <linux/interrupt.h>
#include <linux/regmap.h>

#include <linux/mfd/wm8994/pdata.h>

enum wm8994_type {
	WM8994 = 0,
	WM8958 = 1,
@@ -55,6 +57,8 @@ struct regulator_bulk_data;
struct wm8994 {
	struct mutex irq_lock;

	struct wm8994_pdata pdata;

	enum wm8994_type type;
	int revision;
	int cust_id;