mirror of https://gitee.com/openkylin/linux.git
- Stop using LP855X Platform Data to control regulators
- Move PWM8941 WLED driver into Backlight - Remove invalid use of IS_ERR_VALUE() macro - Remove duplicate check for NULL data before unregistering - Export I2C Device ID structure -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJV6FPVAAoJEFGvii+H/Hdh1NIP/2mcBwvmF8zgmTUALbRLKyAp 3LXx0/Nh64Pjz2rDsZPclo4NLlq43d9xq/A3CBI4b00VgiofgRG/Cihhzo8nxhTu XN73TgVQ2CiNrQ0yn85dedoVEbv0cAlZYdyuHrp1SUUSPOUhaiRU2w6k7BkY0gc2 8lkzmVnMOkQjT+Elj6wVBcPiojm333Tu5wE125W8t6XDOwDfpLoVkzcxcv/V7eIo pStB7u3MsXZ9kmG2S9aMSZX1PS6C772OeN1I7+3lFy67qiIDj3tQ+8MyaMFvWGdQ /w8+f4K8k0t1m1OJVLgsT4UKR/7qprTOvEXYGrsVPPwZqSOypRZOooPOQbAVtkV6 qYsVYEnbsJerkCuAyWETL+H5eH+P56Zl66t6a9hgnzw4wKYarufo+xUe0b+ntmoO dtegXgUVryY1P9teXsnnWx24r4pfaCWunO1RUXSZABCK+0qEeXa2SM/PFtkCWwEd AGBp8Rcv9a2BHtY2oaii+rs6WFUH+CGeZ8rt1cKBZvT2gCjlTPb5WiGvCEnN3OBi BCWgTLILldSRG7ERW6P6W6WkpP9u6gz8BChLNe0PsoOoNLXElHj6VCAlusOc1kHU 6WwvMpKcQ+SVMVNouFLv3Ur5K8sF7VkyaHDRoipeKufu0n3b3+AXEaRr/Ch1BsIh cdUHgYJSujzcD/Zx8crp =URbg -----END PGP SIGNATURE----- Merge tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: - Stop using LP855X Platform Data to control regulators - Move PWM8941 WLED driver into Backlight - Remove invalid use of IS_ERR_VALUE() macro - Remove duplicate check for NULL data before unregistering - Export I2C Device ID structure * tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: tosa: Export I2C module alias information backlight: lp8788_bl: Delete a check before backlight_device_unregister() backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro backlight: pm8941-wled: Move PM8941 WLED driver to backlight backlight: lp855x: Use private data for regulator control
This commit is contained in:
commit
670c039dee
|
@ -5,10 +5,7 @@ Required properties:
|
||||||
- reg: slave address
|
- reg: slave address
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- label: The label for this led
|
- label: The name of the backlight device
|
||||||
See Documentation/devicetree/bindings/leds/common.txt
|
|
||||||
- linux,default-trigger: Default trigger assigned to the LED
|
|
||||||
See Documentation/devicetree/bindings/leds/common.txt
|
|
||||||
- qcom,cs-out: bool; enable current sink output
|
- qcom,cs-out: bool; enable current sink output
|
||||||
- qcom,cabc: bool; enable content adaptive backlight control
|
- qcom,cabc: bool; enable content adaptive backlight control
|
||||||
- qcom,ext-gen: bool; use externally generated modulator signal to dim
|
- qcom,ext-gen: bool; use externally generated modulator signal to dim
|
|
@ -594,14 +594,6 @@ config LEDS_VERSATILE
|
||||||
This option enabled support for the LEDs on the ARM Versatile
|
This option enabled support for the LEDs on the ARM Versatile
|
||||||
and RealView boards. Say Y to enabled these.
|
and RealView boards. Say Y to enabled these.
|
||||||
|
|
||||||
config LEDS_PM8941_WLED
|
|
||||||
tristate "LED support for the Qualcomm PM8941 WLED block"
|
|
||||||
depends on LEDS_CLASS
|
|
||||||
select REGMAP
|
|
||||||
help
|
|
||||||
This option enables support for the 'White' LED block
|
|
||||||
on Qualcomm PM8941 PMICs.
|
|
||||||
|
|
||||||
comment "LED Triggers"
|
comment "LED Triggers"
|
||||||
source "drivers/leds/trigger/Kconfig"
|
source "drivers/leds/trigger/Kconfig"
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,6 @@ obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
|
||||||
obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o
|
obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o
|
||||||
obj-$(CONFIG_LEDS_VERSATILE) += leds-versatile.o
|
obj-$(CONFIG_LEDS_VERSATILE) += leds-versatile.o
|
||||||
obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o
|
obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o
|
||||||
obj-$(CONFIG_LEDS_PM8941_WLED) += leds-pm8941-wled.o
|
|
||||||
obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o
|
obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o
|
||||||
obj-$(CONFIG_LEDS_POWERNV) += leds-powernv.o
|
obj-$(CONFIG_LEDS_POWERNV) += leds-powernv.o
|
||||||
|
|
||||||
|
|
|
@ -299,6 +299,13 @@ config BACKLIGHT_TOSA
|
||||||
If you have an Sharp SL-6000 Zaurus say Y to enable a driver
|
If you have an Sharp SL-6000 Zaurus say Y to enable a driver
|
||||||
for its backlight
|
for its backlight
|
||||||
|
|
||||||
|
config BACKLIGHT_PM8941_WLED
|
||||||
|
tristate "Qualcomm PM8941 WLED Driver"
|
||||||
|
select REGMAP
|
||||||
|
help
|
||||||
|
If you have the Qualcomm PM8941, say Y to enable a driver for the
|
||||||
|
WLED block.
|
||||||
|
|
||||||
config BACKLIGHT_SAHARA
|
config BACKLIGHT_SAHARA
|
||||||
tristate "Tabletkiosk Sahara Touch-iT Backlight Driver"
|
tristate "Tabletkiosk Sahara Touch-iT Backlight Driver"
|
||||||
depends on X86
|
depends on X86
|
||||||
|
|
|
@ -48,6 +48,7 @@ obj-$(CONFIG_BACKLIGHT_OMAP1) += omap1_bl.o
|
||||||
obj-$(CONFIG_BACKLIGHT_OT200) += ot200_bl.o
|
obj-$(CONFIG_BACKLIGHT_OT200) += ot200_bl.o
|
||||||
obj-$(CONFIG_BACKLIGHT_PANDORA) += pandora_bl.o
|
obj-$(CONFIG_BACKLIGHT_PANDORA) += pandora_bl.o
|
||||||
obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o
|
obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o
|
||||||
|
obj-$(CONFIG_BACKLIGHT_PM8941_WLED) += pm8941-wled.o
|
||||||
obj-$(CONFIG_BACKLIGHT_PWM) += pwm_bl.o
|
obj-$(CONFIG_BACKLIGHT_PWM) += pwm_bl.o
|
||||||
obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
|
obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
|
||||||
obj-$(CONFIG_BACKLIGHT_SKY81452) += sky81452-backlight.o
|
obj-$(CONFIG_BACKLIGHT_SKY81452) += sky81452-backlight.o
|
||||||
|
|
|
@ -73,6 +73,7 @@ struct lp855x {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct lp855x_platform_data *pdata;
|
struct lp855x_platform_data *pdata;
|
||||||
struct pwm_device *pwm;
|
struct pwm_device *pwm;
|
||||||
|
struct regulator *supply; /* regulator for VDD input */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int lp855x_write_byte(struct lp855x *lp, u8 reg, u8 data)
|
static int lp855x_write_byte(struct lp855x *lp, u8 reg, u8 data)
|
||||||
|
@ -378,13 +379,6 @@ static int lp855x_parse_dt(struct lp855x *lp)
|
||||||
pdata->rom_data = &rom[0];
|
pdata->rom_data = &rom[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
pdata->supply = devm_regulator_get(dev, "power");
|
|
||||||
if (IS_ERR(pdata->supply)) {
|
|
||||||
if (PTR_ERR(pdata->supply) == -EPROBE_DEFER)
|
|
||||||
return -EPROBE_DEFER;
|
|
||||||
pdata->supply = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
lp->pdata = pdata;
|
lp->pdata = pdata;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -425,8 +419,15 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id)
|
||||||
else
|
else
|
||||||
lp->mode = REGISTER_BASED;
|
lp->mode = REGISTER_BASED;
|
||||||
|
|
||||||
if (lp->pdata->supply) {
|
lp->supply = devm_regulator_get(lp->dev, "power");
|
||||||
ret = regulator_enable(lp->pdata->supply);
|
if (IS_ERR(lp->supply)) {
|
||||||
|
if (PTR_ERR(lp->supply) == -EPROBE_DEFER)
|
||||||
|
return -EPROBE_DEFER;
|
||||||
|
lp->supply = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lp->supply) {
|
||||||
|
ret = regulator_enable(lp->supply);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&cl->dev, "failed to enable supply: %d\n", ret);
|
dev_err(&cl->dev, "failed to enable supply: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -464,8 +465,8 @@ static int lp855x_remove(struct i2c_client *cl)
|
||||||
|
|
||||||
lp->bl->props.brightness = 0;
|
lp->bl->props.brightness = 0;
|
||||||
backlight_update_status(lp->bl);
|
backlight_update_status(lp->bl);
|
||||||
if (lp->pdata->supply)
|
if (lp->supply)
|
||||||
regulator_disable(lp->pdata->supply);
|
regulator_disable(lp->supply);
|
||||||
sysfs_remove_group(&lp->dev->kobj, &lp855x_attr_group);
|
sysfs_remove_group(&lp->dev->kobj, &lp855x_attr_group);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -221,8 +221,7 @@ static void lp8788_backlight_unregister(struct lp8788_bl *bl)
|
||||||
{
|
{
|
||||||
struct backlight_device *bl_dev = bl->bl_dev;
|
struct backlight_device *bl_dev = bl->bl_dev;
|
||||||
|
|
||||||
if (bl_dev)
|
backlight_device_unregister(bl_dev);
|
||||||
backlight_device_unregister(bl_dev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t lp8788_get_bl_ctl_mode(struct device *dev,
|
static ssize_t lp8788_get_bl_ctl_mode(struct device *dev,
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/leds.h>
|
#include <linux/backlight.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
|
@ -76,30 +76,29 @@ struct pm8941_wled_config {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pm8941_wled {
|
struct pm8941_wled {
|
||||||
|
const char *name;
|
||||||
struct regmap *regmap;
|
struct regmap *regmap;
|
||||||
u16 addr;
|
u16 addr;
|
||||||
|
|
||||||
struct led_classdev cdev;
|
|
||||||
|
|
||||||
struct pm8941_wled_config cfg;
|
struct pm8941_wled_config cfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int pm8941_wled_set(struct led_classdev *cdev,
|
static int pm8941_wled_update_status(struct backlight_device *bl)
|
||||||
enum led_brightness value)
|
|
||||||
{
|
{
|
||||||
struct pm8941_wled *wled;
|
struct pm8941_wled *wled = bl_get_data(bl);
|
||||||
|
u16 val = bl->props.brightness;
|
||||||
u8 ctrl = 0;
|
u8 ctrl = 0;
|
||||||
u16 val;
|
|
||||||
int rc;
|
int rc;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
wled = container_of(cdev, struct pm8941_wled, cdev);
|
if (bl->props.power != FB_BLANK_UNBLANK ||
|
||||||
|
bl->props.fb_blank != FB_BLANK_UNBLANK ||
|
||||||
|
bl->props.state & BL_CORE_FBBLANK)
|
||||||
|
val = 0;
|
||||||
|
|
||||||
if (value != 0)
|
if (val != 0)
|
||||||
ctrl = PM8941_WLED_REG_MOD_EN_BIT;
|
ctrl = PM8941_WLED_REG_MOD_EN_BIT;
|
||||||
|
|
||||||
val = value * PM8941_WLED_REG_VAL_MAX / LED_FULL;
|
|
||||||
|
|
||||||
rc = regmap_update_bits(wled->regmap,
|
rc = regmap_update_bits(wled->regmap,
|
||||||
wled->addr + PM8941_WLED_REG_MOD_EN,
|
wled->addr + PM8941_WLED_REG_MOD_EN,
|
||||||
PM8941_WLED_REG_MOD_EN_MASK, ctrl);
|
PM8941_WLED_REG_MOD_EN_MASK, ctrl);
|
||||||
|
@ -128,16 +127,6 @@ static int pm8941_wled_set(struct led_classdev *cdev,
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pm8941_wled_set_brightness(struct led_classdev *cdev,
|
|
||||||
enum led_brightness value)
|
|
||||||
{
|
|
||||||
if (pm8941_wled_set(cdev, value)) {
|
|
||||||
dev_err(cdev->dev, "Unable to set brightness\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
cdev->brightness = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int pm8941_wled_setup(struct pm8941_wled *wled)
|
static int pm8941_wled_setup(struct pm8941_wled *wled)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -336,12 +325,9 @@ static int pm8941_wled_configure(struct pm8941_wled *wled, struct device *dev)
|
||||||
}
|
}
|
||||||
wled->addr = val;
|
wled->addr = val;
|
||||||
|
|
||||||
rc = of_property_read_string(dev->of_node, "label", &wled->cdev.name);
|
rc = of_property_read_string(dev->of_node, "label", &wled->name);
|
||||||
if (rc)
|
if (rc)
|
||||||
wled->cdev.name = dev->of_node->name;
|
wled->name = dev->of_node->name;
|
||||||
|
|
||||||
wled->cdev.default_trigger = of_get_property(dev->of_node,
|
|
||||||
"linux,default-trigger", NULL);
|
|
||||||
|
|
||||||
*cfg = pm8941_wled_config_defaults;
|
*cfg = pm8941_wled_config_defaults;
|
||||||
for (i = 0; i < ARRAY_SIZE(u32_opts); ++i) {
|
for (i = 0; i < ARRAY_SIZE(u32_opts); ++i) {
|
||||||
|
@ -377,8 +363,14 @@ static int pm8941_wled_configure(struct pm8941_wled *wled, struct device *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct backlight_ops pm8941_wled_ops = {
|
||||||
|
.update_status = pm8941_wled_update_status,
|
||||||
|
};
|
||||||
|
|
||||||
static int pm8941_wled_probe(struct platform_device *pdev)
|
static int pm8941_wled_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
struct backlight_properties props;
|
||||||
|
struct backlight_device *bl;
|
||||||
struct pm8941_wled *wled;
|
struct pm8941_wled *wled;
|
||||||
struct regmap *regmap;
|
struct regmap *regmap;
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -403,13 +395,14 @@ static int pm8941_wled_probe(struct platform_device *pdev)
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
wled->cdev.brightness_set = pm8941_wled_set_brightness;
|
memset(&props, 0, sizeof(struct backlight_properties));
|
||||||
|
props.type = BACKLIGHT_RAW;
|
||||||
rc = devm_led_classdev_register(&pdev->dev, &wled->cdev);
|
props.max_brightness = PM8941_WLED_REG_VAL_MAX;
|
||||||
if (rc)
|
bl = devm_backlight_device_register(&pdev->dev, wled->name,
|
||||||
return rc;
|
&pdev->dev, wled,
|
||||||
|
&pm8941_wled_ops, &props);
|
||||||
platform_set_drvdata(pdev, wled);
|
if (IS_ERR(bl))
|
||||||
|
return PTR_ERR(bl);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
@ -432,4 +425,3 @@ module_platform_driver(pm8941_wled_driver);
|
||||||
|
|
||||||
MODULE_DESCRIPTION("pm8941 wled driver");
|
MODULE_DESCRIPTION("pm8941 wled driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_ALIAS("platform:pm8941-wled");
|
|
|
@ -65,7 +65,7 @@ static int sky81452_bl_update_status(struct backlight_device *bd)
|
||||||
|
|
||||||
if (brightness > 0) {
|
if (brightness > 0) {
|
||||||
ret = regmap_write(regmap, SKY81452_REG0, brightness - 1);
|
ret = regmap_write(regmap, SKY81452_REG0, brightness - 1);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
|
return regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
|
||||||
|
@ -87,12 +87,12 @@ static ssize_t sky81452_bl_store_enable(struct device *dev,
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = kstrtoul(buf, 16, &value);
|
ret = kstrtoul(buf, 16, &value);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
|
ret = regmap_update_bits(regmap, SKY81452_REG1, SKY81452_EN,
|
||||||
value << CTZ(SKY81452_EN));
|
value << CTZ(SKY81452_EN));
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
|
@ -108,7 +108,7 @@ static ssize_t sky81452_bl_show_open_short(struct device *dev,
|
||||||
|
|
||||||
reg = !strcmp(attr->attr.name, "open") ? SKY81452_REG5 : SKY81452_REG4;
|
reg = !strcmp(attr->attr.name, "open") ? SKY81452_REG5 : SKY81452_REG4;
|
||||||
ret = regmap_read(regmap, reg, &value);
|
ret = regmap_read(regmap, reg, &value);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (value & SKY81452_SHRT) {
|
if (value & SKY81452_SHRT) {
|
||||||
|
@ -136,7 +136,7 @@ static ssize_t sky81452_bl_show_fault(struct device *dev,
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = regmap_read(regmap, SKY81452_REG4, &value);
|
ret = regmap_read(regmap, SKY81452_REG4, &value);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
*buf = 0;
|
*buf = 0;
|
||||||
|
@ -196,7 +196,7 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
|
||||||
pdata->gpio_enable = of_get_gpio(np, 0);
|
pdata->gpio_enable = of_get_gpio(np, 0);
|
||||||
|
|
||||||
ret = of_property_count_u32_elems(np, "led-sources");
|
ret = of_property_count_u32_elems(np, "led-sources");
|
||||||
if (IS_ERR_VALUE(ret)) {
|
if (ret < 0) {
|
||||||
pdata->enable = SKY81452_EN >> CTZ(SKY81452_EN);
|
pdata->enable = SKY81452_EN >> CTZ(SKY81452_EN);
|
||||||
} else {
|
} else {
|
||||||
num_entry = ret;
|
num_entry = ret;
|
||||||
|
@ -205,7 +205,7 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
|
||||||
|
|
||||||
ret = of_property_read_u32_array(np, "led-sources", sources,
|
ret = of_property_read_u32_array(np, "led-sources", sources,
|
||||||
num_entry);
|
num_entry);
|
||||||
if (IS_ERR_VALUE(ret)) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "led-sources node is invalid.\n");
|
dev_err(dev, "led-sources node is invalid.\n");
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
}
|
}
|
||||||
|
@ -218,12 +218,12 @@ static struct sky81452_bl_platform_data *sky81452_bl_parse_dt(
|
||||||
ret = of_property_read_u32(np,
|
ret = of_property_read_u32(np,
|
||||||
"skyworks,short-detection-threshold-volt",
|
"skyworks,short-detection-threshold-volt",
|
||||||
&pdata->short_detection_threshold);
|
&pdata->short_detection_threshold);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
pdata->short_detection_threshold = 7;
|
pdata->short_detection_threshold = 7;
|
||||||
|
|
||||||
ret = of_property_read_u32(np, "skyworks,current-limit-mA",
|
ret = of_property_read_u32(np, "skyworks,current-limit-mA",
|
||||||
&pdata->boost_current_limit);
|
&pdata->boost_current_limit);
|
||||||
if (IS_ERR_VALUE(ret))
|
if (ret < 0)
|
||||||
pdata->boost_current_limit = 2750;
|
pdata->boost_current_limit = 2750;
|
||||||
|
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
|
@ -278,14 +278,14 @@ static int sky81452_bl_probe(struct platform_device *pdev)
|
||||||
if (gpio_is_valid(pdata->gpio_enable)) {
|
if (gpio_is_valid(pdata->gpio_enable)) {
|
||||||
ret = devm_gpio_request_one(dev, pdata->gpio_enable,
|
ret = devm_gpio_request_one(dev, pdata->gpio_enable,
|
||||||
GPIOF_OUT_INIT_HIGH, "sky81452-en");
|
GPIOF_OUT_INIT_HIGH, "sky81452-en");
|
||||||
if (IS_ERR_VALUE(ret)) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to request GPIO. err=%d\n", ret);
|
dev_err(dev, "failed to request GPIO. err=%d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = sky81452_bl_init_device(regmap, pdata);
|
ret = sky81452_bl_init_device(regmap, pdata);
|
||||||
if (IS_ERR_VALUE(ret)) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to initialize. err=%d\n", ret);
|
dev_err(dev, "failed to initialize. err=%d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -302,8 +302,8 @@ static int sky81452_bl_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
platform_set_drvdata(pdev, bd);
|
platform_set_drvdata(pdev, bd);
|
||||||
|
|
||||||
ret = sysfs_create_group(&bd->dev.kobj, &sky81452_bl_attr_group);
|
ret = sysfs_create_group(&bd->dev.kobj, &sky81452_bl_attr_group);
|
||||||
if (IS_ERR_VALUE(ret)) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to create attribute. err=%d\n", ret);
|
dev_err(dev, "failed to create attribute. err=%d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,7 @@ static const struct i2c_device_id tosa_bl_id[] = {
|
||||||
{ "tosa-bl", 0 },
|
{ "tosa-bl", 0 },
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(i2c, tosa_bl_id);
|
||||||
|
|
||||||
static struct i2c_driver tosa_bl_driver = {
|
static struct i2c_driver tosa_bl_driver = {
|
||||||
.driver = {
|
.driver = {
|
||||||
|
|
|
@ -136,7 +136,6 @@ struct lp855x_rom_data {
|
||||||
Only valid when mode is PWM_BASED.
|
Only valid when mode is PWM_BASED.
|
||||||
* @size_program : total size of lp855x_rom_data
|
* @size_program : total size of lp855x_rom_data
|
||||||
* @rom_data : list of new eeprom/eprom registers
|
* @rom_data : list of new eeprom/eprom registers
|
||||||
* @supply : regulator that supplies 3V input
|
|
||||||
*/
|
*/
|
||||||
struct lp855x_platform_data {
|
struct lp855x_platform_data {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -145,7 +144,6 @@ struct lp855x_platform_data {
|
||||||
unsigned int period_ns;
|
unsigned int period_ns;
|
||||||
int size_program;
|
int size_program;
|
||||||
struct lp855x_rom_data *rom_data;
|
struct lp855x_rom_data *rom_data;
|
||||||
struct regulator *supply;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue