leds-ws2812b: add 'color-intensity' prop to set default color

This commit is contained in:
hanwckf 2022-12-26 21:03:49 +08:00 committed by Tianling Shen
parent 4e7dacadf2
commit e7e1459ad9
No known key found for this signature in database
GPG Key ID: 6850B6345C862176

View File

@ -138,6 +138,8 @@ static int ws2812b_probe(struct spi_device *spi)
LED_COLOR_ID_RED,
LED_COLOR_ID_BLUE,
};
u32 color_intensity[WS2812B_NUM_COLORS] = { 255, 255, 255, };
u32 cascade;
ret = fwnode_property_read_u32(led_node, "reg", &cascade);
@ -158,6 +160,11 @@ static int ws2812b_probe(struct spi_device *spi)
fwnode_property_read_u32_array(led_node, "color-index",
color_idx, (size_t)cnt);
cnt = fwnode_property_count_u32(led_node, "color-intensity");
if (cnt > 0 && cnt <= WS2812B_NUM_COLORS)
fwnode_property_read_u32_array(led_node, "color-intensity",
color_intensity, (size_t)cnt);
priv->leds[cur_led].mc_cdev.subled_info =
priv->leds[cur_led].subled;
priv->leds[cur_led].mc_cdev.num_colors = WS2812B_NUM_COLORS;
@ -166,7 +173,7 @@ static int ws2812b_probe(struct spi_device *spi)
for (i = 0; i < WS2812B_NUM_COLORS; i++) {
priv->leds[cur_led].subled[i].color_index = color_idx[i];
priv->leds[cur_led].subled[i].intensity = 255;
priv->leds[cur_led].subled[i].intensity = color_intensity[i];
}
priv->leds[cur_led].cascade = cascade;