diff options
Diffstat (limited to 'board/wheatley/board.h')
-rw-r--r-- | board/wheatley/board.h | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/board/wheatley/board.h b/board/wheatley/board.h new file mode 100644 index 0000000000..2656ddef66 --- /dev/null +++ b/board/wheatley/board.h @@ -0,0 +1,202 @@ +/* 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_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_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_I2C +#define CONFIG_LPC +#define CONFIG_UART_HOST 0 +#define CONFIG_KEYBOARD_PROTOCOL_8042 +#define CONFIG_LED_COMMON +#define CONFIG_LID_SWITCH +#define CONFIG_PORT80_TASK_EN +#define CONFIG_POWER_BUTTON +#define CONFIG_POWER_BUTTON_X86 +#define CONFIG_POWER_COMMON +#define CONFIG_SCI_GPIO GPIO_PCH_SCI_L +#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_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_VBOOT_HASH + +#define CONFIG_FLASH_SIZE 0x40000 /* 256 KB Flash used for EC */ +#define CONFIG_SPI_FLASH_W25Q64 + +#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 +/* TODO(shawnn): Verify that the charge detectors aren't swapped */ +#define I2C_PORT_USB_CHARGER_1 NPCX_I2C_PORT0_0 +#define I2C_PORT_USB_MUX NPCX_I2C_PORT0_1 +#define I2C_PORT_USB_CHARGER_2 NPCX_I2C_PORT0_1 +#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_I2C_SCAN +#undef CONFIG_CMD_KEYBOARD +#undef CONFIG_CMD_TEMP_SENSOR +#undef CONFIG_CMD_TIMERINFO +#undef CONFIG_CONSOLE_CMDHELP +#undef CONFIG_CONSOLE_HISTORY + +#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 */ + +/* Define typical operating power and max power */ +#define PD_OPERATING_POWER_MW 15000 +#define PD_MAX_POWER_MW 60000 +#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 */ |