summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Cernekee <cernekee@chromium.org>2015-08-16 14:26:19 -0700
committerChromeOS bot <3su6n15k.default@developer.gserviceaccount.com>2015-08-26 23:11:19 +0000
commitfb98259abd8a52978f9bca47273b226af802cc2e (patch)
treef350f90f5e93661c54c2c3544ec8876107aed3a0
parente4a9915dddc4357201a853cc2ffff3398e1b110a (diff)
downloadchrome-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.c12
-rw-r--r--board/link/board.h6
-rw-r--r--include/i2c.h8
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