summaryrefslogtreecommitdiff
path: root/board/redrix
diff options
context:
space:
mode:
Diffstat (limited to 'board/redrix')
-rw-r--r--board/redrix/board.h6
-rw-r--r--board/redrix/ec.tasklist1
-rw-r--r--board/redrix/fw_config.h6
-rw-r--r--board/redrix/gpio.inc5
-rw-r--r--board/redrix/i2c.c4
-rw-r--r--board/redrix/led.c23
-rw-r--r--board/redrix/sensors.c42
-rw-r--r--board/redrix/thermal.c52
-rw-r--r--board/redrix/usbc_config.c12
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);