forked from Minki/linux
mfd: Use SI-units for the lm3533 max-current interface
Use SI-units (uA) for max-current interface (5000 - 29800 uA). Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
7af5e87dc5
commit
6fa4b9d802
@ -17,8 +17,11 @@
|
||||
#include <linux/mfd/lm3533.h>
|
||||
|
||||
|
||||
#define LM3533_MAX_CURRENT_MIN 5000
|
||||
#define LM3533_MAX_CURRENT_MAX 29800
|
||||
#define LM3533_MAX_CURRENT_STEP 800
|
||||
|
||||
#define LM3533_BRIGHTNESS_MAX 255
|
||||
#define LM3533_MAX_CURRENT_MAX 31
|
||||
#define LM3533_PWM_MAX 0x3f
|
||||
|
||||
#define LM3533_REG_PWM_BASE 0x14
|
||||
@ -65,6 +68,31 @@ int lm3533_ctrlbank_disable(struct lm3533_ctrlbank *cb)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_disable);
|
||||
|
||||
/*
|
||||
* Full-scale current.
|
||||
*
|
||||
* imax 5000 - 29800 uA (800 uA step)
|
||||
*/
|
||||
int lm3533_ctrlbank_set_max_current(struct lm3533_ctrlbank *cb, u16 imax)
|
||||
{
|
||||
u8 reg;
|
||||
u8 val;
|
||||
int ret;
|
||||
|
||||
if (imax < LM3533_MAX_CURRENT_MIN || imax > LM3533_MAX_CURRENT_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
val = (imax - LM3533_MAX_CURRENT_MIN) / LM3533_MAX_CURRENT_STEP;
|
||||
|
||||
reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_MAX_CURRENT_BASE);
|
||||
ret = lm3533_write(cb->lm3533, reg, val);
|
||||
if (ret)
|
||||
dev_err(cb->dev, "failed to set max current\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_max_current);
|
||||
|
||||
#define lm3533_ctrlbank_set(_name, _NAME) \
|
||||
int lm3533_ctrlbank_set_##_name(struct lm3533_ctrlbank *cb, u8 val) \
|
||||
{ \
|
||||
@ -101,19 +129,6 @@ EXPORT_SYMBOL_GPL(lm3533_ctrlbank_get_##_name);
|
||||
lm3533_ctrlbank_set(brightness, BRIGHTNESS);
|
||||
lm3533_ctrlbank_get(brightness, BRIGHTNESS);
|
||||
|
||||
/*
|
||||
* Full scale current.
|
||||
*
|
||||
* Imax = 5 + val * 0.8 mA, e.g.:
|
||||
*
|
||||
* 0 - 5 mA
|
||||
* ...
|
||||
* 19 - 20.2 mA (default)
|
||||
* ...
|
||||
* 31 - 29.8 mA
|
||||
*/
|
||||
lm3533_ctrlbank_set(max_current, MAX_CURRENT);
|
||||
|
||||
/*
|
||||
* PWM-input control mask:
|
||||
*
|
||||
|
@ -47,15 +47,15 @@ struct lm3533_als_platform_data {
|
||||
|
||||
struct lm3533_bl_platform_data {
|
||||
char *name;
|
||||
u16 max_current; /* 5000 - 29800 uA (800 uA step) */
|
||||
u8 default_brightness; /* 0 - 255 */
|
||||
u8 max_current; /* 0 - 31 */
|
||||
u8 pwm; /* 0 - 0x3f */
|
||||
};
|
||||
|
||||
struct lm3533_led_platform_data {
|
||||
char *name;
|
||||
const char *default_trigger;
|
||||
u8 max_current; /* 0 - 31 */
|
||||
u16 max_current; /* 5000 - 29800 uA (800 uA step) */
|
||||
u8 pwm; /* 0 - 0x3f */
|
||||
};
|
||||
|
||||
@ -91,7 +91,8 @@ extern int lm3533_ctrlbank_disable(struct lm3533_ctrlbank *cb);
|
||||
|
||||
extern int lm3533_ctrlbank_set_brightness(struct lm3533_ctrlbank *cb, u8 val);
|
||||
extern int lm3533_ctrlbank_get_brightness(struct lm3533_ctrlbank *cb, u8 *val);
|
||||
extern int lm3533_ctrlbank_set_max_current(struct lm3533_ctrlbank *cb, u8 val);
|
||||
extern int lm3533_ctrlbank_set_max_current(struct lm3533_ctrlbank *cb,
|
||||
u16 imax);
|
||||
extern int lm3533_ctrlbank_set_pwm(struct lm3533_ctrlbank *cb, u8 val);
|
||||
extern int lm3533_ctrlbank_get_pwm(struct lm3533_ctrlbank *cb, u8 *val);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user