summaryrefslogtreecommitdiff
path: root/zephyr
diff options
context:
space:
mode:
authorFabio Baltieri <fabiobaltieri@google.com>2021-09-20 15:53:01 +0000
committerCommit Bot <commit-bot@chromium.org>2021-09-22 19:38:33 +0000
commit3386e8b54f90aed82d5f21cd52cc1ec2ca10c7c2 (patch)
tree4f29fa9760fa37f218a5c18a8ec2035fc0d7b5e0 /zephyr
parent53abdfdbed2cc4b4ad04b84514f773ed50458c61 (diff)
downloadchrome-ec-3386e8b54f90aed82d5f21cd52cc1ec2ca10c7c2.tar.gz
zephyr: shim: define led_color_map from the devicetree
This adds a set of properties for color mapping in the device tree for the pwm-leds device, and maps them to the internal "struct pwm_led_color_map". BRANCH=none BUG=b:177452529 TEST=compared the structure on gdb TEST=build and run on volteer Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com> Change-Id: Ib3a704afccad40eab7115371dbf72c568f5602d9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3170400 Reviewed-by: Yuval Peress <peress@google.com> Reviewed-by: Keith Short <keithshort@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'zephyr')
-rw-r--r--zephyr/dts/bindings/led/cros-ec,pwm-leds.yaml34
-rw-r--r--zephyr/projects/volteer/volteer/pwm_leds.dts7
-rw-r--r--zephyr/shim/src/pwm_led.c9
3 files changed, 49 insertions, 1 deletions
diff --git a/zephyr/dts/bindings/led/cros-ec,pwm-leds.yaml b/zephyr/dts/bindings/led/cros-ec,pwm-leds.yaml
index 2a16c9150c..ed0659aaac 100644
--- a/zephyr/dts/bindings/led/cros-ec,pwm-leds.yaml
+++ b/zephyr/dts/bindings/led/cros-ec,pwm-leds.yaml
@@ -33,4 +33,36 @@ properties:
leds = <&pwm_led0>;
};
- # TODO(b/177452529): add led_color_map support
+ color-map-red:
+ type: array
+ required: true
+ description: |
+ A map of PWM duty cycles per color, up to three channels.
+
+ For example
+ color-map-red = <100 0 0>;
+ color-map-green = < 0 100 0>;
+ color-map-blue = < 0 0 100>;
+ color-map-yellow = <100 70 0>;
+ color-map-white = <100 70 100>;
+ color-map-amber = <100 20 0>;
+
+ color-map-green:
+ type: array
+ required: true
+
+ color-map-blue:
+ type: array
+ required: true
+
+ color-map-yellow:
+ type: array
+ required: true
+
+ color-map-white:
+ type: array
+ required: true
+
+ color-map-amber:
+ type: array
+ required: true
diff --git a/zephyr/projects/volteer/volteer/pwm_leds.dts b/zephyr/projects/volteer/volteer/pwm_leds.dts
index c89c3f2ef8..aa2e5bafab 100644
--- a/zephyr/projects/volteer/volteer/pwm_leds.dts
+++ b/zephyr/projects/volteer/volteer/pwm_leds.dts
@@ -19,5 +19,12 @@
compatible = "cros-ec,pwm-leds";
leds = <&pwm_led0>;
+
+ color-map-red = <100 0 0>;
+ color-map-green = < 0 100 0>;
+ color-map-blue = < 0 0 100>;
+ color-map-yellow = <100 70 0>;
+ color-map-white = <100 70 100>;
+ color-map-amber = <100 20 0>;
};
};
diff --git a/zephyr/shim/src/pwm_led.c b/zephyr/shim/src/pwm_led.c
index 2f3dbc6857..879f339b24 100644
--- a/zephyr/shim/src/pwm_led.c
+++ b/zephyr/shim/src/pwm_led.c
@@ -34,4 +34,13 @@ struct pwm_led pwm_leds[] = {
DT_INST_FOREACH_PROP_ELEM(0, leds, PWM_LED_INIT)
};
+struct pwm_led_color_map led_color_map[EC_LED_COLOR_COUNT] = {
+ [EC_LED_COLOR_RED] = DT_INST_PROP(0, color_map_red),
+ [EC_LED_COLOR_GREEN] = DT_INST_PROP(0, color_map_green),
+ [EC_LED_COLOR_BLUE] = DT_INST_PROP(0, color_map_blue),
+ [EC_LED_COLOR_YELLOW] = DT_INST_PROP(0, color_map_yellow),
+ [EC_LED_COLOR_WHITE] = DT_INST_PROP(0, color_map_white),
+ [EC_LED_COLOR_AMBER] = DT_INST_PROP(0, color_map_amber),
+};
+
#endif /* DT_HAS_COMPAT_STATUS_OKAY */