coreboot-libre-fam15h-rdimm/3rdparty/chromeec/baseboard/volteer/baseboard.c

114 lines
2.6 KiB
C
Raw Permalink Normal View History

2024-03-04 11:14:53 +01:00
/* Copyright 2019 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.
*/
/* Volteer family-specific configuration */
#include "baseboard.h"
#include "battery.h"
#include "charge_state.h"
#include "gpio.h"
#include "i2c.h"
#include "pwm.h"
#include "pwm_chip.h"
/******************************************************************************/
/* Wake up pins */
const enum gpio_signal hibernate_wake_pins[] = {
GPIO_LID_OPEN,
GPIO_ACOK_OD,
GPIO_POWER_BUTTON_L,
GPIO_EC_RST_ODL,
};
const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
/******************************************************************************/
/* 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,
/* TODO: design supports 1 MHz, set to 100 KHz for bringup */
.kbps = 100,
.scl = GPIO_EC_I2C1_USB_C0_SCL,
.sda = GPIO_EC_I2C1_USB_C0_SDA,
},
{
.name = "usb_c1",
.port = I2C_PORT_USB_C1,
/* TODO: design supports 1 MHz, set to 100 KHz for bringup */
.kbps = 100,
.scl = GPIO_EC_I2C2_USB_C1_SCL,
.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 = "power",
.port = I2C_PORT_POWER,
.kbps = 400,
.scl = GPIO_EC_I2C5_POWER_SCL,
.sda = GPIO_EC_I2C5_POWER_SDA,
},
{
.name = "eeprom",
.port = I2C_PORT_EEPROM,
.kbps = 400,
.scl = GPIO_EC_I2C7_EEPROM_SCL,
.sda = GPIO_EC_I2C7_EEPROM_SDA,
},
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
const struct pwm_t pwm_channels[] = {
[PWM_CH_LED1_BLUE] = {
.channel = 2,
.flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
.freq = 100,
},
[PWM_CH_LED2_GREEN] = {
.channel = 0,
.flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
.freq = 100,
},
[PWM_CH_LED3_RED] = {
.channel = 1,
.flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP,
.freq = 100,
},
};
BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
/* Stub out battery and charging functions to compile common LED code.
* TODO(b/140557020): Define these for real.
*/
#ifdef CONFIG_CHARGER
#error "Write real definitions for charger and battery functions."
#endif
enum charge_state charge_get_state(void)
{
return PWR_STATE_UNCHANGE;
}
enum battery_present battery_is_present(void)
{
return BP_NOT_SURE;
}
int charge_get_percent(void)
{
return 0;
}