diff options
| -rw-r--r-- | arch/arm/mach-orion5x/edmini_v2-setup.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c index 2d67591dbce6..b24ee0c2cd61 100644 --- a/arch/arm/mach-orion5x/edmini_v2-setup.c +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c | |||
| @@ -25,6 +25,9 @@ | |||
| 25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
| 26 | #include <linux/mtd/physmap.h> | 26 | #include <linux/mtd/physmap.h> |
| 27 | #include <linux/mv643xx_eth.h> | 27 | #include <linux/mv643xx_eth.h> |
| 28 | #include <linux/leds.h> | ||
| 29 | #include <linux/gpio_keys.h> | ||
| 30 | #include <linux/input.h> | ||
| 28 | #include <linux/i2c.h> | 31 | #include <linux/i2c.h> |
| 29 | #include <linux/ata_platform.h> | 32 | #include <linux/ata_platform.h> |
| 30 | #include <linux/gpio.h> | 33 | #include <linux/gpio.h> |
| @@ -120,6 +123,61 @@ static struct mv_sata_platform_data edmini_v2_sata_data = { | |||
| 120 | }; | 123 | }; |
| 121 | 124 | ||
| 122 | /***************************************************************************** | 125 | /***************************************************************************** |
| 126 | * GPIO LED (simple - doesn't use hardware blinking support) | ||
| 127 | ****************************************************************************/ | ||
| 128 | |||
| 129 | #define EDMINI_V2_GPIO_LED_POWER 16 | ||
| 130 | |||
| 131 | static struct gpio_led edmini_v2_leds[] = { | ||
| 132 | { | ||
| 133 | .name = "power:blue", | ||
| 134 | .gpio = EDMINI_V2_GPIO_LED_POWER, | ||
| 135 | .active_low = 1, | ||
| 136 | }, | ||
| 137 | }; | ||
| 138 | |||
| 139 | static struct gpio_led_platform_data edmini_v2_led_data = { | ||
| 140 | .num_leds = ARRAY_SIZE(edmini_v2_leds), | ||
| 141 | .leds = edmini_v2_leds, | ||
| 142 | }; | ||
| 143 | |||
| 144 | static struct platform_device edmini_v2_gpio_leds = { | ||
| 145 | .name = "leds-gpio", | ||
| 146 | .id = -1, | ||
| 147 | .dev = { | ||
| 148 | .platform_data = &edmini_v2_led_data, | ||
| 149 | }, | ||
| 150 | }; | ||
| 151 | |||
| 152 | /**************************************************************************** | ||
| 153 | * GPIO key | ||
| 154 | ****************************************************************************/ | ||
| 155 | |||
| 156 | #define EDMINI_V2_GPIO_KEY_POWER 18 | ||
| 157 | |||
| 158 | static struct gpio_keys_button edmini_v2_buttons[] = { | ||
| 159 | { | ||
| 160 | .code = KEY_POWER, | ||
| 161 | .gpio = EDMINI_V2_GPIO_KEY_POWER, | ||
| 162 | .desc = "Power Button", | ||
| 163 | .active_low = 0, | ||
| 164 | }, | ||
| 165 | }; | ||
| 166 | |||
| 167 | static struct gpio_keys_platform_data edmini_v2_button_data = { | ||
| 168 | .buttons = edmini_v2_buttons, | ||
| 169 | .nbuttons = ARRAY_SIZE(edmini_v2_buttons), | ||
| 170 | }; | ||
| 171 | |||
| 172 | static struct platform_device edmini_v2_gpio_buttons = { | ||
| 173 | .name = "gpio-keys", | ||
| 174 | .id = -1, | ||
| 175 | .dev = { | ||
| 176 | .platform_data = &edmini_v2_button_data, | ||
| 177 | }, | ||
| 178 | }; | ||
| 179 | |||
| 180 | /***************************************************************************** | ||
| 123 | * General Setup | 181 | * General Setup |
| 124 | ****************************************************************************/ | 182 | ****************************************************************************/ |
| 125 | static struct orion5x_mpp_mode edminiv2_mpp_modes[] __initdata = { | 183 | static struct orion5x_mpp_mode edminiv2_mpp_modes[] __initdata = { |
| @@ -170,6 +228,8 @@ static void __init edmini_v2_init(void) | |||
| 170 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, | 228 | orion5x_setup_dev_boot_win(EDMINI_V2_NOR_BOOT_BASE, |
| 171 | EDMINI_V2_NOR_BOOT_SIZE); | 229 | EDMINI_V2_NOR_BOOT_SIZE); |
| 172 | platform_device_register(&edmini_v2_nor_flash); | 230 | platform_device_register(&edmini_v2_nor_flash); |
| 231 | platform_device_register(&edmini_v2_gpio_leds); | ||
| 232 | platform_device_register(&edmini_v2_gpio_buttons); | ||
| 173 | 233 | ||
| 174 | pr_notice("edmini_v2: USB device port, flash write and power-off " | 234 | pr_notice("edmini_v2: USB device port, flash write and power-off " |
| 175 | "are not yet supported.\n"); | 235 | "are not yet supported.\n"); |
