diff options
author | Firas Sammoura <fsammoura@google.com> | 2022-06-17 16:41:11 +0000 |
---|---|---|
committer | Firas Sammoura <fsammoura@google.com> | 2022-06-17 16:41:11 +0000 |
commit | 6c1587ca70f558b4f96b3f0b18ad8b027d3ba99d (patch) | |
tree | 9a15b4a98d7987870a1805a33883d0cf9123fc05 /zephyr/projects/corsola | |
parent | 63a8a1366e390b757c37e167927102be0fc4fb63 (diff) | |
parent | a46d3f3feaac0d69012f61b66f652bff991d05a7 (diff) | |
download | chrome-ec-6c1587ca70f558b4f96b3f0b18ad8b027d3ba99d.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-dartmonkey-release
Generated by: ./util/update_release_branch.py --board dartmonkey --relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware-fpmcu-dartmonkey-release
Relevant changes:
git log --oneline 63a8a1366e..a46d3f3fea -- board/nocturne_fp
board/dartmonkey common/fpsensor docs/fingerprint driver/fingerprint
util/getversion.sh
981fb88cf8 docs/fingerprint: Resolve contradictory FPMCU factory flashing instructions
60032a8828 docs/fingerprint: Clean up formatting in fingerprint-factory-quick-guide.md
f49eb6f894 docs/fingerprint: Run mdformat
64aa5fc7bb docs/fingerprint: Add links to info on fuzz testing
8bd99cc434 fpsensor: Use correct return type
2b2d7a991d fpsensor: Use correct return type
BRANCH=None
BUG=b:234772776 b:234181908
TEST=`make -j buildall`
Cq-Include-Trybots: chromeos/cq:cq-orchestrator
Signed-off-by: Firas Sammoura <fsammoura@google.com>
Change-Id: I1714a77d292aad81bdc71982c88b2b067cfdada7
Diffstat (limited to 'zephyr/projects/corsola')
-rw-r--r-- | zephyr/projects/corsola/BUILD.py | 3 | ||||
-rw-r--r-- | zephyr/projects/corsola/gpio_kingler.dts | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/gpio_steelix.dts | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/i2c_kingler.dts | 1 | ||||
-rw-r--r-- | zephyr/projects/corsola/interrupts_kingler.dts | 5 | ||||
-rw-r--r-- | zephyr/projects/corsola/interrupts_krabby.dts | 7 | ||||
-rw-r--r-- | zephyr/projects/corsola/led_steelix.dts | 39 | ||||
-rw-r--r-- | zephyr/projects/corsola/motionsense_krabby.dts | 4 | ||||
-rw-r--r-- | zephyr/projects/corsola/motionsense_steelix.dts | 17 | ||||
-rw-r--r-- | zephyr/projects/corsola/npcx_keyboard.dts | 32 | ||||
-rw-r--r-- | zephyr/projects/corsola/prj.conf | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/prj_kingler.conf | 7 | ||||
-rw-r--r-- | zephyr/projects/corsola/prj_steelix.conf | 8 | ||||
-rw-r--r-- | zephyr/projects/corsola/src/kingler/led_steelix.c | 118 | ||||
-rw-r--r-- | zephyr/projects/corsola/src/kingler/usbc_config.c | 6 | ||||
-rw-r--r-- | zephyr/projects/corsola/src/usb_pd_policy.c | 3 |
16 files changed, 200 insertions, 56 deletions
diff --git a/zephyr/projects/corsola/BUILD.py b/zephyr/projects/corsola/BUILD.py index c75418f294..83ad865cb1 100644 --- a/zephyr/projects/corsola/BUILD.py +++ b/zephyr/projects/corsola/BUILD.py @@ -58,6 +58,7 @@ register_corsola_project( here / "interrupts_kingler.dts", here / "cbi_eeprom.dts", here / "gpio_kingler.dts", + here / "npcx_keyboard.dts", here / "led_kingler.dts", here / "motionsense_kingler.dts", here / "usbc_kingler.dts", @@ -77,8 +78,10 @@ register_corsola_project( here / "interrupts_kingler.dts", here / "cbi_eeprom.dts", here / "gpio_steelix.dts", + here / "npcx_keyboard.dts", here / "led_steelix.dts", here / "motionsense_kingler.dts", + here / "motionsense_steelix.dts", here / "usba_steelix.dts", here / "usbc_kingler.dts", here / "default_gpio_pinctrl_kingler.dts", diff --git a/zephyr/projects/corsola/gpio_kingler.dts b/zephyr/projects/corsola/gpio_kingler.dts index 6ef6f02e03..0199f985fa 100644 --- a/zephyr/projects/corsola/gpio_kingler.dts +++ b/zephyr/projects/corsola/gpio_kingler.dts @@ -91,7 +91,7 @@ lid_accel_int_l { gpios = <&gpiob 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>; }; - tablet_mode_l { + gpio_tablet_mode_l: tablet_mode_l { gpios = <&gpiob 2 GPIO_INPUT>; enum-name = "GPIO_TABLET_MODE_L"; }; diff --git a/zephyr/projects/corsola/gpio_steelix.dts b/zephyr/projects/corsola/gpio_steelix.dts index 29c1bbe75a..3e0375564f 100644 --- a/zephyr/projects/corsola/gpio_steelix.dts +++ b/zephyr/projects/corsola/gpio_steelix.dts @@ -98,7 +98,7 @@ lid_accel_int_l { gpios = <&gpiob 3 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>; }; - tablet_mode_l { + gpio_tablet_mode_l: tablet_mode_l { gpios = <&gpiob 2 GPIO_INPUT>; enum-name = "GPIO_TABLET_MODE_L"; }; diff --git a/zephyr/projects/corsola/i2c_kingler.dts b/zephyr/projects/corsola/i2c_kingler.dts index 843367668e..c832e55d2e 100644 --- a/zephyr/projects/corsola/i2c_kingler.dts +++ b/zephyr/projects/corsola/i2c_kingler.dts @@ -17,6 +17,7 @@ }; i2c_usb_c0: usb-c0 { i2c-port = <&i2c1_0>; + remote-port = <7>; enum-name = "I2C_PORT_USB_C0"; }; i2c_usb_c1: usb-c1 { diff --git a/zephyr/projects/corsola/interrupts_kingler.dts b/zephyr/projects/corsola/interrupts_kingler.dts index ac7da13e75..b33251624d 100644 --- a/zephyr/projects/corsola/interrupts_kingler.dts +++ b/zephyr/projects/corsola/interrupts_kingler.dts @@ -100,5 +100,10 @@ flags = <GPIO_INT_EDGE_FALLING>; handler = "bmi3xx_interrupt"; }; + int_tablet_mode: tablet_mode { + irq-pin = <&gpio_tablet_mode_l>; + flags = <GPIO_INT_EDGE_BOTH>; + handler = "gmr_tablet_switch_isr"; + }; }; }; diff --git a/zephyr/projects/corsola/interrupts_krabby.dts b/zephyr/projects/corsola/interrupts_krabby.dts index ddc9639d2b..900ce1611e 100644 --- a/zephyr/projects/corsola/interrupts_krabby.dts +++ b/zephyr/projects/corsola/interrupts_krabby.dts @@ -61,7 +61,7 @@ flags = <GPIO_INT_EDGE_FALLING>; handler = "icm42607_interrupt"; }; - int_accel: accel { + int_lid_imu: lid_imu { irq-pin = <&lid_accel_int_l>; flags = <GPIO_INT_EDGE_FALLING>; handler = "lis2dw12_interrupt"; @@ -91,11 +91,6 @@ flags = <GPIO_INT_EDGE_BOTH>; handler = "x_ec_interrupt"; }; - int_base_imu: base_imu { - irq-pin = <&base_imu_int_l>; - flags = <GPIO_INT_EDGE_FALLING>; - handler = "icm42607_interrupt"; - }; int_usb_c0_ppc_bc12: usb_c0_ppc_bc12 { irq-pin = <&usb_c0_ppc_bc12_int_odl>; flags = <GPIO_INT_EDGE_FALLING>; diff --git a/zephyr/projects/corsola/led_steelix.dts b/zephyr/projects/corsola/led_steelix.dts index 56a54862e6..31d17958d4 100644 --- a/zephyr/projects/corsola/led_steelix.dts +++ b/zephyr/projects/corsola/led_steelix.dts @@ -6,31 +6,14 @@ / { pwmleds { compatible = "pwm-leds"; - pwm_led0: pwm_led_0 { - pwms = <&pwm0 0 PWM_HZ(100) PWM_POLARITY_INVERTED - &pwm1 0 PWM_HZ(100) PWM_POLARITY_INVERTED - &pwm2 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; + led_battery_red: ec_led1_odl { + pwms = <&pwm0 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; }; - }; - - cros-pwmleds { - compatible = "cros-ec,pwm-leds"; - - leds = <&pwm_led0>; - frequency = <100>; - - color-map-red = <100 0 0>; - color-map-green = < 0 100 0>; - color-map-amber = <100 20 0>; - - brightness-range = <255 255 0 0 0 255>; - - #address-cells = <1>; - #size-cells = <0>; - - pwm_led_0@0 { - reg = <0>; - ec-led-name = "EC_LED_ID_BATTERY_LED"; + led_battery_green: ec_led2_odl { + pwms = <&pwm1 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; + }; + led_power_white: ec_led3_odl { + pwms = <&pwm4 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; }; }; }; @@ -59,14 +42,14 @@ pinctrl-names = "default"; }; -/* Blue LED */ -&pwm2_gpc4 { +/* White LED */ +&pwm4_gpb6 { drive-open-drain; }; -&pwm2 { +&pwm4 { status = "okay"; clock-bus = "NPCX_CLOCK_BUS_LFCLK"; - pinctrl-0 = <&pwm2_gpc4>; + pinctrl-0 = <&pwm4_gpb6>; pinctrl-names = "default"; }; diff --git a/zephyr/projects/corsola/motionsense_krabby.dts b/zephyr/projects/corsola/motionsense_krabby.dts index 730f1a938e..d369db460a 100644 --- a/zephyr/projects/corsola/motionsense_krabby.dts +++ b/zephyr/projects/corsola/motionsense_krabby.dts @@ -150,8 +150,6 @@ * list of GPIO interrupts that have to * be enabled at initial stage */ - sensor-irqs = <&int_base_imu>; - /* list of sensors in force mode */ - accel-force-mode-sensors = <&lid_accel>; + sensor-irqs = <&int_base_imu &int_lid_imu>; }; }; diff --git a/zephyr/projects/corsola/motionsense_steelix.dts b/zephyr/projects/corsola/motionsense_steelix.dts new file mode 100644 index 0000000000..70aa3679fb --- /dev/null +++ b/zephyr/projects/corsola/motionsense_steelix.dts @@ -0,0 +1,17 @@ +/* Copyright 2022 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. + */ + +&lid_rot_ref { + mat33 = <0 1 0 + 1 0 0 + 0 0 (-1)>; +}; + +&base_rot_ref { + mat33 = <1 0 0 + 0 (-1) 0 + 0 0 (-1)>; +}; + diff --git a/zephyr/projects/corsola/npcx_keyboard.dts b/zephyr/projects/corsola/npcx_keyboard.dts new file mode 100644 index 0000000000..d3fd354b8f --- /dev/null +++ b/zephyr/projects/corsola/npcx_keyboard.dts @@ -0,0 +1,32 @@ +/* Copyright 2022 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. + */ + +&cros_kb_raw { + status = "okay"; + /* No KSO2 (it's inverted and implemented by GPIO) */ + pinctrl-0 = < + &ksi0_gp31 + &ksi1_gp30 + &ksi2_gp27 + &ksi3_gp26 + &ksi4_gp25 + &ksi5_gp24 + &ksi6_gp23 + &ksi7_gp22 + &kso00_gp21 + &kso01_gp20 + &kso03_gp16 + &kso04_gp15 + &kso05_gp14 + &kso06_gp13 + &kso07_gp12 + &kso08_gp11 + &kso09_gp10 + &kso10_gp07 + &kso11_gp06 + &kso12_gp05 + >; + pinctrl-names = "default"; +}; diff --git a/zephyr/projects/corsola/prj.conf b/zephyr/projects/corsola/prj.conf index b9d07a7227..b26c01461e 100644 --- a/zephyr/projects/corsola/prj.conf +++ b/zephyr/projects/corsola/prj.conf @@ -15,7 +15,6 @@ CONFIG_PLATFORM_EC_KEYBOARD_PROTOCOL_MKBP=y CONFIG_PLATFORM_EC_KEYBOARD_COL2_INVERTED=y # MKBP -CONFIG_PLATFORM_EC_KEYBOARD_PROTOCOL_MKBP=y CONFIG_PLATFORM_EC_MKBP_EVENT=y CONFIG_PLATFORM_EC_MKBP_INPUT_DEVICES=y CONFIG_PLATFORM_EC_MKBP_USE_GPIO=y @@ -30,6 +29,7 @@ CONFIG_PLATFORM_EC_USB_PD_USB4=n CONFIG_PLATFORM_EC_USB_CHARGER_SINGLE_TASK=n # Power Seq +CONFIG_PLATFORM_EC_CHIPSET_RESUME_INIT_HOOK=y CONFIG_PLATFORM_EC_POWERSEQ_HOST_SLEEP=y CONFIG_PLATFORM_EC_POWER_SLEEP_FAILURE_DETECTION=y diff --git a/zephyr/projects/corsola/prj_kingler.conf b/zephyr/projects/corsola/prj_kingler.conf index 191a104cde..525d94a886 100644 --- a/zephyr/projects/corsola/prj_kingler.conf +++ b/zephyr/projects/corsola/prj_kingler.conf @@ -74,9 +74,6 @@ CONFIG_PLATFORM_EC_MATH_UTIL=y CONFIG_AP=y CONFIG_AP_ARM_MTK_MT8186=y CONFIG_PLATFORM_EC_POWERSEQ_MT8186=y - -# Treat 2nd reset from H1 as Power-On -CONFIG_PLATFORM_EC_BOARD_RESET_AFTER_POWER_ON=y CONFIG_PLATFORM_EC_POWERSEQ=y CONFIG_PLATFORM_EC_POWERSEQ_S4=n CONFIG_PLATFORM_EC_POWERSEQ_PP5000_CONTROL=n @@ -93,11 +90,14 @@ CONFIG_PLATFORM_EC_ACCEL_BMA4XX=y CONFIG_PLATFORM_EC_ACCEL_FIFO=y CONFIG_PLATFORM_EC_CONSOLE_CMD_ACCELS=y CONFIG_PLATFORM_EC_CONSOLE_CMD_ACCEL_INFO=y +CONFIG_PLATFORM_EC_GMR_TABLET_MODE=y CONFIG_PLATFORM_EC_LID_ANGLE=y CONFIG_PLATFORM_EC_LID_ANGLE_UPDATE=y CONFIG_PLATFORM_EC_LID_SWITCH=y CONFIG_PLATFORM_EC_MOTIONSENSE=y CONFIG_PLATFORM_EC_SENSOR_TIGHT_TIMESTAMPS=y +CONFIG_PLATFORM_EC_TABLET_MODE=y +CONFIG_PLATFORM_EC_TABLET_MODE_SWITCH=y # USBA CONFIG_PLATFORM_EC_USBA=y @@ -122,6 +122,7 @@ CONFIG_PLATFORM_EC_USB_PD_DEBUG_FIXED_LEVEL=y CONFIG_PLATFORM_EC_USB_PD_DEBUG_LEVEL=2 CONFIG_PLATFORM_EC_USB_PD_TCPM_ANX7447=y CONFIG_PLATFORM_EC_USB_PD_TCPM_RT1718S=y +CONFIG_PLATFORM_EC_USB_PD_TCPM_SBU=y CONFIG_PLATFORM_EC_USB_PD_VBUS_DETECT_TCPC=y CONFIG_PLATFORM_EC_USB_PD_VBUS_MEASURE_BY_BOARD=y diff --git a/zephyr/projects/corsola/prj_steelix.conf b/zephyr/projects/corsola/prj_steelix.conf index 5354381f9b..48971c9ed4 100644 --- a/zephyr/projects/corsola/prj_steelix.conf +++ b/zephyr/projects/corsola/prj_steelix.conf @@ -4,4 +4,10 @@ # Variant config CONFIG_BOARD_KINGLER=n -CONFIG_BOARD_STEELIX=y
\ No newline at end of file +CONFIG_BOARD_STEELIX=y + +# steelix only use D2, drop the workaround config for H1 +CONFIG_PLATFORM_EC_BOARD_RESET_AFTER_POWER_ON=n + +# LED +CONFIG_PLATFORM_EC_LED_PWM=n diff --git a/zephyr/projects/corsola/src/kingler/led_steelix.c b/zephyr/projects/corsola/src/kingler/led_steelix.c index a44f961441..2d2e1431a1 100644 --- a/zephyr/projects/corsola/src/kingler/led_steelix.c +++ b/zephyr/projects/corsola/src/kingler/led_steelix.c @@ -4,11 +4,26 @@ * * Battery LED control for Steelix */ + +#include <zephyr/drivers/pwm.h> +#include <zephyr/logging/log.h> + +#include "board_led.h" #include "common.h" -#include "ec_commands.h" #include "led_common.h" #include "led_onoff_states.h" -#include "led_pwm.h" +#include "util.h" + +LOG_MODULE_REGISTER(board_led, LOG_LEVEL_ERR); + +#define BOARD_LED_PWM_PERIOD_NS BOARD_LED_HZ_TO_PERIOD_NS(100) + +static const struct board_led_pwm_dt_channel board_led_battery_red = + BOARD_LED_PWM_DT_CHANNEL_INITIALIZER(DT_NODELABEL(led_battery_red)); +static const struct board_led_pwm_dt_channel board_led_battery_green = + BOARD_LED_PWM_DT_CHANNEL_INITIALIZER(DT_NODELABEL(led_battery_green)); +static const struct board_led_pwm_dt_channel board_led_power_white = + BOARD_LED_PWM_DT_CHANNEL_INITIALIZER(DT_NODELABEL(led_power_white)); __override const int led_charge_lvl_1 = 5; __override const int led_charge_lvl_2 = 97; @@ -18,6 +33,7 @@ __override struct led_descriptor [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} }, [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} }, + [STATE_DISCHARGE_S0_BAT_LOW] = {{LED_OFF, LED_INDEFINITE} }, [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} }, [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_RED, 1 * LED_ONE_SEC}, @@ -26,20 +42,110 @@ __override struct led_descriptor {EC_LED_COLOR_GREEN, 2 * LED_ONE_SEC} }, }; +__override const struct led_descriptor + led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES] = { + [PWR_LED_STATE_ON] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, + [PWR_LED_STATE_SUSPEND_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC}, + {LED_OFF, 0.5 * LED_ONE_SEC} }, + [PWR_LED_STATE_SUSPEND_NO_AC] = {{EC_LED_COLOR_WHITE, 3 * LED_ONE_SEC}, + {LED_OFF, 0.5 * LED_ONE_SEC} }, + [PWR_LED_STATE_OFF] = {{LED_OFF, LED_INDEFINITE} }, +}; + +const enum ec_led_id supported_led_ids[] = { + EC_LED_ID_BATTERY_LED, + EC_LED_ID_POWER_LED, +}; + +const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); + +static void board_led_pwm_set_duty(const struct board_led_pwm_dt_channel *ch, + int percent) +{ + uint32_t pulse_ns; + int rv; + + if (!device_is_ready(ch->dev)) { + LOG_ERR("PWM device %s not ready", ch->dev->name); + return; + } + + pulse_ns = DIV_ROUND_NEAREST(BOARD_LED_PWM_PERIOD_NS * percent, 100); + + LOG_DBG("Board LED PWM %s set percent (%d), pulse %d", + ch->dev->name, percent, pulse_ns); + + rv = pwm_set(ch->dev, ch->channel, BOARD_LED_PWM_PERIOD_NS, pulse_ns, + ch->flags); + if (rv) { + LOG_ERR("pwm_set() failed %s (%d)", ch->dev->name, rv); + } +} + __override void led_set_color_battery(enum ec_led_colors color) { switch (color) { case EC_LED_COLOR_RED: - set_pwm_led_color(EC_LED_ID_BATTERY_LED, EC_LED_COLOR_RED); + board_led_pwm_set_duty(&board_led_battery_red, 100); + board_led_pwm_set_duty(&board_led_battery_green, 0); break; case EC_LED_COLOR_GREEN: - set_pwm_led_color(EC_LED_ID_BATTERY_LED, EC_LED_COLOR_GREEN); + board_led_pwm_set_duty(&board_led_battery_red, 0); + board_led_pwm_set_duty(&board_led_battery_green, 100); break; case EC_LED_COLOR_AMBER: - set_pwm_led_color(EC_LED_ID_BATTERY_LED, EC_LED_COLOR_AMBER); + board_led_pwm_set_duty(&board_led_battery_red, 100); + board_led_pwm_set_duty(&board_led_battery_green, 20); break; default: /* LED_OFF and other unsupported colors */ - set_pwm_led_color(EC_LED_ID_BATTERY_LED, -1); + board_led_pwm_set_duty(&board_led_battery_red, 0); + board_led_pwm_set_duty(&board_led_battery_green, 0); break; } } + +__override void led_set_color_power(enum ec_led_colors color) +{ + switch (color) { + case EC_LED_COLOR_WHITE: + board_led_pwm_set_duty(&board_led_power_white, 100); + break; + default: + board_led_pwm_set_duty(&board_led_power_white, 0); + break; + } +} + +void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) +{ + if (led_id == EC_LED_ID_BATTERY_LED) { + brightness_range[EC_LED_COLOR_RED] = 1; + brightness_range[EC_LED_COLOR_GREEN] = 1; + brightness_range[EC_LED_COLOR_AMBER] = 1; + } else if (led_id == EC_LED_ID_POWER_LED) { + brightness_range[EC_LED_COLOR_WHITE] = 1; + } +} + +int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) +{ + if (led_id == EC_LED_ID_BATTERY_LED) { + if (brightness[EC_LED_COLOR_RED] != 0) { + led_set_color_battery(EC_LED_COLOR_RED); + } else if (brightness[EC_LED_COLOR_GREEN] != 0) { + led_set_color_battery(EC_LED_COLOR_GREEN); + } else if (brightness[EC_LED_COLOR_AMBER] != 0) { + led_set_color_battery(EC_LED_COLOR_AMBER); + } else { + led_set_color_battery(LED_OFF); + } + } else if (led_id == EC_LED_ID_POWER_LED) { + if (brightness[EC_LED_COLOR_WHITE] != 0) { + led_set_color_power(EC_LED_COLOR_WHITE); + } else { + led_set_color_power(LED_OFF); + } + } + + return EC_SUCCESS; +} diff --git a/zephyr/projects/corsola/src/kingler/usbc_config.c b/zephyr/projects/corsola/src/kingler/usbc_config.c index d710e36187..42aa0a31d6 100644 --- a/zephyr/projects/corsola/src/kingler/usbc_config.c +++ b/zephyr/projects/corsola/src/kingler/usbc_config.c @@ -192,12 +192,6 @@ __override int board_rt1718s_init(int port) RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_GPIO2_VBUS_CTRL, RT1718S_GPIO2_VBUS_CTRL_FRS_RX_VBUS, 0xFF)); - /* Turn on SBU switch */ - RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_RT2_SBU_CTRL_01, - RT1718S_RT2_SBU_CTRL_01_SBU_VIEN | - RT1718S_RT2_SBU_CTRL_01_SBU2_SWEN | - RT1718S_RT2_SBU_CTRL_01_SBU1_SWEN, - 0xFF)); /* Trigger GPIO 1/2 change when FRS signal received */ RETURN_ERROR(rt1718s_update_bits8(port, RT1718S_FRS_CTRL3, RT1718S_FRS_CTRL3_FRS_RX_WAIT_GPIO2 | diff --git a/zephyr/projects/corsola/src/usb_pd_policy.c b/zephyr/projects/corsola/src/usb_pd_policy.c index cdcb49ff2e..c9015de776 100644 --- a/zephyr/projects/corsola/src/usb_pd_policy.c +++ b/zephyr/projects/corsola/src/usb_pd_policy.c @@ -8,6 +8,7 @@ #include "chipset.h" #include "hooks.h" #include "timer.h" +#include "typec_control.h" #include "usb_dp_alt_mode.h" #include "usb_mux.h" #include "usb_pd.h" @@ -112,6 +113,8 @@ __override void svdm_dp_post_config(int port) { mux_state_t mux_mode = svdm_dp_get_mux_mode(port); + typec_set_sbu(port, true); + /* * Prior to post-config, the mux will be reset to safe mode, and this * will break mux config and aux path config we did in the first DP |