platform/chrome: lightbar: Report number of segments

Add attribue `num_segments` to return the number of exposed LED segments
in the lightbar. It can be smaller than the number of physical leds in
the lightbar.

Test: Check the attribute is present and returns a value when read.

Signed-off-by: Gwendal Grignou <gwendal@google.com>
Link: https://lore.kernel.org/r/20260130081351.487517-1-gwendal@google.com
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
This commit is contained in:
Gwendal Grignou
2026-01-30 00:13:50 -08:00
committed by Tzung-Bi Shih
parent ec0dd36dbf
commit 2d8251d98c
2 changed files with 54 additions and 0 deletions

View File

@@ -2005,6 +2005,14 @@ struct lightbar_params_v2_colors {
struct rgb_s color[8]; /* 0-3 are Google colors */
} __ec_todo_packed;
struct lightbar_params_v3 {
/*
* Number of LEDs reported by the EC.
* May be less than the actual number of LEDs in the lightbar.
*/
uint8_t reported_led_num;
} __ec_todo_packed;
/* Lightbar program. */
#define EC_LB_PROG_LEN 192
struct lightbar_program {
@@ -2086,6 +2094,8 @@ struct ec_response_lightbar {
struct lightbar_params_v2_thresholds get_params_v2_thlds;
struct lightbar_params_v2_colors get_params_v2_colors;
struct lightbar_params_v3 get_params_v3;
struct __ec_todo_unpacked {
uint32_t num;
uint32_t flags;
@@ -2143,6 +2153,7 @@ enum lightbar_command {
LIGHTBAR_CMD_SET_PARAMS_V2_THRESHOLDS = 31,
LIGHTBAR_CMD_GET_PARAMS_V2_COLORS = 32,
LIGHTBAR_CMD_SET_PARAMS_V2_COLORS = 33,
LIGHTBAR_CMD_GET_PARAMS_V3 = 34,
LIGHTBAR_NUM_CMDS
};