summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTang Qijun <qijun.tang@ecs.corp-partner.google.com>2023-04-26 20:54:18 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-26 20:35:33 +0000
commit0ec50298bbd50c044af133ce44cb646be26b7e8f (patch)
tree86795fd81d8a7474d9d4f0a6ee953b6335a7e71f
parent10bbb633bed888b3c433488b10da075b5cc54970 (diff)
downloadchrome-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.txt1
-rw-r--r--zephyr/program/skyrim/crystaldrift/project.overlay3
-rw-r--r--zephyr/program/skyrim/crystaldrift/src/board.c24
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);