diff options
author | Kevin Cernekee <cernekee@chromium.org> | 2015-08-16 14:26:19 -0700 |
---|---|---|
committer | ChromeOS bot <3su6n15k.default@developer.gserviceaccount.com> | 2015-08-26 23:11:19 +0000 |
commit | fb98259abd8a52978f9bca47273b226af802cc2e (patch) | |
tree | f350f90f5e93661c54c2c3544ec8876107aed3a0 | |
parent | e4a9915dddc4357201a853cc2ffff3398e1b110a (diff) | |
download | chrome-ec-fb98259abd8a52978f9bca47273b226af802cc2e.tar.gz |
link: Add definitions for I2C GPIO pins
We're going to backport a couple of functions that use these.
This patch will cause the I2C0 GPIOs to lose their power-on pinmux
defaults, but that's OK because chip/lm4/i2c.c explicitly sets them
up anyway.
BUG=chromium:458878
BRANCH=link
TEST=manual
Change-Id: I78686f51aac29070911b70f301b0203c1af21009
Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/295094
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | board/link/board.c | 12 | ||||
-rw-r--r-- | board/link/board.h | 6 | ||||
-rw-r--r-- | include/i2c.h | 8 |
3 files changed, 20 insertions, 6 deletions
diff --git a/board/link/board.c b/board/link/board.c index 3785386bff..1d0cbdbf45 100644 --- a/board/link/board.c +++ b/board/link/board.c @@ -117,6 +117,12 @@ const struct gpio_info gpio_list[GPIO_COUNT] = { {"USB2_CTL3", LM4_GPIO_D, (1<<6), GPIO_OUT_LOW, NULL}, {"USB2_ENABLE", LM4_GPIO_D, (1<<7), GPIO_OUT_LOW, NULL}, {"USB2_ILIM_SEL", LM4_GPIO_E, (1<<0), GPIO_OUT_LOW, NULL}, + {"I2C0_SCL", LM4_GPIO_B, (1<<2), GPIO_OUT_LOW, NULL}, + {"I2C0_SDA", LM4_GPIO_B, (1<<3), GPIO_OUT_LOW, NULL}, + {"I2C1_SCL", LM4_GPIO_A, (1<<6), GPIO_OUT_LOW, NULL}, + {"I2C1_SDA", LM4_GPIO_A, (1<<7), GPIO_OUT_LOW, NULL}, + {"I2C5_SCL", LM4_GPIO_B, (1<<6), GPIO_OUT_LOW, NULL}, + {"I2C5_SDA", LM4_GPIO_B, (1<<7), GPIO_OUT_LOW, NULL}, }; /* ADC channels. Must be in the exactly same order as in enum adc_channel. */ @@ -139,9 +145,9 @@ const struct adc_t adc_channels[ADC_CH_COUNT] = { const struct i2c_port_t i2c_ports[I2C_PORTS_USED] = { /* Note: battery and charger share a port. Only include it once in * this list so we don't double-initialize it. */ - {"batt_chg", I2C_PORT_BATTERY, 100}, - {"lightbar", I2C_PORT_LIGHTBAR, 400}, - {"thermal", I2C_PORT_THERMAL, 100}, + {"batt_chg", I2C_PORT_BATTERY, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA}, + {"lightbar", I2C_PORT_LIGHTBAR, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA}, + {"thermal", I2C_PORT_THERMAL, 100, GPIO_I2C5_SCL, GPIO_I2C5_SDA}, }; void configure_board(void) diff --git a/board/link/board.h b/board/link/board.h index 2e0dfa91b8..339c26b130 100644 --- a/board/link/board.h +++ b/board/link/board.h @@ -179,6 +179,12 @@ enum gpio_signal { GPIO_USB2_CTL3, /* USB charger port 2 CTL3 output */ GPIO_USB2_ENABLE, /* USB charger port 2 enable */ GPIO_USB2_ILIM_SEL, /* USB charger port 2 ILIM_SEL output */ + GPIO_I2C0_SCL, /* I2C0 (battery/charger) clock */ + GPIO_I2C0_SDA, /* I2C0 (battery/charger) data */ + GPIO_I2C1_SCL, /* I2C1 (lightbar) clock */ + GPIO_I2C1_SDA, /* I2C1 (lightbar) data */ + GPIO_I2C5_SCL, /* I2C5 (thermal) clock */ + GPIO_I2C5_SDA, /* I2C5 (thermal) data */ /* Number of GPIOs; not an actual GPIO */ GPIO_COUNT diff --git a/include/i2c.h b/include/i2c.h index dbf933e102..a707e515ce 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -15,9 +15,11 @@ /* Data structure to define I2C port configuration. */ struct i2c_port_t { - const char *name; /* Port name */ - int port; /* Port */ - int kbps; /* Speed in kbps */ + const char *name; /* Port name */ + int port; /* Port */ + int kbps; /* Speed in kbps */ + enum gpio_signal scl; /* Port SCL GPIO line */ + enum gpio_signal sda; /* Port SDA GPIO line */ }; /* Read a 16-bit register from the slave at 8-bit slave address <slaveaddr>, at |