|
@@ -295,3 +295,74 @@ static struct omap2_hsmmc_info mmc[] = {
|
|
|
{} /* Terminator */
|
|
|
};
|
|
|
|
|
|
+#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
|
|
|
+#include <linux/leds.h>
|
|
|
+
|
|
|
+static struct gpio_led igep_gpio_leds[] = {
|
|
|
+ [0] = {
|
|
|
+ .name = "gpio-led:red:d0",
|
|
|
+ .default_trigger = "default-off"
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .name = "gpio-led:green:d0",
|
|
|
+ .default_trigger = "default-off",
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .name = "gpio-led:red:d1",
|
|
|
+ .default_trigger = "default-off",
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .name = "gpio-led:green:d1",
|
|
|
+ .default_trigger = "heartbeat",
|
|
|
+ .gpio = -EINVAL, /* gets replaced */
|
|
|
+ .active_low = 1,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_led_platform_data igep_led_pdata = {
|
|
|
+ .leds = igep_gpio_leds,
|
|
|
+ .num_leds = ARRAY_SIZE(igep_gpio_leds),
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device igep_led_device = {
|
|
|
+ .name = "leds-gpio",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &igep_led_pdata,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static void __init igep_leds_init(void)
|
|
|
+{
|
|
|
+ if (machine_is_igep0020()) {
|
|
|
+ igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED;
|
|
|
+ igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN;
|
|
|
+ igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED;
|
|
|
+ } else {
|
|
|
+ igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED;
|
|
|
+ igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN;
|
|
|
+ igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED;
|
|
|
+ }
|
|
|
+
|
|
|
+ platform_device_register(&igep_led_device);
|
|
|
+}
|
|
|
+
|
|
|
+#else
|
|
|
+static struct gpio igep_gpio_leds[] __initdata = {
|
|
|
+ { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:red:d0" },
|
|
|
+ { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:green:d0" },
|
|
|
+ { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:red:d1" },
|
|
|
+};
|
|
|
+
|
|
|
+static inline void igep_leds_init(void)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+
|
|
|
+ if (machine_is_igep0020()) {
|
|
|
+ igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED;
|
|
|
+ igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN;
|
|
|
+ igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED;
|
|
|
+ } else {
|
|
|
+ igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED;
|
|
|
+ igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN;
|
|
|
+ igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED;
|