 +
 +static int __init mpc8313leds_init(void)
 +{
-+	led_mem = request_mem_region(0xfa000000, 0x100, "mpc8313-leds");
-+	if (led_mem == NULL) return -ENOMEM;
-+	p = ioremap(0xfa000000, 0x100);
-+	if (p == NULL)
++	if (!(led_mem = request_mem_region(LEDS_BASE, LEDS_SIZE, "mpc8313-leds")))
++		return -ENOMEM;
++	if (!(led_io = ioremap(LEDS_BASE, LEDS_SIZE)))
 +	{
-+		if (led_mem) release_mem_region(0xfa000000, 0x100);
++		release_mem_region(LEDS_BASE, LEDS_SIZE);
 +		led_mem = NULL;
 +		return -ENOMEM;
 +	}

diff -urN linux-2.6.23.orig/drivers/leds/Kconfig linux-2.6.23/drivers/leds/Kconfig
--- linux-2.6.23.orig/drivers/leds/Kconfig	2007-10-09 22:31:38.000000000 +0200
+++ linux-2.6.23/drivers/leds/Kconfig	2007-11-29 09:02:42.000000000 +0100
@@ -101,6 +101,12 @@
 	  outputs. To be useful the particular board must have LEDs
 	  and they must be connected to the GPIO lines.

+
+static void mpc8313leds_yellow_set(struct led_classdev *led_cdev, enum led_brightness value)
+{
+	led_state = value ? led_state&~64 : led_state|64;
+	iowrite8(led_state, led_io);
+}
+
+static struct led_classdev mpc8313_yellow_led = {
