diff options
author | Tang Qijun <qijun.tang@ecs.corp-partner.google.com> | 2023-04-26 20:54:18 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-04-26 20:35:33 +0000 |
commit | 0ec50298bbd50c044af133ce44cb646be26b7e8f (patch) | |
tree | 86795fd81d8a7474d9d4f0a6ee953b6335a7e71f | |
parent | 10bbb633bed888b3c433488b10da075b5cc54970 (diff) | |
download | chrome-ec-0ec50298bbd50c044af133ce44cb646be26b7e8f.tar.gz |
crystaldrift: enable usb hub power control
usb typeA hub power is controlled by gpio45
BRANCH=skyrim
BUG=b:260771028
TEST=test usb typeA function is ok
Change-Id: I55ecb26a0b5e56407618df305a588055d48ba55e
Signed-off-by: Tang Qijun <qijun.tang@ecs.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4478813
Reviewed-by: Chao Gui <chaogui@google.com>
Commit-Queue: Chao Gui <chaogui@google.com>
-rw-r--r-- | zephyr/program/skyrim/crystaldrift/CMakeLists.txt | 1 | ||||
-rw-r--r-- | zephyr/program/skyrim/crystaldrift/project.overlay | 3 | ||||
-rw-r--r-- | zephyr/program/skyrim/crystaldrift/src/board.c | 24 |
3 files changed, 28 insertions, 0 deletions
diff --git a/zephyr/program/skyrim/crystaldrift/CMakeLists.txt b/zephyr/program/skyrim/crystaldrift/CMakeLists.txt index 2ba70f5e25..354846a232 100644 --- a/zephyr/program/skyrim/crystaldrift/CMakeLists.txt +++ b/zephyr/program/skyrim/crystaldrift/CMakeLists.txt @@ -8,5 +8,6 @@ zephyr_library_sources( "src/ppc_config.c" "src/form_factor.c" "src/keyboard.c" + "src/board.c" ) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_FAN "src/fan.c") diff --git a/zephyr/program/skyrim/crystaldrift/project.overlay b/zephyr/program/skyrim/crystaldrift/project.overlay index f03949cfa4..bf4e420367 100644 --- a/zephyr/program/skyrim/crystaldrift/project.overlay +++ b/zephyr/program/skyrim/crystaldrift/project.overlay @@ -37,6 +37,9 @@ gpio_ec_chg_led_b: ec_chg_led_b { gpios = <&gpio8 0 GPIO_OUTPUT_LOW>; }; + gpio_ec_usbhub_en: ec_usbhub_en { + gpios = <&gpio4 5 GPIO_OUTPUT_HIGH>; + }; }; gpio-interrupts { diff --git a/zephyr/program/skyrim/crystaldrift/src/board.c b/zephyr/program/skyrim/crystaldrift/src/board.c new file mode 100644 index 0000000000..a6ce70585a --- /dev/null +++ b/zephyr/program/skyrim/crystaldrift/src/board.c @@ -0,0 +1,24 @@ +/* Copyright 2023 The ChromiumOS Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "chipset.h" +#include "console.h" +#include "cros_board_info.h" +#include "hooks.h" + +#include <zephyr/drivers/gpio.h> + +static void check_usbhub_en(void) +{ + if (chipset_in_state(CHIPSET_STATE_ANY_OFF) && + gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_ec_usbhub_en))) { + gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_ec_usbhub_en), 0); + } else if (!chipset_in_state(CHIPSET_STATE_ANY_OFF) && + !gpio_pin_get_dt( + GPIO_DT_FROM_NODELABEL(gpio_ec_usbhub_en))) { + gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_ec_usbhub_en), 1); + } +} +DECLARE_HOOK(HOOK_SECOND, check_usbhub_en, HOOK_PRIO_DEFAULT); |