114 lines
2.6 KiB
C
114 lines
2.6 KiB
C
/* 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;
|
|
}
|