Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 344468
b: refs/heads/master
c: 1b21ec5
h: refs/heads/master
v: v3
  • Loading branch information
Jingoo Han authored and Bryan Wu committed Nov 26, 2012
1 parent a3b97de commit 74745e5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 04553e925baaa815025c6fd3cdc301a794fa2c74
refs/heads/master: 1b21ec5a2852ffd8db4189d4ef1c221aabc64936
20 changes: 17 additions & 3 deletions trunk/drivers/leds/leds-lp5523.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,10 @@ static int lp5523_configure(struct i2c_client *client)

/* Let the programs run for couple of ms and check the engine status */
usleep_range(3000, 6000);
lp5523_read(client, LP5523_REG_STATUS, &status);
ret = lp5523_read(client, LP5523_REG_STATUS, &status);
if (ret < 0)
return ret;

status &= LP5523_ENG_STATUS_MASK;

if (status == LP5523_ENG_STATUS_MASK) {
Expand Down Expand Up @@ -464,10 +467,16 @@ static ssize_t lp5523_selftest(struct device *dev,
LP5523_EN_LEDTEST | 16);
usleep_range(3000, 6000); /* ADC conversion time is typically 2.7 ms */
ret = lp5523_read(chip->client, LP5523_REG_STATUS, &status);
if (ret < 0)
goto fail;

if (!(status & LP5523_LEDTEST_DONE))
usleep_range(3000, 6000); /* Was not ready. Wait little bit */

ret |= lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &vdd);
ret = lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &vdd);
if (ret < 0)
goto fail;

vdd--; /* There may be some fluctuation in measurement */

for (i = 0; i < LP5523_LEDS; i++) {
Expand All @@ -489,9 +498,14 @@ static ssize_t lp5523_selftest(struct device *dev,
/* ADC conversion time is 2.7 ms typically */
usleep_range(3000, 6000);
ret = lp5523_read(chip->client, LP5523_REG_STATUS, &status);
if (ret < 0)
goto fail;

if (!(status & LP5523_LEDTEST_DONE))
usleep_range(3000, 6000);/* Was not ready. Wait. */
ret |= lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &adc);
ret = lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &adc);
if (ret < 0)
goto fail;

if (adc >= vdd || adc < LP5523_ADC_SHORTCIRC_LIM)
pos += sprintf(buf + pos, "LED %d FAIL\n", i);
Expand Down

0 comments on commit 74745e5

Please sign in to comment.