diff options
Diffstat (limited to 'board/redrix')
-rw-r--r-- | board/redrix/board.h | 6 | ||||
-rw-r--r-- | board/redrix/ec.tasklist | 1 | ||||
-rw-r--r-- | board/redrix/fw_config.h | 6 | ||||
-rw-r--r-- | board/redrix/gpio.inc | 5 | ||||
-rw-r--r-- | board/redrix/i2c.c | 4 | ||||
-rw-r--r-- | board/redrix/led.c | 23 | ||||
-rw-r--r-- | board/redrix/sensors.c | 42 | ||||
-rw-r--r-- | board/redrix/thermal.c | 52 | ||||
-rw-r--r-- | board/redrix/usbc_config.c | 12 |
9 files changed, 85 insertions, 66 deletions
diff --git a/board/redrix/board.h b/board/redrix/board.h index fa6a5b7dd5..8037a14d41 100644 --- a/board/redrix/board.h +++ b/board/redrix/board.h @@ -19,6 +19,9 @@ */ #define CONFIG_HIBERNATE_PSL_VCC1_RST_WAKEUP +/* Chipset */ +#define CONFIG_CHIPSET_RESUME_INIT_HOOK + /* Sensors */ #define CONFIG_ACCEL_BMA255 /* Lid accel */ #define CONFIG_ACCELGYRO_LSM6DSM /* Base accel */ @@ -107,6 +110,7 @@ #define GPIO_PCH_RTCRST GPIO_EC_PCH_RTCRST #define GPIO_PCH_SLP_S0_L GPIO_SYS_SLP_S0IX_L #define GPIO_PCH_SLP_S3_L GPIO_SLP_S3_L +#define GPIO_TEMP_SENSOR_POWER GPIO_SEQ_EC_DSW_PWROK #define GMR_TABLET_MODE_GPIO_L GPIO_TABLET_MODE_L /* @@ -169,7 +173,7 @@ /* Thermal features */ #define CONFIG_THERMISTOR #define CONFIG_TEMP_SENSOR -#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_SEQ_EC_DSW_PWROK +#define CONFIG_TEMP_SENSOR_POWER #define CONFIG_STEINHART_HART_3V3_30K9_47K_4050B /* Fan features */ diff --git a/board/redrix/ec.tasklist b/board/redrix/ec.tasklist index 769b73d365..cfc1fea6ea 100644 --- a/board/redrix/ec.tasklist +++ b/board/redrix/ec.tasklist @@ -20,6 +20,7 @@ TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_NOTEST(CHIPSET, chipset_task, NULL, BASEBOARD_CHIPSET_TASK_STACK_SIZE) \ + TASK_ALWAYS(USB_MUX, usb_mux_task, NULL, VENTI_TASK_STACK_SIZE) \ TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \ TASK_ALWAYS(CONSOLE, console_task, NULL, CONSOLE_TASK_STACK_SIZE) \ TASK_ALWAYS(POWERBTN, power_button_task, NULL, BASEBOARD_POWERBTN_TASK_STACK_SIZE) \ diff --git a/board/redrix/fw_config.h b/board/redrix/fw_config.h index 6480f07b35..9a73890f7d 100644 --- a/board/redrix/fw_config.h +++ b/board/redrix/fw_config.h @@ -3,8 +3,8 @@ * found in the LICENSE file. */ -#ifndef __BOARD_BRYA_FW_CONFIG_H_ -#define __BOARD_BRYA_FW_CONFIG_H_ +#ifndef __BOARD_REDRIX_FW_CONFIG_H_ +#define __BOARD_REDRIX_FW_CONFIG_H_ #include <stdint.h> @@ -52,4 +52,4 @@ union redrix_cbi_fw_config get_fw_config(void); */ bool ec_cfg_has_eps(void); -#endif /* __BOARD_BRYA_FW_CONFIG_H_ */ +#endif /* __BOARD_REDRIX_FW_CONFIG_H_ */ diff --git a/board/redrix/gpio.inc b/board/redrix/gpio.inc index 21f8b51ee1..a658ec5927 100644 --- a/board/redrix/gpio.inc +++ b/board/redrix/gpio.inc @@ -82,6 +82,7 @@ GPIO(USB_C0_TCPC_RST_ODL, PIN(A, 7), GPIO_ODR_LOW) GPIO(USB_C1_TCPC_RST_ODL, PIN(A, 0), GPIO_ODR_LOW) GPIO(VCCST_PWRGD_OD, PIN(A, 4), GPIO_ODR_LOW) GPIO(PEN_RST_L, PIN(0, 2), GPIO_ODR_HIGH) +GPIO(LRA_DIS_ODL, PIN(0, 4), GPIO_ODR_HIGH) /* Reserved for disable haptic pad LRA */ /* LED */ GPIO(C0_CHARGE_LED_AMBER_L, PIN(C, 4), GPIO_OUT_HIGH) /* Amber C0 port */ @@ -116,12 +117,11 @@ ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */ /* KB alternate functions */ -ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */ +ALTERNATE(PIN_MASK(0, 0xe0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05 */ ALTERNATE(PIN_MASK(1, 0x7f), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO06/GPO13/GP_SEL_L, KSO07/GPO12/JEN_L, KSO03/GPIO16/JTAG_TDO0_SWO, KSO04/GPIO15/XNOR, KSO05/GPIO14, KSO08/GPIO11/CR_SOUT1, KSO09/GPIO10/CR_SIN1 */ ALTERNATE(PIN_MASK(2, 0xfc), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI2/GPIO27/TRACEDATA1, KSI3/GPIO26/TRACEDATA0, KSI4/GPIO25/TRACECLK/GP_SCLK, KSI5/GPIO24/GP_MISO, KSI6/GPIO23/S_SBUB, KSI7/GPIO22/S_SBUA */ ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO00/GPIO21/JTAG_TCK_SWCLK, KSO01/GPIO20/JTAG_TMS_SWIO */ ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KB, GPIO_INPUT | GPIO_PULL_UP) /* KSI0/GPIO31/TRACEDATA3/GP_MOSI, KSI1/GPIO30/TRACEDATA2/GP_CS_L */ -ALTERNATE(PIN_MASK(8, 0x04), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO14/GPIO82 */ /* PMU alternate functions */ ALTERNATE(PIN_MASK(0, 0x01), 0, MODULE_PMU, GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH) /* PSL_IN2_L&GPI00/GPIO00 */ @@ -133,6 +133,7 @@ UNUSED(PIN(D, 6)) /* GPOD6/CR_SOUT3/SHDF_ESPI_L */ UNUSED(PIN(3, 2)) /* GPO32/TRIS_L */ UNUSED(PIN(3, 5)) /* GPO35/CR_SOUT4/TEST_L */ UNUSED(PIN(6, 6)) /* GPO66/ARM_L_x86 */ +UNUSED(PIN(8, 2)) /* KSO14/GPIO82 */ /* Pre-configured PSL balls: J8 K6 */ diff --git a/board/redrix/i2c.c b/board/redrix/i2c.c index b993a7978e..5b71c4eb71 100644 --- a/board/redrix/i2c.c +++ b/board/redrix/i2c.c @@ -46,7 +46,7 @@ const struct i2c_port_t i2c_ports[] = { /* I2C4 C1 TCPC */ .name = "tcpc1", .port = I2C_PORT_USB_C1_TCPC, - .kbps = 400, + .kbps = 1000, .scl = GPIO_EC_I2C_USB_C1_TCPC_SCL, .sda = GPIO_EC_I2C_USB_C1_TCPC_SDA, }, @@ -62,7 +62,7 @@ const struct i2c_port_t i2c_ports[] = { /* I2C6 */ .name = "ppc1,retimer1", .port = I2C_PORT_USB_C1_PPC, - .kbps = 400, + .kbps = 1000, .scl = GPIO_EC_I2C_USB_C1_MIX_SCL, .sda = GPIO_EC_I2C_USB_C1_MIX_SDA, }, diff --git a/board/redrix/led.c b/board/redrix/led.c index c794bc8b5f..96ccae2689 100644 --- a/board/redrix/led.c +++ b/board/redrix/led.c @@ -174,17 +174,30 @@ static void led_set_battery(void) if (charge_get_percent() < 10) led_set_color_battery(RIGHT_PORT, (battery_ticks % LED_TICKS_PER_CYCLE - < LED_ON_TICKS) ? LED_WHITE : LED_OFF); + < LED_ON_TICKS) ? LED_AMBER : LED_OFF); else led_set_color_battery(RIGHT_PORT, LED_OFF); } - if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED)) - led_set_color_battery(LEFT_PORT, LED_OFF); + if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED)) { + if (charge_get_percent() < 10) + led_set_color_battery(LEFT_PORT, + (battery_ticks % LED_TICKS_PER_CYCLE + < LED_ON_TICKS) ? LED_AMBER : LED_OFF); + else + led_set_color_battery(LEFT_PORT, LED_OFF); + } break; case PWR_STATE_ERROR: - set_active_port_color((battery_ticks & 0x1) ? - LED_WHITE : LED_OFF); + if (led_auto_control_is_enabled(EC_LED_ID_RIGHT_LED)) { + led_set_color_battery(RIGHT_PORT, (battery_ticks & 0x1) + ? LED_AMBER : LED_OFF); + } + + if (led_auto_control_is_enabled(EC_LED_ID_LEFT_LED)) { + led_set_color_battery(LEFT_PORT, (battery_ticks & 0x1) + ? LED_AMBER : LED_OFF); + } break; case PWR_STATE_CHARGE_NEAR_FULL: set_active_port_color(LED_WHITE); diff --git a/board/redrix/sensors.c b/board/redrix/sensors.c index 8a92b8825f..df152b8d1c 100644 --- a/board/redrix/sensors.c +++ b/board/redrix/sensors.c @@ -72,7 +72,7 @@ static struct als_drv_data_t g_tcs3400_data = { .als_cal.offset = 0, .als_cal.channel_scale = { .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kc from VPD */ - .cover_scale = ALS_CHANNEL_SCALE(1.0), /* CT */ + .cover_scale = ALS_CHANNEL_SCALE(0.98), /* CT */ }, }; @@ -82,39 +82,39 @@ static struct als_drv_data_t g_tcs3400_data = { */ static struct tcs3400_rgb_drv_data_t g_tcs3400_rgb_data = { .calibration.rgb_cal[X] = { - .offset = 0, - .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0), + .offset = 66, /* 66.47729532 */ + .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0.00222243), + .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0.51877192), + .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.28664117), + .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.0586877), .scale = { .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kr */ - .cover_scale = ALS_CHANNEL_SCALE(1.0) + .cover_scale = ALS_CHANNEL_SCALE(0.61) } }, .calibration.rgb_cal[Y] = { - .offset = 0, - .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0), + .offset = 41, /* 40.95355984 */ + .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.15384715), + .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0.40454969), + .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(-0.237452), + .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.13102168), .scale = { .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kg */ .cover_scale = ALS_CHANNEL_SCALE(1.0) }, }, .calibration.rgb_cal[Z] = { - .offset = 0, - .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0), - .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0), + .offset = 5, /* 5.08596128 */ + .coeff[TCS_RED_COEFF_IDX] = FLOAT_TO_FP(-0.79005309), + .coeff[TCS_GREEN_COEFF_IDX] = FLOAT_TO_FP(-0.35553576), + .coeff[TCS_BLUE_COEFF_IDX] = FLOAT_TO_FP(0.13997097), + .coeff[TCS_CLEAR_COEFF_IDX] = FLOAT_TO_FP(0.40223911), .scale = { .k_channel_scale = ALS_CHANNEL_SCALE(1.0), /* kb */ - .cover_scale = ALS_CHANNEL_SCALE(1.0) + .cover_scale = ALS_CHANNEL_SCALE(1.6) } }, - .calibration.irt = INT_TO_FP(1), + .calibration.irt = INT_TO_FP(0.41), .saturation.again = TCS_DEFAULT_AGAIN, .saturation.atime = TCS_DEFAULT_ATIME, }; @@ -157,8 +157,6 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_accel_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), - .int_signal = GPIO_EC_IMU_INT_R_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, .rot_standard_ref = &base_standard_ref, @@ -187,8 +185,6 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_accel_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), - .int_signal = GPIO_EC_IMU_INT_R_L, - .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .i2c_spi_addr_flags = LSM6DSM_ADDR0_FLAGS, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/redrix/thermal.c b/board/redrix/thermal.c index d35d81b02d..8e1b39a521 100644 --- a/board/redrix/thermal.c +++ b/board/redrix/thermal.c @@ -40,44 +40,44 @@ static const struct fan_step *fan_step_table; static const struct fan_step fan_table_clamshell[] = { { /* level 0 */ - .on = {44, 46, 0, -1}, + .on = {48, 51, 0, -1}, .off = {99, 99, 99, -1}, .rpm = {0, 0}, }, { /* level 1 */ - .on = {45, 47, 0, -1}, - .off = {44, 46, 99, -1}, + .on = {49, 52, 0, -1}, + .off = {48, 51, 99, -1}, .rpm = {4000, 4400}, }, { /* level 2 */ - .on = {46, 48, 0, -1}, - .off = {45, 47, 99, -1}, + .on = {50, 53, 0, -1}, + .off = {49, 52, 99, -1}, .rpm = {4700, 5000}, }, { /* level 3 */ - .on = {47, 49, 0, -1}, - .off = {46, 48, 99, -1}, - .rpm = {5000, 5400}, + .on = {51, 54, 0, -1}, + .off = {50, 53, 99, -1}, + .rpm = {5100, 5400}, }, { /* level 4 */ - .on = {48, 50, 50, -1}, - .off = {47, 49, 48, -1}, + .on = {52, 55, 53, -1}, + .off = {51, 54, 51, -1}, .rpm = {5300, 5600}, }, { /* level 5 */ - .on = {49, 51, 52, -1}, - .off = {48, 50, 50, -1}, + .on = {53, 56, 55, -1}, + .off = {52, 55, 53, -1}, .rpm = {5700, 6000}, }, { /* level 6 */ .on = {100, 100, 100, -1}, - .off = {49, 51, 52, -1}, + .off = {53, 56, 55, -1}, .rpm = {6200, 6400}, }, }; @@ -85,44 +85,44 @@ static const struct fan_step fan_table_clamshell[] = { static const struct fan_step fan_table_tablet[] = { { /* level 0 */ - .on = {44, 46, 0, -1}, + .on = {50, 53, 0, -1}, .off = {99, 99, 99, -1}, .rpm = {0, 0}, }, { /* level 1 */ - .on = {45, 47, 0, -1}, - .off = {44, 46, 99, -1}, - .rpm = {4200, 4400}, + .on = {51, 54, 0, -1}, + .off = {50, 53, 99, -1}, + .rpm = {4200, 4300}, }, { /* level 2 */ - .on = {46, 48, 0, -1}, - .off = {45, 47, 99, -1}, + .on = {52, 55, 0, -1}, + .off = {51, 54, 99, -1}, .rpm = {4700, 4900}, }, { /* level 3 */ - .on = {47, 49, 0, -1}, - .off = {46, 48, 99, -1}, + .on = {53, 56, 0, -1}, + .off = {52, 55, 99, -1}, .rpm = {5000, 5300}, }, { /* level 4 */ - .on = {48, 50, 50, -1}, - .off = {47, 49, 48, -1}, + .on = {54, 57, 55, -1}, + .off = {53, 56, 53, -1}, .rpm = {5200, 5500}, }, { /* level 5 */ - .on = {49, 51, 52, -1}, - .off = {48, 50, 50, -1}, + .on = {55, 58, 57, -1}, + .off = {54, 57, 55, -1}, .rpm = {5700, 5900}, }, { /* level 6 */ .on = {100, 100, 100, -1}, - .off = {49, 51, 52, -1}, + .off = {55, 58, 57, -1}, .rpm = {6100, 6300}, }, }; diff --git a/board/redrix/usbc_config.c b/board/redrix/usbc_config.c index 00b6589a46..aae3a4493b 100644 --- a/board/redrix/usbc_config.c +++ b/board/redrix/usbc_config.c @@ -208,12 +208,16 @@ static void board_tcpc_init(void) int i; /* Don't reset TCPCs after initial reset */ - if (!system_jumped_late()) { + if (!system_jumped_late()) board_reset_pd_mcu(); - for (i = 0; i < CONFIG_IO_EXPANDER_PORT_COUNT; ++i) - ioex_init(i); - } + /* + * These IO expander pins are implemented using the + * C0/C1 TCPCs, so they must be set up after the TCPCs has + * been taken out of reset. + */ + for (i = 0; i < CONFIG_IO_EXPANDER_PORT_COUNT; ++i) + ioex_init(i); /* Enable PPC interrupts. */ gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL); |