diff options
author | Josh Tsai <Josh_Tsai@compal.corp-partner.google.com> | 2021-05-04 21:13:14 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-05-05 07:03:48 +0000 |
commit | 47546a1431877e82d82405e1a830e1f48ca1b04e (patch) | |
tree | 9f0ef8b0fd19b25d44f6b685f6d7a003cd7200ad /board | |
parent | 90ff2e74092bc13b9ef6eee8efddaed5670df1d5 (diff) | |
download | chrome-ec-47546a1431877e82d82405e1a830e1f48ca1b04e.tar.gz |
Cret: Removed PD port 1 configuration and modified HDMI gpio setting
Due to cret only support a USB PD port 0 on MB side, so remove the
PD port 1 configuration in board layer.
Also change the GPIOF5 and GPIO92 to HDMI function.
BUG=b:186393859,b:185009499
BRANCH=dedede
TEST=DUT can power on, and HDMI function is normal.
Signed-off-by: Josh Tsai <Josh_Tsai@compal.corp-partner.google.com>
Change-Id: I477a157aeb9115fa5b827a1412f0862c480207d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2870892
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Elthan Huang <elthan_huang@compal.corp-partner.google.com>
Commit-Queue: Josh Tsai <josh_tsai@compal.corp-partner.google.com>
Tested-by: Josh Tsai <josh_tsai@compal.corp-partner.google.com>
Diffstat (limited to 'board')
-rw-r--r-- | board/cret/board.c | 120 | ||||
-rw-r--r-- | board/cret/board.h | 24 | ||||
-rw-r--r-- | board/cret/ec.tasklist | 5 | ||||
-rw-r--r-- | board/cret/gpio.inc | 6 |
4 files changed, 13 insertions, 142 deletions
diff --git a/board/cret/board.c b/board/cret/board.c index a01fa05cea..6fe4fa0147 100644 --- a/board/cret/board.c +++ b/board/cret/board.c @@ -18,7 +18,6 @@ #include "driver/accelgyro_lsm6dsm.h" #include "driver/bc12/pi3usb9201.h" #include "driver/charger/isl923x.h" -#include "driver/retimer/nb7v904m.h" #include "driver/tcpm/raa489000.h" #include "driver/tcpm/tcpci.h" #include "driver/usb_mux/pi3usb3x532.h" @@ -87,41 +86,6 @@ static void usb_c0_interrupt(enum gpio_signal s) } -/* C1 interrupt line shared by BC 1.2, TCPC, and charger */ -static void check_c1_line(void); -DECLARE_DEFERRED(check_c1_line); - -static void notify_c1_chips(void) -{ - schedule_deferred_pd_interrupt(1); - task_set_event(TASK_ID_USB_CHG_P1, USB_CHG_EVENT_BC12); -} - -static void check_c1_line(void) -{ - /* - * If line is still being held low, see if there's more to process from - * one of the chips. - */ - if (!gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) { - notify_c1_chips(); - hook_call_deferred(&check_c1_line_data, INT_RECHECK_US); - } -} - -static void sub_usb_c1_interrupt(enum gpio_signal s) -{ - /* Cancel any previous calls to check the interrupt line */ - hook_call_deferred(&check_c1_line_data, -1); - - /* Notify all chips using this line that an interrupt came in */ - notify_c1_chips(); - - /* Check the line again in 5ms */ - hook_call_deferred(&check_c1_line_data, INT_RECHECK_US); - -} - static void sub_hdmi_hpd_interrupt(enum gpio_signal s) { int hdmi_hpd_odl = gpio_get_level(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL); @@ -171,18 +135,6 @@ void board_init(void) gpio_enable_interrupt(GPIO_USB_C0_INT_ODL); check_c0_line(); - /* Disable i2c on HDMI pins */ - gpio_config_pin(MODULE_I2C, - GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, 0); - gpio_config_pin(MODULE_I2C, - GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0); - - /* Set HDMI and sub-rail enables to output */ - gpio_set_flags(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, - chipset_in_state(CHIPSET_STATE_ON) ? - GPIO_ODR_LOW : GPIO_ODR_HIGH); - gpio_set_flags(GPIO_SUB_C1_INT_EN_RAILS_ODL, GPIO_ODR_HIGH); - /* Enable interrupt for passing through HPD */ gpio_enable_interrupt(GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL); @@ -199,13 +151,15 @@ DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); /* Enable HDMI any time the SoC is on */ static void hdmi_enable(void) { - gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 0); + gpio_set_level(GPIO_EC_HDMI_EN_ODL, 0); + gpio_set_level(GPIO_HDMI_PP3300_EN, 1); } DECLARE_HOOK(HOOK_CHIPSET_STARTUP, hdmi_enable, HOOK_PRIO_DEFAULT); static void hdmi_disable(void) { - gpio_set_level(GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, 1); + gpio_set_level(GPIO_EC_HDMI_EN_ODL, 1); + gpio_set_level(GPIO_HDMI_PP3300_EN, 0); } DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, hdmi_disable, HOOK_PRIO_DEFAULT); @@ -261,30 +215,16 @@ __override void board_power_5v_enable(int enable) */ set_5v_gpio(!!enable); - if (get_cbi_fw_config_db() == DB_1A_HDMI) { - gpio_set_level(GPIO_SUB_C1_INT_EN_RAILS_ODL, !enable); - } else { - if (isl923x_set_comparator_inversion(1, !!enable)) - CPRINTS("Failed to %sable sub rails!", enable ? - "en" : "dis"); - } - } __override uint8_t board_get_usb_pd_port_count(void) { - if (get_cbi_fw_config_db() == DB_1A_HDMI) - return CONFIG_USB_PD_PORT_MAX_COUNT - 1; - else - return CONFIG_USB_PD_PORT_MAX_COUNT; + return CONFIG_USB_PD_PORT_MAX_COUNT; } __override uint8_t board_get_charger_chip_count(void) { - if (get_cbi_fw_config_db() == DB_1A_HDMI) - return CHARGER_NUM - 1; - else - return CHARGER_NUM; + return CHARGER_NUM; } int board_is_sourcing_vbus(int port) @@ -500,12 +440,6 @@ const struct charger_config_t chg_chips[] = { .i2c_addr_flags = ISL923X_ADDR_FLAGS, .drv = &isl923x_drv, }, - - { - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = ISL923X_ADDR_FLAGS, - .drv = &isl923x_drv, - }, }; const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { @@ -514,12 +448,6 @@ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, .flags = PI3USB9201_ALWAYS_POWERED, }, - - { - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = PI3USB9201_I2C_ADDR_3_FLAGS, - .flags = PI3USB9201_ALWAYS_POWERED, - }, }; /* PWM channels. Must be in the exactly same order as in enum pwm_channel. */ @@ -554,23 +482,6 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { .flags = TCPC_FLAGS_TCPCI_REV2_0, .drv = &raa489000_tcpm_drv, }, - - { - .bus_type = EC_BUS_TYPE_I2C, - .i2c_info = { - .port = I2C_PORT_SUB_USB_C1, - .addr_flags = RAA489000_TCPC0_I2C_FLAGS, - }, - .flags = TCPC_FLAGS_TCPCI_REV2_0, - .drv = &raa489000_tcpm_drv, - }, -}; - -const struct usb_mux usbc1_retimer = { - .usb_port = 1, - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = NB7V904M_I2C_ADDR0, - .driver = &nb7v904m_usb_redriver_drv, }; const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { { @@ -579,13 +490,6 @@ const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { .i2c_addr_flags = PI3USB3X532_I2C_ADDR0, .driver = &pi3usb3x532_usb_mux_driver, }, - { - .usb_port = 1, - .i2c_port = I2C_PORT_SUB_USB_C1, - .i2c_addr_flags = PI3USB3X532_I2C_ADDR0, - .driver = &pi3usb3x532_usb_mux_driver, - .next_mux = &usbc1_retimer, - } }; uint16_t tcpc_get_alert_status(void) @@ -609,18 +513,6 @@ uint16_t tcpc_get_alert_status(void) } } - if (board_get_usb_pd_port_count() > 1 && - !gpio_get_level(GPIO_SUB_C1_INT_EN_RAILS_ODL)) { - if (!tcpc_read16(1, TCPC_REG_ALERT, ®val)) { - /* TCPCI spec Rev 1.0 says to ignore bits 14:12. */ - if (!(tcpc_config[1].flags & TCPC_FLAGS_TCPCI_REV2_0)) - regval &= ~((1 << 14) | (1 << 13) | (1 << 12)); - - if (regval) - status |= PD_STATUS_TCPC_ALERT_1; - } - } - return status; } diff --git a/board/cret/board.h b/board/cret/board.h index 899f315096..a2deef2e99 100644 --- a/board/cret/board.h +++ b/board/cret/board.h @@ -32,9 +32,6 @@ #define CONFIG_CHARGER_RAA489000 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 10 #define CONFIG_CHARGER_SENSE_RESISTOR 10 -#define CONFIG_OCPC_DEF_RBATT_MOHMS 22 /* R_DS(on) 11.6mOhm + 10mOhm sns rstr */ -#define CONFIG_OCPC -#undef CONFIG_CHARGER_SINGLE_CHIP #undef CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE #define CONFIG_USB_PD_TCPC_LPM_EXIT_DEBOUNCE (100 * MSEC) @@ -44,7 +41,8 @@ * Note this line might already have its pull up disabled for HDMI DBs, but * it should be fine to set again before z-state. */ -#define GPIO_USB_C1_INT_ODL GPIO_SUB_C1_INT_EN_RAILS_ODL +#define GPIO_EC_HDMI_EN_ODL GPIO_EC_I2C_SBU_USB_C1_SCL +#define GPIO_HDMI_PP3300_EN GPIO_SUB_USB_C1_INT_ODL /* LED */ #define CONFIG_LED_PWM @@ -64,10 +62,9 @@ /* USB */ #define CONFIG_BC12_DETECT_PI3USB9201 -#define CONFIG_USBC_RETIMER_NB7V904M /* USB PD */ -#define CONFIG_USB_PD_PORT_MAX_COUNT 2 +#define CONFIG_USB_PD_PORT_MAX_COUNT 1 #define CONFIG_USB_PD_TCPM_RAA489000 /* USB defines specific to external TCPCs */ @@ -103,15 +100,6 @@ #define I2C_ADDR_EEPROM_FLAGS 0x50 /* 7b address */ -/* - * I2C pin names for baseboard - * - * Note: these lines will be set as i2c on start-up, but this should be - * okay since they're ODL. - */ -#define GPIO_EC_I2C_SUB_USB_C1_SCL GPIO_EC_I2C_SUB_C1_SCL_HDMI_EN_ODL -#define GPIO_EC_I2C_SUB_USB_C1_SDA GPIO_EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL - /* Sensors */ #define CONFIG_CMD_ACCELS #define CONFIG_CMD_ACCEL_INFO @@ -143,12 +131,6 @@ #include "gpio_signal.h" #include "registers.h" -enum chg_id { - CHARGER_PRIMARY, - CHARGER_SECONDARY, - CHARGER_NUM, -}; - enum adc_channel { ADC_TEMP_SENSOR_1, /* ADC0 */ ADC_TEMP_SENSOR_2, /* ADC1 */ diff --git a/board/cret/ec.tasklist b/board/cret/ec.tasklist index d4fb416bce..ee5333eb17 100644 --- a/board/cret/ec.tasklist +++ b/board/cret/ec.tasklist @@ -11,7 +11,6 @@ TASK_ALWAYS(HOOKS, hook_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, LARGER_TASK_STACK_SIZE) \ - TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 1, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ @@ -20,6 +19,4 @@ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(POWERBTN, power_button_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(PD_C0, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_C1, pd_task, NULL, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) \ - TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, ULTRA_TASK_STACK_SIZE) + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, ULTRA_TASK_STACK_SIZE) diff --git a/board/cret/gpio.inc b/board/cret/gpio.inc index 085c8e95b0..11efceb32f 100644 --- a/board/cret/gpio.inc +++ b/board/cret/gpio.inc @@ -26,7 +26,6 @@ GPIO_INT(PG_PP1050_ST_OD, PIN(4, 2), GPIO_INT_BOTH, power_signal_interrupt) /* USB-C interrupts */ GPIO_INT(USB_C0_INT_ODL, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb_c0_interrupt) -GPIO_INT(SUB_C1_INT_EN_RAILS_ODL, PIN(F, 5), GPIO_INT_FALLING | GPIO_PULL_UP, sub_usb_c1_interrupt) /* C1 interrupt OR 5V power en */ GPIO_INT(EC_I2C_SUB_C1_SDA_HDMI_HPD_ODL, PIN(9, 1), GPIO_INT_BOTH, sub_hdmi_hpd_interrupt) /* C1 I2C SDA OR HDMI_HPD */ GPIO_INT(USB_C0_CCSBU_OVP_ODL, PIN(A, 2), GPIO_INT_FALLING | GPIO_PULL_UP, c0_ccsbu_ovp_interrupt) /* Fault protection */ @@ -51,7 +50,6 @@ GPIO(EC_I2C_SENSOR_SCL, PIN(B, 5), GPIO_INPUT) GPIO(EC_I2C_SENSOR_SDA, PIN(B, 4), GPIO_INPUT) GPIO(EC_I2C_USB_C0_SCL, PIN(9, 0), GPIO_INPUT) GPIO(EC_I2C_USB_C0_SDA, PIN(8, 7), GPIO_INPUT) -GPIO(EC_I2C_SUB_C1_SCL_HDMI_EN_ODL, PIN(9, 2), GPIO_INPUT) /* C1 I2C SCL OR HDMI en */ /* Misc Enables */ GPIO(EN_VCCIO_EXT, PIN(6, 1), GPIO_OUT_LOW) @@ -63,6 +61,8 @@ GPIO(EN_SLP_Z, PIN(8, 3), GPIO_OUT_LOW) GPIO(EN_BL_OD, PIN(D, 3), GPIO_ODR_LOW) GPIO(IMVP9_PE, PIN(E, 0), GPIO_OUT_LOW) GPIO(ECH1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) +GPIO(SUB_USB_C1_INT_ODL, PIN(F, 5), GPIO_OUT_LOW) /* 5V power en */ +GPIO(EC_I2C_SBU_USB_C1_SCL, PIN(9, 2), GPIO_ODR_LOW) /* HDMI en */ /* Power Sequencing */ GPIO(EC_AP_PSYS, PIN(B, 7), GPIO_OUT_LOW) @@ -121,7 +121,7 @@ ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART1 */ /* I2C */ ALTERNATE(PIN_MASK(B, 0x3C), 0, MODULE_I2C, 0) /* I2C7,I2C0 */ ALTERNATE(PIN_MASK(3, 0x48), 0, MODULE_I2C, 0) /* I2C5 */ -ALTERNATE(PIN_MASK(9, 0x07), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */ +ALTERNATE(PIN_MASK(9, 0x01), 0, MODULE_I2C, 0) /* I2C2, I2C1 SCL */ ALTERNATE(PIN_MASK(8, 0x80), 0, MODULE_I2C, 0) /* I2C1 SDA */ /* NC pins, enable internal pull-up to avoid floating state. */ |