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

Commit a7a81d0b authored by Mark Brown's avatar Mark Brown Committed by Ben Dooks
Browse files

ARM: SMDK6410: Add support for PMIC LED on WM1192-EV1 PMIC module



The PMIC LED on the SMDK6410 CPU board is driven by GPIO4 of the
WM8312 PMIC. Provide software control of this LED.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent 60f9101a
Loading
Loading
Loading
Loading
+30 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/i2c.h>
#include <linux/leds.h>
#include <linux/fb.h>
#include <linux/fb.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <linux/delay.h>
#include <linux/delay.h>
@@ -33,6 +34,7 @@
#endif
#endif


#ifdef CONFIG_SMDK6410_WM1192_EV1
#ifdef CONFIG_SMDK6410_WM1192_EV1
#include <linux/mfd/wm831x/core.h>
#include <linux/mfd/wm831x/pdata.h>
#include <linux/mfd/wm831x/pdata.h>
#endif
#endif


@@ -471,11 +473,38 @@ static struct wm8350_platform_data __initdata smdk6410_wm8350_pdata = {
#endif
#endif


#ifdef CONFIG_SMDK6410_WM1192_EV1
#ifdef CONFIG_SMDK6410_WM1192_EV1
static struct gpio_led wm1192_pmic_leds[] = {
	{
		.name = "PMIC:red:power",
		.gpio = GPIO_BOARD_START + 3,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
};

static struct gpio_led_platform_data wm1192_pmic_led = {
	.num_leds = ARRAY_SIZE(wm1192_pmic_leds),
	.leds = wm1192_pmic_leds,
};

static struct platform_device wm1192_pmic_led_dev = {
	.name          = "leds-gpio",
	.id            = -1,
	.dev = {
		.platform_data = &wm1192_pmic_led,
	},
};

static int wm1192_pre_init(struct wm831x *wm831x)
static int wm1192_pre_init(struct wm831x *wm831x)
{
{
	int ret;

	/* Configure the IRQ line */
	/* Configure the IRQ line */
	s3c_gpio_setpull(S3C64XX_GPN(12), S3C_GPIO_PULL_UP);
	s3c_gpio_setpull(S3C64XX_GPN(12), S3C_GPIO_PULL_UP);


	ret = platform_device_register(&wm1192_pmic_led_dev);
	if (ret != 0)
		dev_err(wm831x->dev, "Failed to add PMIC LED: %d\n", ret);

	return 0;
	return 0;
}
}


@@ -522,6 +551,7 @@ static struct wm831x_pdata smdk6410_wm1192_pdata = {
		&smdk6410_vddint,  /* DCDC2 */
		&smdk6410_vddint,  /* DCDC2 */
		&wm1192_dcdc3,
		&wm1192_dcdc3,
	},
	},
	.gpio_base = GPIO_BOARD_START,
	.ldo = {
	.ldo = {
		 &wm1192_ldo1,        /* LDO1 */
		 &wm1192_ldo1,        /* LDO1 */
		 &smdk6410_vdduh_mmc, /* LDO2 */
		 &smdk6410_vdduh_mmc, /* LDO2 */