Loading arch/arm/mach-clps711x/Makefile +0 −2 Original line number Diff line number Diff line Loading @@ -16,5 +16,3 @@ obj-$(CONFIG_ARCH_CLEP7312) += clep7312.o obj-$(CONFIG_ARCH_EDB7211) += edb7211-arch.o edb7211-mm.o obj-$(CONFIG_ARCH_FORTUNET) += fortunet.o obj-$(CONFIG_ARCH_P720T) += p720t.o leds-$(CONFIG_ARCH_P720T) += p720t-leds.o obj-$(CONFIG_LEDS) += $(leds-y) arch/arm/mach-clps711x/common.c +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ #include <asm/sizes.h> #include <mach/hardware.h> #include <asm/irq.h> #include <asm/leds.h> #include <asm/pgtable.h> #include <asm/page.h> #include <asm/mach/map.h> Loading arch/arm/mach-clps711x/p720t-leds.cdeleted 100644 → 0 +0 −63 Original line number Diff line number Diff line /* * linux/arch/arm/mach-clps711x/leds.c * * Integrator LED control routines * * Copyright (C) 2000 Deep Blue Solutions Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/io.h> #include <mach/hardware.h> #include <asm/leds.h> #include <asm/mach-types.h> static void p720t_leds_event(led_event_t ledevt) { unsigned long flags; u32 pddr; local_irq_save(flags); switch(ledevt) { case led_idle_start: break; case led_idle_end: break; case led_timer: pddr = clps_readb(PDDR); clps_writeb(pddr ^ 1, PDDR); break; default: break; } local_irq_restore(flags); } static int __init leds_init(void) { if (machine_is_p720t()) leds_event = p720t_leds_event; return 0; } arch_initcall(leds_init); arch/arm/mach-clps711x/p720t.c +61 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/io.h> #include <linux/slab.h> #include <linux/leds.h> #include <mach/hardware.h> #include <asm/pgtable.h> Loading @@ -34,6 +36,8 @@ #include <asm/mach/map.h> #include <mach/syspld.h> #include <asm/hardware/clps7111.h> #include "common.h" /* Loading Loading @@ -121,3 +125,60 @@ static int p720t_hw_init(void) __initcall(p720t_hw_init); /* * LED controled by CPLD */ #if defined(CONFIG_NEW_LEDS) && defined(CONFIG_LEDS_CLASS) static void p720t_led_set(struct led_classdev *cdev, enum led_brightness b) { u8 reg = clps_readb(PDDR); if (b != LED_OFF) reg |= 0x1; else reg &= ~0x1; clps_writeb(reg, PDDR); } static enum led_brightness p720t_led_get(struct led_classdev *cdev) { u8 reg = clps_readb(PDDR); return (reg & 0x1) ? LED_FULL : LED_OFF; } static int __init p720t_leds_init(void) { struct led_classdev *cdev; int ret; if (!machine_is_p720t()) return -ENODEV; cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); if (!cdev) return -ENOMEM; cdev->name = "p720t:0"; cdev->brightness_set = p720t_led_set; cdev->brightness_get = p720t_led_get; cdev->default_trigger = "heartbeat"; ret = led_classdev_register(NULL, cdev); if (ret < 0) { kfree(cdev); return ret; } return 0; } /* * Since we may have triggers on any subsystem, defer registration * until after subsystem_init. */ fs_initcall(p720t_leds_init); #endif Loading
arch/arm/mach-clps711x/Makefile +0 −2 Original line number Diff line number Diff line Loading @@ -16,5 +16,3 @@ obj-$(CONFIG_ARCH_CLEP7312) += clep7312.o obj-$(CONFIG_ARCH_EDB7211) += edb7211-arch.o edb7211-mm.o obj-$(CONFIG_ARCH_FORTUNET) += fortunet.o obj-$(CONFIG_ARCH_P720T) += p720t.o leds-$(CONFIG_ARCH_P720T) += p720t-leds.o obj-$(CONFIG_LEDS) += $(leds-y)
arch/arm/mach-clps711x/common.c +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ #include <asm/sizes.h> #include <mach/hardware.h> #include <asm/irq.h> #include <asm/leds.h> #include <asm/pgtable.h> #include <asm/page.h> #include <asm/mach/map.h> Loading
arch/arm/mach-clps711x/p720t-leds.cdeleted 100644 → 0 +0 −63 Original line number Diff line number Diff line /* * linux/arch/arm/mach-clps711x/leds.c * * Integrator LED control routines * * Copyright (C) 2000 Deep Blue Solutions Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/io.h> #include <mach/hardware.h> #include <asm/leds.h> #include <asm/mach-types.h> static void p720t_leds_event(led_event_t ledevt) { unsigned long flags; u32 pddr; local_irq_save(flags); switch(ledevt) { case led_idle_start: break; case led_idle_end: break; case led_timer: pddr = clps_readb(PDDR); clps_writeb(pddr ^ 1, PDDR); break; default: break; } local_irq_restore(flags); } static int __init leds_init(void) { if (machine_is_p720t()) leds_event = p720t_leds_event; return 0; } arch_initcall(leds_init);
arch/arm/mach-clps711x/p720t.c +61 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <linux/string.h> #include <linux/mm.h> #include <linux/io.h> #include <linux/slab.h> #include <linux/leds.h> #include <mach/hardware.h> #include <asm/pgtable.h> Loading @@ -34,6 +36,8 @@ #include <asm/mach/map.h> #include <mach/syspld.h> #include <asm/hardware/clps7111.h> #include "common.h" /* Loading Loading @@ -121,3 +125,60 @@ static int p720t_hw_init(void) __initcall(p720t_hw_init); /* * LED controled by CPLD */ #if defined(CONFIG_NEW_LEDS) && defined(CONFIG_LEDS_CLASS) static void p720t_led_set(struct led_classdev *cdev, enum led_brightness b) { u8 reg = clps_readb(PDDR); if (b != LED_OFF) reg |= 0x1; else reg &= ~0x1; clps_writeb(reg, PDDR); } static enum led_brightness p720t_led_get(struct led_classdev *cdev) { u8 reg = clps_readb(PDDR); return (reg & 0x1) ? LED_FULL : LED_OFF; } static int __init p720t_leds_init(void) { struct led_classdev *cdev; int ret; if (!machine_is_p720t()) return -ENODEV; cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); if (!cdev) return -ENOMEM; cdev->name = "p720t:0"; cdev->brightness_set = p720t_led_set; cdev->brightness_get = p720t_led_get; cdev->default_trigger = "heartbeat"; ret = led_classdev_register(NULL, cdev); if (ret < 0) { kfree(cdev); return ret; } return 0; } /* * Since we may have triggers on any subsystem, defer registration * until after subsystem_init. */ fs_initcall(p720t_leds_init); #endif