From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 02/17] leds: port locomo leds driver to new locomo core
Date: Tue, 9 Jun 2015 19:51:33 +0100 [thread overview]
Message-ID: <20150609185133.GU2982@x1> (raw)
In-Reply-To: <5576CF9A.4010701@samsung.com>
On Tue, 09 Jun 2015, Jacek Anaszewski wrote:
> On 06/09/2015 01:11 PM, Lee Jones wrote:
> >On Tue, 09 Jun 2015, Dmitry Eremin-Solenikov wrote:
> >
> >>2015-06-09 9:57 GMT+03:00 Lee Jones <lee.jones@linaro.org>:
> >>>On Mon, 08 Jun 2015, Dmitry Eremin-Solenikov wrote:
> >>>
> >>>>Adapt locomo leds driver to new locomo core setup.
> >>>>
> >>>>Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> >>>>Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>
> >>>
> >>>This is missing Bryan's Ack.
> >>
> >>Jacek is listed as a co-maintainer of the LEDS subsystem, so I assumed
> >>that his acked-by is enough.
> >
> >Ah, this is new.
> >
> >Congratulations Jacek.
>
> Thanks.
>
> >Ignore me then.
>
> I think that it should go via mfd tree, as this patch adds
> dependency on header linux/mfd/locomo.h, which is added
> in one of the preceding patches [1] in this series.
Yep, that's the plan.
> [1] [PATCH v3 01/17] mfd: add new driver for Sharp LoCoMo
>
> >>>>---
> >>>> drivers/leds/Kconfig | 2 +-
> >>>> drivers/leds/leds-locomo.c | 117 +++++++++++++++++++++++----------------------
> >>>> 2 files changed, 61 insertions(+), 58 deletions(-)
> >>>>
> >>>>diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
> >>>>index 966b960..d086aac 100644
> >>>>--- a/drivers/leds/Kconfig
> >>>>+++ b/drivers/leds/Kconfig
> >>>>@@ -79,7 +79,7 @@ config LEDS_LM3642
> >>>> config LEDS_LOCOMO
> >>>> tristate "LED Support for Locomo device"
> >>>> depends on LEDS_CLASS
> >>>>- depends on SHARP_LOCOMO
> >>>>+ depends on MFD_LOCOMO
> >>>> help
> >>>> This option enables support for the LEDs on Sharp Locomo.
> >>>> Zaurus models SL-5500 and SL-5600.
> >>>>diff --git a/drivers/leds/leds-locomo.c b/drivers/leds/leds-locomo.c
> >>>>index 80ba048..a4286e9 100644
> >>>>--- a/drivers/leds/leds-locomo.c
> >>>>+++ b/drivers/leds/leds-locomo.c
> >>>>@@ -9,89 +9,92 @@
> >>>> */
> >>>>
> >>>> #include <linux/kernel.h>
> >>>>-#include <linux/init.h>
> >>>>-#include <linux/module.h>
> >>>>-#include <linux/device.h>
> >>>> #include <linux/leds.h>
> >>>>+#include <linux/mfd/locomo.h>
> >>>>+#include <linux/module.h>
> >>>>+#include <linux/platform_device.h>
> >>>>+#include <linux/regmap.h>
> >>>>
> >>>>-#include <mach/hardware.h>
> >>>>-#include <asm/hardware/locomo.h>
> >>>>+struct locomo_led {
> >>>>+ struct led_classdev led;
> >>>>+ struct regmap *regmap;
> >>>>+ unsigned int reg;
> >>>>+};
> >>>>
> >>>> static void locomoled_brightness_set(struct led_classdev *led_cdev,
> >>>>- enum led_brightness value, int offset)
> >>>>-{
> >>>>- struct locomo_dev *locomo_dev = LOCOMO_DEV(led_cdev->dev->parent);
> >>>>- unsigned long flags;
> >>>>-
> >>>>- local_irq_save(flags);
> >>>>- if (value)
> >>>>- locomo_writel(LOCOMO_LPT_TOFH, locomo_dev->mapbase + offset);
> >>>>- else
> >>>>- locomo_writel(LOCOMO_LPT_TOFL, locomo_dev->mapbase + offset);
> >>>>- local_irq_restore(flags);
> >>>>-}
> >>>>-
> >>>>-static void locomoled_brightness_set0(struct led_classdev *led_cdev,
> >>>> enum led_brightness value)
> >>>> {
> >>>>- locomoled_brightness_set(led_cdev, value, LOCOMO_LPT0);
> >>>>+ struct locomo_led *led = container_of(led_cdev, struct locomo_led, led);
> >>>>+
> >>>>+ regmap_write(led->regmap, led->reg,
> >>>>+ value ? LOCOMO_LPT_TOFH : LOCOMO_LPT_TOFL);
> >>>> }
> >>>>
> >>>>-static void locomoled_brightness_set1(struct led_classdev *led_cdev,
> >>>>- enum led_brightness value)
> >>>>+static int locomo_led_register(
> >>>>+ struct device *dev,
> >>>>+ struct locomo_led *led,
> >>>>+ const char *name,
> >>>>+ const char *trigger,
> >>>>+ struct regmap *regmap,
> >>>>+ unsigned int reg)
> >>>> {
> >>>>- locomoled_brightness_set(led_cdev, value, LOCOMO_LPT1);
> >>>>+ led->led.name = name;
> >>>>+ led->led.flags = LED_CORE_SUSPENDRESUME;
> >>>>+ led->led.default_trigger = trigger;
> >>>>+ led->led.brightness_set = locomoled_brightness_set;
> >>>>+ led->regmap = regmap;
> >>>>+ led->reg = reg;
> >>>>+
> >>>>+ return devm_led_classdev_register(dev, &led->led);
> >>>> }
> >>>>
> >>>>-static struct led_classdev locomo_led0 = {
> >>>>- .name = "locomo:amber:charge",
> >>>>- .default_trigger = "main-battery-charging",
> >>>>- .brightness_set = locomoled_brightness_set0,
> >>>>-};
> >>>>-
> >>>>-static struct led_classdev locomo_led1 = {
> >>>>- .name = "locomo:green:mail",
> >>>>- .default_trigger = "nand-disk",
> >>>>- .brightness_set = locomoled_brightness_set1,
> >>>>-};
> >>>>-
> >>>>-static int locomoled_probe(struct locomo_dev *ldev)
> >>>>+static int locomoled_probe(struct platform_device *pdev)
> >>>> {
> >>>> int ret;
> >>>>-
> >>>>- ret = led_classdev_register(&ldev->dev, &locomo_led0);
> >>>>+ struct locomo_led *leds;
> >>>>+ struct regmap *regmap;
> >>>>+
> >>>>+ leds = devm_kzalloc(&pdev->dev, 2 * sizeof(*leds), GFP_KERNEL);
> >>>>+ if (!leds)
> >>>>+ return -ENOMEM;
> >>>>+
> >>>>+ regmap = dev_get_regmap(pdev->dev.parent, NULL);
> >>>>+ if (!regmap)
> >>>>+ return -ENODEV;
> >>>>+
> >>>>+ ret = locomo_led_register(
> >>>>+ &pdev->dev,
> >>>>+ leds,
> >>>>+ "locomo:amber:charge",
> >>>>+ "main-battery-charging",
> >>>>+ regmap,
> >>>>+ LOCOMO_LPT0);
> >>>> if (ret < 0)
> >>>> return ret;
> >>>>
> >>>>- ret = led_classdev_register(&ldev->dev, &locomo_led1);
> >>>>+ ret = locomo_led_register(
> >>>>+ &pdev->dev,
> >>>>+ leds + 1,
> >>>>+ "locomo:green:mail",
> >>>>+ "mmc0",
> >>>>+ regmap,
> >>>>+ LOCOMO_LPT1);
> >>>> if (ret < 0)
> >>>>- led_classdev_unregister(&locomo_led0);
> >>>>-
> >>>>- return ret;
> >>>>-}
> >>>>+ return ret;
> >>>>
> >>>>-static int locomoled_remove(struct locomo_dev *dev)
> >>>>-{
> >>>>- led_classdev_unregister(&locomo_led0);
> >>>>- led_classdev_unregister(&locomo_led1);
> >>>> return 0;
> >>>> }
> >>>>
> >>>>-static struct locomo_driver locomoled_driver = {
> >>>>- .drv = {
> >>>>- .name = "locomoled"
> >>>>+static struct platform_driver locomoled_driver = {
> >>>>+ .driver = {
> >>>>+ .name = "locomo-led"
> >>>> },
> >>>>- .devid = LOCOMO_DEVID_LED,
> >>>> .probe = locomoled_probe,
> >>>>- .remove = locomoled_remove,
> >>>> };
> >>>>
> >>>>-static int __init locomoled_init(void)
> >>>>-{
> >>>>- return locomo_driver_register(&locomoled_driver);
> >>>>-}
> >>>>-module_init(locomoled_init);
> >>>>+module_platform_driver(locomoled_driver);
> >>>>
> >>>> MODULE_AUTHOR("John Lenz <lenz@cs.wisc.edu>");
> >>>> MODULE_DESCRIPTION("Locomo LED driver");
> >>>> MODULE_LICENSE("GPL");
> >>>>+MODULE_ALIAS("platform:locomo-led");
> >>>
> >>
> >>
> >>
> >
>
>
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2015-06-09 18:51 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 20:56 [PATCH v5 00/17] new LoCoMo driver set Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 01/17] mfd: add new driver for Sharp LoCoMo Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 02/17] leds: port locomo leds driver to new locomo core Dmitry Eremin-Solenikov
2015-06-09 6:57 ` Lee Jones
2015-06-09 8:08 ` Dmitry Eremin-Solenikov
2015-06-09 11:11 ` Lee Jones
2015-06-09 11:35 ` Jacek Anaszewski
2015-06-09 18:51 ` Lee Jones [this message]
2015-06-15 18:43 ` Bryan Wu
2015-06-08 20:56 ` [PATCH v5 03/17] input: convert LoCoMo keyboard driver to use " Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 04/17] input: locomokbd: differentiate between two Enter keys Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 05/17] input: make LoCoMo keyboard driver support both poodle and collie Dmitry Eremin-Solenikov
2015-06-14 15:11 ` Russell King - ARM Linux
2015-06-14 16:26 ` Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 06/17] video: backlight: add new locomo backlight driver Dmitry Eremin-Solenikov
2015-06-14 15:13 ` Russell King - ARM Linux
2015-06-14 16:17 ` Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 07/17] video: lcd: add LoCoMo LCD driver Dmitry Eremin-Solenikov
2015-06-14 15:18 ` Russell King - ARM Linux
2015-06-14 16:28 ` Dmitry Eremin-Solenikov
2015-06-14 17:16 ` Russell King - ARM Linux
2015-06-08 20:56 ` [PATCH v5 08/17] gpio: port LoCoMo gpio support from old driver Dmitry Eremin-Solenikov
2015-06-14 15:27 ` Russell King - ARM Linux
2016-05-11 8:34 ` Linus Walleij
2015-06-08 20:56 ` [PATCH v5 09/17] gpio: locomo: implement per-pin irq handling Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 10/17] i2c: add locomo i2c driver Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 11/17] ARM: sa1100: make collie use new locomo drivers Dmitry Eremin-Solenikov
2015-06-14 15:06 ` Russell King - ARM Linux
2015-06-08 20:56 ` [PATCH v5 12/17] ARM: sa1100: don't preallocate IRQ space for locomo Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 13/17] ASoC: pxa: poodle: make use of new locomo GPIO interface Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 14/17] ARM: pxa: poodle: use new LoCoMo driver Dmitry Eremin-Solenikov
2015-06-14 15:08 ` Russell King - ARM Linux
2015-06-08 20:56 ` [PATCH v5 15/17] ARM: pxa: poodle: don't preallocate IRQ space for locomo Dmitry Eremin-Solenikov
2015-06-08 20:56 ` [PATCH v5 16/17] video: backlight: drop old locomo bl/lcd driver Dmitry Eremin-Solenikov
2015-06-09 6:55 ` Lee Jones
2015-06-08 20:56 ` [PATCH v5 17/17] ARM: drop old LoCoMo driver Dmitry Eremin-Solenikov
2015-06-14 13:16 ` [PATCH v5 00/17] new LoCoMo driver set Dmitry Eremin-Solenikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150609185133.GU2982@x1 \
--to=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.