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
2 changed files with 33 additions and 17 deletions
|
@ -17,8 +17,11 @@
|
||||||
#include <linux/mfd/lm3533.h>
|
#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_BRIGHTNESS_MAX 255
|
||||||
#define LM3533_MAX_CURRENT_MAX 31
|
|
||||||
#define LM3533_PWM_MAX 0x3f
|
#define LM3533_PWM_MAX 0x3f
|
||||||
|
|
||||||
#define LM3533_REG_PWM_BASE 0x14
|
#define LM3533_REG_PWM_BASE 0x14
|
||||||
|
@ -65,6 +68,31 @@ int lm3533_ctrlbank_disable(struct lm3533_ctrlbank *cb)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_disable);
|
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) \
|
#define lm3533_ctrlbank_set(_name, _NAME) \
|
||||||
int lm3533_ctrlbank_set_##_name(struct lm3533_ctrlbank *cb, u8 val) \
|
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_set(brightness, BRIGHTNESS);
|
||||||
lm3533_ctrlbank_get(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:
|
* PWM-input control mask:
|
||||||
*
|
*
|
||||||
|
|
|
@ -47,15 +47,15 @@ struct lm3533_als_platform_data {
|
||||||
|
|
||||||
struct lm3533_bl_platform_data {
|
struct lm3533_bl_platform_data {
|
||||||
char *name;
|
char *name;
|
||||||
|
u16 max_current; /* 5000 - 29800 uA (800 uA step) */
|
||||||
u8 default_brightness; /* 0 - 255 */
|
u8 default_brightness; /* 0 - 255 */
|
||||||
u8 max_current; /* 0 - 31 */
|
|
||||||
u8 pwm; /* 0 - 0x3f */
|
u8 pwm; /* 0 - 0x3f */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct lm3533_led_platform_data {
|
struct lm3533_led_platform_data {
|
||||||
char *name;
|
char *name;
|
||||||
const char *default_trigger;
|
const char *default_trigger;
|
||||||
u8 max_current; /* 0 - 31 */
|
u16 max_current; /* 5000 - 29800 uA (800 uA step) */
|
||||||
u8 pwm; /* 0 - 0x3f */
|
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_set_brightness(struct lm3533_ctrlbank *cb, u8 val);
|
||||||
extern int lm3533_ctrlbank_get_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_set_pwm(struct lm3533_ctrlbank *cb, u8 val);
|
||||||
extern int lm3533_ctrlbank_get_pwm(struct lm3533_ctrlbank *cb, u8 *val);
|
extern int lm3533_ctrlbank_get_pwm(struct lm3533_ctrlbank *cb, u8 *val);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue