Commit b9e1730b authored by Milo Kim's avatar Milo Kim Committed by Bryan Wu

leds: lp5523: make separate API for loading engine

lp5523_load_engine()
  It is called whenever the operation mode is changed to 'load'.
  It is used for simple operation mode change.
  It will be used when engine mode and LED selection is updated in later patch.

lp5523_load_engine_and_select_page()
  Change the operation mode to 'load' and select program page number.
  This is used for programming a LED pattern at a time.
  So load_engine() is replaced with new API, load_engine_and_select_page()
  in lp5523_firmware_loaded().
Signed-off-by: default avatarMilo Kim <milo.kim@ti.com>
Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
parent 1eca0b3a
...@@ -152,15 +152,21 @@ static void lp5523_load_engine(struct lp55xx_chip *chip) ...@@ -152,15 +152,21 @@ static void lp5523_load_engine(struct lp55xx_chip *chip)
[LP55XX_ENGINE_3] = LP5523_LOAD_ENG3, [LP55XX_ENGINE_3] = LP5523_LOAD_ENG3,
}; };
lp55xx_update_bits(chip, LP5523_REG_OP_MODE, mask[idx], val[idx]);
lp5523_wait_opmode_done();
}
static void lp5523_load_engine_and_select_page(struct lp55xx_chip *chip)
{
enum lp55xx_engine_index idx = chip->engine_idx;
u8 page_sel[] = { u8 page_sel[] = {
[LP55XX_ENGINE_1] = LP5523_PAGE_ENG1, [LP55XX_ENGINE_1] = LP5523_PAGE_ENG1,
[LP55XX_ENGINE_2] = LP5523_PAGE_ENG2, [LP55XX_ENGINE_2] = LP5523_PAGE_ENG2,
[LP55XX_ENGINE_3] = LP5523_PAGE_ENG3, [LP55XX_ENGINE_3] = LP5523_PAGE_ENG3,
}; };
lp55xx_update_bits(chip, LP5523_REG_OP_MODE, mask[idx], val[idx]); lp5523_load_engine(chip);
lp5523_wait_opmode_done();
lp55xx_write(chip, LP5523_REG_PROG_PAGE_SEL, page_sel[idx]); lp55xx_write(chip, LP5523_REG_PROG_PAGE_SEL, page_sel[idx]);
} }
...@@ -290,7 +296,7 @@ static void lp5523_firmware_loaded(struct lp55xx_chip *chip) ...@@ -290,7 +296,7 @@ static void lp5523_firmware_loaded(struct lp55xx_chip *chip)
* 2) write firmware data into program memory * 2) write firmware data into program memory
*/ */
lp5523_load_engine(chip); lp5523_load_engine_and_select_page(chip);
lp5523_update_program_memory(chip, fw->data, fw->size); lp5523_update_program_memory(chip, fw->data, fw->size);
} }
......
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