aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/configs/orion5x_defconfig4
-rw-r--r--arch/arm/mach-orion5x/mv2120-setup.c45
2 files changed, 47 insertions, 2 deletions
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 8a7cabfae574..9578b5d9f9c7 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -1077,7 +1077,7 @@ CONFIG_LEDS_CLASS=y
1077# 1077#
1078# LED drivers 1078# LED drivers
1079# 1079#
1080# CONFIG_LEDS_GPIO is not set 1080CONFIG_LEDS_GPIO=y
1081 1081
1082# 1082#
1083# LED Triggers 1083# LED Triggers
@@ -1085,7 +1085,7 @@ CONFIG_LEDS_CLASS=y
1085CONFIG_LEDS_TRIGGERS=y 1085CONFIG_LEDS_TRIGGERS=y
1086CONFIG_LEDS_TRIGGER_TIMER=y 1086CONFIG_LEDS_TRIGGER_TIMER=y
1087CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1087CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1088# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1088CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1089CONFIG_RTC_LIB=y 1089CONFIG_RTC_LIB=y
1090CONFIG_RTC_CLASS=y 1090CONFIG_RTC_CLASS=y
1091CONFIG_RTC_HCTOSYS=y 1091CONFIG_RTC_HCTOSYS=y
diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c
index f1dcad36b13c..55f3b0fdef8b 100644
--- a/arch/arm/mach-orion5x/mv2120-setup.c
+++ b/arch/arm/mach-orion5x/mv2120-setup.c
@@ -137,6 +137,50 @@ static struct i2c_board_info __initdata mv2120_i2c_rtc = {
137 .irq = 0, 137 .irq = 0,
138}; 138};
139 139
140static struct gpio_led mv2120_led_pins[] = {
141 {
142 .name = "mv2120:blue:health",
143 .gpio = 0,
144 },
145 {
146 .name = "mv2120:red:health",
147 .gpio = 1,
148 },
149 {
150 .name = "mv2120:led:bright",
151 .gpio = 4,
152 .default_trigger = "default-on",
153 },
154 {
155 .name = "mv2120:led:dimmed",
156 .gpio = 5,
157 },
158 {
159 .name = "mv2120:red:sata0",
160 .gpio = 8,
161 .active_low = 1,
162 },
163 {
164 .name = "mv2120:red:sata1",
165 .gpio = 9,
166 .active_low = 1,
167 },
168
169};
170
171static struct gpio_led_platform_data mv2120_led_data = {
172 .leds = mv2120_led_pins,
173 .num_leds = ARRAY_SIZE(mv2120_led_pins),
174};
175
176static struct platform_device mv2120_leds = {
177 .name = "leds-gpio",
178 .id = -1,
179 .dev = {
180 .platform_data = &mv2120_led_data,
181 }
182};
183
140static void mv2120_power_off(void) 184static void mv2120_power_off(void)
141{ 185{
142 pr_info("%s: triggering power-off...\n", __func__); 186 pr_info("%s: triggering power-off...\n", __func__);
@@ -172,6 +216,7 @@ static void __init mv2120_init(void)
172 gpio_free(MV2120_GPIO_RTC_IRQ); 216 gpio_free(MV2120_GPIO_RTC_IRQ);
173 } 217 }
174 i2c_register_board_info(0, &mv2120_i2c_rtc, 1); 218 i2c_register_board_info(0, &mv2120_i2c_rtc, 1);
219 platform_device_register(&mv2120_leds);
175 220
176 /* register mv2120 specific power-off method */ 221 /* register mv2120 specific power-off method */
177 if (gpio_request(MV2120_GPIO_POWER_OFF, "POWEROFF") != 0 || 222 if (gpio_request(MV2120_GPIO_POWER_OFF, "POWEROFF") != 0 ||