diff options
Diffstat (limited to 'board/shuboz/board.h')
-rw-r--r-- | board/shuboz/board.h | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/board/shuboz/board.h b/board/shuboz/board.h new file mode 100644 index 0000000000..d1bfacaf1d --- /dev/null +++ b/board/shuboz/board.h @@ -0,0 +1,213 @@ +/* Copyright 2020 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. + */ + +/* Trembyle board configuration */ + +#ifndef __CROS_EC_BOARD_H +#define __CROS_EC_BOARD_H + +#define VARIANT_ZORK_DALBOZ + +#include <stdbool.h> +#include "baseboard.h" + +#define CONFIG_IO_EXPANDER_PCAL6408 +#define CONFIG_MKBP_USE_GPIO + +#define CONFIG_USBC_PPC_NX20P3483 +#define CONFIG_USB_MUX_PS8740 +#define CONFIG_USB_MUX_PS8743 +#define CONFIG_USB_MUX_RUNTIME_CONFIG + +#define CONFIG_USB_PD_PORT_MAX_COUNT 2 +#define CONFIG_USB_PORT_ENABLE_DYNAMIC + +/* USB-A config */ +#define GPIO_USB1_ILIM_SEL IOEX_USB_A0_CHARGE_EN_L +#define GPIO_USB2_ILIM_SEL IOEX_USB_A1_CHARGE_EN_DB_L + +/* Power LEDs */ +#define CONFIG_LED_POWER_LED + +/* Motion sensing drivers */ +#define CONFIG_ACCELGYRO_LSM6DSM +#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \ + TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL) +#define CONFIG_ACCEL_LIS2DWL +#define CONFIG_ACCEL_INTERRUPTS +#define CONFIG_CMD_ACCELS +#define CONFIG_CMD_ACCEL_INFO +#define CONFIG_TABLET_MODE +#define CONFIG_LID_ANGLE +#define CONFIG_LID_ANGLE_UPDATE +#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL +#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL + + + +/* GPIO mapping from board specific name to EC common name. */ +#define CONFIG_BATTERY_PRESENT_GPIO GPIO_EC_BATT_PRES_ODL +#define CONFIG_SCI_GPIO GPIO_EC_FCH_SCI_ODL +#define GPIO_AC_PRESENT GPIO_ACOK_OD +#define GPIO_CPU_PROCHOT GPIO_PROCHOT_ODL +#define GPIO_EC_INT_L GPIO_EC_AP_INT_ODL +#define GPIO_ENABLE_BACKLIGHT_L GPIO_EC_EDP_BL_DISABLE +#define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW +#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV +#define GPIO_PCH_PWRBTN_L GPIO_EC_FCH_PWR_BTN_L +#define GPIO_PCH_RSMRST_L GPIO_EC_FCH_RSMRST_L +#define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L +#define GPIO_PCH_SLP_S5_L GPIO_SLP_S5_L +#define GPIO_PCH_SYS_PWROK GPIO_EC_FCH_PWROK +#define GPIO_PCH_WAKE_L GPIO_EC_FCH_WAKE_L +#define GPIO_POWER_BUTTON_L GPIO_EC_PWR_BTN_ODL +#define GPIO_S0_PGOOD GPIO_S0_PWROK_OD +#define GPIO_S5_PGOOD GPIO_EC_PWROK_OD +#define GPIO_SYS_RESET_L GPIO_EC_SYS_RST_L +#define GPIO_VOLUME_DOWN_L GPIO_VOLDN_BTN_ODL +#define GPIO_VOLUME_UP_L GPIO_VOLUP_BTN_ODL +#define GPIO_WP_L GPIO_EC_WP_L +#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE + +#ifndef __ASSEMBLER__ + +/* This I2C moved. Temporarily detect and support the V0 HW. */ +extern int I2C_PORT_BATTERY; + +enum adc_channel { + ADC_TEMP_SENSOR_CHARGER, + ADC_TEMP_SENSOR_SOC, + ADC_CH_COUNT +}; + +enum battery_type { + BATTERY_SMP, + BATTERY_LGC, + BATTERY_CEL, + BATTERY_TYPE_COUNT, +}; + +enum pwm_channel { + PWM_CH_KBLIGHT = 0, + PWM_CH_COUNT +}; + +enum ioex_port { + IOEX_C0_NCT3807 = 0, + IOEX_C1_NCT3807, + IOEX_HDMI_PCAL6408, + IOEX_PORT_COUNT +}; + +#define PORT_TO_HPD(port) ((port == 0) \ + ? GPIO_USB3_C0_DP2_HPD \ + : GPIO_DP1_HPD) + +enum temp_sensor_id { + TEMP_SENSOR_CHARGER = 0, + TEMP_SENSOR_SOC, + TEMP_SENSOR_CPU, + TEMP_SENSOR_COUNT +}; + +enum usba_port { + USBA_PORT_A0 = 0, + USBA_PORT_A1, + USBA_PORT_COUNT +}; + +enum usbc_port { + USBC_PORT_C0 = 0, + USBC_PORT_C1, + USBC_PORT_COUNT +}; + +/***************************************************************************** + * CBI EC FW Configuration + */ +#include "cbi_ec_fw_config.h" + +/** + * DALBOZ_MB_USBAC + * USB-A0 Speed: 5 Gbps + * Retimer: none + * USB-C0 Speed: 5 Gbps + * Retimer: none + * TCPC: NCT3807 + * PPC: AOZ1380 + * IOEX: TCPC + */ +enum ec_cfg_usb_mb_type { + DALBOZ_MB_USBAC = 0, +}; + +/** + * DALBOZ_DB_D_OPT1_USBAC + * USB-A1 Speed: 5 Gbps + * Retimer: TUSB522 + * USB-C1 Speed: 5 Gbps + * Retimer: PS8740 + * TCPC: NCT3807 + * PPC: NX20P3483 + * IOEX: TCPC + * HDMI Exists: no + * Retimer: none + * MST Hub: none + * + * DALBOZ_DB_D_OPT2_USBA_HDMI + * USB-A1 Speed: 5 Gbps + * Retimer: TUSB522 + * USB-C1 none + * IOEX: PCAL6408 + * HDMI Exists: yes + * Retimer: PI3HDX1204 + * MST Hub: none + */ +enum ec_cfg_usb_db_type { + DALBOZ_DB_D_OPT1_USBAC = 0, + DALBOZ_DB_D_OPT2_USBA_HDMI = 1, +}; + +#define HAS_USBC1 \ + (BIT(DALBOZ_DB_D_OPT1_USBAC)) + +static inline bool ec_config_has_usbc1(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_USBC1); +} + +#define HAS_USBC1_RETIMER_PS8740 \ + (BIT(DALBOZ_DB_D_OPT1_USBAC)) + +static inline bool ec_config_has_usbc1_retimer_ps8740(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_USBC1_RETIMER_PS8740); +} + +#define HAS_HDMI_RETIMER_PI3HDX1204 \ + (BIT(DALBOZ_DB_D_OPT2_USBA_HDMI)) + +static inline bool ec_config_has_hdmi_retimer_pi3hdx1204(void) +{ + return !!(BIT(ec_config_get_usb_db()) & + HAS_HDMI_RETIMER_PI3HDX1204); +} + +/* These IO expander GPIOs vary with DB option. */ +extern enum gpio_signal IOEX_USB_A1_RETIMER_EN; +extern enum gpio_signal IOEX_USB_A1_CHARGE_EN_DB_L; + +void board_reset_pd_mcu(void); + +/* Common definition for the USB PD interrupt handlers. */ +void tcpc_alert_event(enum gpio_signal signal); +void bc12_interrupt(enum gpio_signal signal); +void ppc_interrupt(enum gpio_signal signal); + +#endif /* !__ASSEMBLER__ */ + +#endif /* __CROS_EC_BOARD_H */ |