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

Commit f2e5b269 authored by Alexandre Belloni's avatar Alexandre Belloni Committed by Nicolas Ferre
Browse files

ARM: at91: sam9263ek: use generic leds_pwm driver



Switch to the generic leds_pwm driver instead of leds-atmel-pwm.

Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
parent 3791f783
Loading
Loading
Loading
Loading
+47 −8
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
#include <linux/gpio_keys.h>
#include <linux/input.h>
#include <linux/leds.h>
#include <linux/pwm.h>
#include <linux/leds_pwm.h>

#include <video/atmel_lcdc.h>

@@ -369,22 +371,48 @@ static struct gpio_led ek_leds[] = {
		.name			= "ds3",
		.gpio			= AT91_PIN_PB7,
		.default_trigger	= "heartbeat",
	},
#if !IS_ENABLED(CONFIG_LEDS_PWM)
	{
		.name			= "ds1",
		.gpio			= AT91_PIN_PB8,
		.active_low		= 1,
		.default_trigger	= "none",
	}
#endif
};

/*
 * PWM Leds
 */
static struct gpio_led ek_pwm_led[] = {
	/* For now only DS1 is PWM-driven (by pwm1) */
static struct pwm_lookup pwm_lookup[] = {
	PWM_LOOKUP("at91sam9rl-pwm", 1, "leds_pwm", "ds1",
		   5000, PWM_POLARITY_INVERSED),
};

#if IS_ENABLED(CONFIG_LEDS_PWM)
static struct led_pwm pwm_leds[] = {
	{
		.name = "ds1",
		.gpio			= 1,	/* is PWM channel number */
		.active_low		= 1,
		.default_trigger	= "none",
	}
		.max_brightness = 255,
	},
};

static struct led_pwm_platform_data pwm_data = {
	.num_leds       = ARRAY_SIZE(pwm_leds),
	.leds           = pwm_leds,
};

static struct platform_device leds_pwm = {
	.name   = "leds_pwm",
	.id     = -1,
	.dev    = {
		.platform_data = &pwm_data,
	},
};
#endif


/*
 * CAN
 */
@@ -403,6 +431,12 @@ static struct at91_can_data ek_can_data = {
	.transceiver_switch = sam9263ek_transceiver_switch,
};

static struct platform_device *devices[] __initdata = {
#if IS_ENABLED(CONFIG_LEDS_PWM)
	&leds_pwm,
#endif
};

static void __init ek_board_init(void)
{
	/* Serial */
@@ -437,9 +471,14 @@ static void __init ek_board_init(void)
	at91_add_device_ac97(&ek_ac97_data);
	/* LEDs */
	at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
	at91_pwm_leds(ek_pwm_led, ARRAY_SIZE(ek_pwm_led));
	pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
#if IS_ENABLED(CONFIG_LEDS_PWM)
	at91_add_device_pwm(1 << AT91_PWM1);
#endif
	/* CAN */
	at91_add_device_can(&ek_can_data);
	/* Other platform devices */
	platform_add_devices(devices, ARRAY_SIZE(devices));
}

MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")