diff options
Diffstat (limited to 'board/lindar')
-rw-r--r-- | board/lindar/board.c | 152 | ||||
-rw-r--r-- | board/lindar/board.h | 40 | ||||
-rw-r--r-- | board/lindar/ec.tasklist | 1 | ||||
-rw-r--r-- | board/lindar/gpio.inc | 62 | ||||
-rw-r--r-- | board/lindar/power_sequence.c | 79 |
5 files changed, 49 insertions, 285 deletions
diff --git a/board/lindar/board.c b/board/lindar/board.c index 778f22260c..d9e28f340c 100644 --- a/board/lindar/board.c +++ b/board/lindar/board.c @@ -8,8 +8,6 @@ #include "button.h" #include "cbi_ec_fw_config.h" #include "common.h" -#include "driver/accel_lis2dh.h" -#include "driver/accelgyro_lsm6dsm.h" #include "driver/ppc/sn5s330.h" #include "driver/ppc/syv682x.h" #include "driver/sync.h" @@ -48,17 +46,6 @@ union volteer_cbi_fw_config fw_config_defaults = { static void board_init(void) { - if (ec_cfg_has_tabletmode()) { - /* Enable gpio interrupt for base accelgyro sensor */ - gpio_enable_interrupt(GPIO_EC_IMU_INT_L); - } else { - motion_sensor_count = 0; - /* Device is clamshell only */ - tablet_set_mode(0); - /* Gyro is not present, don't allow line to float */ - gpio_set_flags(GPIO_EC_IMU_INT_L, GPIO_INPUT | GPIO_PULL_DOWN); - } - /* * TODO: b/154447182 - Malefor will control power LED and battery LED * independently, and keep the max brightness of power LED and battery @@ -69,128 +56,6 @@ static void board_init(void) } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); -int board_is_lid_angle_tablet_mode(void) -{ - return ec_cfg_has_tabletmode(); -} - -/* Enable or disable input devices, based on tablet mode or chipset state */ -#ifndef TEST_BUILD -void lid_angle_peripheral_enable(int enable) -{ - if (ec_cfg_has_tabletmode()) { - if (chipset_in_state(CHIPSET_STATE_ANY_OFF) || - tablet_get_mode()) - enable = 0; - keyboard_scan_enable(enable, KB_SCAN_DISABLE_LID_ANGLE); - } -} -#endif - -/******************************************************************************/ -/* Sensors */ -/* Lid and base Sensor mutex */ -static struct mutex g_lid_accel_mutex; -static struct mutex g_base_mutex; - -/* Lid and base accel private data */ -static struct stprivate_data g_lis2dh_data; -static struct lsm6dsm_data lsm6dsm_data = LSM6DSM_DATA; - -/* Matrix to rotate lid and base sensor into standard reference frame */ -static const mat33_fp_t lid_standard_ref = { - { 0, FLOAT_TO_FP(1), 0}, - { FLOAT_TO_FP(1), 0, 0}, - { 0, 0, FLOAT_TO_FP(-1)} -}; - -static const mat33_fp_t base_standard_ref = { - { FLOAT_TO_FP(1), 0, 0}, - { 0, FLOAT_TO_FP(-1), 0}, - { 0, 0, FLOAT_TO_FP(-1)} -}; - -struct motion_sensor_t motion_sensors[] = { - [LID_ACCEL] = { - .name = "Lid Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LIS2DE, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_LID, - .drv = &lis2dh_drv, - .mutex = &g_lid_accel_mutex, - .drv_data = &g_lis2dh_data, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = LIS2DH_ADDR1_FLAGS, - .rot_standard_ref = &lid_standard_ref, - .min_frequency = LIS2DH_ODR_MIN_VAL, - .max_frequency = LIS2DH_ODR_MAX_VAL, - .default_range = 2, /* g, to support tablet mode */ - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - /* Sensor on in S3 */ - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - }, - }, - }, - - [BASE_ACCEL] = { - .name = "Base Accel", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LSM6DSM, - .type = MOTIONSENSE_TYPE_ACCEL, - .location = MOTIONSENSE_LOC_BASE, - .drv = &lsm6dsm_drv, - .mutex = &g_base_mutex, - .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, - MOTIONSENSE_TYPE_ACCEL), - .int_signal = GPIO_EC_IMU_INT_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, - .rot_standard_ref = &base_standard_ref, - .default_range = 4, /* g, to meet CDD 7.3.1/C-1-4 reqs */ - .min_frequency = LSM6DSM_ODR_MIN_VAL, - .max_frequency = LSM6DSM_ODR_MAX_VAL, - .config = { - /* EC use accel for angle detection */ - [SENSOR_CONFIG_EC_S0] = { - .odr = 13000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - /* Sensor on for angle detection */ - [SENSOR_CONFIG_EC_S3] = { - .odr = 10000 | ROUND_UP_FLAG, - .ec_rate = 100 * MSEC, - }, - }, - }, - - [BASE_GYRO] = { - .name = "Base Gyro", - .active_mask = SENSOR_ACTIVE_S0_S3, - .chip = MOTIONSENSE_CHIP_LSM6DSM, - .type = MOTIONSENSE_TYPE_GYRO, - .location = MOTIONSENSE_LOC_BASE, - .drv = &lsm6dsm_drv, - .mutex = &g_base_mutex, - .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, - MOTIONSENSE_TYPE_GYRO), - .int_signal = GPIO_EC_IMU_INT_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, - .port = I2C_PORT_SENSOR, - .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, - .default_range = 1000 | ROUND_UP_FLAG, /* dps */ - .rot_standard_ref = &base_standard_ref, - .min_frequency = LSM6DSM_ODR_MIN_VAL, - .max_frequency = LSM6DSM_ODR_MAX_VAL, - }, -}; -unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); /******************************************************************************/ /* Physical fans. These are logically separate from pwm_channels. */ @@ -237,13 +102,6 @@ BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT); /* I2C port map configuration */ const struct i2c_port_t i2c_ports[] = { { - .name = "sensor", - .port = I2C_PORT_SENSOR, - .kbps = 400, - .scl = GPIO_EC_I2C0_SENSOR_SCL, - .sda = GPIO_EC_I2C0_SENSOR_SDA, - }, - { .name = "usb_c0", .port = I2C_PORT_USB_C0, .kbps = 1000, @@ -258,11 +116,11 @@ const struct i2c_port_t i2c_ports[] = { .sda = GPIO_EC_I2C2_USB_C1_SDA, }, { - .name = "usb_1_mix", - .port = I2C_PORT_USB_1_MIX, - .kbps = 100, - .scl = GPIO_EC_I2C3_USB_1_MIX_SCL, - .sda = GPIO_EC_I2C3_USB_1_MIX_SDA, + .name = "lightbar", + .port = I2C_PORT_LIGHTBAR, + .kbps = 400, + .scl = GPIO_EC_I2C3_LEDBAR_SCL, + .sda = GPIO_EC_I2C3_LEDBAR_SDA, }, { .name = "power", diff --git a/board/lindar/board.h b/board/lindar/board.h index f1a34bb73a..ca4699f3ea 100644 --- a/board/lindar/board.h +++ b/board/lindar/board.h @@ -25,22 +25,10 @@ /* Keyboard features */ -/* Sensors */ -#define CONFIG_DYNAMIC_MOTION_SENSOR_COUNT -#define CONFIG_ACCEL_LIS2DE /* Lid accel */ -#define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */ - -/* Sensors without hardware FIFO are in forced mode */ -#define CONFIG_ACCEL_FORCE_MODE_MASK \ - BIT(LID_ACCEL) - -#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 - -#define CONFIG_ACCEL_LSM6DSM_INT_EVENT \ - TASK_EVENT_MOTION_SENSOR_INTERRUPT(BASE_ACCEL) +/* Sensors not supported*/ +#undef CONFIG_ACCEL_FIFO +#undef CONFIG_TABLET_MODE +#undef CONFIG_MKBP_EVENT /* USB Type C and USB PD defines */ /* @@ -60,6 +48,9 @@ #define CONFIG_USBC_PPC_SN5S330 /* USBC port C0 */ #define CONFIG_USBC_PPC_SYV682X /* USBC port C1 */ +/* undefine button */ +#undef CONFIG_VOLUME_BUTTONS + /* BC 1.2 */ /* Volume Button feature */ @@ -73,11 +64,11 @@ * which purpose. */ #define GPIO_AC_PRESENT GPIO_ACOK_OD -#define GPIO_EC_INT_L GPIO_EC_PCH_INT_ODL #define GPIO_EN_PP5000 GPIO_EN_PP5000_A #define GPIO_ENTERING_RW GPIO_EC_ENTERING_RW #define GPIO_LID_OPEN GPIO_EC_LID_OPEN #define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV +#define GPIO_PACKET_MODE_EN GPIO_EC_H1_PACKET_MODE #define GPIO_PCH_WAKE_L GPIO_EC_PCH_WAKE_ODL #define GPIO_PCH_PWRBTN_L GPIO_EC_PCH_PWR_BTN_ODL #define GPIO_PCH_RSMRST_L GPIO_EC_PCH_RSMRST_ODL @@ -85,25 +76,22 @@ #define GPIO_PCH_SYS_PWROK GPIO_EC_PCH_SYS_PWROK #define GPIO_PCH_SLP_S0_L GPIO_SLP_S0_L #define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L -#define GPIO_PG_EC_DSW_PWROK GPIO_DSW_PWROK #define GPIO_POWER_BUTTON_L GPIO_H1_EC_PWR_BTN_ODL #define GPIO_RSMRST_L_PGOOD GPIO_PG_EC_RSMRST_ODL #define GPIO_CPU_PROCHOT GPIO_EC_PROCHOT_ODL #define GPIO_SYS_RESET_L GPIO_SYS_RST_ODL #define GPIO_WP_L GPIO_EC_WP_L #define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL -#define GPIO_VOLUME_UP_L GPIO_EC_VOLUP_BTN_ODL -#define GPIO_VOLUME_DOWN_L GPIO_EC_VOLDN_BTN_ODL -#define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L + /* I2C Bus Configuration */ #define CONFIG_I2C -#define I2C_PORT_SENSOR NPCX_I2C_PORT0_0 #define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0 #define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0 -#define I2C_PORT_USB_1_MIX NPCX_I2C_PORT3_0 +#define I2C_PORT_LIGHTBAR NPCX_I2C_PORT3_0 #define I2C_PORT_POWER NPCX_I2C_PORT5_0 #define I2C_PORT_EEPROM NPCX_I2C_PORT7_0 +#define I2C_PORT_USB_1_MIX NPCX_I2C_COUNT #define I2C_PORT_BATTERY I2C_PORT_POWER #define I2C_PORT_CHARGER I2C_PORT_EEPROM @@ -131,12 +119,6 @@ enum pwm_channel { PWM_CH_COUNT }; -enum sensor_id { - LID_ACCEL = 0, - BASE_ACCEL, - BASE_GYRO, - SENSOR_COUNT, -}; /* TODO: b/143375057 - Remove this code after power on. */ void c10_gate_change(enum gpio_signal signal); diff --git a/board/lindar/ec.tasklist b/board/lindar/ec.tasklist index 1cbda88563..717ed58aef 100644 --- a/board/lindar/ec.tasklist +++ b/board/lindar/ec.tasklist @@ -12,7 +12,6 @@ TASK_ALWAYS(USB_CHG_P0, usb_charger_task, 0, TASK_STACK_SIZE) \ TASK_ALWAYS(USB_CHG_P1, usb_charger_task, 0, TASK_STACK_SIZE) \ TASK_ALWAYS(CHARGER, charger_task, NULL, VENTI_TASK_STACK_SIZE) \ - TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \ diff --git a/board/lindar/gpio.inc b/board/lindar/gpio.inc index e1f356384e..e4de5c64ab 100644 --- a/board/lindar/gpio.inc +++ b/board/lindar/gpio.inc @@ -26,13 +26,9 @@ GPIO_INT(SLP_S3_L, PIN(A, 5), GPIO_INT_BOTH, power_signal_interrupt) #endif GPIO_INT(SLP_SUS_L, PIN(D, 7), GPIO_INT_BOTH, power_signal_interrupt) GPIO_INT(PG_EC_RSMRST_ODL, PIN(E, 2), GPIO_INT_BOTH, power_signal_interrupt) -GPIO_INT(DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt) +GPIO_INT(PG_EC_DSW_PWROK, PIN(C, 7), GPIO_INT_BOTH, power_signal_interrupt) GPIO_INT(PG_EC_ALL_SYS_PWRGD, PIN(F, 4), GPIO_INT_BOTH, power_signal_interrupt) -/* Sensor Interrupts */ -GPIO_INT(EC_IMU_INT_L, PIN(5, 6), GPIO_INT_FALLING | GPIO_SEL_1P8V, lsm6dsm_interrupt) -GPIO_INT(TABLET_MODE_L, PIN(9, 5), GPIO_INT_BOTH, gmr_tablet_switch_isr) - /* USB-C interrupts */ GPIO_INT(USB_C0_TCPC_INT_ODL, PIN(E, 0), GPIO_INT_BOTH, tcpc_alert_event) GPIO_INT(USB_C1_TCPC_INT_ODL, PIN(A, 2), GPIO_INT_BOTH, tcpc_alert_event) @@ -45,26 +41,25 @@ GPIO_INT(USB_C1_MIX_INT_ODL, PIN(0, 3), GPIO_INT_BOTH, bc12_interrupt) /* HDMI interrupts */ -/* Volume button interrupts */ -GPIO_INT(EC_VOLDN_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) -GPIO_INT(EC_VOLUP_BTN_ODL, PIN(9, 7), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) +/* Mute button interrupts */ +GPIO(EC_VOLDN_MUTE_BTN_ODL, PIN(9, 3), GPIO_INT_BOTH) + +/* HW_ID PIN */ +GPIO(HW_ID, PIN(D, 4), GPIO_INPUT) /* Power Sequencing Signals */ GPIO(EN_PP3300_A, PIN(A, 3), GPIO_OUT_LOW) GPIO(EN_PP5000_A, PIN(A, 4), GPIO_OUT_LOW) GPIO(EN_PPVAR_VCCIN, PIN(4, 3), GPIO_OUT_LOW) /* Enables VCCIN IMPV9 */ + + /* The EC does not buffer this signal on Volteer. */ UNIMPLEMENTED(PCH_DSW_PWROK) #ifdef VOLTEER_POWER_SEQUENCE /* Optional power sequencing signals that are not stuffed by default */ -GPIO(EN_DRAM_VDDQ, PIN(F, 2), GPIO_OUT_LOW) -GPIO(EN_PP1050_STG, PIN(C, 0), GPIO_OUT_LOW) +GPIO(EC_PCH_DSW_PWROK, PIN(C, 0), GPIO_OUT_LOW) GPIO(EN_PP5000_USB_AG, PIN(A, 7), GPIO_OUT_LOW) -GPIO(EN_PPVAR_VCCIN_AUX, PIN(8, 1), GPIO_OUT_LOW) -GPIO(EN_PP1050_ST_S0, PIN(3, 4), GPIO_OUT_LOW) -GPIO(EN_VNN_BYPASS, PIN(B, 0), GPIO_OUT_LOW) -GPIO(EN_DRAM_VDD1, PIN(9, 6), GPIO_OUT_LOW) #endif /* Other wake sources */ @@ -90,8 +85,6 @@ GPIO(EC_PROCHOT_ODL, PIN(6, 3), GPIO_ODR_HIGH) UNIMPLEMENTED(EC_PROCHOT_IN_L) GPIO(SYS_RST_ODL, PIN(C, 5), GPIO_ODR_HIGH) -GPIO(EC_PCH_INT_ODL, PIN(B, 0), GPIO_ODR_HIGH) - /* USB and USBC Signals */ GPIO(USB_C1_RT_RST_ODL, PIN(8, 3), GPIO_ODR_LOW) /* USB_C1 Reset on boards board ID >=1 */ GPIO(USB_C0_OC_ODL, PIN(B, 1), GPIO_ODR_HIGH) @@ -103,6 +96,14 @@ UNIMPLEMENTED(USB_C1_LS_EN) UNIMPLEMENTED(USB_C1_RT_FORCE_PWR) /* Misc Signals */ +GPIO(EC_H1_PACKET_MODE, PIN(7, 5), GPIO_OUT_LOW) /* H1 Packet Mode */ + +/* + * Determine the polarity of these SSD signals and whether + * they are open-drain. + */ +GPIO(M2_SSD_PLN, PIN(A, 0), GPIO_OUT_HIGH) /* SSD power-loss notification */ +GPIO(M2_SSD_PLA, PIN(7, 0), GPIO_INPUT) /* SSD power-loss acknoledgement */ /* * eDP backlight - both PCH and EC have enable pins that must be high @@ -112,14 +113,12 @@ UNIMPLEMENTED(USB_C1_RT_FORCE_PWR) GPIO(EC_EDP_BL_EN, PIN(D, 3), GPIO_OUT_HIGH) /* I2C pins - Alternate function below configures I2C module on these pins */ -GPIO(EC_I2C0_SENSOR_SCL, PIN(B, 5), GPIO_INPUT | GPIO_SEL_1P8V) -GPIO(EC_I2C0_SENSOR_SDA, PIN(B, 4), GPIO_INPUT | GPIO_SEL_1P8V) GPIO(EC_I2C1_USB_C0_SCL, PIN(9, 0), GPIO_INPUT) GPIO(EC_I2C1_USB_C0_SDA, PIN(8, 7), GPIO_INPUT) GPIO(EC_I2C2_USB_C1_SCL, PIN(9, 2), GPIO_INPUT) GPIO(EC_I2C2_USB_C1_SDA, PIN(9, 1), GPIO_INPUT) -GPIO(EC_I2C3_USB_1_MIX_SCL, PIN(D, 1), GPIO_INPUT) -GPIO(EC_I2C3_USB_1_MIX_SDA, PIN(D, 0), GPIO_INPUT) +GPIO(EC_I2C3_LEDBAR_SCL, PIN(D, 1), GPIO_INPUT) +GPIO(EC_I2C3_LEDBAR_SDA, PIN(D, 0), GPIO_INPUT) GPIO(EC_I2C5_POWER_SCL, PIN(3, 3), GPIO_INPUT) GPIO(EC_I2C5_POWER_SDA, PIN(3, 6), GPIO_INPUT) GPIO(EC_I2C7_EEPROM_SCL, PIN(B, 3), GPIO_INPUT) @@ -128,28 +127,18 @@ GPIO(EC_I2C7_EEPROM_SDA, PIN(B, 2), GPIO_INPUT) /* Battery signals */ GPIO(EC_BATT_PRES_ODL, PIN(E, 1), GPIO_INPUT) -/* Physical HPD pins are not needed on EC as these are configured by PMC */ -GPIO(USB_C0_DP_HPD, PIN(F, 3), GPIO_INPUT) -GPIO(USB_C1_DP_HPD, PIN(7, 0), GPIO_INPUT) - /* LED */ GPIO(LED_1_L, PIN(C, 4), GPIO_OUT_HIGH) /* Battery - Green LED */ GPIO(LED_2_L, PIN(C, 3), GPIO_OUT_HIGH) /* Battery - Red LED */ GPIO(LED_3_L, PIN(C, 2), GPIO_OUT_HIGH) /* Power - White LED */ /* Alternate functions GPIO definitions */ -ALTERNATE(PIN_MASK(B, BIT(5) | BIT(4)), 0, MODULE_I2C, (GPIO_INPUT | GPIO_SEL_1P8V)) /* I2C0 */ ALTERNATE(PIN_MASK(9, BIT(0) | BIT(2) | BIT(1)), 0, MODULE_I2C, 0) /* I2C1 SCL / I2C2 */ ALTERNATE(PIN_MASK(8, BIT(7)), 0, MODULE_I2C, 0) /* I2C1 SDA */ ALTERNATE(PIN_MASK(D, BIT(1) | BIT(0)), 0, MODULE_I2C, 0) /* I2C3 */ ALTERNATE(PIN_MASK(3, BIT(3) | BIT(6)), 0, MODULE_I2C, 0) /* I2C5 */ ALTERNATE(PIN_MASK(B, BIT(3) | BIT(2)), 0, MODULE_I2C, 0) /* I2C7 */ -/* This selects between an LED module on the motherboard and one on the daughter - * board, to be controlled by LED_{1,2,3}_L. PWM allows driving both modules at - * the same time. */ -ALTERNATE(PIN_MASK(6, BIT(0)), 0, MODULE_PWM, 0) /* LED_SIDESEL_4_L */ - /* Fan signals */ GPIO(EN_PP5000_FAN, PIN(6, 1), GPIO_OUT_LOW) ALTERNATE(PIN_MASK(B, BIT(7)), 0, MODULE_PWM, 0) /* FAN_PWM */ @@ -175,3 +164,16 @@ ALTERNATE(PIN_MASK(0, BIT(0) | BIT(1) | BIT(2)), 0, MODULE_PMU, 0) /* GPIO00 = GPIO01 = H1_EC_PWR_BTN_ODL GPIO02 = EC_RST_ODL */ +/* Unused signals */ +GPIO(UNUSED_GPIO81, PIN(8, 1), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIOB5, PIN(B, 5), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIOB4, PIN(B, 4), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO97, PIN(9, 7), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO60, PIN(6, 0), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO34, PIN(3, 4), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO96, PIN(9, 6), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIOF2, PIN(F, 2), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIOF3, PIN(F, 3), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO56, PIN(5, 6), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIO95, PIN(9, 5), GPIO_INPUT | GPIO_PULL_UP) +GPIO(UNUSED_GPIOB0, PIN(B, 0), GPIO_INPUT | GPIO_PULL_UP)
\ No newline at end of file diff --git a/board/lindar/power_sequence.c b/board/lindar/power_sequence.c index ac244c179d..5d557dac21 100644 --- a/board/lindar/power_sequence.c +++ b/board/lindar/power_sequence.c @@ -62,10 +62,6 @@ static void board_chipset_startup(void) */ GPIO_SET_VERBOSE(GPIO_EN_PP1800_A, 1); - /* - * Power on VCCIN Aux - no delay specified, but must follow VCCPRIM_1P8 - */ - GPIO_SET_VERBOSE(GPIO_EN_PPVAR_VCCIN_AUX, 1); /* * Power on bypass rails - must be turned on after VCCIN aux @@ -73,45 +69,11 @@ static void board_chipset_startup(void) * tPCH34, maximum 50 ms from SLP_SUS# de-assertion to completion of * primary and bypass rail, no minimum specified. */ - GPIO_SET_VERBOSE(GPIO_EN_VNN_BYPASS, 1); GPIO_SET_VERBOSE(GPIO_EN_PP1050_BYPASS, 1); - /* - * Power on VCCST - must be gated by SLP_S3#. No order with respect to - * other power signals specified. - */ - GPIO_SET_VERBOSE(GPIO_EN_PP1050_ST_S0, 1); - - /* - * Power on DDR rails - * No delay needed - SLP_S4# already guaranteed to be de-asserted. - * VDDQ must ramp after VPP (VDD1) for DDR4/LPDDR4 systems. - */ - GPIO_SET_VERBOSE(GPIO_EN_DRAM_VDD1, 1); - GPIO_SET_VERBOSE(GPIO_EN_DRAM_VDDQ, 1); } DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_chipset_startup, HOOK_PRIO_DEFAULT); -/* Called during S3 -> S0 and S0ix -> S0 transition */ -static void board_chipset_resume(void) -{ - CPRINTS("%s", __func__); - /* - * Power on VCCSTG rail to Tiger Lake, no PG signal available - */ - GPIO_SET_VERBOSE(GPIO_EN_PP1050_STG, 1); -} -DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); - - -/* Called during S0 -> S0ix transition */ -static void board_chipset_suspend(void) -{ - CPRINTS("%s", __func__); - /* Power down VCCSTG rail */ - GPIO_SET_VERBOSE(GPIO_EN_PP1050_STG, 0); -} -DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT); /* Called during S3 -> S5 transition */ static void board_chipset_shutdown(void) @@ -119,20 +81,7 @@ static void board_chipset_shutdown(void) CPRINTS("%s", __func__); /* - * S0 to G3 sequence 1 of 2 (shared between Deep Sx and non-Deep Sx) - * TigerLake Rail Net Name - * VCCSTG PP1050_STG_S0 - * DDR_VDDQ PP0600_VDDQ - * VCCST PP1050_ST_S0 - * DDR_VPP PP1800_DRAM - */ - GPIO_SET_VERBOSE(GPIO_EN_PP1050_STG, 0); - GPIO_SET_VERBOSE(GPIO_EN_DRAM_VDDQ, 0); - GPIO_SET_VERBOSE(GPIO_EN_PP1050_ST_S0, 0); - GPIO_SET_VERBOSE(GPIO_EN_DRAM_VDD1, 0); - - /* - * S0 to G3 sequence 2 of 2 (non-Deep Sx) + * S0 to G3 sequence (non-Deep Sx) * TigerLake Name Net Name * VCCPRIM_3P3 PP3300_A * VCCDSW_3P3 VCCDSW_3P3 (PP3300_A) @@ -147,36 +96,10 @@ static void board_chipset_shutdown(void) chipset_force_shutdown(CHIPSET_SHUTDOWN_G3); GPIO_SET_VERBOSE(GPIO_EN_PP1800_A, 0); - GPIO_SET_VERBOSE(GPIO_EN_PPVAR_VCCIN_AUX, 0); - GPIO_SET_VERBOSE(GPIO_EN_VNN_BYPASS, 0); GPIO_SET_VERBOSE(GPIO_EN_PP1050_BYPASS, 0); } DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT); -/** - * Handle C10_GATE transitions - see VCCSTG enable logic (figure 232, page 406) - * in Tiger Lake PDG, revision 1.0. - * - * TODO: b/141322107 - This function can be promoted to common TigerLake power - * file if CPU_C10_GATE_L support provided by the platform is not sufficient. - */ -void c10_gate_change(enum gpio_signal signal) -{ - /* Pass through CPU_C10_GATE_L as enable for VCCSTG rail */ - int c10_gate_in; - int vccstg_out; - - ASSERT(signal == GPIO_CPU_C10_GATE_L); - - c10_gate_in = gpio_get_level(signal); - vccstg_out = gpio_get_level(GPIO_EN_PP1050_STG); - - if (vccstg_out == c10_gate_in) - return; - - gpio_set_level(GPIO_EN_PP1050_STG, c10_gate_in); -} - |