Commit 4d3ec936 authored by Johan Hovold's avatar Johan Hovold Committed by Lee Jones

mfd: lm3533: Expand control-bank accessors

Expand the control-bank accessors that were implemented using macros.
This allows the definitions of these exported functions to be found more
easily and specifically avoids a W=1 compiler warning due to the
redundant brightness sanity check:

drivers/mfd/lm3533-ctrlbank.c: In function 'lm3533_ctrlbank_set_brightness':
drivers/mfd/lm3533-ctrlbank.c:98:10: warning: comparison is always false due to limited range of data type [-Wtype-limits]
   98 |  if (val > LM3533_##_NAME##_MAX)     \
      |          ^
drivers/mfd/lm3533-ctrlbank.c:125:1: note: in expansion of macro 'lm3533_ctrlbank_set'
  125 | lm3533_ctrlbank_set(brightness, BRIGHTNESS);
      | ^~~~~~~~~~~~~~~~~~~
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent f1d8fe2e
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#define LM3533_MAX_CURRENT_MAX 29800 #define LM3533_MAX_CURRENT_MAX 29800
#define LM3533_MAX_CURRENT_STEP 800 #define LM3533_MAX_CURRENT_STEP 800
#define LM3533_BRIGHTNESS_MAX 255
#define LM3533_PWM_MAX 0x3f #define LM3533_PWM_MAX 0x3f
#define LM3533_REG_PWM_BASE 0x14 #define LM3533_REG_PWM_BASE 0x14
...@@ -89,41 +88,33 @@ int lm3533_ctrlbank_set_max_current(struct lm3533_ctrlbank *cb, u16 imax) ...@@ -89,41 +88,33 @@ int lm3533_ctrlbank_set_max_current(struct lm3533_ctrlbank *cb, u16 imax)
} }
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_max_current); EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_max_current);
#define lm3533_ctrlbank_set(_name, _NAME) \ int lm3533_ctrlbank_set_brightness(struct lm3533_ctrlbank *cb, u8 val)
int lm3533_ctrlbank_set_##_name(struct lm3533_ctrlbank *cb, u8 val) \ {
{ \ u8 reg;
u8 reg; \ int ret;
int ret; \
\ reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_BRIGHTNESS_BASE);
if (val > LM3533_##_NAME##_MAX) \ ret = lm3533_write(cb->lm3533, reg, val);
return -EINVAL; \ if (ret)
\ dev_err(cb->dev, "failed to set brightness\n");
reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_##_NAME##_BASE); \
ret = lm3533_write(cb->lm3533, reg, val); \ return ret;
if (ret) \ }
dev_err(cb->dev, "failed to set " #_name "\n"); \ EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_brightness);
\
return ret; \ int lm3533_ctrlbank_get_brightness(struct lm3533_ctrlbank *cb, u8 *val)
} \ {
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_##_name); u8 reg;
int ret;
#define lm3533_ctrlbank_get(_name, _NAME) \
int lm3533_ctrlbank_get_##_name(struct lm3533_ctrlbank *cb, u8 *val) \ reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_BRIGHTNESS_BASE);
{ \ ret = lm3533_read(cb->lm3533, reg, val);
u8 reg; \ if (ret)
int ret; \ dev_err(cb->dev, "failed to get brightness\n");
\
reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_##_NAME##_BASE); \ return ret;
ret = lm3533_read(cb->lm3533, reg, val); \ }
if (ret) \ EXPORT_SYMBOL_GPL(lm3533_ctrlbank_get_brightness);
dev_err(cb->dev, "failed to get " #_name "\n"); \
\
return ret; \
} \
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_get_##_name);
lm3533_ctrlbank_set(brightness, BRIGHTNESS);
lm3533_ctrlbank_get(brightness, BRIGHTNESS);
/* /*
* PWM-input control mask: * PWM-input control mask:
...@@ -135,9 +126,36 @@ lm3533_ctrlbank_get(brightness, BRIGHTNESS); ...@@ -135,9 +126,36 @@ lm3533_ctrlbank_get(brightness, BRIGHTNESS);
* bit 1 - PWM-input enabled in Zone 0 * bit 1 - PWM-input enabled in Zone 0
* bit 0 - PWM-input enabled * bit 0 - PWM-input enabled
*/ */
lm3533_ctrlbank_set(pwm, PWM); int lm3533_ctrlbank_set_pwm(struct lm3533_ctrlbank *cb, u8 val)
lm3533_ctrlbank_get(pwm, PWM); {
u8 reg;
int ret;
if (val > LM3533_PWM_MAX)
return -EINVAL;
reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_PWM_BASE);
ret = lm3533_write(cb->lm3533, reg, val);
if (ret)
dev_err(cb->dev, "failed to set PWM mask\n");
return ret;
}
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_set_pwm);
int lm3533_ctrlbank_get_pwm(struct lm3533_ctrlbank *cb, u8 *val)
{
u8 reg;
int ret;
reg = lm3533_ctrlbank_get_reg(cb, LM3533_REG_PWM_BASE);
ret = lm3533_read(cb->lm3533, reg, val);
if (ret)
dev_err(cb->dev, "failed to get PWM mask\n");
return ret;
}
EXPORT_SYMBOL_GPL(lm3533_ctrlbank_get_pwm);
MODULE_AUTHOR("Johan Hovold <jhovold@gmail.com>"); MODULE_AUTHOR("Johan Hovold <jhovold@gmail.com>");
MODULE_DESCRIPTION("LM3533 Control Bank interface"); MODULE_DESCRIPTION("LM3533 Control Bank interface");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment