summaryrefslogtreecommitdiff
path: root/baseboard/intelrvp/baseboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'baseboard/intelrvp/baseboard.h')
-rw-r--r--baseboard/intelrvp/baseboard.h275
1 files changed, 275 insertions, 0 deletions
diff --git a/baseboard/intelrvp/baseboard.h b/baseboard/intelrvp/baseboard.h
new file mode 100644
index 0000000000..d57de6e3cd
--- /dev/null
+++ b/baseboard/intelrvp/baseboard.h
@@ -0,0 +1,275 @@
+/* Copyright 2019 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.
+ */
+
+/* Intel BASEBOARD-RVP board-specific configuration */
+
+#ifndef __CROS_EC_BASEBOARD_H
+#define __CROS_EC_BASEBOARD_H
+
+#include "compiler.h"
+#include "stdbool.h"
+
+#ifdef VARIANT_INTELRVP_EC_IT8320
+ #include "ite_ec.h"
+#elif defined(VARIANT_INTELRVP_EC_MCHP)
+ #include "mchp_ec.h"
+#elif defined(VARIANT_INTELRVP_EC_NPCX)
+ #include "npcx_ec.h"
+#else
+ #error "Define EC chip variant"
+#endif
+
+/*
+ * Allow dangerous commands.
+ * TODO: Remove this config before production.
+ */
+#define CONFIG_SYSTEM_UNLOCKED
+
+#define CC_DEFAULT (CC_ALL & ~(CC_MASK(CC_EVENTS) | CC_MASK(CC_LPC)))
+#undef CONFIG_HOSTCMD_DEBUG_MODE
+
+/*
+ * By default, enable all console messages excepted HC, ACPI and event:
+ * The sensor stack is generating a lot of activity.
+ */
+#define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF
+
+/* EC console commands */
+#define CONFIG_CMD_CHARGER_DUMP
+#define CONFIG_CMD_KEYBOARD
+#define CONFIG_CMD_USB_PD_CABLE
+#define CONFIG_CMD_USB_PD_PE
+
+/* Host commands */
+#define CONFIG_CMD_AP_RESET_LOG
+#define CONFIG_HOSTCMD_AP_RESET
+#define CONFIG_HOSTCMD_PD_CONTROL
+
+/* Port80 display */
+#define CONFIG_MAX695X_SEVEN_SEGMENT_DISPLAY
+
+/* Battery */
+#define CONFIG_BATTERY_CUT_OFF
+#define CONFIG_BATTERY_FUEL_GAUGE
+#define CONFIG_BATTERY_REVIVE_DISCONNECT
+#define CONFIG_BATTERY_SMART
+
+/* Charger */
+#define CONFIG_CHARGE_MANAGER
+#define CONFIG_CHARGER
+#define CONFIG_CHARGER_DISCHARGE_ON_AC
+#define CONFIG_CHARGER_INPUT_CURRENT 512
+#define CONFIG_CHARGER_SENSE_RESISTOR 5
+#define CONFIG_CHARGER_SENSE_RESISTOR_AC 10
+#undef CONFIG_EXTPOWER_DEBOUNCE_MS
+#define CONFIG_EXTPOWER_DEBOUNCE_MS 200
+#define CONFIG_EXTPOWER_GPIO
+#define CONFIG_TRICKLE_CHARGING
+
+/*
+ * Don't allow the system to boot to S0 when the battery is low and unable to
+ * communicate on locked systems (which haven't PD negotiated)
+ */
+#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON_WITH_BATT 15000
+#define CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON 15001
+
+/* Keyboard */
+#define CONFIG_KEYBOARD_BOARD_CONFIG
+#define CONFIG_KEYBOARD_PROTOCOL_8042
+#define CONFIG_KEYBOARD_COL2_INVERTED
+#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
+
+/* UART */
+#define CONFIG_LOW_POWER_IDLE
+
+/* USB-A config */
+
+/* BC1.2 config */
+#ifdef HAS_TASK_USB_CHG_P0
+ #define CONFIG_CHARGE_RAMP_HW
+#endif
+
+/* Enable USB-PD REV 3.0 */
+#define CONFIG_USB_PD_REV30
+#define CONFIG_USB_PID 0x8086
+
+/* USB PD config */
+#if defined(BOARD_TGLRVPU_ITE_TCPMV1) || defined(BOARD_TGLRVPY_ITE_TCPMV1)
+ #define CONFIG_USB_PD_TCPMV1
+ #define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0
+#else
+ #define CONFIG_USB_DRP_ACC_TRYSRC
+ #define CONFIG_USB_PD_DECODE_SOP
+ #define CONFIG_USB_PD_TCPMV2
+ #define CONFIG_USB_PD_TCPM_MUX
+#endif
+#define CONFIG_USB_PD_ALT_MODE
+#define CONFIG_USB_PD_ALT_MODE_DFP
+#define CONFIG_USB_PD_DUAL_ROLE
+#define CONFIG_USB_PD_TCPM_TCPCI
+#define CONFIG_USB_PD_TRY_SRC
+#define CONFIG_USB_POWER_DELIVERY
+
+/* USB MUX */
+#ifdef CONFIG_USB_MUX_VIRTUAL
+ #define CONFIG_HOSTCMD_LOCATE_CHIP
+#endif
+#define CONFIG_USBC_SS_MUX
+
+/* SoC / PCH */
+#define CONFIG_CHIPSET_RESET_HOOK
+#define CONFIG_HOSTCMD_ESPI
+#define CONFIG_HOSTCMD_ESPI_VW_SLP_S3
+#define CONFIG_HOSTCMD_ESPI_VW_SLP_S4
+#define CONFIG_MKBP_EVENT
+#define CONFIG_MKBP_USE_HOST_EVENT
+#define CONFIG_POWER_BUTTON
+#define CONFIG_POWER_BUTTON_X86
+#define CONFIG_POWER_COMMON
+#define CONFIG_POWER_S0IX
+#define CONFIG_POWER_TRACK_HOST_SLEEP_STATE
+
+/* EC */
+#define CONFIG_BOARD_VERSION_CUSTOM
+#define CONFIG_LED_COMMON
+#define CONFIG_LID_SWITCH
+#define CONFIG_VOLUME_BUTTONS
+#define CONFIG_WP_ALWAYS
+
+/* Tablet mode */
+#define CONFIG_TABLET_MODE
+#define CONFIG_GMR_TABLET_MODE
+
+/* Verified boot */
+#define CONFIG_CRC8
+#define CONFIG_SHA256_UNROLLED
+#define CONFIG_VBOOT_HASH
+
+/*
+ * 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
+
+/* Temperature sensor */
+#ifdef CONFIG_TEMP_SENSOR
+ #define CONFIG_STEINHART_HART_3V0_22K6_47K_4050B
+ #define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_EN_PP3300_A
+ #define CONFIG_THERMISTOR
+ #define CONFIG_THROTTLE_AP
+#ifdef CONFIG_PECI
+ #define CONFIG_PECI_COMMON
+#endif /* CONFIG_PECI */
+#endif /* CONFIG_TEMP_SENSOR */
+
+/* I2C ports */
+#define CONFIG_I2C
+#define CONFIG_I2C_CONTROLLER
+
+/* EC exclude modules */
+
+#ifndef __ASSEMBLER__
+
+#include "gpio_signal.h"
+#include "module_id.h"
+#include "registers.h"
+
+FORWARD_DECLARE_ENUM(tcpc_rp_value);
+
+/* PWM channels */
+enum pwm_channel {
+ PWM_CH_FAN,
+ PWM_CH_COUNT
+};
+
+/* FAN channels */
+enum fan_channel {
+ FAN_CH_0,
+ FAN_CH_COUNT,
+};
+
+/* ADC channels */
+enum adc_channel {
+ ADC_TEMP_SNS_AMBIENT,
+ ADC_TEMP_SNS_DDR,
+ ADC_TEMP_SNS_SKIN,
+ ADC_TEMP_SNS_VR,
+ ADC_CH_COUNT,
+};
+
+/* Temperature sensors */
+enum temp_sensor_id {
+ TEMP_SNS_AMBIENT,
+ TEMP_SNS_BATTERY,
+ TEMP_SNS_DDR,
+#ifdef CONFIG_PECI
+ TEMP_SNS_PECI,
+#endif
+ TEMP_SNS_SKIN,
+ TEMP_SNS_VR,
+ TEMP_SENSOR_COUNT,
+};
+
+/* TODO(b:132652892): Verify the below numbers. */
+#define PD_POWER_SUPPLY_TURN_ON_DELAY 30000 /* us */
+#define PD_POWER_SUPPLY_TURN_OFF_DELAY 250000 /* us */
+
+/* Define typical operating power */
+#define PD_OPERATING_POWER_MW 15000
+#define PD_MAX_VOLTAGE_MV 20000
+#define PD_MAX_CURRENT_MA ((PD_MAX_POWER_MW/PD_MAX_VOLTAGE_MV) * 1000)
+#define DC_JACK_MAX_VOLTAGE_MV 19000
+
+/* TCPC gpios */
+struct tcpc_gpio_t {
+ enum gpio_signal pin;
+ uint8_t pin_pol;
+};
+
+/* VCONN gpios */
+struct vconn_gpio_t {
+ enum gpio_signal cc1_pin;
+ enum gpio_signal cc2_pin;
+ uint8_t pin_pol;
+};
+
+struct tcpc_gpio_config_t {
+ /* VBUS interrput */
+ struct tcpc_gpio_t vbus;
+ /* Source enable */
+ struct tcpc_gpio_t src;
+ /* Sink enable */
+ struct tcpc_gpio_t snk;
+#if defined(CONFIG_USBC_VCONN) && defined(CHIP_FAMILY_IT83XX)
+ /* Enable VCONN */
+ struct vconn_gpio_t vconn;
+#endif
+ /* Enable source ILIM */
+ struct tcpc_gpio_t src_ilim;
+};
+extern const struct tcpc_gpio_config_t tcpc_gpios[];
+
+struct tcpc_aic_gpio_config_t {
+ /* TCPC interrupt */
+ enum gpio_signal tcpc_alert;
+ /* PPC interrupt */
+ enum gpio_signal ppc_alert;
+ /* PPC interrupt handler */
+ void (*ppc_intr_handler)(int port);
+};
+extern const struct tcpc_aic_gpio_config_t tcpc_aic_gpios[];
+
+void board_charging_enable(int port, int enable);
+void board_vbus_enable(int port, int enable);
+void board_set_vbus_source_current_limit(int port, enum tcpc_rp_value rp);
+int ioexpander_read_intelrvp_version(int *port0, int *port1);
+void board_dc_jack_interrupt(enum gpio_signal signal);
+void tcpc_alert_event(enum gpio_signal signal);
+bool is_typec_port(int port);
+
+#endif /* !__ASSEMBLER__ */
+
+#endif /* __CROS_EC_BASEBOARD_H */