diff options
Diffstat (limited to 'board/reef_it8320/board.h')
-rw-r--r-- | board/reef_it8320/board.h | 209 |
1 files changed, 78 insertions, 131 deletions
diff --git a/board/reef_it8320/board.h b/board/reef_it8320/board.h index dd3a16d776..c4198e4e8a 100644 --- a/board/reef_it8320/board.h +++ b/board/reef_it8320/board.h @@ -1,9 +1,9 @@ -/* Copyright 2016 The Chromium OS Authors. All rights reserved. +/* Copyright 2017 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. */ -/* Reef board configuration */ +/* reef_it8320 board configuration */ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H @@ -16,10 +16,7 @@ #undef CONFIG_HOSTCMD_DEBUG_MODE #define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF - /* EC console commands */ -#define CONFIG_CMD_ACCELS -#define CONFIG_CMD_ACCEL_INFO #define CONFIG_CMD_BATT_MFG_ACCESS #define CONFIG_CMD_CHARGER_ADC_AMON_BMON #define CONFIG_CHARGER_SENSE_RESISTOR 10 @@ -31,13 +28,6 @@ #define BD9995X_PSYS_GAIN_SELECT \ BD9995X_CMD_PMON_IOUT_CTRL_SET_PMON_GAIN_SET_02UAW -#define CONFIG_CMD_I2C_STRESS_TEST -#define CONFIG_CMD_I2C_STRESS_TEST_ACCEL -#define CONFIG_CMD_I2C_STRESS_TEST_ALS -#define CONFIG_CMD_I2C_STRESS_TEST_BATTERY -#define CONFIG_CMD_I2C_STRESS_TEST_CHARGER -#define CONFIG_CMD_I2C_STRESS_TEST_TCPC - /* Battery */ #define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" #define CONFIG_BATTERY_CUT_OFF @@ -73,29 +63,24 @@ #define GPIO_USB_ILIM_SEL GPIO_USB_A_CHARGE_EN_L #define GPIO_USB_CTL1 GPIO_EN_PP5000 -#define CONFIG_TABLET_MODE - /* USB PD config */ #define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL +#define CONFIG_USB_MUX_PI3USB30532 +#define CONFIG_USB_MUX_PS8740 #define CONFIG_CMD_PD_CONTROL #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_CUSTOM_VDM #define CONFIG_USB_PD_DUAL_ROLE -#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE #define CONFIG_USB_PD_DISCHARGE -#define CONFIG_USB_PD_DISCHARGE_TCPC +#define CONFIG_USB_PD_DISCHARGE_GPIO #define CONFIG_USB_PD_LOGGING #define CONFIG_USB_PD_LOG_SIZE 512 #define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0 #define CONFIG_USB_PD_PORT_COUNT 2 #define CONFIG_USB_PD_QUIRK_SLOW_CC_STATUS #define CONFIG_USB_PD_VBUS_DETECT_CHARGER -#define CONFIG_USB_PD_TCPC_LOW_POWER -#define CONFIG_USB_PD_TCPM_MUX /* for both PS8751 and ANX3429 */ -#define CONFIG_USB_PD_TCPM_ANX74XX -#define CONFIG_USB_PD_TCPM_PS8751 -#define CONFIG_USB_PD_TCPM_TCPCI +#define CONFIG_USB_PD_TCPM_ITE83XX #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_POWER_DELIVERY #define CONFIG_USB_PD_COMM_LOCKED @@ -109,7 +94,6 @@ #define CONFIG_LPC #define CONFIG_CHIPSET_APOLLOLAKE #define CONFIG_CHIPSET_RESET_HOOK -#undef CONFIG_PECI #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 #define CONFIG_POWER_COMMON @@ -122,124 +106,71 @@ #define CONFIG_BOARD_SPECIFIC_VERSION #define CONFIG_BUTTON_COUNT 2 #define CONFIG_EXTPOWER_GPIO -#undef CONFIG_EXTPOWER_DEBOUNCE_MS -#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 -#define CONFIG_FPU -/* Region sizes are not a power of 2 so we can't use MPU */ -#undef CONFIG_MPU -#define CONFIG_HOSTCMD_FLASH_SPI_INFO +#undef CONFIG_EXTPOWER_DEBOUNCE_MS +#define CONFIG_EXTPOWER_DEBOUNCE_MS 1000 #define CONFIG_I2C #define CONFIG_I2C_MASTER #define CONFIG_KEYBOARD_BOARD_CONFIG #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_KEYBOARD_COL2_INVERTED -#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2 #define CONFIG_LED_COMMON #define CONFIG_LID_SWITCH #define CONFIG_LOW_POWER_IDLE -#define CONFIG_LTO #define CONFIG_POWER_SIGNAL_INTERRUPT_STORM_DETECT_THRESHOLD 30 -#define CONFIG_PWM #define CONFIG_TEMP_SENSOR #define CONFIG_THERMISTOR_NCP15WB #define CONFIG_DPTF -#define CONFIG_DPTF_DEVICE_ORIENTATION #define CONFIG_SCI_GPIO GPIO_PCH_SCI_L -#define CONFIG_UART_HOST 0 #define CONFIG_VBOOT_HASH #define CONFIG_BACKLIGHT_LID #define CONFIG_WIRELESS #define CONFIG_WIRELESS_SUSPEND EC_WIRELESS_SWITCH_WLAN_POWER #define CONFIG_WLAN_POWER_ACTIVE_LOW -#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER +#define WIRELESS_GPIO_WLAN_POWER GPIO_WIRELESS_GPIO_WLAN_POWER #define CONFIG_PWR_STATE_DISCHARGE_FULL /* - * During shutdown sequence TPS65094x PMIC turns off the sensor rails - * asynchronously to the EC. If we access the sensors when the sensor power - * rails are off we get I2C errors. To avoid this issue, defer switching - * the sensors rate if in S3. By the time deferred function is serviced if - * the chipset is in S5 we can back out from switching the sensor rate. - * - * Time taken by V1P8U rail to go down from S3 is 30ms to 60ms hence defer - * the sensor switching after 60ms. - */ -#undef CONFIG_MOTION_SENSE_SUSPEND_DELAY_US -#define CONFIG_MOTION_SENSE_SUSPEND_DELAY_US (MSEC * 60) - -#define CONFIG_FLASH_SIZE 524288 -#define CONFIG_SPI_FLASH_REGS -#define CONFIG_SPI_FLASH_W25Q40 /* FIXME: Should be GD25LQ40? */ - -/* * Enable 1 slot of secure temporary storage to support * suspend/resume with read/write memory training. */ #define CONFIG_VSTORE #define CONFIG_VSTORE_SLOT_COUNT 1 -/* Optional feature - used by nuvoton */ -#define NPCX_UART_MODULE2 1 /* 0:GPIO10/11 1:GPIO64/65 as UART */ -#define NPCX_JTAG_MODULE2 0 /* 0:GPIO21/17/16/20 1:GPIOD5/E2/D4/E5 as JTAG*/ -/* FIXME(dhendrix): these pins are just normal GPIOs on Reef. Do we need - * to change some other setting to put them in GPIO mode? - */ -#define NPCX_TACH_SEL2 0 /* 0:GPIO40/73 1:GPIO93/A6 as TACH */ +/* modules we want to exclude */ +#undef CONFIG_PECI +#undef CONFIG_PWM +#undef CONFIG_SPI +#undef CONFIG_UART_HOST -/* I2C ports */ -#define I2C_PORT_GYRO NPCX_I2C_PORT1 -#define I2C_PORT_LID_ACCEL NPCX_I2C_PORT2 -#define I2C_PORT_ALS NPCX_I2C_PORT2 -#define I2C_PORT_BARO NPCX_I2C_PORT2 -#define I2C_PORT_BATTERY NPCX_I2C_PORT3 -#define I2C_PORT_CHARGER NPCX_I2C_PORT3 -/* Accelerometer and Gyroscope are the same device. */ -#define I2C_PORT_ACCEL I2C_PORT_GYRO - -/* Sensors */ -#define CONFIG_MKBP_EVENT -#define CONFIG_MKBP_USE_HOST_EVENT -#define CONFIG_ACCELGYRO_BMI160 -#define CONFIG_ACCEL_INTERRUPTS -#define CONFIG_ACCELGYRO_BMI160_INT_EVENT TASK_EVENT_CUSTOM(4) -#define CONFIG_MAG_BMI160_BMM150 -#define BMM150_I2C_ADDRESS BMM150_ADDR0 /* 8-bit address */ -#define CONFIG_MAG_CALIBRATE -#define CONFIG_ACCEL_KX022 -#define CONFIG_ALS_OPT3001 -#define CONFIG_BARO_BMP280 -#define CONFIG_LID_ANGLE -#define CONFIG_LID_ANGLE_UPDATE -#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL -#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL - -/* FIFO size is in power of 2. */ -#define CONFIG_ACCEL_FIFO 1024 - -/* Depends on how fast the AP boots and typical ODRs */ -#define CONFIG_ACCEL_FIFO_THRES (CONFIG_ACCEL_FIFO / 3) +/* TODO: There isn't enough space on flash before nds32 toolchain is updated */ +#undef CONFIG_CMD_HASH +#undef CONFIG_CMD_IDLE_STATS +#undef CONFIG_CMD_SLEEPMASK +#undef CONFIG_CMD_TIMERINFO +#undef CONFIG_UART_TX_BUF_SIZE +#define CONFIG_UART_TX_BUF_SIZE 4096 +#undef CONFIG_UART_RX_BUF_SIZE +#define CONFIG_UART_RX_BUF_SIZE 512 #ifndef __ASSEMBLER__ #include "gpio_signal.h" #include "registers.h" +/* I2C ports */ +#define I2C_PORT_USB_MUX IT83XX_I2C_CH_C +#define I2C_PORT_BATTERY IT83XX_I2C_CH_E +#define I2C_PORT_CHARGER IT83XX_I2C_CH_E + /* ADC signal */ enum adc_channel { - ADC_TEMP_SENSOR_CHARGER, /* ADC0 */ - ADC_TEMP_SENSOR_AMB, /* ADC1 */ - ADC_BOARD_ID, /* ADC2 */ + ADC_TEMP_SENSOR_CHARGER, /* ADC CH1 */ + ADC_TEMP_SENSOR_AMB, /* ADC CH2 */ + ADC_BOARD_ID, /* ADC CH3 */ ADC_CH_COUNT }; -enum pwm_channel { - PWM_CH_LED_GREEN = 0, - PWM_CH_LED_RED, - /* Number of PWM channels */ - PWM_CH_COUNT -}; - enum power_signal { X86_RSMRST_N = 0, X86_SLP_S3_N, @@ -261,30 +192,7 @@ enum temp_sensor_id { TEMP_SENSOR_COUNT }; -/* - * For backward compatibility, to report ALS via ACPI, - * Define the number of ALS sensors: motion_sensor copy the data to the ALS - * memmap region. - */ -#define CONFIG_ALS -#define ALS_COUNT 1 - -/* - * Motion sensors: - * When reading through IO memory is set up for sensors (LPC is used), - * the first 2 entries must be accelerometers, then gyroscope. - * For BMI160, accel, gyro and compass sensors must be next to each other. - */ -enum sensor_id { - LID_ACCEL = 0, - BASE_ACCEL, - BASE_GYRO, - BASE_MAG, - BASE_BARO, - LID_ALS, -}; - -enum reef_board_version { +enum reef_it8320_board_version { BOARD_VERSION_UNKNOWN = -1, BOARD_VERSION_1, BOARD_VERSION_2, @@ -297,6 +205,50 @@ enum reef_board_version { BOARD_VERSION_COUNT, }; +enum ec2i_setting { + EC2I_SET_KB_LDN, + EC2I_SET_KB_IRQ, + EC2I_SET_KB_ENABLE, + EC2I_SET_MOUSE_LDN, + EC2I_SET_MOUSE_IRQ, + EC2I_SET_MOUSE_ENABLE, + EC2I_SET_PMC1_LDN, + EC2I_SET_PMC1_IRQ, + EC2I_SET_PMC1_ENABLE, + EC2I_SET_PMC2_LDN, + EC2I_SET_PMC2_BASE0_MSB, + EC2I_SET_PMC2_BASE0_LSB, + EC2I_SET_PMC2_BASE1_MSB, + EC2I_SET_PMC2_BASE1_LSB, + EC2I_SET_PMC2_IRQ, + EC2I_SET_PMC2_ENABLE, + EC2I_SET_SMFI_LDN, + EC2I_SET_SMFI_H2RAM_IO_BASE, + EC2I_SET_SMFI_H2RAM_MAP_LPC_IO, + EC2I_SET_SMFI_ENABLE, + EC2I_SET_PMC3_LDN, + EC2I_SET_PMC3_BASE0_MSB, + EC2I_SET_PMC3_BASE0_LSB, + EC2I_SET_PMC3_BASE1_MSB, + EC2I_SET_PMC3_BASE1_LSB, + EC2I_SET_PMC3_IRQ, + EC2I_SET_PMC3_ENABLE, + EC2I_SET_RTCT_LDN, + EC2I_SET_RTCT_P80LB, + EC2I_SET_RTCT_P80LE, + EC2I_SET_RTCT_P80LC, +#ifdef CONFIG_UART_HOST + EC2I_SET_UART2_LDN, + EC2I_SET_UART2_IO_BASE_MSB, + EC2I_SET_UART2_IO_BASE_LSB, + EC2I_SET_UART2_IRQ, + EC2I_SET_UART2_IRQ_TYPE, + EC2I_SET_UART2_ENABLE, +#endif + /* Number of EC2I settings */ + EC2I_SETTING_COUNT +}; + /* TODO: determine the following board specific type-C power constants */ /* FIXME(dhendrix): verify all of the below PD_* numbers */ /* @@ -317,14 +269,9 @@ enum reef_board_version { /* Reset PD MCU */ void board_reset_pd_mcu(void); - int board_get_version(void); - -void board_set_tcpc_power_mode(int port, int mode); - -/* Sensors without hardware FIFO are in forced mode */ -#define CONFIG_ACCEL_FORCE_MODE_MASK \ - ((1 << LID_ACCEL) | (1 << BASE_BARO) | (1 << LID_ALS)) +/* Turn on/off vconn power switch. */ +void board_pd_vconn_ctrl(int port, int cc_pin, int enabled); #endif /* !__ASSEMBLER__ */ |