diff options
author | Daniel Gonzalez <daniel.d.gonzalez@intel.com> | 2019-04-01 13:22:30 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-08-15 19:06:51 +0000 |
commit | c0ec57469c658ba82fce583ecfd0af189cc6cdd8 (patch) | |
tree | 293dd0887d1ef48b30b3452a9bdf83d03140acf3 /baseboard/intelrvp | |
parent | 5acd037d36194ff9e9b7184f00e9e538f9683dce (diff) | |
download | chrome-ec-c0ec57469c658ba82fce583ecfd0af189cc6cdd8.tar.gz |
tglrvp_ite: Add TGL-U/Y RVP base code
Added TGL-U/Y RVP base code using ITE EC.
Following features are enabled.
1. TCPC + retimer
2. Charger
3. Battery
4. Power sequencing
5. Host communication
6. LED
7. Keyboard
BUG=b:138597987
BRANCH=none
TEST=Both TGLRVP U&Y can boot to ChromeOS
Change-Id: Idf6be38796c26b31be6e13485a63ec13487bf954
Signed-off-by: Daniel Gonzalez <daniel.d.gonzalez@intel.com>
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1726943
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'baseboard/intelrvp')
-rw-r--r-- | baseboard/intelrvp/baseboard.c | 7 | ||||
-rw-r--r-- | baseboard/intelrvp/baseboard.h | 28 | ||||
-rw-r--r-- | baseboard/intelrvp/chg_usb_pd.c | 16 | ||||
-rw-r--r-- | baseboard/intelrvp/ite_ec.c | 6 | ||||
-rw-r--r-- | baseboard/intelrvp/retimer.c | 2 | ||||
-rw-r--r-- | baseboard/intelrvp/usb_pd_policy.c | 3 |
6 files changed, 45 insertions, 17 deletions
diff --git a/baseboard/intelrvp/baseboard.c b/baseboard/intelrvp/baseboard.c index af1edd2b9d..c403edc1f9 100644 --- a/baseboard/intelrvp/baseboard.c +++ b/baseboard/intelrvp/baseboard.c @@ -168,6 +168,13 @@ static void board_init(void) } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_LAST); +static void board_interrupts_init(void) +{ + /* DC Jack interrupt */ + gpio_enable_interrupt(GPIO_DC_JACK_PRESENT); +} +DECLARE_HOOK(HOOK_INIT, board_interrupts_init, HOOK_PRIO_FIRST); + int ioexpander_read_intelrvp_version(int *port0, int *port1) { if (pca9555_read(I2C_PORT_PCA9555_BOARD_ID_GPIO, diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h index b4bfbc7153..016c7543f0 100644 --- a/baseboard/intelrvp/baseboard.h +++ b/baseboard/intelrvp/baseboard.h @@ -29,6 +29,7 @@ /* EC console commands */ #define CONFIG_CMD_CHARGER_DUMP +#define CONFIG_CMD_KEYBOARD /* Port80 display */ #define CONFIG_MAX695X_SEVEN_SEGMENT_DISPLAY @@ -56,6 +57,8 @@ /* Keyboard */ #define CONFIG_KEYBOARD_BOARD_CONFIG #define CONFIG_KEYBOARD_PROTOCOL_8042 +#define CONFIG_KEYBOARD_COL2_INVERTED +#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2 /* UART */ #define CONFIG_LOW_POWER_IDLE @@ -64,7 +67,7 @@ /* BC1.2 config */ #ifdef HAS_TASK_USB_CHG_P0 -#define CONFIG_CHARGE_RAMP_HW + #define CONFIG_CHARGE_RAMP_HW #endif /* USB PD config */ @@ -78,6 +81,10 @@ #define CONFIG_USB_POWER_DELIVERY /* USB MUX */ +#ifdef CONFIG_USB_MUX_VIRTUAL + #define CONFIG_HOSTCMD_LOCATE_CHIP + #define CONFIG_INTEL_VIRTUAL_MUX +#endif #define CONFIG_USBC_SS_MUX /* SoC / PCH */ @@ -116,18 +123,18 @@ /* Temperature sensor */ #ifdef CONFIG_TEMP_SENSOR -#define CONFIG_STEINHART_HART_3V0_22K6_47K_4050B -#define CONFIG_THERMISTOR -#define CONFIG_THROTTLE_AP + #define CONFIG_STEINHART_HART_3V0_22K6_47K_4050B + #define CONFIG_THERMISTOR + #define CONFIG_THROTTLE_AP #ifdef CONFIG_PECI -#define CONFIG_PECI_COMMON -#endif -#endif + #define CONFIG_PECI_COMMON +#endif /* CONFIG_PECI */ +#endif /* CONFIG_TEMP_SENSOR */ /* Fan features */ #ifdef CONFIG_FANS -#undef CONFIG_FAN_INIT_SPEED -#define CONFIG_FAN_INIT_SPEED 50 + #undef CONFIG_FAN_INIT_SPEED + #define CONFIG_FAN_INIT_SPEED 50 #endif /* I2C ports */ @@ -135,11 +142,11 @@ #define CONFIG_I2C_MASTER /* EC exclude modules */ -#undef CONFIG_WATCHDOG #ifndef __ASSEMBLER__ #include "gpio_signal.h" +#include "module_id.h" #include "registers.h" #include "usb_pd_tcpm.h" @@ -217,6 +224,7 @@ void vbus1_evt(enum gpio_signal signal); void board_charging_enable(int port, int enable); void board_vbus_enable(int port, int enable); int ioexpander_read_intelrvp_version(int *port0, int *port1); +void board_dc_jack_interrupt(enum gpio_signal signal); #endif /* !__ASSEMBLER__ */ diff --git a/baseboard/intelrvp/chg_usb_pd.c b/baseboard/intelrvp/chg_usb_pd.c index 052fe1caca..ac3cdd78f3 100644 --- a/baseboard/intelrvp/chg_usb_pd.c +++ b/baseboard/intelrvp/chg_usb_pd.c @@ -20,7 +20,7 @@ static int board_charger_port_is_sourcing_vbus(int port) int src_en; /* DC Jack can't source VBUS */ - if (port == DC_JACK_PORT_0 || port == CHARGE_PORT_NONE) + if (port == DEDICATED_CHARGE_PORT || port == CHARGE_PORT_NONE) return 0; src_en = gpio_get_level(tcpc_gpios[port].src.pin); @@ -45,7 +45,7 @@ int pd_snk_is_vbus_provided(int port) { int vbus_intr; - if (port == DC_JACK_PORT_0) + if (port == DEDICATED_CHARGE_PORT) return 1; vbus_intr = gpio_get_level(tcpc_gpios[port].vbus.pin); @@ -95,9 +95,13 @@ static void board_dc_jack_handle(void) } charge_manager_update_charge(CHARGE_SUPPLIER_DEDICATED, - DC_JACK_PORT_0, &charge_dc_jack); + DEDICATED_CHARGE_PORT, &charge_dc_jack); +} + +void board_dc_jack_interrupt(enum gpio_signal signal) +{ + board_dc_jack_handle(); } -DECLARE_HOOK(HOOK_AC_CHANGE, board_dc_jack_handle, HOOK_PRIO_FIRST); static void board_charge_init(void) { @@ -137,7 +141,7 @@ int board_set_active_charge_port(int port) * When the Type-C is active port, hardware circuit will * block DC jack from enabling +VADP_OUT. */ - if (port != DC_JACK_PORT_0 && board_dc_jack_present()) { + if (port != DEDICATED_CHARGE_PORT && board_dc_jack_present()) { CPRINTS("DC Jack present, Skip enable p%d", port); return EC_ERROR_INVAL; } @@ -151,7 +155,7 @@ int board_set_active_charge_port(int port) } /* Enable charging port */ - if (port != DC_JACK_PORT_0 && port != CHARGE_PORT_NONE) + if (port != DEDICATED_CHARGE_PORT && port != CHARGE_PORT_NONE) board_charging_enable(port, 1); CPRINTS("New chg p%d", port); diff --git a/baseboard/intelrvp/ite_ec.c b/baseboard/intelrvp/ite_ec.c index 67ae77eed0..74ee7e3208 100644 --- a/baseboard/intelrvp/ite_ec.c +++ b/baseboard/intelrvp/ite_ec.c @@ -19,12 +19,18 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_COUNT] = { .bus_type = EC_BUS_TYPE_EMBEDDED, /* TCPC is embedded within EC so no i2c config needed */ .drv = &it83xx_tcpm_drv, +#ifdef CONFIG_INTEL_VIRTUAL_MUX + .usb23 = TYPE_C_PORT_0_USB2_NUM | (TYPE_C_PORT_0_USB3_NUM << 4), +#endif }, #ifdef HAS_TASK_PD_C1 [TYPE_C_PORT_1] = { .bus_type = EC_BUS_TYPE_EMBEDDED, /* TCPC is embedded within EC so no i2c config needed */ .drv = &it83xx_tcpm_drv, +#ifdef CONFIG_INTEL_VIRTUAL_MUX + .usb23 = TYPE_C_PORT_1_USB2_NUM | (TYPE_C_PORT_1_USB3_NUM << 4), +#endif }, #endif /* HAS_TASK_PD_C1 */ }; diff --git a/baseboard/intelrvp/retimer.c b/baseboard/intelrvp/retimer.c index 4317924d41..eb5728693f 100644 --- a/baseboard/intelrvp/retimer.c +++ b/baseboard/intelrvp/retimer.c @@ -14,6 +14,7 @@ struct bb_retimer bb_retimers[CONFIG_USB_PD_PORT_COUNT] = { [TYPE_C_PORT_0] = { .i2c_port = I2C_PORT0_BB_RETIMER, .i2c_addr = I2C_PORT0_BB_RETIMER_ADDR, + .shared_nvm = USB_PORT0_BB_RETIMER_SHARED_NVM, .usb_ls_en_gpio = GPIO_USB_C0_LS_EN, .retimer_rst_gpio = GPIO_USB_C0_RETIMER_RST, .force_power_gpio = GPIO_USB_C0_RETIMER_FORCE_PWR, @@ -22,6 +23,7 @@ struct bb_retimer bb_retimers[CONFIG_USB_PD_PORT_COUNT] = { [TYPE_C_PORT_1] = { .i2c_port = I2C_PORT1_BB_RETIMER, .i2c_addr = I2C_PORT1_BB_RETIMER_ADDR, + .shared_nvm = USB_PORT1_BB_RETIMER_SHARED_NVM, .usb_ls_en_gpio = GPIO_USB_C1_LS_EN, .retimer_rst_gpio = GPIO_USB_C1_RETIMER_RST, .force_power_gpio = GPIO_USB_C1_RETIMER_FORCE_PWR, diff --git a/baseboard/intelrvp/usb_pd_policy.c b/baseboard/intelrvp/usb_pd_policy.c index ddc9097084..e0255ebc6b 100644 --- a/baseboard/intelrvp/usb_pd_policy.c +++ b/baseboard/intelrvp/usb_pd_policy.c @@ -19,8 +19,9 @@ const uint32_t pd_src_pdo[] = { PDO_FIXED(5000, 1500, PDO_FIXED_FLAGS), }; const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo); + const uint32_t pd_src_pdo_max[] = { - PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS), + PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS), }; const int pd_src_pdo_max_cnt = ARRAY_SIZE(pd_src_pdo_max); |