Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fe3224f authored by Eric Miao's avatar Eric Miao Committed by Russell King
Browse files

[ARM] pxa/spitz: use leds-gpio for led driving and drop leds-spitz



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: default avatarDmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: default avatarEric Miao <eric.miao@marvell.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent fff14720
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -101,8 +101,8 @@
#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)
@@ -131,11 +131,11 @@
#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)
+23 −1
Original line number Diff line number Diff line
@@ -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)
+0 −7
Original line number Diff line number Diff line
@@ -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
+0 −1
Original line number Diff line number Diff line
@@ -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

drivers/leds/leds-spitz.c

deleted100644 → 0
+0 −131
Original line number Diff line number Diff line
/*
 * 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");