drivers: led_strip: Convert to new DT_INST macros
Convert older DT_INST_ macro use the new include/devicetree.h DT_INST macro APIs. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
ec4584348e
commit
3bc3f2af80
4 changed files with 35 additions and 37 deletions
|
@ -4,6 +4,8 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define DT_DRV_COMPAT apa_apa102
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <drivers/led_strip.h>
|
#include <drivers/led_strip.h>
|
||||||
#include <drivers/spi.h>
|
#include <drivers/spi.h>
|
||||||
|
@ -81,13 +83,13 @@ static int apa102_init(struct device *dev)
|
||||||
{
|
{
|
||||||
struct apa102_data *data = dev->driver_data;
|
struct apa102_data *data = dev->driver_data;
|
||||||
|
|
||||||
data->spi = device_get_binding(DT_INST_0_APA_APA102_BUS_NAME);
|
data->spi = device_get_binding(DT_INST_BUS_LABEL(0));
|
||||||
if (!data->spi) {
|
if (!data->spi) {
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->cfg.slave = DT_INST_0_APA_APA102_BASE_ADDRESS;
|
data->cfg.slave = DT_INST_REG_ADDR(0);
|
||||||
data->cfg.frequency = DT_INST_0_APA_APA102_SPI_MAX_FREQUENCY;
|
data->cfg.frequency = DT_INST_PROP(0, spi_max_frequency);
|
||||||
data->cfg.operation =
|
data->cfg.operation =
|
||||||
SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8);
|
SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | SPI_WORD_SET(8);
|
||||||
|
|
||||||
|
@ -101,6 +103,6 @@ static const struct led_strip_driver_api apa102_api = {
|
||||||
.update_channels = apa102_update_channels,
|
.update_channels = apa102_update_channels,
|
||||||
};
|
};
|
||||||
|
|
||||||
DEVICE_AND_API_INIT(apa102_0, DT_INST_0_APA_APA102_LABEL, apa102_init,
|
DEVICE_AND_API_INIT(apa102_0, DT_INST_LABEL(0), apa102_init,
|
||||||
&apa102_data_0, NULL, POST_KERNEL,
|
&apa102_data_0, NULL, POST_KERNEL,
|
||||||
CONFIG_LED_STRIP_INIT_PRIORITY, &apa102_api);
|
CONFIG_LED_STRIP_INIT_PRIORITY, &apa102_api);
|
||||||
|
|
|
@ -9,18 +9,10 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef DT_INST_0_COLORWAY_LPD8806
|
#if DT_HAS_NODE(DT_INST(0, colorway_lpd8806))
|
||||||
#define DT_INST_0_COLORWAY_LPD880X DT_INST_0_COLORWAY_LPD8806
|
#define DT_DRV_COMPAT colorway_lpd8806
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_BASE_ADDRESS DT_INST_0_COLORWAY_LPD8806_BASE_ADDRESS
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_BUS_NAME DT_INST_0_COLORWAY_LPD8806_BUS_NAME
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_LABEL DT_INST_0_COLORWAY_LPD8806_LABEL
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_SPI_MAX_FREQUENCY DT_INST_0_COLORWAY_LPD8806_SPI_MAX_FREQUENCY
|
|
||||||
#else
|
#else
|
||||||
#define DT_INST_0_COLORWAY_LPD880X DT_INST_0_COLORWAY_LPD8803
|
#define DT_DRV_COMPAT colorway_lpd8803
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_BASE_ADDRESS DT_INST_0_COLORWAY_LPD8803_BASE_ADDRESS
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_BUS_NAME DT_INST_0_COLORWAY_LPD8803_BUS_NAME
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_LABEL DT_INST_0_COLORWAY_LPD8803_LABEL
|
|
||||||
#define DT_INST_0_COLORWAY_LPD880X_SPI_MAX_FREQUENCY DT_INST_0_COLORWAY_LPD8803_SPI_MAX_FREQUENCY
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LOG_LEVEL CONFIG_LED_STRIP_LOG_LEVEL
|
#define LOG_LEVEL CONFIG_LED_STRIP_LOG_LEVEL
|
||||||
|
@ -139,16 +131,16 @@ static int lpd880x_strip_init(struct device *dev)
|
||||||
struct lpd880x_data *data = dev->driver_data;
|
struct lpd880x_data *data = dev->driver_data;
|
||||||
struct spi_config *config = &data->config;
|
struct spi_config *config = &data->config;
|
||||||
|
|
||||||
data->spi = device_get_binding(DT_INST_0_COLORWAY_LPD880X_BUS_NAME);
|
data->spi = device_get_binding(DT_INST_BUS_LABEL(0));
|
||||||
if (!data->spi) {
|
if (!data->spi) {
|
||||||
LOG_ERR("SPI device %s not found",
|
LOG_ERR("SPI device %s not found",
|
||||||
DT_INST_0_COLORWAY_LPD880X_BUS_NAME);
|
DT_INST_BUS_LABEL(0));
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
config->frequency = DT_INST_0_COLORWAY_LPD880X_SPI_MAX_FREQUENCY;
|
config->frequency = DT_INST_PROP(0, spi_max_frequency);
|
||||||
config->operation = LPD880X_SPI_OPERATION;
|
config->operation = LPD880X_SPI_OPERATION;
|
||||||
config->slave = DT_INST_0_COLORWAY_LPD880X_BASE_ADDRESS; /* MOSI/CLK only; CS is not supported. */
|
config->slave = DT_INST_REG_ADDR(0); /* MOSI/CLK only; CS is not supported. */
|
||||||
config->cs = NULL;
|
config->cs = NULL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -161,7 +153,7 @@ static const struct led_strip_driver_api lpd880x_strip_api = {
|
||||||
.update_channels = lpd880x_strip_update_channels,
|
.update_channels = lpd880x_strip_update_channels,
|
||||||
};
|
};
|
||||||
|
|
||||||
DEVICE_AND_API_INIT(lpd880x_strip, DT_INST_0_COLORWAY_LPD880X_LABEL,
|
DEVICE_AND_API_INIT(lpd880x_strip, DT_INST_LABEL(0),
|
||||||
lpd880x_strip_init, &lpd880x_strip_data,
|
lpd880x_strip_init, &lpd880x_strip_data,
|
||||||
NULL, POST_KERNEL, CONFIG_LED_STRIP_INIT_PRIORITY,
|
NULL, POST_KERNEL, CONFIG_LED_STRIP_INIT_PRIORITY,
|
||||||
&lpd880x_strip_api);
|
&lpd880x_strip_api);
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define DT_DRV_COMPAT worldsemi_ws2812_gpio
|
||||||
|
|
||||||
#include <drivers/led_strip.h>
|
#include <drivers/led_strip.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -181,15 +183,15 @@ static const struct led_strip_driver_api ws2812_gpio_api = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define WS2812_GPIO_LABEL(idx) \
|
#define WS2812_GPIO_LABEL(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_GPIO_LABEL)
|
(DT_INST_LABEL(idx))
|
||||||
#define WS2812_GPIO_HAS_WHITE(idx) \
|
#define WS2812_GPIO_HAS_WHITE(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_GPIO_HAS_WHITE_CHANNEL == 1)
|
(DT_INST_PROP(idx, has_white_channel) == 1)
|
||||||
#define WS2812_GPIO_DEV(idx) \
|
#define WS2812_GPIO_DEV(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_GPIO_IN_GPIOS_CONTROLLER)
|
(DT_INST_GPIO_LABEL(idx, in_gpios))
|
||||||
#define WS2812_GPIO_PIN(idx) \
|
#define WS2812_GPIO_PIN(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_GPIO_IN_GPIOS_PIN)
|
(DT_INST_GPIO_PIN(idx, in_gpios))
|
||||||
#define WS2812_GPIO_FLAGS(idx) \
|
#define WS2812_GPIO_FLAGS(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_GPIO_IN_GPIOS_FLAGS)
|
(DT_INST_GPIO_FLAGS(idx, in_gpios))
|
||||||
/*
|
/*
|
||||||
* The inline assembly above is designed to work on nRF51 devices with
|
* The inline assembly above is designed to work on nRF51 devices with
|
||||||
* the 16 MHz clock enabled.
|
* the 16 MHz clock enabled.
|
||||||
|
@ -238,10 +240,10 @@ static const struct led_strip_driver_api ws2812_gpio_api = {
|
||||||
CONFIG_LED_STRIP_INIT_PRIORITY, \
|
CONFIG_LED_STRIP_INIT_PRIORITY, \
|
||||||
&ws2812_gpio_api)
|
&ws2812_gpio_api)
|
||||||
|
|
||||||
#ifdef DT_INST_0_WORLDSEMI_WS2812_GPIO_LABEL
|
#if DT_INST_NODE_HAS_PROP(0, label)
|
||||||
WS2812_GPIO_DEVICE(0);
|
WS2812_GPIO_DEVICE(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DT_INST_1_WORLDSEMI_WS2812_GPIO_LABEL
|
#if DT_INST_NODE_HAS_PROP(1, label)
|
||||||
WS2812_GPIO_DEVICE(1);
|
WS2812_GPIO_DEVICE(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define DT_DRV_COMPAT worldsemi_ws2812_spi
|
||||||
|
|
||||||
#include <drivers/led_strip.h>
|
#include <drivers/led_strip.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -167,21 +169,21 @@ static const struct led_strip_driver_api ws2812_spi_api = {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define WS2812_SPI_LABEL(idx) \
|
#define WS2812_SPI_LABEL(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_LABEL)
|
(DT_INST_LABEL(idx))
|
||||||
#define WS2812_SPI_NUM_PIXELS(idx) \
|
#define WS2812_SPI_NUM_PIXELS(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_CHAIN_LENGTH)
|
(DT_INST_PROP(idx, chain_length))
|
||||||
#define WS2812_SPI_HAS_WHITE(idx) \
|
#define WS2812_SPI_HAS_WHITE(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_HAS_WHITE_CHANNEL == 1)
|
(DT_INST_PROP(idx, has_white_channel) == 1)
|
||||||
#define WS2812_SPI_BUS(idx) \
|
#define WS2812_SPI_BUS(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_BUS_NAME)
|
(DT_INST_BUS_LABEL(idx))
|
||||||
#define WS2812_SPI_SLAVE(idx) \
|
#define WS2812_SPI_SLAVE(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_BASE_ADDRESS)
|
(DT_INST_REG_ADDR(idx))
|
||||||
#define WS2812_SPI_FREQ(idx) \
|
#define WS2812_SPI_FREQ(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_SPI_MAX_FREQUENCY)
|
(DT_INST_PROP(idx, spi_max_frequency))
|
||||||
#define WS2812_SPI_ONE_FRAME(idx) \
|
#define WS2812_SPI_ONE_FRAME(idx) \
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_SPI_ONE_FRAME)
|
(DT_INST_PROP(idx, spi_one_frame))
|
||||||
#define WS2812_SPI_ZERO_FRAME(idx)\
|
#define WS2812_SPI_ZERO_FRAME(idx)\
|
||||||
(DT_INST_##idx##_WORLDSEMI_WS2812_SPI_SPI_ZERO_FRAME)
|
(DT_INST_PROP(idx, spi_zero_frame))
|
||||||
#define WS2812_SPI_BUFSZ(idx) \
|
#define WS2812_SPI_BUFSZ(idx) \
|
||||||
(BYTES_PER_PX(WS2812_SPI_HAS_WHITE(idx)) * WS2812_SPI_NUM_PIXELS(idx))
|
(BYTES_PER_PX(WS2812_SPI_HAS_WHITE(idx)) * WS2812_SPI_NUM_PIXELS(idx))
|
||||||
|
|
||||||
|
@ -228,10 +230,10 @@ static const struct led_strip_driver_api ws2812_spi_api = {
|
||||||
CONFIG_LED_STRIP_INIT_PRIORITY, \
|
CONFIG_LED_STRIP_INIT_PRIORITY, \
|
||||||
&ws2812_spi_api);
|
&ws2812_spi_api);
|
||||||
|
|
||||||
#ifdef DT_INST_0_WORLDSEMI_WS2812_SPI_LABEL
|
#if DT_INST_NODE_HAS_PROP(0, label)
|
||||||
WS2812_SPI_DEVICE(0);
|
WS2812_SPI_DEVICE(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DT_INST_1_WORLDSEMI_WS2812_SPI_LABEL
|
#if DT_INST_NODE_HAS_PROP(1, label)
|
||||||
WS2812_SPI_DEVICE(1);
|
WS2812_SPI_DEVICE(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue