|
@@ -273,3 +273,43 @@ static struct snd_platform_data dm644x_evm_snd_data;
|
|
|
|
|
|
#define PCF_Uxx_BASE(x) (DAVINCI_N_GPIO + ((x) * 8))
|
|
#define PCF_Uxx_BASE(x) (DAVINCI_N_GPIO + ((x) * 8))
|
|
|
|
|
|
|
|
+
|
|
|
|
+/* U2 -- LEDs */
|
|
|
|
+
|
|
|
|
+static struct gpio_led evm_leds[] = {
|
|
|
|
+ { .name = "DS8", .active_low = 1,
|
|
|
|
+ .default_trigger = "heartbeat", },
|
|
|
|
+ { .name = "DS7", .active_low = 1, },
|
|
|
|
+ { .name = "DS6", .active_low = 1, },
|
|
|
|
+ { .name = "DS5", .active_low = 1, },
|
|
|
|
+ { .name = "DS4", .active_low = 1, },
|
|
|
|
+ { .name = "DS3", .active_low = 1, },
|
|
|
|
+ { .name = "DS2", .active_low = 1,
|
|
|
|
+ .default_trigger = "mmc0", },
|
|
|
|
+ { .name = "DS1", .active_low = 1,
|
|
|
|
+ .default_trigger = "ide-disk", },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct gpio_led_platform_data evm_led_data = {
|
|
|
|
+ .num_leds = ARRAY_SIZE(evm_leds),
|
|
|
|
+ .leds = evm_leds,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device *evm_led_dev;
|
|
|
|
+
|
|
|
|
+static int
|
|
|
|
+evm_led_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
|
|
|
|
+{
|
|
|
|
+ struct gpio_led *leds = evm_leds;
|
|
|
|
+ int status;
|
|
|
|
+
|
|
|
|
+ while (ngpio--) {
|
|
|
|
+ leds->gpio = gpio++;
|
|
|
|
+ leds++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* what an extremely annoying way to be forced to handle
|
|
|
|
+ * device unregistration ...
|
|
|
|
+ */
|
|
|
|
+ evm_led_dev = platform_device_alloc("leds-gpio", 0);
|
|
|
|
+ platform_device_add_data(evm_led_dev,
|