diff options
Diffstat (limited to 'board/jslrvp_ite')
-rw-r--r-- | board/jslrvp_ite/battery.c | 77 | ||||
-rw-r--r-- | board/jslrvp_ite/board.c | 174 | ||||
-rw-r--r-- | board/jslrvp_ite/board.h | 99 | ||||
-rw-r--r-- | board/jslrvp_ite/build.mk | 16 | ||||
-rw-r--r-- | board/jslrvp_ite/ec.tasklist | 23 | ||||
-rw-r--r-- | board/jslrvp_ite/gpio.inc | 184 | ||||
-rw-r--r-- | board/jslrvp_ite/vif_override.xml | 3 |
7 files changed, 576 insertions, 0 deletions
diff --git a/board/jslrvp_ite/battery.c b/board/jslrvp_ite/battery.c new file mode 100644 index 0000000000..908a02843f --- /dev/null +++ b/board/jslrvp_ite/battery.c @@ -0,0 +1,77 @@ +/* Copyright 2020 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. + * + * Battery pack vendor provided charging profile + */ + +#include "battery_fuel_gauge.h" +#include "battery_smart.h" +#include "common.h" +#include "util.h" + +const struct board_batt_params board_battery_info[] = { + /* + * Simplo Battery (SMP-HHP-408) Information + * Fuel gauge: BQ40Z50 + */ + [BATTERY_SIMPLO_SMP_HHP_408] = { + .fuel_gauge = { + .manuf_name = "SMP-HHP-408", + .ship_mode = { + .reg_addr = 0x00, + .reg_data = { 0x0010, 0x0010 }, + }, + .fet = { + .reg_addr = SB_BATTERY_STATUS, + .reg_mask = STATUS_INITIALIZED, + .disconnect_val = 0x0, + } + }, + .batt_info = { + .voltage_max = 8700, /* mV */ + .voltage_normal = 7600, + .voltage_min = 6100, + .precharge_current = 204, /* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 45, + .charging_min_c = 0, + .charging_max_c = 45, + .discharging_min_c = 0, + .discharging_max_c = 60, + }, + }, + /* + * Simplo Battery (SMP-CA-445) Information + * Fuel gauge: BQ30Z554 + */ + [BATTERY_SIMPLO_SMP_CA_445] = { + .fuel_gauge = { + .manuf_name = "SMP-CA-445", + .ship_mode = { + .reg_addr = 0x00, + .reg_data = { 0x0010, 0x0010 }, + }, + .fet = { + .reg_addr = SB_BATTERY_STATUS, + .reg_mask = STATUS_INITIALIZED, + .disconnect_val = 0x0, + } + }, + .batt_info = { + .voltage_max = 8700, /* mV */ + .voltage_normal = 7600, + .voltage_min = 6100, + .precharge_current = 150, /* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 45, + .charging_min_c = 0, + .charging_max_c = 45, + .discharging_min_c = -20, + .discharging_max_c = 60, + }, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT); + +const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SIMPLO_SMP_CA_445; diff --git a/board/jslrvp_ite/board.c b/board/jslrvp_ite/board.c new file mode 100644 index 0000000000..eb654140a6 --- /dev/null +++ b/board/jslrvp_ite/board.c @@ -0,0 +1,174 @@ +/* Copyright 2019 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. + */ + +/* Intel Jasperlake RVP with ITE EC board specific configuration */ + +#include "anx7440.h" +#include "button.h" +#include "charger.h" +#include "driver/charger/isl923x.h" +#include "extpower.h" +#include "i2c.h" +#include "intc.h" +#include "it83xx_pd.h" +#include "lid_switch.h" +#include "power.h" +#include "power/icelake.h" +#include "power_button.h" +#include "switch.h" +#include "system.h" +#include "tablet_mode.h" +#include "uart.h" +#include "usb_mux.h" +#include "usb_pd_tcpm.h" + +#include "gpio_list.h" + +#define CPRINTS(format, args...) cprints(CC_COMMAND, format, ## args) +#define CPRINTF(format, args...) cprintf(CC_COMMAND, format, ## args) + +/* TCPC gpios */ +const struct tcpc_gpio_config_t tcpc_gpios[] = { + [TYPE_C_PORT_0] = { + .vbus = { + .pin = GPIO_USB_C0_VBUS_INT, + .pin_pol = 1, + }, + .src = { + .pin = GPIO_USB_C0_SRC_EN, + .pin_pol = 1, + }, + .snk = { + .pin = GPIO_USB_C0_SNK_EN_L, + .pin_pol = 0, + }, + }, + [TYPE_C_PORT_1] = { + .vbus = { + .pin = GPIO_USB_C1_VBUS_INT, + .pin_pol = 1, + }, + .src = { + .pin = GPIO_USB_C1_SRC_EN, + .pin_pol = 1, + }, + .snk = { + .pin = GPIO_USB_C1_SNK_EN_L, + .pin_pol = 0, + }, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(tcpc_gpios) == CONFIG_USB_PD_PORT_MAX_COUNT); + +/* USB-C TPCP Configuration */ +const struct tcpc_config_t tcpc_config[] = { + [TYPE_C_PORT_0] = { + .bus_type = EC_BUS_TYPE_EMBEDDED, + /* TCPC is embedded within EC so no i2c config needed */ + .drv = &it83xx_tcpm_drv, + }, + [TYPE_C_PORT_1] = { + .bus_type = EC_BUS_TYPE_EMBEDDED, + /* TCPC is embedded within EC so no i2c config needed */ + .drv = &it83xx_tcpm_drv, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(tcpc_config) == CONFIG_USB_PD_PORT_MAX_COUNT); + +const struct usb_mux usb_muxes[] = { + [TYPE_C_PORT_0] = { + .usb_port = TYPE_C_PORT_0, + .i2c_port = I2C_PORT_USB_MUX, + .i2c_addr_flags = I2C_ADDR_USB_MUX0_FLAGS, + .driver = &anx7440_usb_mux_driver, + }, + [TYPE_C_PORT_1] = { + .usb_port = TYPE_C_PORT_1, + .i2c_port = I2C_PORT_USB_MUX, + .i2c_addr_flags = I2C_ADDR_USB_MUX1_FLAGS, + .driver = &anx7440_usb_mux_driver, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == CONFIG_USB_PD_PORT_MAX_COUNT); + +/* I2C ports */ +const struct i2c_port_t i2c_ports[] = { + /* Flash EC */ + [I2C_CHAN_FLASH] = { + .name = "chan-A", + .port = IT83XX_I2C_CH_A, + .kbps = 100, + .scl = GPIO_I2C_A_SCL, + .sda = GPIO_I2C_A_SDA, + }, + /* + * Port-80 Display, Charger, Battery, IO-expanders, EEPROM, + * IMVP9, AUX-rail, power-monitor. + */ + [I2C_CHAN_BATT_CHG] = { + .name = "batt_chg", + .port = IT83XX_I2C_CH_B, + .kbps = 100, + .scl = GPIO_I2C_B_SCL, + .sda = GPIO_I2C_B_SDA, + }, + /* Retimers, PDs */ + [I2C_CHAN_RETIMER] = { + .name = "retimer", + .port = IT83XX_I2C_CH_E, + .kbps = 100, + .scl = GPIO_I2C_E_SCL, + .sda = GPIO_I2C_E_SDA, + }, +}; +BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_CHAN_COUNT); +const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); + +/* Charger Chips */ +const struct charger_config_t chg_chips[] = { + { + .i2c_port = I2C_PORT_CHARGER, + .i2c_addr_flags = ISL923X_ADDR_FLAGS, + .drv = &isl923x_drv, + }, +}; + +/******************************************************************************/ +/* PWROK signal configuration */ +/* + * On JSLRVP the ALL_SYS_PWRGD, VCCST_PWRGD, PCH_PWROK, and SYS_PWROK + * signals are handled by the board. No EC control needed. + */ +const struct intel_x86_pwrok_signal pwrok_signal_assert_list[] = {}; +const int pwrok_signal_assert_count = ARRAY_SIZE(pwrok_signal_assert_list); + +const struct intel_x86_pwrok_signal pwrok_signal_deassert_list[] = {}; +const int pwrok_signal_deassert_count = ARRAY_SIZE(pwrok_signal_assert_list); + +/* + * Returns board information (board id[7:0] and Fab id[15:8]) on success + * -1 on error. + */ +int board_get_version(void) +{ + int fab_id; + int board_id; + int bom_id; + + if (ioexpander_read_intelrvp_version(&fab_id, &board_id)) + return -1; + /* + * Port0: bit 1:0 - FAB ID(1:0) + 1 + * Port1: bit 7:5 - BOM ID(2:0) + * bit 4:0 - BOARD ID(4:0) + */ + fab_id = (fab_id & 0x03) + 1; + bom_id = ((board_id & 0xE0) >> 5); + board_id &= 0x1F; + + CPRINTS("BID:0x%x, FID:0x%x, BOM:0x%x", board_id, fab_id, bom_id); + + return board_id | (fab_id << 8); +} diff --git a/board/jslrvp_ite/board.h b/board/jslrvp_ite/board.h new file mode 100644 index 0000000000..e733a30240 --- /dev/null +++ b/board/jslrvp_ite/board.h @@ -0,0 +1,99 @@ +/* Copyright 2019 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. + */ + +/* Intel Jasperlake RVP with ITE EC board specific configuration */ + +#ifndef __CROS_EC_BOARD_H +#define __CROS_EC_BOARD_H + +/* ITE EC variant */ +#define VARIANT_INTELRVP_EC_IT8320 + +/* MECC config */ +#define CONFIG_INTEL_RVP_MECC_VERSION_0_9 + +#define CONFIG_CHIPSET_JASPERLAKE +#define GPIO_PG_EC_RSMRST_ODL GPIO_RSMRST_L_PGOOD +#define GPIO_PCH_DSW_PWROK GPIO_EC_PCH_DSW_PWROK +#define GPIO_PG_EC_ALL_SYS_PWRGD GPIO_ALL_SYS_PWRGD +#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_L +#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L +#define GPIO_BAT_LED_RED_L GPIO_BAT_LED_GREEN_L +#define GPIO_PWR_LED_WHITE_L GPIO_AC_LED_GREEN_L + +/* Fan features */ +#define CONFIG_FANS 1 +#define BOARD_FAN_MIN_RPM 3000 +#define BOARD_FAN_MAX_RPM 10000 + +/* Temperature sensor */ +#define CONFIG_TEMP_SENSOR + +#include "baseboard.h" + +/* Charger */ +#define CONFIG_CHARGER_ISL9238 + +/* DC Jack charge ports */ +#undef CONFIG_DEDICATED_CHARGE_PORT_COUNT +#define CONFIG_DEDICATED_CHARGE_PORT_COUNT 1 + +/* USB ports */ +#define CONFIG_USB_PD_PORT_MAX_COUNT 2 +#define DEDICATED_CHARGE_PORT 2 + +/* USB PD config */ +#define CONFIG_USB_PD_TCPM_ITE_ON_CHIP +#define CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT 2 +#define CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT + +/* USB MUX */ +#define CONFIG_USB_MUX_ANX7440 + +/* USB HPD */ +#define CONFIG_USB_PD_DP_HPD_GPIO + +/* Thermal configs */ + +/* I2C ports */ +#define CONFIG_IT83XX_SMCLK2_ON_GPC7 + +#define I2C_PORT_CHARGER IT83XX_I2C_CH_B +#define I2C_PORT_BATTERY IT83XX_I2C_CH_B +#define I2C_PORT_PCA9555_BOARD_ID_GPIO IT83XX_I2C_CH_B +#define I2C_PORT_PORT80 IT83XX_I2C_CH_B +#define I2C_PORT_USB_MUX IT83XX_I2C_CH_E + +#define I2C_ADDR_PCA9555_BOARD_ID_GPIO 0x22 +#define PORT80_I2C_ADDR MAX695X_I2C_ADDR1_FLAGS + +#ifndef __ASSEMBLER__ + +enum jslrvp_charge_ports { + TYPE_C_PORT_0, + TYPE_C_PORT_1, +}; + +enum jslrvp_i2c_channel { + I2C_CHAN_FLASH, + I2C_CHAN_BATT_CHG, + I2C_CHAN_RETIMER, + I2C_CHAN_COUNT, +}; + +enum battery_type { + BATTERY_SIMPLO_SMP_HHP_408, + BATTERY_SIMPLO_SMP_CA_445, + BATTERY_TYPE_COUNT, +}; + +/* Define max power */ +#define PD_MAX_POWER_MW 45000 + +int board_get_version(void); + +#endif /* !__ASSEMBLER__ */ + +#endif /* __CROS_EC_BOARD_H */ diff --git a/board/jslrvp_ite/build.mk b/board/jslrvp_ite/build.mk new file mode 100644 index 0000000000..4903661c30 --- /dev/null +++ b/board/jslrvp_ite/build.mk @@ -0,0 +1,16 @@ +# -*- makefile -*- +# Copyright 2019 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. +# +# Intel Jasperlake RVP with ITE EC board specific configuration +# + +#it8320 +CHIP:=it83xx +CHIP_FAMILY:=it8320 +CHIP_VARIANT:=it8320dx +BASEBOARD:=intelrvp + +board-y=board.o +board-$(CONFIG_BATTERY_SMART)+=battery.o diff --git a/board/jslrvp_ite/ec.tasklist b/board/jslrvp_ite/ec.tasklist new file mode 100644 index 0000000000..768211c95f --- /dev/null +++ b/board/jslrvp_ite/ec.tasklist @@ -0,0 +1,23 @@ +/* + * Copyright 2019 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. + */ + +/* Intel Jasperlake RVP with ITE EC board specific configuration. + * See CONFIG_TASK_LIST in config.h for details. + */ + +#define CONFIG_TASK_LIST \ + TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_NOTEST(CHIPSET, chipset_task, NULL, VENTI_TASK_STACK_SIZE) \ + TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ + TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \ + TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_C0, pd_task, NULL, VENTI_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_C1, pd_task, NULL, VENTI_TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, TASK_STACK_SIZE) \ + TASK_ALWAYS(PD_INT_C1, pd_interrupt_handler_task, 1, TASK_STACK_SIZE) diff --git a/board/jslrvp_ite/gpio.inc b/board/jslrvp_ite/gpio.inc new file mode 100644 index 0000000000..387020100e --- /dev/null +++ b/board/jslrvp_ite/gpio.inc @@ -0,0 +1,184 @@ +/* -*- mode:c -*- + * + * Copyright 2019 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. + */ + +/* Intel Jasperlake RVP with ITE EC board specific configuration */ + +/* + * Declare symbolic names for all the GPIOs that we care about. + * Note: Those with interrupt handlers must be declared first. + */ + +/* Power sequencing interrupts */ +GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 0), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(SLP_SUS_L, PIN(K, 2), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(ALL_SYS_PWRGD, PIN(F, 0), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(RSMRST_L_PGOOD,PIN(F, 1), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(PCH_SLP_S0_L, PIN(G, 6), GPIO_INT_BOTH, power_signal_interrupt) +#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S3 +GPIO_INT(PCH_SLP_S3_L, PIN(F, 2), GPIO_INT_BOTH, power_signal_interrupt) +#endif +#ifndef CONFIG_HOSTCMD_ESPI_VW_SLP_S4 +GPIO_INT(PCH_SLP_S4_L, PIN(F, 3), GPIO_INT_BOTH, power_signal_interrupt) +#endif + +/* Button interrupts */ +GPIO_INT(VOLUME_UP_L, PIN(D, 5), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) +GPIO_INT(VOLUME_DOWN_L, PIN(D, 6), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) +GPIO_INT(LID_OPEN, PIN(E, 2), GPIO_INT_BOTH | GPIO_PULL_UP, lid_interrupt) +GPIO_INT(POWER_BUTTON_L,PIN(L, 3), GPIO_INT_BOTH, power_button_interrupt) + +GPIO_INT(AC_PRESENT, PIN(A, 7), GPIO_INT_BOTH, extpower_interrupt) + +GPIO_INT(UART1_RX, PIN(B, 0), GPIO_INT_FALLING, uart_deepsleep_interrupt) /* UART1 RX input */ + +GPIO_INT(WP_L, PIN(I, 4), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */ + +#ifdef CONFIG_HOST_INTERFACE_ESPI +/* enable 1.8v input of EC's espi_reset pin, and then this pin takes effect. */ +GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INT_FALLING | GPIO_SEL_1P8V, espi_reset_pin_asserted_interrupt) /* eSPI_reset# */ +#endif + +GPIO_INT(TABLET_MODE_L, PIN(K, 1), GPIO_INT_BOTH, gmr_tablet_switch_isr) + +/* DC Jack presence coming from +VADP_OUT */ +GPIO_INT(DC_JACK_PRESENT, PIN(J, 2), GPIO_INT_BOTH, board_dc_jack_interrupt) + +/* Type-C interrupts */ +GPIO_INT(USB_C0_VBUS_INT, PIN(L, 5), GPIO_INT_BOTH, tcpc_alert_event) +GPIO_INT(USB_C1_VBUS_INT, PIN(D, 4), GPIO_INT_BOTH, tcpc_alert_event) + +/* Power sequencing GPIOs */ +GPIO(CPU_PROCHOT, PIN(B, 2), GPIO_INPUT) +GPIO(SYS_RESET_L, PIN(B, 6), GPIO_ODR_HIGH) +GPIO(PCH_RSMRST_L, PIN(C, 6), GPIO_OUT_LOW) +GPIO(PCH_PWRBTN_L, PIN(D, 0), GPIO_ODR_HIGH) +GPIO(EC_SPI_OE_N, PIN(I, 2), GPIO_OUT_LOW) +/* + * PCH_SYS_PWROK is an input, driven by the Silego chip. The common x86 + * power sequencing expects that PCH_SYS_PWROK is an output and will drive + * this signal if GPIO_PCH_SYS_PWROK is configured. Map this pin as no-connect + * so that state can be monitored using the console. + */ +GPIO(NC_PCH_SYS_PWROK, PIN(K, 4), GPIO_INPUT) +GPIO(EN_PP5000, PIN(L, 4), GPIO_OUT_LOW) +GPIO(EN_PP3300_A, PIN(C, 3), GPIO_OUT_LOW) +GPIO(EC_PCH_DSW_PWROK, PIN(L, 6), GPIO_OUT_LOW) + +UNIMPLEMENTED(EN_VCCIO_EXT) + +/* Host communication GPIOs */ +GPIO(PCH_WAKE_L, PIN(J, 0), GPIO_ODR_HIGH) +#ifndef CONFIG_HOST_INTERFACE_ESPI +GPIO(PCH_PLTRST_L, PIN(E, 3), GPIO_INPUT | GPIO_PULL_UP) +#endif + +/* Battery present */ +GPIO(EC_BATT_PRES_L, PIN(K, 0), GPIO_INPUT) + +/* Type-C GPIOs */ +GPIO(USB_C0_SRC_EN, PIN(L, 1), GPIO_OUT_LOW) +GPIO(USB_C0_SNK_EN_L, PIN(H, 6), GPIO_ODR_LOW) +GPIO(USB_C0_SRC_HI_ILIM, PIN(M, 6), GPIO_OUT_LOW) +GPIO(USB_C0_DP_HPD, PIN(E, 6), GPIO_OUT_LOW) +GPIO(USB_C0_FRS_EN, PIN(L, 7), GPIO_INPUT) + +GPIO(USB_C1_SRC_EN, PIN(G, 1), GPIO_OUT_LOW) +GPIO(USB_C1_SNK_EN_L, PIN(I, 5), GPIO_ODR_LOW) +GPIO(USB_C1_SRC_HI_ILIM, PIN(A, 0), GPIO_OUT_LOW) +GPIO(USB_C1_DP_HPD, PIN(D, 3), GPIO_OUT_LOW) +GPIO(USB_C1_FRS_EN, PIN(K, 5), GPIO_INPUT) + +/* + * Type-C USB MUX GPIOs + * TODO(b/146683781): drive initial level to low and + * handle the low power mode + */ +GPIO(USB_C0_LS_EN, PIN(J, 1), GPIO_OUT_HIGH) +GPIO(USB_C1_LS_EN, PIN(C, 4), GPIO_OUT_HIGH) + +/* Type-C BC1.2 GPIOs */ +GPIO(USB_C0_BC12_CHG_DET_L, PIN(A, 1), GPIO_INPUT) +GPIO(USB_C0_BC12_VBUS_ON_ODL, PIN(H, 4), GPIO_ODR_HIGH) + +GPIO(USB_C1_BC12_CHG_DET_L, PIN(B, 7), GPIO_INPUT) +GPIO(USB_C1_BC12_VBUS_ON_ODL, PIN(J, 6), GPIO_ODR_HIGH) + +/* USB-A GPIOs */ +GPIO(USB_A_5V_EN, PIN(K, 3), GPIO_INPUT) + +/* LED */ +GPIO(BAT_LED_GREEN_L, PIN(A, 6), GPIO_OUT_HIGH) /* LED_2_L */ +GPIO(AC_LED_GREEN_L, PIN(A, 3), GPIO_OUT_HIGH) /* LED_1_L */ + +/* FAN control pins */ +GPIO(FAN_POWER_EN, PIN(K, 6), GPIO_OUT_LOW) + +/* H1 pins */ +GPIO(CCD_MODE_ODL, PIN(B, 5), GPIO_INPUT) +GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) + +/* Used if Type-A ports have BC1.2 */ +GPIO(NC_USB_A_CHG_EN, PIN(D, 1), GPIO_INPUT) + +/* Used if dead battery LDO present */ +GPIO(NC_USBC_LDO_ENABLE, PIN(G, 2), GPIO_INPUT) + +/* Used with Discreate TBT and or with PD on RVP */ +GPIO(NC_TBT_C0_RESET_N, PIN(KSO_H, 7), GPIO_INPUT) +GPIO(NC_TBT_C1_RESET_N, PIN(K, 7), GPIO_INPUT) +GPIO(NC_USB_C0_RETIMER_ALRT, PIN(I, 7), GPIO_INPUT) +GPIO(NC_USB_C1_RETIMER_ALRT, PIN(G, 0), GPIO_INPUT) + +/* Used if PMIC is used */ +GPIO(NC_PMIC_EN, PIN(H, 3), GPIO_INPUT) + +/* Used if Base EC is present */ +GPIO(NC_EC_BASE_DET, PIN(I, 3), GPIO_INPUT) + +#ifndef CONFIG_HOST_INTERFACE_ESPI +GPIO_INT(ESPI_RESET_L, PIN(D, 2), GPIO_INPUT) +#endif + +/* Unused pins */ +GPIO(NC_SUSWARN, PIN(E, 1), GPIO_INPUT) +GPIO(NC_SD_CARD_DETECT, PIN(E, 5), GPIO_INPUT) +GPIO(NC_BATT_DISABLE, PIN(H, 0), GPIO_INPUT) +GPIO(NC_SLP_S0_CS_N, PIN(I, 0), GPIO_INPUT) + +/* + * I2C pins should be configure as inputs until I2C module is + * initialized. This will avoid driving the lines unintentionally. + */ +GPIO(I2C_A_SCL, PIN(B, 3), GPIO_INPUT) +GPIO(I2C_A_SDA, PIN(B, 4), GPIO_INPUT) +GPIO(I2C_B_SCL, PIN(C, 1), GPIO_INPUT) +GPIO(I2C_B_SDA, PIN(C, 2), GPIO_INPUT) +GPIO(I2C_C_SCL, PIN(C, 7), GPIO_INPUT) +GPIO(I2C_C_SDA, PIN(F, 7), GPIO_INPUT) +GPIO(I2C_E_SCL, PIN(E, 0), GPIO_INPUT) +GPIO(I2C_E_SDA, PIN(E, 7), GPIO_INPUT) +GPIO(I2C_F_SCL, PIN(A, 4), GPIO_INPUT) +GPIO(I2C_F_SDA, PIN(A, 5), GPIO_INPUT) + +/* Alternate pins for I2C */ +ALTERNATE(PIN_MASK(A, BIT(4) | BIT(5)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C F SCL/SDA A4/A5 */ +ALTERNATE(PIN_MASK(B, BIT(3) | BIT(4)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C A SCL/SDA B3/B4 */ +ALTERNATE(PIN_MASK(C, BIT(1) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C B SCL/SDA C1/C2 */ +ALTERNATE(PIN_MASK(E, BIT(0) | BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C E SCL/SDA E0/E7 */ +ALTERNATE(PIN_MASK(C, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SCL C7 */ +ALTERNATE(PIN_MASK(F, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_I2C, GPIO_FLAG_NONE) /* I2C C SDA F7 */ + +/* Alternate pins for UART */ +ALTERNATE(PIN_MASK(B, BIT(0) | BIT(1)), GPIO_ALT_FUNC_DEFAULT, MODULE_UART, GPIO_PULL_UP) /* UART1 B0/B1 */ + +/* Alternate pins for ADC */ +ALTERNATE(PIN_MASK(I, BIT(1) | BIT(6)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 1,6 -> I1,I6 */ +ALTERNATE(PIN_MASK(L, BIT(0) | BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_ADC, GPIO_FLAG_NONE) /* ADC 13,15 -> L0,L2 */ + +/* Alternate pins for FAN */ +ALTERNATE(PIN_MASK(A, BIT(2)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* PWM2 A2 */ +ALTERNATE(PIN_MASK(D, BIT(7)), GPIO_ALT_FUNC_DEFAULT, MODULE_PWM, GPIO_FLAG_NONE) /* TACH1A D7 */ diff --git a/board/jslrvp_ite/vif_override.xml b/board/jslrvp_ite/vif_override.xml new file mode 100644 index 0000000000..32736caf64 --- /dev/null +++ b/board/jslrvp_ite/vif_override.xml @@ -0,0 +1,3 @@ +<!-- Add VIF field overrides here. See genvif.c and the Vendor Info File + Definition from the USB-IF. +--> |