leds: Convert mc13783 driver to mc13xxx MFD
mc13xxx is the more general API and most of the mc13783_... functions are going to die. Signed-off-by: David Jander <david@protonic.nl> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
2b247d06c6
commit
f3ca07824f
|
@ -21,13 +21,13 @@
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/leds.h>
|
#include <linux/leds.h>
|
||||||
#include <linux/workqueue.h>
|
#include <linux/workqueue.h>
|
||||||
#include <linux/mfd/mc13783.h>
|
#include <linux/mfd/mc13xxx.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
|
||||||
struct mc13783_led {
|
struct mc13783_led {
|
||||||
struct led_classdev cdev;
|
struct led_classdev cdev;
|
||||||
struct work_struct work;
|
struct work_struct work;
|
||||||
struct mc13783 *master;
|
struct mc13xxx *master;
|
||||||
enum led_brightness new_brightness;
|
enum led_brightness new_brightness;
|
||||||
int id;
|
int id;
|
||||||
};
|
};
|
||||||
|
@ -111,11 +111,11 @@ static void mc13783_led_work(struct work_struct *work)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mc13783_lock(led->master);
|
mc13xxx_lock(led->master);
|
||||||
|
|
||||||
mc13783_reg_rmw(led->master, reg, mask, value);
|
mc13xxx_reg_rmw(led->master, reg, mask, value);
|
||||||
|
|
||||||
mc13783_unlock(led->master);
|
mc13xxx_unlock(led->master);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mc13783_led_set(struct led_classdev *led_cdev,
|
static void mc13783_led_set(struct led_classdev *led_cdev,
|
||||||
|
@ -172,23 +172,23 @@ static int __devinit mc13783_led_setup(struct mc13783_led *led, int max_current)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mc13783_lock(led->master);
|
mc13xxx_lock(led->master);
|
||||||
|
|
||||||
ret = mc13783_reg_rmw(led->master, reg, mask << shift,
|
ret = mc13xxx_reg_rmw(led->master, reg, mask << shift,
|
||||||
value << shift);
|
value << shift);
|
||||||
|
|
||||||
mc13783_unlock(led->master);
|
mc13xxx_unlock(led->master);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
|
struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
|
||||||
struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent);
|
struct mc13xxx *dev = dev_get_drvdata(pdev->dev.parent);
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int reg = 0;
|
int reg = 0;
|
||||||
|
|
||||||
mc13783_lock(dev);
|
mc13xxx_lock(dev);
|
||||||
|
|
||||||
if (pdata->flags & MC13783_LED_TC1HALF)
|
if (pdata->flags & MC13783_LED_TC1HALF)
|
||||||
reg |= MC13783_LED_C1_TC1HALF_BIT;
|
reg |= MC13783_LED_C1_TC1HALF_BIT;
|
||||||
|
@ -196,7 +196,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
if (pdata->flags & MC13783_LED_SLEWLIMTC)
|
if (pdata->flags & MC13783_LED_SLEWLIMTC)
|
||||||
reg |= MC13783_LED_Cx_SLEWLIM_BIT;
|
reg |= MC13783_LED_Cx_SLEWLIM_BIT;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_1, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_1, reg);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
if (pdata->flags & MC13783_LED_SLEWLIMBL)
|
if (pdata->flags & MC13783_LED_SLEWLIMBL)
|
||||||
reg |= MC13783_LED_Cx_SLEWLIM_BIT;
|
reg |= MC13783_LED_Cx_SLEWLIM_BIT;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_2, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_2, reg);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
if (pdata->flags & MC13783_LED_TRIODE_TC1)
|
if (pdata->flags & MC13783_LED_TRIODE_TC1)
|
||||||
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_3, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_3, reg);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
if (pdata->flags & MC13783_LED_TRIODE_TC2)
|
if (pdata->flags & MC13783_LED_TRIODE_TC2)
|
||||||
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_4, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_4, reg);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
if (pdata->flags & MC13783_LED_TRIODE_TC3)
|
if (pdata->flags & MC13783_LED_TRIODE_TC3)
|
||||||
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
reg |= MC13783_LED_Cx_TRIODE_TC_BIT;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_5, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_5, reg);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -255,10 +255,10 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev)
|
||||||
reg |= (pdata->abref & MC13783_LED_C0_ABREF_MASK) <<
|
reg |= (pdata->abref & MC13783_LED_C0_ABREF_MASK) <<
|
||||||
MC13783_LED_C0_ABREF;
|
MC13783_LED_C0_ABREF;
|
||||||
|
|
||||||
ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_0, reg);
|
ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_0, reg);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
mc13783_unlock(dev);
|
mc13xxx_unlock(dev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ static int __devexit mc13783_led_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
|
struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev);
|
||||||
struct mc13783_led *led = platform_get_drvdata(pdev);
|
struct mc13783_led *led = platform_get_drvdata(pdev);
|
||||||
struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent);
|
struct mc13xxx *dev = dev_get_drvdata(pdev->dev.parent);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < pdata->num_leds; i++) {
|
for (i = 0; i < pdata->num_leds; i++) {
|
||||||
|
@ -361,16 +361,16 @@ static int __devexit mc13783_led_remove(struct platform_device *pdev)
|
||||||
cancel_work_sync(&led[i].work);
|
cancel_work_sync(&led[i].work);
|
||||||
}
|
}
|
||||||
|
|
||||||
mc13783_lock(dev);
|
mc13xxx_lock(dev);
|
||||||
|
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_0, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_0, 0);
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_1, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_1, 0);
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_2, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_2, 0);
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_3, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_3, 0);
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_4, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_4, 0);
|
||||||
mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_5, 0);
|
mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_5, 0);
|
||||||
|
|
||||||
mc13783_unlock(dev);
|
mc13xxx_unlock(dev);
|
||||||
|
|
||||||
kfree(led);
|
kfree(led);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue