mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-01 12:52:26 +00:00
Current LED color changes are abrupt. This CL adds a new function which steps from one color (some RGB combo) to another gradually. When the new or old color is white, then precomputed steps computed from HSI space are used. Other transisions involving either just red/green use linear steps computed dynamially based on the total change. This CL also creates a new task for the LED code so that the color transitions won't hold off other hook tasks for too long a period of time. Changed the LED tick time to be 500 msec as it's no longer tied to the hook tick. BUG=b:35584895 BRANCH=eve TEST=Using EC console command 'battfake', changed reported battery charge level and verified that the LED patterns still work as expected. In addition, had debug code which printed to the console what the R, G, B duty cycle levels were for each transition and verified the expected values were achieved. Visually compared version with transitions to the previous version which changed abruptly. Change-Id: I4e7c19556db9ed6037f2afa05cf348d19aeb18bb Signed-off-by: Scott Collyer <scollyer@google.com> Reviewed-on: https://chromium-review.googlesource.com/562543 Commit-Ready: Scott Collyer <scollyer@chromium.org> Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Shawn N <shawnn@chromium.org>
39 lines
1.7 KiB
Plaintext
39 lines
1.7 KiB
Plaintext
/* Copyright 2016 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
/*
|
|
* List of enabled tasks in the priority order
|
|
*
|
|
* The first one has the lowest priority.
|
|
*
|
|
* For each task, use the macro TASK_ALWAYS(n, r, d, s) for base tasks and
|
|
* TASK_NOTEST(n, r, d, s) for tasks that can be excluded in test binaries,
|
|
* where :
|
|
* 'n' in the name of the task
|
|
* 'r' in the main routine of the task
|
|
* 'd' in an opaque parameter passed to the routine at startup
|
|
* 's' is the stack size in bytes; must be a multiple of 8
|
|
*
|
|
* For USB PD tasks, IDs must be in consecutive order and correspond to
|
|
* the port which they are for. See TASK_ID_TO_PD_PORT() macro.
|
|
*/
|
|
|
|
#define CONFIG_TASK_LIST \
|
|
TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(LED, led_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(CHG_RAMP, chg_ramp_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(USB_CHG, usb_charger_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
|
|
TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_NOTEST(PDCMD, pd_command_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
|
|
TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
|