summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorDaniel Gonzalez <daniel.d.gonzalez@intel.com>2019-04-01 13:22:30 -0700
committerCommit Bot <commit-bot@chromium.org>2019-08-15 19:06:51 +0000
commitc0ec57469c658ba82fce583ecfd0af189cc6cdd8 (patch)
tree293dd0887d1ef48b30b3452a9bdf83d03140acf3 /baseboard
parent5acd037d36194ff9e9b7184f00e9e538f9683dce (diff)
downloadchrome-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')
-rw-r--r--baseboard/intelrvp/baseboard.c7
-rw-r--r--baseboard/intelrvp/baseboard.h28
-rw-r--r--baseboard/intelrvp/chg_usb_pd.c16
-rw-r--r--baseboard/intelrvp/ite_ec.c6
-rw-r--r--baseboard/intelrvp/retimer.c2
-rw-r--r--baseboard/intelrvp/usb_pd_policy.c3
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);