diff options
Diffstat (limited to 'board/gelarshie')
-rw-r--r-- | board/gelarshie/base_detect.c | 18 | ||||
-rw-r--r-- | board/gelarshie/battery.c | 2 | ||||
-rw-r--r-- | board/gelarshie/board.c | 178 | ||||
-rw-r--r-- | board/gelarshie/board.h | 13 | ||||
-rw-r--r-- | board/gelarshie/build.mk | 2 | ||||
-rw-r--r-- | board/gelarshie/ec.tasklist | 2 | ||||
-rw-r--r-- | board/gelarshie/gpio.inc | 2 | ||||
-rw-r--r-- | board/gelarshie/led.c | 42 | ||||
-rw-r--r-- | board/gelarshie/usbc_config.c | 6 |
9 files changed, 112 insertions, 153 deletions
diff --git a/board/gelarshie/base_detect.c b/board/gelarshie/base_detect.c index a5bbca427b..e045e9ea4f 100644 --- a/board/gelarshie/base_detect.c +++ b/board/gelarshie/base_detect.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -19,8 +19,8 @@ #include "timer.h" #include "util.h" -#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ## args) +#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ##args) /* Base detection and debouncing */ #define BASE_DETECT_EN_DEBOUNCE_US (350 * MSEC) @@ -93,8 +93,8 @@ static uint32_t pulse_width; static void print_base_detect_value(int v, int tmp_pulse_width) { - CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name, - v, tmp_pulse_width); + CPRINTS("%s = %d (pulse %d)", adc_channels[ADC_BASE_DET].name, v, + tmp_pulse_width); } static void base_detect_deferred(void) @@ -144,12 +144,12 @@ void base_detect_interrupt(enum gpio_signal signal) { uint64_t time_now = get_time().val; int debounce_us; - + if (detect_pin_connected(signal)) debounce_us = BASE_DETECT_EN_DEBOUNCE_US; - else + else debounce_us = BASE_DETECT_DIS_DEBOUNCE_US; - + if (base_detect_debounce_time <= time_now) { /* * Detect and measure detection pin pulse, when base is @@ -211,7 +211,7 @@ static void base_init(void) if (system_jumped_late() && chipset_in_state(CHIPSET_STATE_ON)) base_enable(); } -DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT+1); +DECLARE_HOOK(HOOK_INIT, base_init, HOOK_PRIO_DEFAULT + 1); void base_force_state(enum ec_set_base_state_cmd state) { diff --git a/board/gelarshie/battery.c b/board/gelarshie/battery.c index 45934366b7..da96b773f8 100644 --- a/board/gelarshie/battery.c +++ b/board/gelarshie/battery.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * diff --git a/board/gelarshie/board.c b/board/gelarshie/board.c index b16e2f823f..11346a3c7d 100644 --- a/board/gelarshie/board.c +++ b/board/gelarshie/board.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -37,10 +37,10 @@ #include "task.h" #include "usbc_ppc.h" -#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) +#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ##args) -#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */ +#define KS_DEBOUNCE_US (30 * MSEC) /* Debounce time for kickstand switch */ /* Forward declaration */ static void tcpc_alert_event(enum gpio_signal signal); @@ -149,8 +149,7 @@ static void ks_change_deferred(void) proximity_detected = !(ks_attached && ks_open); CPRINTS("ks %s %s -> proximity %s", ks_attached ? "attached" : "detached", - ks_open ? "open" : "close", - proximity_detected ? "on" : "off"); + ks_open ? "open" : "close", proximity_detected ? "on" : "off"); debounced_ks_attached = ks_attached; debounced_ks_open = ks_open; @@ -172,41 +171,31 @@ static void switchcap_interrupt(enum gpio_signal signal) /* I2C port map */ const struct i2c_port_t i2c_ports[] = { - { - .name = "power", - .port = I2C_PORT_POWER, - .kbps = 100, - .scl = GPIO_EC_I2C_POWER_SCL, - .sda = GPIO_EC_I2C_POWER_SDA - }, - { - .name = "tcpc0", - .port = I2C_PORT_TCPC0, - .kbps = 1000, - .scl = GPIO_EC_I2C_USB_C0_PD_SCL, - .sda = GPIO_EC_I2C_USB_C0_PD_SDA - }, - { - .name = "tcpc1", - .port = I2C_PORT_TCPC1, - .kbps = 1000, - .scl = GPIO_EC_I2C_USB_C1_PD_SCL, - .sda = GPIO_EC_I2C_USB_C1_PD_SDA - }, - { - .name = "eeprom", - .port = I2C_PORT_EEPROM, - .kbps = 400, - .scl = GPIO_EC_I2C_EEPROM_SCL, - .sda = GPIO_EC_I2C_EEPROM_SDA - }, - { - .name = "sensor", - .port = I2C_PORT_SENSOR, - .kbps = 400, - .scl = GPIO_EC_I2C_SENSOR_SCL, - .sda = GPIO_EC_I2C_SENSOR_SDA - }, + { .name = "power", + .port = I2C_PORT_POWER, + .kbps = 100, + .scl = GPIO_EC_I2C_POWER_SCL, + .sda = GPIO_EC_I2C_POWER_SDA }, + { .name = "tcpc0", + .port = I2C_PORT_TCPC0, + .kbps = 1000, + .scl = GPIO_EC_I2C_USB_C0_PD_SCL, + .sda = GPIO_EC_I2C_USB_C0_PD_SDA }, + { .name = "tcpc1", + .port = I2C_PORT_TCPC1, + .kbps = 1000, + .scl = GPIO_EC_I2C_USB_C1_PD_SCL, + .sda = GPIO_EC_I2C_USB_C1_PD_SDA }, + { .name = "eeprom", + .port = I2C_PORT_EEPROM, + .kbps = 400, + .scl = GPIO_EC_I2C_EEPROM_SCL, + .sda = GPIO_EC_I2C_EEPROM_SDA }, + { .name = "sensor", + .port = I2C_PORT_SENSOR, + .kbps = 400, + .scl = GPIO_EC_I2C_SENSOR_SCL, + .sda = GPIO_EC_I2C_SENSOR_SDA }, }; const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); @@ -214,45 +203,25 @@ const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); /* ADC channels */ const struct adc_t adc_channels[] = { /* Measure VBUS through a 1/10 voltage divider */ - [ADC_VBUS] = { - "VBUS", - NPCX_ADC_CH1, - ADC_MAX_VOLT * 10, - ADC_READ_MAX + 1, - 0 - }, + [ADC_VBUS] = { "VBUS", NPCX_ADC_CH1, ADC_MAX_VOLT * 10, + ADC_READ_MAX + 1, 0 }, /* * Adapter current output or battery charging/discharging current (uV) * 18x amplification on charger side. */ - [ADC_AMON_BMON] = { - "AMON_BMON", - NPCX_ADC_CH2, - ADC_MAX_VOLT * 1000 / 18, - ADC_READ_MAX + 1, - 0 - }, + [ADC_AMON_BMON] = { "AMON_BMON", NPCX_ADC_CH2, ADC_MAX_VOLT * 1000 / 18, + ADC_READ_MAX + 1, 0 }, /* * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, to read * 0.8V @ 99 W, i.e. 124000 uW/mV. Using ADC_MAX_VOLT*124000 and * ADC_READ_MAX+1 as multiplier/divider leads to overflows, so we * only divide by 2 (enough to avoid precision issues). */ - [ADC_PSYS] = { - "PSYS", - NPCX_ADC_CH3, - ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1), - 2, - 0 - }, + [ADC_PSYS] = { "PSYS", NPCX_ADC_CH3, + ADC_MAX_VOLT * 124000 * 2 / (ADC_READ_MAX + 1), 2, 0 }, /* Base detection */ - [ADC_BASE_DET] = { - "BASE_DET", - NPCX_ADC_CH5, - ADC_MAX_VOLT, - ADC_READ_MAX + 1, - 0 - }, + [ADC_BASE_DET] = { "BASE_DET", NPCX_ADC_CH5, ADC_MAX_VOLT, + ADC_READ_MAX + 1, 0 }, }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); @@ -270,16 +239,12 @@ const struct ln9310_config_t ln9310_config = { /* Power Path Controller */ struct ppc_config_t ppc_chips[] = { - { - .i2c_port = I2C_PORT_TCPC0, - .i2c_addr_flags = SN5S330_ADDR0_FLAGS, - .drv = &sn5s330_drv - }, - { - .i2c_port = I2C_PORT_TCPC1, - .i2c_addr_flags = SN5S330_ADDR0_FLAGS, - .drv = &sn5s330_drv - }, + { .i2c_port = I2C_PORT_TCPC0, + .i2c_addr_flags = SN5S330_ADDR0_FLAGS, + .drv = &sn5s330_drv }, + { .i2c_port = I2C_PORT_TCPC1, + .i2c_addr_flags = SN5S330_ADDR0_FLAGS, + .drv = &sn5s330_drv }, }; unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips); @@ -310,16 +275,22 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = { * to AP. But the TCPC chip is also needed to know the HPD status; otherwise, * the mux misbehaves. */ -const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { +const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { { - .usb_port = 0, - .driver = &tcpci_tcpm_usb_mux_driver, - .hpd_update = &ps8xxx_tcpc_update_hpd_status, + .mux = + &(const struct usb_mux){ + .usb_port = 0, + .driver = &tcpci_tcpm_usb_mux_driver, + .hpd_update = &ps8xxx_tcpc_update_hpd_status, + }, }, { - .usb_port = 1, - .driver = &tcpci_tcpm_usb_mux_driver, - .hpd_update = &ps8xxx_tcpc_update_hpd_status, + .mux = + &(const struct usb_mux){ + .usb_port = 1, + .driver = &tcpci_tcpm_usb_mux_driver, + .hpd_update = &ps8xxx_tcpc_update_hpd_status, + }, } }; @@ -344,11 +315,9 @@ static struct bmi_drv_data_t g_bmi260_data; bool is_bmi260_present; /* Matrix to rotate accelerometer into standard reference frame */ -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)} -}; +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) } }; struct motion_sensor_t motion_sensors[] = { /* @@ -451,8 +420,8 @@ static void board_detect_motionsensor(void) /* Check base accelgyro chip */ bmi_read8(motion_sensors[LID_ACCEL].port, - motion_sensors[LID_ACCEL].i2c_spi_addr_flags, - BMI260_CHIP_ID, &val); + motion_sensors[LID_ACCEL].i2c_spi_addr_flags, BMI260_CHIP_ID, + &val); if (val == BMI260_CHIP_ID_MAJOR) { motion_sensors[LID_ACCEL] = motion_sensors_260[LID_ACCEL]; motion_sensors[LID_GYRO] = motion_sensors_260[LID_GYRO]; @@ -553,9 +522,9 @@ void board_tcpc_init(void) */ for (int port = 0; port < CONFIG_USB_PD_PORT_MAX_COUNT; ++port) usb_mux_hpd_update(port, USB_PD_MUX_HPD_LVL_DEASSERTED | - USB_PD_MUX_HPD_IRQ_DEASSERTED); + USB_PD_MUX_HPD_IRQ_DEASSERTED); } -DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1); +DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C + 1); void board_hibernate(void) { @@ -565,8 +534,7 @@ void board_hibernate(void) * Sensors are unpowered in hibernate. Apply PD to the * interrupt lines such that they don't float. */ - gpio_set_flags(GPIO_ACCEL_GYRO_INT_L, - GPIO_INPUT | GPIO_PULL_DOWN); + gpio_set_flags(GPIO_ACCEL_GYRO_INT_L, GPIO_INPUT | GPIO_PULL_DOWN); /* * Board rev 1+ has the hardware fix. Don't need the following @@ -663,8 +631,7 @@ void board_overcurrent_event(int port, int is_overcurrented) int board_set_active_charge_port(int port) { - int is_real_port = (port >= 0 && - port < CONFIG_USB_PD_PORT_MAX_COUNT); + int is_real_port = (port >= 0 && port < CONFIG_USB_PD_PORT_MAX_COUNT); int i; if (!is_real_port && port != CHARGE_PORT_NONE) @@ -692,7 +659,6 @@ int board_set_active_charge_port(int port) return EC_ERROR_INVAL; } - CPRINTS("New charge port: p%d", port); /* @@ -716,24 +682,22 @@ int board_set_active_charge_port(int port) return EC_SUCCESS; } -void board_set_charge_limit(int port, int supplier, int charge_ma, - int max_ma, int charge_mv) +void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma, + int charge_mv) { /* * Ignore lower charge ceiling on PD transition if our battery is * critical, as we may brownout. */ - if (supplier == CHARGE_SUPPLIER_PD && - charge_ma < 1500 && + if (supplier == CHARGE_SUPPLIER_PD && charge_ma < 1500 && charge_get_percent() < CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) { CPRINTS("Using max ilim %d", max_ma); charge_ma = max_ma; } charge_ma = charge_ma * 95 / 100; - charge_set_input_current_limit(MAX(charge_ma, - CONFIG_CHARGER_INPUT_CURRENT), - charge_mv); + charge_set_input_current_limit( + MAX(charge_ma, CONFIG_CHARGER_INPUT_CURRENT), charge_mv); } uint16_t tcpc_get_alert_status(void) diff --git a/board/gelarshie/board.h b/board/gelarshie/board.h index 45b8c42dcc..7e27c7a62f 100644 --- a/board/gelarshie/board.h +++ b/board/gelarshie/board.h @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -12,7 +12,7 @@ /* On-body detection */ #define CONFIG_BODY_DETECTION -#define CONFIG_BODY_DETECTION_SENSOR LID_ACCEL +#define CONFIG_BODY_DETECTION_SENSOR LID_ACCEL #define CONFIG_BODY_DETECTION_VAR_NOISE_FACTOR 150 /* % */ #define CONFIG_GESTURE_DETECTION #define CONFIG_GESTURE_DETECTION_MASK BIT(CONFIG_BODY_DETECTION_SENSOR) @@ -21,7 +21,7 @@ #define CONFIG_BUTTON_TRIGGERED_RECOVERY /* Internal SPI flash on NPCX7 */ -#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */ +#define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */ /* Switchcap */ #define CONFIG_LN9310 @@ -37,7 +37,7 @@ #undef CONFIG_CMD_TASK_RESET /* Battery */ -#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" +#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION" #define CONFIG_BATTERY_REVIVE_DISCONNECT #define CONFIG_BATTERY_FUEL_GAUGE #define CONFIG_BATTERY_VENDOR_PARAM @@ -103,10 +103,7 @@ enum sensor_id { SENSOR_COUNT, }; -enum pwm_channel { - PWM_CH_DISPLIGHT = 0, - PWM_CH_COUNT -}; +enum pwm_channel { PWM_CH_DISPLIGHT = 0, PWM_CH_COUNT }; /* List of possible batteries */ enum battery_type { diff --git a/board/gelarshie/build.mk b/board/gelarshie/build.mk index 84616b4e1c..5b0f734fda 100644 --- a/board/gelarshie/build.mk +++ b/board/gelarshie/build.mk @@ -1,5 +1,5 @@ # -*- makefile -*- -# Copyright 2022 The Chromium OS Authors. All rights reserved. +# Copyright 2022 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # diff --git a/board/gelarshie/ec.tasklist b/board/gelarshie/ec.tasklist index 0d861dda25..7d193fecf3 100644 --- a/board/gelarshie/ec.tasklist +++ b/board/gelarshie/ec.tasklist @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ diff --git a/board/gelarshie/gpio.inc b/board/gelarshie/gpio.inc index cb0f842102..189a9657a6 100644 --- a/board/gelarshie/gpio.inc +++ b/board/gelarshie/gpio.inc @@ -1,6 +1,6 @@ /* -*- mode:c -*- * - * Copyright 2022 The Chromium OS Authors. All rights reserved. + * Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ diff --git a/board/gelarshie/led.c b/board/gelarshie/led.c index 0a6c85be6d..e401787f7f 100644 --- a/board/gelarshie/led.c +++ b/board/gelarshie/led.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -35,15 +35,15 @@ enum led_color { LED_OFF = 0, LED_AMBER, LED_BLUE, - LED_COLOR_COUNT /* Number of colors, not a color itself */ + LED_COLOR_COUNT /* Number of colors, not a color itself */ }; static void led_set_color(enum led_color color) { gpio_set_level(GPIO_EC_CHG_LED_Y_C0, - (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF); + (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF); gpio_set_level(GPIO_EC_CHG_LED_W_C0, - (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF); + (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF); } void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) @@ -69,7 +69,6 @@ static void board_led_set_battery(void) static int battery_ticks; int color = LED_OFF; int period = 0; - uint32_t chflags = charge_get_flags(); battery_ticks++; @@ -84,16 +83,15 @@ static void board_led_set_battery(void) period = (1 + 1) * LED_ONE_SEC; battery_ticks = battery_ticks % period; if (battery_ticks < 1 * LED_ONE_SEC) { - if (charge_get_percent() < 10) - { - /* Blink amber light (1 sec on, 1 sec off) */ + if (charge_get_percent() < 10) { + /* Blink amber light (1 sec on, 1 sec + * off) */ color = LED_AMBER; - } - else - { - /* Blink white light (1 sec on, 1 sec off) */ + } else { + /* Blink white light (1 sec on, 1 sec + * off) */ color = LED_BLUE; - } + } } else { color = LED_OFF; } @@ -138,16 +136,16 @@ static void board_led_set_battery(void) } break; case PWR_STATE_IDLE: /* External power connected in IDLE */ - if (chflags & CHARGE_FLAG_FORCE_IDLE) { - /* Factory mode: Blue 2 sec, Amber 2 sec */ - period = (2 + 2) * LED_ONE_SEC; - battery_ticks = battery_ticks % period; - if (battery_ticks < 2 * LED_ONE_SEC) - color = LED_BLUE; - else - color = LED_AMBER; - } else + color = LED_BLUE; + break; + case PWR_STATE_FORCED_IDLE: + /* Factory mode: Blue 2 sec, Amber 2 sec */ + period = (2 + 2) * LED_ONE_SEC; + battery_ticks = battery_ticks % period; + if (battery_ticks < 2 * LED_ONE_SEC) color = LED_BLUE; + else + color = LED_AMBER; break; default: /* Other states don't alter LED behavior */ diff --git a/board/gelarshie/usbc_config.c b/board/gelarshie/usbc_config.c index 86a2f4663f..7389f8cb52 100644 --- a/board/gelarshie/usbc_config.c +++ b/board/gelarshie/usbc_config.c @@ -1,4 +1,4 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. +/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -11,8 +11,8 @@ #include "gpio.h" #include "usb_pd.h" -#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) +#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ##args) const struct charger_config_t chg_chips[] = { { |