|
@@ -16,7 +16,6 @@
|
|
|
#include <linux/clk.h>
|
|
|
#include <linux/io.h>
|
|
|
#include <linux/gpio.h>
|
|
|
-#include <linux/leds.h>
|
|
|
#include <linux/interrupt.h>
|
|
|
|
|
|
#include <linux/regulator/machine.h>
|
|
@@ -39,8 +38,8 @@
|
|
|
#define IGEP2_SMSC911X_CS 5
|
|
|
#define IGEP2_SMSC911X_GPIO 176
|
|
|
#define IGEP2_GPIO_USBH_NRESET 24
|
|
|
-#define IGEP2_GPIO_LED0_RED 26
|
|
|
-#define IGEP2_GPIO_LED0_GREEN 27
|
|
|
+#define IGEP2_GPIO_LED0_GREEN 26
|
|
|
+#define IGEP2_GPIO_LED0_RED 27
|
|
|
#define IGEP2_GPIO_LED1_RED 28
|
|
|
#define IGEP2_GPIO_DVI_PUP 170
|
|
|
#define IGEP2_GPIO_WIFI_NPD 94
|
|
@@ -355,34 +354,50 @@ static void __init igep2_display_init(void)
|
|
|
gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1))
|
|
|
pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n");
|
|
|
}
|
|
|
-#ifdef CONFIG_LEDS_TRIGGERS
|
|
|
-static struct gpio_led gpio_leds[] = {
|
|
|
+
|
|
|
+#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
|
|
|
+#include <linux/leds.h>
|
|
|
+
|
|
|
+static struct gpio_led igep2_gpio_leds[] = {
|
|
|
{
|
|
|
- .name = "GPIO_LED1_RED",
|
|
|
+ .name = "led0:red",
|
|
|
+ .gpio = IGEP2_GPIO_LED0_RED,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "led0:green",
|
|
|
.default_trigger = "heartbeat",
|
|
|
+ .gpio = IGEP2_GPIO_LED0_GREEN,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "led1:red",
|
|
|
.gpio = IGEP2_GPIO_LED1_RED,
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-static struct gpio_led_platform_data gpio_leds_info = {
|
|
|
- .leds = gpio_leds,
|
|
|
- .num_leds = ARRAY_SIZE(gpio_leds),
|
|
|
+static struct gpio_led_platform_data igep2_led_pdata = {
|
|
|
+ .leds = igep2_gpio_leds,
|
|
|
+ .num_leds = ARRAY_SIZE(igep2_gpio_leds),
|
|
|
};
|
|
|
|
|
|
-static struct platform_device leds_gpio = {
|
|
|
+static struct platform_device igep2_led_device = {
|
|
|
.name = "leds-gpio",
|
|
|
.id = -1,
|
|
|
.dev = {
|
|
|
- .platform_data = &gpio_leds_info,
|
|
|
+ .platform_data = &igep2_led_pdata,
|
|
|
},
|
|
|
};
|
|
|
+
|
|
|
+static void __init igep2_init_led(void)
|
|
|
+{
|
|
|
+ platform_device_register(&igep2_led_device);
|
|
|
+}
|
|
|
+
|
|
|
+#else
|
|
|
+static inline void igep2_init_led(void) {}
|
|
|
#endif
|
|
|
|
|
|
static struct platform_device *igep2_devices[] __initdata = {
|
|
|
&igep2_dss_device,
|
|
|
-#ifdef CONFIG_LEDS_TRIGGERS
|
|
|
- &leds_gpio,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
static void __init igep2_init_irq(void)
|
|
@@ -471,31 +486,34 @@ static void __init igep2_init(void)
|
|
|
usb_ehci_init(&ehci_pdata);
|
|
|
|
|
|
igep2_flash_init();
|
|
|
+ igep2_init_led();
|
|
|
igep2_display_init();
|
|
|
igep2_init_smsc911x();
|
|
|
|
|
|
/* GPIO userspace leds */
|
|
|
- if ((gpio_request(IGEP2_GPIO_LED0_RED, "GPIO_LED0_RED") == 0) &&
|
|
|
+#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE)
|
|
|
+ if ((gpio_request(IGEP2_GPIO_LED0_RED, "led0:red") == 0) &&
|
|
|
(gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) {
|
|
|
gpio_export(IGEP2_GPIO_LED0_RED, 0);
|
|
|
gpio_set_value(IGEP2_GPIO_LED0_RED, 0);
|
|
|
} else
|
|
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n");
|
|
|
|
|
|
- if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "GPIO_LED0_GREEN") == 0) &&
|
|
|
+ if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "led0:green") == 0) &&
|
|
|
(gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) {
|
|
|
gpio_export(IGEP2_GPIO_LED0_GREEN, 0);
|
|
|
gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0);
|
|
|
} else
|
|
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n");
|
|
|
-#ifndef CONFIG_LEDS_TRIGGERS
|
|
|
- if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_LED1_RED") == 0) &&
|
|
|
+
|
|
|
+ if ((gpio_request(IGEP2_GPIO_LED1_RED, "led1:red") == 0) &&
|
|
|
(gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) {
|
|
|
gpio_export(IGEP2_GPIO_LED1_RED, 0);
|
|
|
gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
|
|
|
} else
|
|
|
pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n");
|
|
|
#endif
|
|
|
+
|
|
|
/* GPIO W-LAN + Bluetooth combo module */
|
|
|
if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) &&
|
|
|
(gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) {
|