diff options
-rw-r--r-- | baseboard/cherry/baseboard.c | 38 | ||||
-rw-r--r-- | baseboard/cherry/baseboard.h | 11 | ||||
-rw-r--r-- | baseboard/cherry/usb_pd_policy.c | 9 |
3 files changed, 10 insertions, 48 deletions
diff --git a/baseboard/cherry/baseboard.c b/baseboard/cherry/baseboard.c index 4b20681455..692c14cf73 100644 --- a/baseboard/cherry/baseboard.c +++ b/baseboard/cherry/baseboard.c @@ -373,28 +373,6 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { }, }; -int rt1718s_gpio_ctrl(enum rt1718s_gpio_state state) -{ - const int port = 1; - - switch (state) { - case RT1718S_GPIO_DISABLED: - rt1718s_gpio_set_level(port, RT1718S_GPIO1, 1); - rt1718s_gpio_set_level(port, RT1718S_GPIO2, 0); - break; - case RT1718S_GPIO_ENABLE_SINK: - rt1718s_gpio_set_level(port, RT1718S_GPIO1, 0); - rt1718s_gpio_set_level(port, RT1718S_GPIO2, 0); - break; - case RT1718S_GPIO_ENABLE_SOURCE: - rt1718s_gpio_set_level(port, RT1718S_GPIO1, 1); - rt1718s_gpio_set_level(port, RT1718S_GPIO2, 1); - break; - } - - return EC_SUCCESS; -} - __override int board_rt1718s_init(int port) { /* set GPIO 1~3 as push pull, as output, output low. */ @@ -495,6 +473,7 @@ int board_set_active_charge_port(int port) if (ppc_vbus_sink_enable(i, 0)) CPRINTS("Disabling C%d as sink failed.", i); } + rt1718s_gpio_set_level(1, GPIO_EN_USB_C1_VBUS_L, 1); return EC_SUCCESS; } @@ -525,18 +504,7 @@ int board_set_active_charge_port(int port) return EC_ERROR_UNKNOWN; } - /* - * RT1718S gpio control: - * If new charge port is port 1, enable sink path. - * If new charge port is not port 1, and port 1 is not sourcing, - * turn off both paths. - * Otherwise: port 1 is sourcing, don't change. - */ - if (port == 1) - RETURN_ERROR(rt1718s_gpio_ctrl(RT1718S_GPIO_ENABLE_SINK)); - else if (port != 1 && !ppc_is_sourcing_vbus(1)) - /* error ignored to make port 0 work without sub-board */ - rt1718s_gpio_ctrl(RT1718S_GPIO_DISABLED); + rt1718s_gpio_set_level(1, GPIO_EN_USB_C1_VBUS_L, !(port == 1)); return EC_SUCCESS; } @@ -602,7 +570,7 @@ __override int board_pd_set_frs_enable(int port, int enable) * of set_level (= i2c_update) to save one read operation in * FRS path. */ - rt1718s_gpio_set_flags(port, RT1718S_GPIO3, + rt1718s_gpio_set_flags(port, GPIO_EN_USB_C1_FRS, enable ? GPIO_OUT_HIGH : GPIO_OUT_LOW); return EC_SUCCESS; } diff --git a/baseboard/cherry/baseboard.h b/baseboard/cherry/baseboard.h index 05292fa851..349a10997d 100644 --- a/baseboard/cherry/baseboard.h +++ b/baseboard/cherry/baseboard.h @@ -231,13 +231,10 @@ enum pwm_channel { void board_reset_pd_mcu(void); void rt1718s_tcpc_interrupt(enum gpio_signal signal); -enum rt1718s_gpio_state { - RT1718S_GPIO_DISABLED, - RT1718S_GPIO_ENABLE_SINK, - RT1718S_GPIO_ENABLE_SOURCE, -}; - -int rt1718s_gpio_ctrl(enum rt1718s_gpio_state state); +/* RT1718S gpio to pin name mapping */ +#define GPIO_EN_USB_C1_VBUS_L RT1718S_GPIO1 +#define GPIO_EN_USB_C1_5V_OUT RT1718S_GPIO2 +#define GPIO_EN_USB_C1_FRS RT1718S_GPIO3 #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BASEBOARD_H */ diff --git a/baseboard/cherry/usb_pd_policy.c b/baseboard/cherry/usb_pd_policy.c index a520228ef6..0c7f4dcee5 100644 --- a/baseboard/cherry/usb_pd_policy.c +++ b/baseboard/cherry/usb_pd_policy.c @@ -217,7 +217,7 @@ void pd_power_supply_reset(int port) pd_set_vbus_discharge(port, 1); if (port == 1) - rt1718s_gpio_ctrl(RT1718S_GPIO_DISABLED); + rt1718s_gpio_set_level(port, GPIO_EN_USB_C1_5V_OUT, 0); /* Notify host of power info change. */ pd_send_host_event(PD_EVENT_POWER_CHANGE); @@ -245,11 +245,8 @@ int pd_set_power_supply_ready(int port) if (rv) return rv; - if (port == 1) { - rv = rt1718s_gpio_ctrl(RT1718S_GPIO_ENABLE_SOURCE); - if (rv) - return rv; - } + if (port == 1) + rt1718s_gpio_set_level(port, GPIO_EN_USB_C1_5V_OUT, 1); /* Notify host of power info change. */ pd_send_host_event(PD_EVENT_POWER_CHANGE); |