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

Commit 66211f98 authored by Mark Brown's avatar Mark Brown Committed by Kukjin Kim
Browse files

ARM: S3C64XX: Support GPIO LEDs on Cragganmore



Cragganmore has a bank of 8 LEDs connected to the memory mapped GPIO
bank, mostly intended for low level diagnostics. Register these with
the LED subsystem for runtime use.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 84207d83
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -296,5 +296,6 @@ config MACH_WLF_CRAGG_6410
	select S3C64XX_DEV_SPI0
	select S3C64XX_DEV_SPI0
	select SAMSUNG_GPIO_EXTRA128
	select SAMSUNG_GPIO_EXTRA128
	select I2C
	select I2C
	select LEDS_GPIO_REGISTER
	help
	help
	  Machine support for the Wolfson Cragganmore S3C6410 variant.
	  Machine support for the Wolfson Cragganmore S3C6410 variant.
+51 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/io.h>
#include <linux/io.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <linux/leds.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/fixed.h>
@@ -698,6 +699,54 @@ static struct s3c_sdhci_platdata crag6410_hsmmc0_pdata = {
	.cfg_gpio		= crag6410_cfg_sdhci0,
	.cfg_gpio		= crag6410_cfg_sdhci0,
};
};


static const struct gpio_led gpio_leds[] = {
	{
		.name = "d13:green:",
		.gpio = MMGPIO_GPIO_BASE + 0,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d14:green:",
		.gpio = MMGPIO_GPIO_BASE + 1,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d15:green:",
		.gpio = MMGPIO_GPIO_BASE + 2,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d16:green:",
		.gpio = MMGPIO_GPIO_BASE + 3,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d17:green:",
		.gpio = MMGPIO_GPIO_BASE + 4,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d18:green:",
		.gpio = MMGPIO_GPIO_BASE + 5,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d19:green:",
		.gpio = MMGPIO_GPIO_BASE + 6,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
	{
		.name = "d20:green:",
		.gpio = MMGPIO_GPIO_BASE + 7,
		.default_state = LEDS_GPIO_DEFSTATE_ON,
	},
};

static const struct gpio_led_platform_data gpio_leds_pdata = {
	.leds = gpio_leds,
	.num_leds = ARRAY_SIZE(gpio_leds),
};

static void __init crag6410_machine_init(void)
static void __init crag6410_machine_init(void)
{
{
	/* Open drain IRQs need pullups */
	/* Open drain IRQs need pullups */
@@ -730,6 +779,8 @@ static void __init crag6410_machine_init(void)


	platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices));
	platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices));


	gpio_led_register_device(-1, &gpio_leds_pdata);

	regulator_has_full_constraints();
	regulator_has_full_constraints();


	s3c64xx_pm_init();
	s3c64xx_pm_init();