Latch API was converted to gpiolib API as result we got this compile error: drivers/leds/leds-h1940.c: In function 'h1940_greenled_set': drivers/leds/leds-h1940.c:33: error: implicit declaration of function 'h1940_latch_control Adapt h1940-leds driver to new changes and fix compile issue. Signed-off-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx> --- drivers/leds/leds-h1940.c | 67 ++++++++++++++++++++++++++++++++------------- 1 files changed, 48 insertions(+), 19 deletions(-) diff --git a/drivers/leds/leds-h1940.c b/drivers/leds/leds-h1940.c index 173d104..d9c2729 100644 --- a/drivers/leds/leds-h1940.c +++ b/drivers/leds/leds-h1940.c @@ -30,18 +30,18 @@ static void h1940_greenled_set(struct led_classdev *led_dev, { switch (value) { case LED_HALF: - h1940_latch_control(0, H1940_LATCH_LED_FLASH); - s3c2410_gpio_setpin(S3C2410_GPA7, 1); + gpio_set_value(H1940_LATCH_LED_FLASH, 1); + gpio_set_value(S3C2410_GPA(7), 1); break; case LED_FULL: - h1940_latch_control(0, H1940_LATCH_LED_GREEN); - s3c2410_gpio_setpin(S3C2410_GPA7, 1); + gpio_set_value(H1940_LATCH_LED_GREEN, 1); + gpio_set_value(S3C2410_GPA(7), 1); break; default: case LED_OFF: - h1940_latch_control(H1940_LATCH_LED_FLASH, 0); - h1940_latch_control(H1940_LATCH_LED_GREEN, 0); - s3c2410_gpio_setpin(S3C2410_GPA7, 0); + gpio_set_value(H1940_LATCH_LED_FLASH, 0); + gpio_set_value(H1940_LATCH_LED_GREEN, 0); + gpio_set_value(S3C2410_GPA(7), 0); break; } } @@ -60,18 +60,18 @@ static void h1940_redled_set(struct led_classdev *led_dev, { switch (value) { case LED_HALF: - h1940_latch_control(0, H1940_LATCH_LED_FLASH); - s3c2410_gpio_setpin(S3C2410_GPA1, 1); + gpio_set_value(H1940_LATCH_LED_FLASH, 1); + gpio_set_value(S3C2410_GPA(1), 1); break; case LED_FULL: - h1940_latch_control(0, H1940_LATCH_LED_RED); - s3c2410_gpio_setpin(S3C2410_GPA1, 1); + gpio_set_value(H1940_LATCH_LED_RED, 1); + gpio_set_value(S3C2410_GPA(1), 1); break; default: case LED_OFF: - h1940_latch_control(H1940_LATCH_LED_FLASH, 0); - h1940_latch_control(H1940_LATCH_LED_RED, 0); - s3c2410_gpio_setpin(S3C2410_GPA1, 0); + gpio_set_value(H1940_LATCH_LED_FLASH, 0); + gpio_set_value(H1940_LATCH_LED_RED, 0); + gpio_set_value(S3C2410_GPA(1), 0); break; } } @@ -91,11 +91,11 @@ static void h1940_blueled_set(struct led_classdev *led_dev, { if (value) { /* flashing Blue */ - h1940_latch_control(0, H1940_LATCH_LED_FLASH); - s3c2410_gpio_setpin(S3C2410_GPA3, 1); + gpio_set_value(H1940_LATCH_LED_FLASH, 1); + gpio_set_value(S3C2410_GPA(3), 1); } else { - h1940_latch_control(H1940_LATCH_LED_FLASH, 0); - s3c2410_gpio_setpin(S3C2410_GPA3, 0); + gpio_set_value(H1940_LATCH_LED_FLASH, 0); + gpio_set_value(S3C2410_GPA(3), 0); } } @@ -108,7 +108,24 @@ static struct led_classdev h1940_blueled = { static int __devinit h1940leds_probe(struct platform_device *pdev) { - int ret; + int ret, gpioidx = 0; + int led_gpios[] = { + H1940_LATCH_LED_GREEN, + H1940_LATCH_LED_RED, + H1940_LATCH_LED_FLASH, + S3C2410_GPA(1), + S3C2410_GPA(3), + S3C2410_GPA(7), + }; + + for (gpioidx = 0; gpioidx < ARRAY_SIZE(led_gpios); gpioidx++) { + ret = gpio_request(led_gpios[gpioidx], "h1940 leds"); + if (ret < 0) + goto err_gpio; + ret = gpio_direction_output(led_gpios[gpioidx], 0); + if (ret < 0) + goto err_gpio; + } ret = led_classdev_register(&pdev->dev, &h1940_greenled); if (ret) @@ -129,6 +146,10 @@ err_blue: err_red: led_classdev_unregister(&h1940_greenled); err_green: +err_gpio: + while (--gpioidx >= 0) + gpio_free(led_gpios[gpioidx]); + return ret; } @@ -137,6 +158,14 @@ static int h1940leds_remove(struct platform_device *pdev) led_classdev_unregister(&h1940_greenled); led_classdev_unregister(&h1940_redled); led_classdev_unregister(&h1940_blueled); + + gpio_free(H1940_LATCH_LED_GREEN); + gpio_free(H1940_LATCH_LED_RED); + gpio_free(H1940_LATCH_LED_FLASH); + gpio_free(S3C2410_GPA(1)); + gpio_free(S3C2410_GPA(3)); + gpio_free(S3C2410_GPA(7)); + return 0; } -- 1.7.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html