summaryrefslogtreecommitdiff
path: root/baseboard/corsola/baseboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'baseboard/corsola/baseboard.c')
-rw-r--r--baseboard/corsola/baseboard.c101
1 files changed, 101 insertions, 0 deletions
diff --git a/baseboard/corsola/baseboard.c b/baseboard/corsola/baseboard.c
new file mode 100644
index 0000000000..c89348a562
--- /dev/null
+++ b/baseboard/corsola/baseboard.c
@@ -0,0 +1,101 @@
+/* Copyright 2021 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.
+ */
+
+/* Asurada baseboard-specific configuration */
+
+#include "adc.h"
+#include "button.h"
+#include "charge_manager.h"
+#include "charger.h"
+#include "charger.h"
+#include "charge_state.h"
+#include "charge_state_v2.h"
+#include "chipset.h"
+#include "common.h"
+#include "console.h"
+#include "driver/accelgyro_bmi_common.h"
+#include "driver/accel_lis2dw12.h"
+#include "driver/als_tcs3400.h"
+#include "driver/bc12/mt6360.h"
+#include "driver/charger/isl923x.h"
+#include "driver/ppc/syv682x.h"
+#include "driver/tcpm/it83xx_pd.h"
+#include "driver/temp_sensor/thermistor.h"
+#include "extpower.h"
+#include "gpio.h"
+#include "hooks.h"
+#include "i2c.h"
+#include "it5205_sbu.h"
+#include "keyboard_scan.h"
+#include "lid_switch.h"
+#include "motion_sense.h"
+#include "power_button.h"
+#include "power.h"
+#include "regulator.h"
+#include "spi.h"
+#include "switch.h"
+#include "tablet_mode.h"
+#include "task.h"
+#include "temp_sensor.h"
+#include "timer.h"
+#include "uart.h"
+
+#include "gpio_list.h"
+
+/* Wake-up pins for hibernate */
+enum gpio_signal hibernate_wake_pins[] = {
+ GPIO_AC_PRESENT,
+ GPIO_LID_OPEN,
+ GPIO_POWER_BUTTON_L,
+};
+int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
+
+/*
+ * I2C channels (A, B, and C) are using the same timing registers (00h~07h)
+ * at default.
+ * In order to set frequency independently for each channels,
+ * We use timing registers 09h~0Bh, and the supported frequency will be:
+ * 50KHz, 100KHz, 400KHz, or 1MHz.
+ * I2C channels (D, E and F) can be set different frequency on different ports.
+ * The I2C(D/E/F) frequency depend on the frequency of SMBus Module and
+ * the individual prescale register.
+ * The frequency of SMBus module is 24MHz on default.
+ * The allowed range of I2C(D/E/F) frequency is as following setting.
+ * SMBus Module Freq = PLL_CLOCK / ((IT83XX_ECPM_SCDCR2 & 0x0F) + 1)
+ * (SMBus Module Freq / 510) <= I2C Freq <= (SMBus Module Freq / 8)
+ * Channel D has multi-function and can be used as UART interface.
+ * Channel F is reserved for EC debug.
+ */
+
+/* I2C ports */
+const struct i2c_port_t i2c_ports[] = {
+ {"bat_chg", IT83XX_I2C_CH_A, 100, GPIO_I2C_A_SCL, GPIO_I2C_A_SDA},
+ {"sensor", IT83XX_I2C_CH_B, 400, GPIO_I2C_B_SCL, GPIO_I2C_B_SDA},
+ {"usb0", IT83XX_I2C_CH_C, 400, GPIO_I2C_C_SCL, GPIO_I2C_C_SDA},
+ {"usb1", IT83XX_I2C_CH_E, 400, GPIO_I2C_E_SCL, GPIO_I2C_E_SDA},
+};
+const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
+
+int board_allow_i2c_passthru(int port)
+{
+ return (port == I2C_PORT_VIRTUAL_BATTERY);
+}
+
+const struct cc_para_t *board_get_cc_tuning_parameter(enum usbpd_port port)
+{
+ const static struct cc_para_t
+ cc_parameter[CONFIG_USB_PD_ITE_ACTIVE_PORT_COUNT] = {
+ {
+ .rising_time = IT83XX_TX_PRE_DRIVING_TIME_1_UNIT,
+ .falling_time = IT83XX_TX_PRE_DRIVING_TIME_2_UNIT,
+ },
+ {
+ .rising_time = IT83XX_TX_PRE_DRIVING_TIME_1_UNIT,
+ .falling_time = IT83XX_TX_PRE_DRIVING_TIME_2_UNIT,
+ },
+ };
+
+ return &cc_parameter[port];
+}