/* Copyright 2015 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. */ /* Wheatley board configuration */ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H /* Optional features */ #define CONFIG_ACCELGYRO_BMI160 #define CONFIG_ACCEL_KX022 #define CONFIG_ADC #define CONFIG_ALS #define CONFIG_ALS_OPT3001 #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_PRESENT_GPIO GPIO_BAT_PRESENT_L #define CONFIG_BATTERY_SMART #define CONFIG_BOARD_VERSION #define CONFIG_BUTTON_COUNT 2 #define CONFIG_CHARGE_MANAGER #define CONFIG_CHARGER #define CONFIG_CHARGER_V2 #define CONFIG_CHARGER_ADC_AMON_BMON #define CONFIG_CHARGER_DISCHARGE_ON_AC #define CONFIG_CHARGER_ISL9237 #define CONFIG_CHARGER_ILIM_PIN_DISABLED #define CONFIG_CHARGER_INPUT_CURRENT 512 #define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1 #define CONFIG_CHARGER_NARROW_VDC #define CONFIG_CHARGER_PROFILE_OVERRIDE #define CONFIG_CHARGER_SENSE_RESISTOR 10 #define CONFIG_CHARGER_SENSE_RESISTOR_AC 20 #define CONFIG_CHIPSET_SKYLAKE #define CONFIG_CLOCK_CRYSTAL #define CONFIG_EXTPOWER_GPIO #define CONFIG_HOSTCMD_PD #define CONFIG_HOSTCMD_PD_PANIC #define CONFIG_I2C #define CONFIG_I2C_MASTER #define CONFIG_LPC #define CONFIG_UART_HOST 0 #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_LED_COMMON #define CONFIG_LID_ANGLE #define CONFIG_LID_ANGLE_SENSOR_BASE 0 #define CONFIG_LID_ANGLE_SENSOR_LID 2 #define CONFIG_LID_SWITCH #define CONFIG_LOW_POWER_IDLE #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 #define CONFIG_POWER_COMMON /* All data won't fit in data RAM. So, moving boundary slightly. */ #define RAM_SHIFT_SIZE (8 * 1024) #undef CONFIG_RO_SIZE #define CONFIG_RO_SIZE (96 * 1024 + RAM_SHIFT_SIZE) #undef CONFIG_RAM_BASE #define CONFIG_RAM_BASE (0x200C0000 + RAM_SHIFT_SIZE) #undef CONFIG_RAM_SIZE #define CONFIG_RAM_SIZE (0x00008000 - 0x800 - RAM_SHIFT_SIZE) #define CONFIG_SCI_GPIO GPIO_PCH_SCI_L /* We're space constrained on Wheatley, so reduce the UART TX buffer size. */ #undef CONFIG_UART_TX_BUF_SIZE #define CONFIG_UART_TX_BUF_SIZE 512 #define CONFIG_USB_CHARGER #define CONFIG_USB_MUX_PI3USB30532 #define CONFIG_USB_MUX_PS8740 #define CONFIG_USB_POWER_DELIVERY #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_LOGGING #define CONFIG_USB_PD_LOG_SIZE 512 #define CONFIG_USB_PD_PORT_COUNT 2 #define CONFIG_USB_PD_TCPM_TCPCI #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_SWITCH_PI3USB9281 #define CONFIG_USB_SWITCH_PI3USB9281_CHIP_COUNT 2 #define CONFIG_USBC_SS_MUX #define CONFIG_USBC_SS_MUX_DFP_ONLY #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP #define CONFIG_VBOOT_HASH #define CONFIG_FLASH_SIZE 0x80000 /* 512 KB Flash used for EC */ #define CONFIG_SPI_FLASH_W25X40 #define CONFIG_TEMP_SENSOR #define CONFIG_TEMP_SENSOR_BD99992GW #define CONFIG_THERMISTOR_NCP15WB /* Optional feature - used by nuvoton */ #define NPCX_I2C0_BUS2 0 /* 0:GPIOB4/B5 1:GPIOB2/B3 as I2C0 */ #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*/ #define NPCX_TACH_SEL2 0 /* 0:GPIO40/A4 1:GPIO93/D3 as TACH */ /* * Allow dangerous commands. * TODO(shawnn): Remove this config before production. */ #define CONFIG_SYSTEM_UNLOCKED #define CONFIG_WATCHDOG_HELP #define CONFIG_WIRELESS #define CONFIG_WIRELESS_SUSPEND \ (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER) /* Wireless signals */ #define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L #define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN /* LED signals */ #define GPIO_BAT_LED_RED GPIO_CHARGE_LED_1 #define GPIO_BAT_LED_GREEN GPIO_CHARGE_LED_2 /* I2C ports */ #define I2C_PORT_PMIC NPCX_I2C_PORT0_0 #define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_1 #define I2C_PORT_USB_MUX NPCX_I2C_PORT0_1 #define I2C_PORT_USB_CHARGER_2 NPCX_I2C_PORT0_0 #define I2C_PORT_PD_MCU NPCX_I2C_PORT1 #define I2C_PORT_TCPC NPCX_I2C_PORT1 #define I2C_PORT_ALS NPCX_I2C_PORT2 #define I2C_PORT_ACCEL NPCX_I2C_PORT2 #define I2C_PORT_BATTERY NPCX_I2C_PORT3 #define I2C_PORT_CHARGER NPCX_I2C_PORT3 /* Thermal sensors read through PMIC ADC interface */ #define I2C_PORT_THERMAL I2C_PORT_PMIC /* Ambient Light Sensor address */ #define OPT3001_I2C_ADDR OPT3001_I2C_ADDR1 /* Modules we want to exclude */ #undef CONFIG_PECI #undef CONFIG_CMD_HASH #undef CONFIG_CMD_TEMP_SENSOR #undef CONFIG_CMD_TIMERINFO #undef CONFIG_CONSOLE_CMDHELP #undef DEFERRABLE_MAX_COUNT #define DEFERRABLE_MAX_COUNT 14 #ifndef __ASSEMBLER__ #include "gpio_signal.h" #include "registers.h" /* ADC signal */ enum adc_channel { ADC_VBUS, ADC_AMON_BMON, ADC_PSYS, /* Number of ADC channels */ ADC_CH_COUNT }; /* power signal definitions */ enum power_signal { X86_RSMRST_L_PWRGD = 0, X86_SLP_S0_DEASSERTED, X86_SLP_S3_DEASSERTED, X86_SLP_S4_DEASSERTED, X86_SLP_SUS_DEASSERTED, X86_PMIC_DPWROK, /* Number of X86 signals */ POWER_SIGNAL_COUNT }; enum temp_sensor_id { TEMP_SENSOR_BATTERY, /* These temp sensors are only readable in S0 */ TEMP_SENSOR_AMBIENT, TEMP_SENSOR_CHARGER, TEMP_SENSOR_DRAM, TEMP_SENSOR_WIFI, TEMP_SENSOR_COUNT }; /* Light sensors */ enum als_id { ALS_OPT3001 = 0, ALS_COUNT }; /* start as a sink in case we have no other power supply/battery */ #define PD_DEFAULT_STATE PD_STATE_SNK_DISCONNECTED /* TODO: determine the following board specific type-C power constants */ /* * delay to turn on the power supply max is ~16ms. * delay to turn off the power supply max is about ~180ms. */ #define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */ #define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */ /* delay to turn on/off vconn */ #define PD_VCONN_SWAP_DELAY 5000 /* us */ /* Define typical operating power and max power */ #define PD_OPERATING_POWER_MW 15000 #define PD_MAX_POWER_MW 45000 #define PD_MAX_CURRENT_MA 3000 /* Try to negotiate to 20V since i2c noise problems should be fixed. */ #define PD_MAX_VOLTAGE_MV 20000 /* Reset PD MCU */ void board_reset_pd_mcu(void); #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BOARD_H */