Commit e031cd51 authored by Bryan Wu's avatar Bryan Wu

ARM: mach-realview and mach-versatile: retire custom LED code

This replaces the custom LED trigger code in mach-realview with
some overarching platform code for the plat-versatile family that
will lock down LEDs 2 thru 5 for CPU activity indication. The
day we have 8 core ARM systems the plat-versatile code will have
to become more elaborate.

Tested on RealView PB11MPCore by invoking four different CPU
hogs (yes > /dev/null&) and see the LEDs go on one at a time.
They all go off as the hogs are killed. Tested on the PB1176
as well - just one activity led (led 2) goes on and off with
CPU activity.

(bryan.wu@canonical.com: use ledtrig-cpu instead of ledtrig-arm-cpu)

Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
Acked-by: default avatarPawel Moll <pawel.moll@arm.com>
parent d61015fa
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/hardware/arm_timer.h> #include <asm/hardware/arm_timer.h>
#include <asm/hardware/icst.h> #include <asm/hardware/icst.h>
...@@ -436,44 +435,6 @@ struct clcd_board clcd_plat_data = { ...@@ -436,44 +435,6 @@ struct clcd_board clcd_plat_data = {
.remove = versatile_clcd_remove_dma, .remove = versatile_clcd_remove_dma,
}; };
#ifdef CONFIG_LEDS
#define VA_LEDS_BASE (__io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LED_OFFSET)
void realview_leds_event(led_event_t ledevt)
{
unsigned long flags;
u32 val;
u32 led = 1 << smp_processor_id();
local_irq_save(flags);
val = readl(VA_LEDS_BASE);
switch (ledevt) {
case led_idle_start:
val = val & ~led;
break;
case led_idle_end:
val = val | led;
break;
case led_timer:
val = val ^ REALVIEW_SYS_LED7;
break;
case led_halted:
val = 0;
break;
default:
break;
}
writel(val, VA_LEDS_BASE);
local_irq_restore(flags);
}
#endif /* CONFIG_LEDS */
/* /*
* Where is the timer (VA)? * Where is the timer (VA)?
*/ */
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/leds.h>
#define APB_DEVICE(name, busid, base, plat) \ #define APB_DEVICE(name, busid, base, plat) \
static AMBA_APB_DEVICE(name, busid, 0, REALVIEW_##base##_BASE, base##_IRQ, plat) static AMBA_APB_DEVICE(name, busid, 0, REALVIEW_##base##_BASE, base##_IRQ, plat)
...@@ -47,7 +46,6 @@ extern void __iomem *timer1_va_base; ...@@ -47,7 +46,6 @@ extern void __iomem *timer1_va_base;
extern void __iomem *timer2_va_base; extern void __iomem *timer2_va_base;
extern void __iomem *timer3_va_base; extern void __iomem *timer3_va_base;
extern void realview_leds_event(led_event_t ledevt);
extern void realview_timer_init(unsigned int timer_irq); extern void realview_timer_init(unsigned int timer_irq);
extern int realview_flash_register(struct resource *res, u32 num); extern int realview_flash_register(struct resource *res, u32 num);
extern int realview_eth_register(const char *name, struct resource *res); extern int realview_eth_register(const char *name, struct resource *res);
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -462,10 +461,6 @@ static void __init realview_eb_init(void) ...@@ -462,10 +461,6 @@ static void __init realview_eb_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
} }
MACHINE_START(REALVIEW_EB, "ARM-RealView EB") MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -375,10 +374,6 @@ static void __init realview_pb1176_init(void) ...@@ -375,10 +374,6 @@ static void __init realview_pb1176_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
} }
MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176")
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -357,10 +356,6 @@ static void __init realview_pb11mp_init(void) ...@@ -357,10 +356,6 @@ static void __init realview_pb11mp_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
} }
MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore")
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -299,10 +298,6 @@ static void __init realview_pba8_init(void) ...@@ -299,10 +298,6 @@ static void __init realview_pba8_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
} }
MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8")
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
...@@ -394,10 +393,6 @@ static void __init realview_pbx_init(void) ...@@ -394,10 +393,6 @@ static void __init realview_pbx_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
} }
MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX")
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/leds.h>
#include <asm/hardware/arm_timer.h> #include <asm/hardware/arm_timer.h>
#include <asm/hardware/icst.h> #include <asm/hardware/icst.h>
#include <asm/hardware/vic.h> #include <asm/hardware/vic.h>
...@@ -763,10 +762,6 @@ void __init versatile_init(void) ...@@ -763,10 +762,6 @@ void __init versatile_init(void)
struct amba_device *d = amba_devs[i]; struct amba_device *d = amba_devs[i];
amba_device_register(d, &iomem_resource); amba_device_register(d, &iomem_resource);
} }
#ifdef CONFIG_LEDS
leds_event = versatile_leds_event;
#endif
} }
/* /*
......
...@@ -13,8 +13,10 @@ config PLAT_VERSATILE_FPGA_IRQ_NR ...@@ -13,8 +13,10 @@ config PLAT_VERSATILE_FPGA_IRQ_NR
depends on PLAT_VERSATILE_FPGA_IRQ depends on PLAT_VERSATILE_FPGA_IRQ
config PLAT_VERSATILE_LEDS config PLAT_VERSATILE_LEDS
def_bool y if LEDS_CLASS def_bool y if NEW_LEDS
depends on ARCH_REALVIEW || ARCH_VERSATILE depends on ARCH_REALVIEW || ARCH_VERSATILE
select LEDS_CLASS
select LEDS_TRIGGER
config PLAT_VERSATILE_SCHED_CLOCK config PLAT_VERSATILE_SCHED_CLOCK
def_bool y def_bool y
......
...@@ -37,10 +37,10 @@ static const struct { ...@@ -37,10 +37,10 @@ static const struct {
} versatile_leds[] = { } versatile_leds[] = {
{ "versatile:0", "heartbeat", }, { "versatile:0", "heartbeat", },
{ "versatile:1", "mmc0", }, { "versatile:1", "mmc0", },
{ "versatile:2", }, { "versatile:2", "cpu0" },
{ "versatile:3", }, { "versatile:3", "cpu1" },
{ "versatile:4", }, { "versatile:4", "cpu2" },
{ "versatile:5", }, { "versatile:5", "cpu3" },
{ "versatile:6", }, { "versatile:6", },
{ "versatile:7", }, { "versatile:7", },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment