aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-orion5x/ts409-setup.c
diff options
context:
space:
mode:
authorMartin Michlmayr <tbm@cyrius.com>2008-07-21 12:58:48 -0400
committerLennert Buytenhek <buytenh@marvell.com>2008-08-09 09:17:27 -0400
commit4a4e30afefbfd069ef09de3514cce4886e83ff10 (patch)
treec1a02eae847d3558d343093d1b68dbba1215f44d /arch/arm/mach-orion5x/ts409-setup.c
parentce72e36ed1a57ba086270039c7d6fac9bf1c5fbc (diff)
[ARM] Orion: export red SATA lights on TS-409, fix SATA presence/activity
Export the four red SATA LEDs on the QNAP TS-409 that are connected through gpio. Since the boot loader apparently sets the SATA LEDs 2-4 to red and the SATA LED can only be red or green (but not both), exporting the red SATA LEDs (which automatically turns them off upon boot) makes the green SATA presence/activity indication visible. Signed-off-by: Martin Michlmayr <tbm@cyrius.com> Acked-by: Sylver Bruneau <sylver.bruneau@googlemail.com> Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Diffstat (limited to 'arch/arm/mach-orion5x/ts409-setup.c')
-rw-r--r--arch/arm/mach-orion5x/ts409-setup.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c
index 6053e76ac967..3133b73282e9 100644
--- a/arch/arm/mach-orion5x/ts409-setup.c
+++ b/arch/arm/mach-orion5x/ts409-setup.c
@@ -3,6 +3,9 @@
3 * 3 *
4 * Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> 4 * Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com>
5 * 5 *
6 * Copyright (C) 2008 Sylver Bruneau <sylver.bruneau@gmail.com>
7 * Copyright (C) 2008 Martin Michlmayr <tbm@cyrius.com>
8 *
6 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 11 * as published by the Free Software Foundation; either version
@@ -16,6 +19,7 @@
16#include <linux/irq.h> 19#include <linux/irq.h>
17#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
18#include <linux/mv643xx_eth.h> 21#include <linux/mv643xx_eth.h>
22#include <linux/leds.h>
19#include <linux/gpio_keys.h> 23#include <linux/gpio_keys.h>
20#include <linux/input.h> 24#include <linux/input.h>
21#include <linux/i2c.h> 25#include <linux/i2c.h>
@@ -162,6 +166,43 @@ static struct i2c_board_info __initdata qnap_ts409_i2c_rtc = {
162 I2C_BOARD_INFO("s35390a", 0x30), 166 I2C_BOARD_INFO("s35390a", 0x30),
163}; 167};
164 168
169/*****************************************************************************
170 * LEDs attached to GPIO
171 ****************************************************************************/
172
173static struct gpio_led ts409_led_pins[] = {
174 {
175 .name = "ts409:red:sata1",
176 .gpio = 4,
177 .active_low = 1,
178 }, {
179 .name = "ts409:red:sata2",
180 .gpio = 5,
181 .active_low = 1,
182 }, {
183 .name = "ts409:red:sata3",
184 .gpio = 6,
185 .active_low = 1,
186 }, {
187 .name = "ts409:red:sata4",
188 .gpio = 7,
189 .active_low = 1,
190 },
191};
192
193static struct gpio_led_platform_data ts409_led_data = {
194 .leds = ts409_led_pins,
195 .num_leds = ARRAY_SIZE(ts409_led_pins),
196};
197
198static struct platform_device ts409_leds = {
199 .name = "leds-gpio",
200 .id = -1,
201 .dev = {
202 .platform_data = &ts409_led_data,
203 },
204};
205
165/**************************************************************************** 206/****************************************************************************
166 * GPIO Attached Keys 207 * GPIO Attached Keys
167 * Power button is attached to the PIC microcontroller 208 * Power button is attached to the PIC microcontroller
@@ -255,6 +296,7 @@ static void __init qnap_ts409_init(void)
255 if (qnap_ts409_i2c_rtc.irq == 0) 296 if (qnap_ts409_i2c_rtc.irq == 0)
256 pr_warning("qnap_ts409_init: failed to get RTC IRQ\n"); 297 pr_warning("qnap_ts409_init: failed to get RTC IRQ\n");
257 i2c_register_board_info(0, &qnap_ts409_i2c_rtc, 1); 298 i2c_register_board_info(0, &qnap_ts409_i2c_rtc, 1);
299 platform_device_register(&ts409_leds);
258 300
259 /* register tsx09 specific power-off method */ 301 /* register tsx09 specific power-off method */
260 pm_power_off = qnap_tsx09_power_off; 302 pm_power_off = qnap_tsx09_power_off;