summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/projects/skyrim/Kconfig7
-rw-r--r--zephyr/projects/skyrim/prj_frostflow.conf3
-rw-r--r--zephyr/projects/skyrim/src/power_signals.c5
3 files changed, 14 insertions, 1 deletions
diff --git a/zephyr/projects/skyrim/Kconfig b/zephyr/projects/skyrim/Kconfig
index 77c073a691..fbb797f6fc 100644
--- a/zephyr/projects/skyrim/Kconfig
+++ b/zephyr/projects/skyrim/Kconfig
@@ -32,6 +32,13 @@ config BOARD_INPUT_CURRENT_SCALE_FACTOR
help
Limit input current to fraction of negotiated limit.
+config BOARD_USB_HUB_RESET
+ bool "Support USB hub reset or not"
+ default y
+ help
+ Enable this if your board has a USB hub reset GPIO connect to EC to
+ reset the USB hub.
+
module = SKYRIM
module-str = Skyrim board-specific code
source "subsys/logging/Kconfig.template.log_config"
diff --git a/zephyr/projects/skyrim/prj_frostflow.conf b/zephyr/projects/skyrim/prj_frostflow.conf
index 6372bae444..29931de4d4 100644
--- a/zephyr/projects/skyrim/prj_frostflow.conf
+++ b/zephyr/projects/skyrim/prj_frostflow.conf
@@ -25,3 +25,6 @@ CONFIG_PLATFORM_EC_USBC_RETIMER_ANX7483=y
# Keyboard
CONFIG_PLATFORM_EC_KEYBOARD_CUSTOMIZATION=y
+
+# Frostflow not have the USB HUB
+CONFIG_BOARD_USB_HUB_RESET=n
diff --git a/zephyr/projects/skyrim/src/power_signals.c b/zephyr/projects/skyrim/src/power_signals.c
index 1f72d482b9..5d372d35ae 100644
--- a/zephyr/projects/skyrim/src/power_signals.c
+++ b/zephyr/projects/skyrim/src/power_signals.c
@@ -200,20 +200,23 @@ void baseboard_en_pwr_s0(enum gpio_signal signal)
/* Now chain off to the normal power signal interrupt handler. */
power_signal_interrupt(signal);
}
-
+#ifdef CONFIG_BOARD_USB_HUB_RESET
void baseboard_enable_hub(void)
{
gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_hub_rst), 0);
}
DECLARE_DEFERRED(baseboard_enable_hub);
+#endif /* CONFIG_BOARD_USB_HUB_RESET */
void baseboard_s5_pgood(enum gpio_signal signal)
{
+#ifdef CONFIG_BOARD_USB_HUB_RESET
/* We must enable the USB hub at least 30ms after S5 PGOOD */
if (gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_pg_pwr_s5)))
hook_call_deferred(&baseboard_enable_hub_data, 30 * MSEC);
else
gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_hub_rst), 1);
+#endif /* CONFIG_BOARD_USB_HUB_RESET */
/* Continue to our signal AND-ing and power interrupt */
baseboard_en_pwr_s0(signal);