/*
 * linux/arch/arm/mach-imx/leds-mx1ads.c
 *
 * Copyright (c) 2004 Sascha Hauer <sascha@saschahauer.de>
 *
 * Original (leds-footbridge.c) by Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */

#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/arch/hardware.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/leds.h>
#include "leds.h"

/*
 * The MX1ADS Board has only one usable LED,
 * so select only the timer led or the
 * cpu usage led
 */
void
mx1ads_leds_event(led_event_t ledevt)
{
	unsigned long flags;

	local_irq_save(flags);

	switch (ledevt) {
#ifdef CONFIG_LEDS_CPU
	case led_idle_start:
		DR(0) &= ~(1<<2);
		break;

	case led_idle_end:
		DR(0) |= 1<<2;
		break;
#endif

#ifdef CONFIG_LEDS_TIMER
	case led_timer:
		DR(0) ^= 1<<2;
#endif
	default:
		break;
	}
	local_irq_restore(flags);
}
