chrome-ec/board/samus/board.h

229 lines
6.2 KiB
C

/* Copyright 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.
*/
/* Configuration for Samus mainboard */
#ifndef __CROS_EC_BOARD_H
#define __CROS_EC_BOARD_H
/* Debug features */
#define CONFIG_CONSOLE_CMDHELP
#define CONFIG_TASK_PROFILING
#undef HEY_USE_BUILTIN_CLKRUN
/* Optional features */
#define CONFIG_ACCELGYRO_LSM6DS0
#define CONFIG_ACCEL_KXCJ9
#define CONFIG_ACCEL_STD_REF_FRAME_OLD
#define CONFIG_ALS_ISL29035
#define CONFIG_BOARD_VERSION_GPIO
#define CONFIG_CMD_ACCELS
#define CONFIG_CMD_ACCEL_INFO
#undef CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT
#define CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT 60
#define CONFIG_BATTERY_CUT_OFF
#define CONFIG_POWER_COMMON
#define CONFIG_POWER_SHUTDOWN_PAUSE_IN_S5
#define CONFIG_CHIPSET_CAN_THROTTLE
#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_SCANCODE_CALLBACK
#define CONFIG_LID_ANGLE
#define CONFIG_LIGHTBAR_POWER_RAILS
#define CONFIG_LOW_POWER_IDLE
#define CONFIG_POWER_BUTTON
#define CONFIG_POWER_BUTTON_X86
/* Note: not CONFIG_BACKLIGHT_LID. It's handled specially for Samus. */
#define CONFIG_BACKLIGHT_REQ_GPIO GPIO_PCH_BL_EN
/* TODO(crosbug.com/p/29467): remove this workaround when possible. */
#define CONFIG_BATTERY_REQUESTS_NIL_WHEN_DEAD
#define CONFIG_CHARGER_PROFILE_OVERRIDE
#define CONFIG_BATTERY_SMART
#define CONFIG_BATTERY_REVIVE_DISCONNECT
#define CONFIG_CHARGER
#define CONFIG_CHARGER_V2
#define CONFIG_CHARGER_BQ24773
#define CONFIG_CHARGER_ILIM_PIN_DISABLED
#define CONFIG_CHARGER_SENSE_RESISTOR 5
#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
#define CONFIG_CHARGER_INPUT_CURRENT 320
#define CONFIG_CHARGER_DISCHARGE_ON_AC
#define CONFIG_CHARGER_DISCHARGE_ON_AC_CUSTOM
#define CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON 1
#define CONFIG_FANS 2
#define CONFIG_FAN_UPDATE_PERIOD 10
#define CONFIG_FPU
#define CONFIG_GESTURE_DETECTION
#define CONFIG_GESTURE_SW_DETECTION
#define CONFIG_GESTURE_SAMPLING_INTERVAL_MS 5
#undef CONFIG_HIBERNATE_DELAY_SEC
#define CONFIG_HIBERNATE_DELAY_SEC (3600 * 24 * 7)
#define CONFIG_HOSTCMD_PD
#define CONFIG_HOSTCMD_PD_CHG_CTRL
#define CONFIG_HOSTCMD_PD_PANIC
#define CONFIG_PECI_TJMAX 105
#define CONFIG_PWM
#define CONFIG_PWM_KBLIGHT
#define CONFIG_TEMP_SENSOR
#define CONFIG_TEMP_SENSOR_TMP006
#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_PP3300_DSW_GATED_EN
#define CONFIG_THROTTLE_AP
#define CONFIG_UART_HOST 2
#define CONFIG_USB_PORT_POWER_SMART
#define CONFIG_USB_PORT_POWER_SMART_DEFAULT_MODE USB_CHARGE_MODE_CDP
#define CONFIG_USB_PORT_POWER_SMART_INVERTED
#define GPIO_USB1_ILIM_SEL GPIO_USB1_ILIM_SEL_L
#define GPIO_USB2_ILIM_SEL GPIO_USB2_ILIM_SEL_L
#define CONFIG_VBOOT_HASH
#define CONFIG_WIRELESS
#define CONFIG_WIRELESS_SUSPEND \
(EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER)
/* Do we want EC_WIRELESS_SWITCH_WWAN as well? */
#ifndef __ASSEMBLER__
/* I2C ports */
#define I2C_PORT_BACKLIGHT 0
#define I2C_PORT_BATTERY 0
#define I2C_PORT_CHARGER 0
#define I2C_PORT_PD_MCU 0
#define I2C_PORT_ALS 1
#define I2C_PORT_ACCEL 1
#define I2C_PORT_LIGHTBAR 1
#define I2C_PORT_THERMAL 5
/* 13x8 keyboard scanner uses an entire GPIO bank for row inputs */
#define KB_SCAN_ROW_IRQ LM4_IRQ_GPIOK
#define KB_SCAN_ROW_GPIO LM4_GPIO_K
/* Host connects to keyboard controller module via LPC */
#define HOST_KB_BUS_LPC
/* USB ports managed by the EC */
#define USB_PORT_COUNT 2
#include "gpio_signal.h"
/* x86 signal definitions */
enum x86_signal {
X86_PGOOD_PP1050 = 0,
X86_PGOOD_PP1200,
X86_PGOOD_PP1800,
X86_PGOOD_VCORE,
X86_SLP_S0_DEASSERTED,
X86_SLP_S3_DEASSERTED,
X86_SLP_S5_DEASSERTED,
X86_SLP_SUS_DEASSERTED,
X86_SUSWARN_DEASSERTED,
/* Number of X86 signals */
POWER_SIGNAL_COUNT
};
enum adc_channel {
/* EC internal die temperature in degrees K. */
ADC_CH_EC_TEMP = 0,
/* BAT_TEMP */
ADC_CH_BAT_TEMP,
ADC_CH_COUNT
};
enum pwm_channel {
PWM_CH_KBLIGHT,
/* Number of PWM channels */
PWM_CH_COUNT
};
enum temp_sensor_id {
/* CPU die temperature via PECI */
TEMP_SENSOR_CPU_PECI,
/* EC internal temperature sensor */
TEMP_SENSOR_EC_INTERNAL,
/* TMP006 U40, die/object temperature near battery charger */
TEMP_SENSOR_I2C_U40_DIE,
TEMP_SENSOR_I2C_U40_OBJECT,
/* TMP006 U41, die/object temperature near CPU */
TEMP_SENSOR_I2C_U41_DIE,
TEMP_SENSOR_I2C_U41_OBJECT,
/* TMP006 U42, die/object temperature left side of C-case */
TEMP_SENSOR_I2C_U42_DIE,
TEMP_SENSOR_I2C_U42_OBJECT,
/* TMP006 U43, die/object temperature right side of C-case */
TEMP_SENSOR_I2C_U43_DIE,
TEMP_SENSOR_I2C_U43_OBJECT,
/* TMP006 U115, die/object temperature right side of D-case */
TEMP_SENSOR_I2C_U115_DIE,
TEMP_SENSOR_I2C_U115_OBJECT,
/* TMP006 U116, die/object temperature left side of D-case */
TEMP_SENSOR_I2C_U116_DIE,
TEMP_SENSOR_I2C_U116_OBJECT,
/* Battery temperature sensor */
TEMP_SENSOR_BATTERY,
TEMP_SENSOR_COUNT
};
enum sensor_id {
BASE_ACCEL,
LID_ACCEL,
BASE_GYRO,
SENSOR_COUNT,
};
/* The number of TMP006 sensor chips on the board. */
#define TMP006_COUNT 6
/* Light sensors attached to the EC. */
enum als_id {
ALS_ISL29035 = 0,
ALS_COUNT,
};
/* Wireless signals */
#define WIRELESS_GPIO_WLAN GPIO_WLAN_OFF_L
#define WIRELESS_GPIO_WLAN_POWER GPIO_PP3300_WLAN_EN
/* Discharge battery when on AC power for factory test. */
int board_is_discharging_on_ac(void);
/* Reset PD MCU */
void board_reset_pd_mcu(void);
/* Backboost detected interrupt */
void bkboost_det_interrupt(enum gpio_signal signal);
/* Interrupt handler for JTAG clock */
void jtag_interrupt(enum gpio_signal signal);
/* Bit masks for turning on PP5000 rail in G3 */
#define PP5000_IN_G3_AC BIT(0)
#define PP5000_IN_G3_LIGHTBAR BIT(1)
/* Enable/disable PP5000 rail mask in G3 */
void set_pp5000_in_g3(int mask, int enable);
/* Define for sensor tasks */
#define CONFIG_GESTURE_SENSOR_BATTERY_TAP 0
#define CONFIG_GESTURE_TAP_OUTER_WINDOW_T 200
#define CONFIG_GESTURE_TAP_INNER_WINDOW_T 30
#define CONFIG_GESTURE_TAP_MIN_INTERSTICE_T 120
#define CONFIG_GESTURE_TAP_MAX_INTERSTICE_T 500
#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BOARD_H */