diff options
author | Mark Hsieh <mark_hsieh@wistron.corp-partner.google.com> | 2021-06-08 09:18:19 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-18 02:46:22 +0000 |
commit | 69b9b9d7e74e6aed462a3df154c8a0e6fd0ae128 (patch) | |
tree | e15848b98da8817cd1e71f75c455a11b8e91f120 /board/gimble/pwm.c | |
parent | 8317b1136aaf03aa6988e98300b50cebb90e8de7 (diff) | |
download | chrome-ec-69b9b9d7e74e6aed462a3df154c8a0e6fd0ae128.tar.gz |
gimble: Initial EC image
Create the initial EC image for the gimble variant by copying
the brya reference board EC files into a new directory named for
the variant.
(Auto-Generated by create_initial_ec_image.sh version 1.5.0).
BUG=b:190334274
BRANCH=None
TEST=make BOARD=gimble
Signed-off-by: Mark Hsieh <mark_hsieh@wistron.corp-partner.google.com>
Change-Id: Ia740667582e0f53bfc6afb37d23edf8c2d1d543e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2944517
Reviewed-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Diffstat (limited to 'board/gimble/pwm.c')
-rw-r--r-- | board/gimble/pwm.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/board/gimble/pwm.c b/board/gimble/pwm.c new file mode 100644 index 0000000000..a6b65b038c --- /dev/null +++ b/board/gimble/pwm.c @@ -0,0 +1,70 @@ +/* Copyright 2021 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. + */ + +#include "common.h" +#include "hooks.h" + +#include "pwm.h" +#include "pwm_chip.h" + +const struct pwm_t pwm_channels[] = { + [PWM_CH_LED2] = { + .channel = 0, + .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, + .freq = 4800, + }, + [PWM_CH_LED3] = { + .channel = 1, + .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, + .freq = 4800, + }, + [PWM_CH_LED1] = { + .channel = 2, + .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, + .freq = 4800, + }, + [PWM_CH_KBLIGHT] = { + .channel = 3, + .flags = 0, + /* + * Set PWM frequency to multiple of 50 Hz and 60 Hz to prevent + * flicker. Higher frequencies consume similar average power to + * lower PWM frequencies, but higher frequencies record a much + * lower maximum power. + */ + .freq = 2400, + }, + [PWM_CH_FAN] = { + .channel = 5, + .flags = PWM_CONFIG_OPEN_DRAIN, + .freq = 25000 + }, + [PWM_CH_LED4] = { + .channel = 7, + .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, + .freq = 4800, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); + +static void board_pwm_init(void) +{ + /* + * Turn on all the LED at 50%. + * Turn on the fan at 100%. + */ + pwm_enable(PWM_CH_LED1, 1); + pwm_set_duty(PWM_CH_LED1, 50); + pwm_enable(PWM_CH_LED2, 1); + pwm_set_duty(PWM_CH_LED2, 50); + pwm_enable(PWM_CH_LED3, 1); + pwm_set_duty(PWM_CH_LED3, 50); + pwm_enable(PWM_CH_LED4, 1); + pwm_set_duty(PWM_CH_LED4, 50); + + pwm_enable(PWM_CH_KBLIGHT, 1); + pwm_set_duty(PWM_CH_KBLIGHT, 50); +} +DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT); |