[ARM] pxa/spitz: use leds-gpio for led driving and drop leds-spitz
authorEric Miao <eric.miao@marvell.com>
Fri, 5 Sep 2008 14:38:23 +0000 (22:38 +0800)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 23 Sep 2008 21:04:40 +0000 (22:04 +0100)
Now as the scoop pins are covered by the generic gpio API,
we can use leds-gpio driver instead of special leds-spitz

Drop leds-spitz.c and the declarations of now un-referenced
spitzscoop_device, spitzscoop2_device.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-pxa/include/mach/spitz.h
arch/arm/mach-pxa/spitz.c
drivers/leds/Kconfig
drivers/leds/Makefile
drivers/leds/leds-spitz.c [deleted file]

index e9b3d33daed63aab0c8e40b9af7d3ed5cb1fa4c8..3e28394333e7419e649d380ccb756d00f28b7a8c 100644 (file)
 #define SPITZ_SCP_JK_A          SCOOP_GPCR_PA18  /* Low */
 #define SPITZ_SCP_ADC_TEMP_ON   SCOOP_GPCR_PA19  /* Low */
 
-#define SPITZ_SCP_IO_DIR      (SPITZ_SCP_LED_GREEN | SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \
-                               SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \
+#define SPITZ_SCP_IO_DIR      (SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \
+                               SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | \
                                SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
 #define SPITZ_SCP_IO_OUT      (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R)
 #define SPITZ_SCP_SUS_CLR     (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
 #define SPITZ_SCP2_BACKLIGHT_ON    SCOOP_GPCR_PA18  /* Low */
 #define SPITZ_SCP2_MIC_BIAS        SCOOP_GPCR_PA19  /* Low */
 
-#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \
+#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \
                            SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
                            SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
 
-#define SPITZ_SCP2_IO_OUT   (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1)
+#define SPITZ_SCP2_IO_OUT   (SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1)
 #define SPITZ_SCP2_SUS_CLR  (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
                              SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
 #define SPITZ_SCP2_SUS_SET  (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1)
index 290008296e1bb4d2825b02c15d0d5c7964dc0dae..993a132ff97869ff4cbcd8cbf1837efd82ee0d97 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/fs.h>
 #include <linux/interrupt.h>
 #include <linux/gpio.h>
+#include <linux/leds.h>
 #include <linux/mmc/host.h>
 #include <linux/pm.h>
 #include <linux/backlight.h>
@@ -255,9 +256,30 @@ static struct platform_device spitzkbd_device = {
 /*
  * Spitz LEDs
  */
+static struct gpio_led spitz_gpio_leds[] = {
+       {
+               .name                   = "spitz:amber:charge",
+               .default_trigger        = "sharpsl-charge",
+               .gpio                   = SPITZ_GPIO_LED_ORANGE,
+       },
+       {
+               .name                   = "spitz:green:hddactivity",
+               .default_trigger        = "ide-disk",
+               .gpio                   = SPITZ_GPIO_LED_GREEN,
+       },
+};
+
+static struct gpio_led_platform_data spitz_gpio_leds_info = {
+       .leds           = spitz_gpio_leds,
+       .num_leds       = ARRAY_SIZE(spitz_gpio_leds),
+};
+
 static struct platform_device spitzled_device = {
-       .name           = "spitz-led",
+       .name           = "leds-gpio",
        .id             = -1,
+       .dev            = {
+               .platform_data = &spitz_gpio_leds_info,
+       },
 };
 
 #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
index 27c60daa73fe52366e6c95e51d1bf0b2e80efe42..5b14262af0178797e174c7355680271d3ec04758 100644 (file)
@@ -31,13 +31,6 @@ config LEDS_LOCOMO
          This option enables support for the LEDs on Sharp Locomo.
          Zaurus models SL-5500 and SL-5600.
 
-config LEDS_SPITZ
-       tristate "LED Support for the Sharp SL-Cxx00 series"
-       depends on LEDS_CLASS && PXA_SHARP_Cxx00
-       help
-         This option enables support for the LEDs on Sharp Zaurus
-         SL-Cxx00 series (C1000, C3000, C3100).
-
 config LEDS_S3C24XX
        tristate "LED Support for Samsung S3C24XX GPIO LEDs"
        depends on LEDS_CLASS && ARCH_S3C2410
index 556f8d2e7bbacbeb343e9e3e3e83884ba28fdf28..3a8e6a04363c501abc8217f894576ae519aea5d9 100644 (file)
@@ -7,7 +7,6 @@ obj-$(CONFIG_LEDS_TRIGGERS)             += led-triggers.o
 # LED Platform Drivers
 obj-$(CONFIG_LEDS_ATMEL_PWM)           += leds-atmel-pwm.o
 obj-$(CONFIG_LEDS_LOCOMO)              += leds-locomo.o
-obj-$(CONFIG_LEDS_SPITZ)               += leds-spitz.o
 obj-$(CONFIG_LEDS_S3C24XX)             += leds-s3c24xx.o
 obj-$(CONFIG_LEDS_AMS_DELTA)           += leds-ams-delta.o
 obj-$(CONFIG_LEDS_NET48XX)             += leds-net48xx.o
diff --git a/drivers/leds/leds-spitz.c b/drivers/leds/leds-spitz.c
deleted file mode 100644 (file)
index 178831c..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * LED Triggers Core
- *
- * Copyright 2005-2006 Openedhand Ltd.
- *
- * Author: Richard Purdie <rpurdie@openedhand.com>
- *
- * 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 <linux/platform_device.h>
-#include <linux/leds.h>
-#include <asm/hardware/scoop.h>
-#include <asm/mach-types.h>
-#include <mach/hardware.h>
-#include <mach/pxa-regs.h>
-#include <mach/spitz.h>
-
-static void spitzled_amber_set(struct led_classdev *led_cdev,
-                              enum led_brightness value)
-{
-       if (value)
-               set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
-       else
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
-}
-
-static void spitzled_green_set(struct led_classdev *led_cdev,
-                              enum led_brightness value)
-{
-       if (value)
-               set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
-       else
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
-}
-
-static struct led_classdev spitz_amber_led = {
-       .name                   = "spitz:amber:charge",
-       .default_trigger        = "sharpsl-charge",
-       .brightness_set         = spitzled_amber_set,
-};
-
-static struct led_classdev spitz_green_led = {
-       .name                   = "spitz:green:hddactivity",
-       .default_trigger        = "ide-disk",
-       .brightness_set         = spitzled_green_set,
-};
-
-#ifdef CONFIG_PM
-static int spitzled_suspend(struct platform_device *dev, pm_message_t state)
-{
-#ifdef CONFIG_LEDS_TRIGGERS
-       if (spitz_amber_led.trigger &&
-           strcmp(spitz_amber_led.trigger->name, "sharpsl-charge"))
-#endif
-               led_classdev_suspend(&spitz_amber_led);
-       led_classdev_suspend(&spitz_green_led);
-       return 0;
-}
-
-static int spitzled_resume(struct platform_device *dev)
-{
-       led_classdev_resume(&spitz_amber_led);
-       led_classdev_resume(&spitz_green_led);
-       return 0;
-}
-#endif
-
-static int spitzled_probe(struct platform_device *pdev)
-{
-       int ret;
-
-       if (machine_is_akita()) {
-               spitz_green_led.name = "spitz:green:mail";
-               spitz_green_led.default_trigger = "nand-disk";
-       }
-
-       ret = led_classdev_register(&pdev->dev, &spitz_amber_led);
-       if (ret < 0)
-               return ret;
-
-       ret = led_classdev_register(&pdev->dev, &spitz_green_led);
-       if (ret < 0)
-               led_classdev_unregister(&spitz_amber_led);
-
-       return ret;
-}
-
-static int spitzled_remove(struct platform_device *pdev)
-{
-       led_classdev_unregister(&spitz_amber_led);
-       led_classdev_unregister(&spitz_green_led);
-
-       return 0;
-}
-
-static struct platform_driver spitzled_driver = {
-       .probe          = spitzled_probe,
-       .remove         = spitzled_remove,
-#ifdef CONFIG_PM
-       .suspend        = spitzled_suspend,
-       .resume         = spitzled_resume,
-#endif
-       .driver         = {
-               .name           = "spitz-led",
-               .owner          = THIS_MODULE,
-       },
-};
-
-static int __init spitzled_init(void)
-{
-       return platform_driver_register(&spitzled_driver);
-}
-
-static void __exit spitzled_exit(void)
-{
-       platform_driver_unregister(&spitzled_driver);
-}
-
-module_init(spitzled_init);
-module_exit(spitzled_exit);
-
-MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
-MODULE_DESCRIPTION("Spitz LED driver");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:spitz-led");