/* Copyright (c) 2013 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. */ /* IT83xx development board configuration */ #ifndef __CROS_EC_BOARD_H #define __CROS_EC_BOARD_H /* NOTE: 0->ec evb, non-zero->pd evb */ #define IT83XX_PD_EVB 0 /* Optional features */ #define CONFIG_BATTERY_SMART #define CONFIG_BOARD_VERSION_GPIO #define CONFIG_FANS 1 #define CONFIG_I2C #define CONFIG_I2C_MASTER #define CONFIG_IT83XX_ENABLE_MOUSE_DEVICE #define CONFIG_IT83XX_SMCLK2_ON_GPC7 #define CONFIG_KEYBOARD_BOARD_CONFIG #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_LOW_POWER_IDLE #define CONFIG_LOW_POWER_S0 #define CONFIG_PECI #define CONFIG_PECI_TJMAX 100 #define CONFIG_POWER_BUTTON #define CONFIG_PWM /* Use CS0 of SSPI */ #define CONFIG_SPI_MASTER #define CONFIG_SPI_FLASH_PORT 0 #define CONFIG_UART_HOST #define CONFIG_HOSTCMD_LPC #if IT83XX_PD_EVB /* PD */ #define CONFIG_USB_PD_ALT_MODE #define CONFIG_USB_PD_ALT_MODE_DFP #define CONFIG_USB_PD_CHECK_MAX_REQUEST_ALLOWED #define CONFIG_USB_PD_DUAL_ROLE #define CONFIG_USB_PD_PORT_COUNT 2 #define CONFIG_USB_PD_TCPM_ITE83XX #define CONFIG_USB_PD_TRY_SRC #define CONFIG_USB_PD_VBUS_DETECT_GPIO #define CONFIG_USB_POWER_DELIVERY #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP #endif /* Optional console commands */ #define CONFIG_CMD_FLASH #define CONFIG_CMD_SCRATCHPAD #define CONFIG_CMD_STACKOVERFLOW /* Debug */ #undef CONFIG_CMD_FORCETIME #undef CONFIG_HOOK_DEBUG #undef CONFIG_KEYBOARD_DEBUG #undef CONFIG_UART_TX_BUF_SIZE #define CONFIG_UART_TX_BUF_SIZE 4096 #ifndef __ASSEMBLER__ #include "gpio_signal.h" #include "registers.h" #define I2C_PORT_CHARGER IT83XX_I2C_CH_C #define I2C_PORT_BATTERY IT83XX_I2C_CH_C #include "gpio_signal.h" enum pwm_channel { PWM_CH_FAN, PWM_CH_WITH_DSLEEP_FLAG, /* Number of PWM channels */ PWM_CH_COUNT }; enum adc_channel { ADC_VBUSSA, ADC_VBUSSB, ADC_EVB_CH_13, ADC_EVB_CH_14, ADC_EVB_CH_15, ADC_EVB_CH_16, /* Number of ADC channels */ ADC_CH_COUNT }; #if IT83XX_PD_EVB /* 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 /* 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 */ int board_get_battery_soc(void); void board_pd_vconn_ctrl(int port, int cc_pin, int enabled); void board_pd_vbus_ctrl(int port, int enabled); #endif #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BOARD_H */