From 54c311e5b3a4ddb9b3a1663fdfe18d5296934a33 Mon Sep 17 00:00:00 2001 From: Jamal Davis Date: Wed, 13 Apr 2022 12:02:59 -0700 Subject: [PATCH] drivers: led: lp5562: Allow support for multiple instances Driver originally only allowed one instance to be created. Updated to allow for multiple. Signed-off-by: Jamal Davis --- drivers/led/lp5562.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/led/lp5562.c b/drivers/led/lp5562.c index eb8906b36b9..83e5e6ec42a 100644 --- a/drivers/led/lp5562.c +++ b/drivers/led/lp5562.c @@ -938,12 +938,6 @@ static int lp5562_led_init(const struct device *dev) return 0; } -static const struct lp5562_config lp5562_led_config = { - .bus = I2C_DT_SPEC_INST_GET(0), -}; - -static struct lp5562_data lp5562_led_data; - static const struct led_driver_api lp5562_led_api = { .blink = lp5562_led_blink, .set_brightness = lp5562_led_set_brightness, @@ -951,6 +945,16 @@ static const struct led_driver_api lp5562_led_api = { .off = lp5562_led_off, }; -DEVICE_DT_INST_DEFINE(0, &lp5562_led_init, NULL, &lp5562_led_data, - &lp5562_led_config, POST_KERNEL, CONFIG_LED_INIT_PRIORITY, - &lp5562_led_api); +#define LP5562_DEFINE(id) \ + static const struct lp5562_config lp5562_config_##id = { \ + .bus = I2C_DT_SPEC_INST_GET(id), \ + }; \ + \ + struct lp5562_data lp5562_data_##id; \ + DEVICE_DT_INST_DEFINE(id, &lp5562_led_init, NULL, \ + &lp5562_data_##id, \ + &lp5562_config_##id, POST_KERNEL, \ + CONFIG_LED_INIT_PRIORITY, \ + &lp5562_led_api); \ + +DT_INST_FOREACH_STATUS_OKAY(LP5562_DEFINE)