diff options
author | Alexandru M Stan <amstan@chromium.org> | 2015-01-15 13:51:59 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-01-16 20:37:07 +0000 |
commit | fe294979d6cc80a7ab71c2997502bfa2abd2912a (patch) | |
tree | a322c36b20cf7d8ef1f895f35d84de5deb32f03b | |
parent | 7893715cb7ef471002893ed128c241a8e8dfdacb (diff) | |
download | chrome-ec-fe294979d6cc80a7ab71c2997502bfa2abd2912a.tar.gz |
I2C: Increase priority of i2c_init
Chipset sometimes needs I2C, therefore i2c_init should have a higher priority
than power_common_init so i2c is available by the time the chipset might be
talking to the battery.
BUG=chrome-os-partner:35502, chrome-os-partner:35173
TEST=There is no "battery not responding" message at startup on veyron
TEST=EC boot takes less than 1 second on veyron
BRANCH=none
Change-Id: Ib10b653decc7703e706d4dd1976abf0fdbc25ac2
Signed-off-by: Alexandru M Stan <amstan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/241102
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | chip/lm4/i2c.c | 2 | ||||
-rw-r--r-- | chip/mec1322/i2c.c | 2 | ||||
-rw-r--r-- | chip/npcx/i2c.c | 2 | ||||
-rw-r--r-- | chip/nrf51/i2c.c | 2 | ||||
-rw-r--r-- | chip/stm32/i2c-stm32f.c | 2 | ||||
-rw-r--r-- | chip/stm32/i2c-stm32f0.c | 2 | ||||
-rw-r--r-- | chip/stm32/i2c-stm32l.c | 2 | ||||
-rw-r--r-- | include/hooks.h | 12 |
8 files changed, 14 insertions, 12 deletions
diff --git a/chip/lm4/i2c.c b/chip/lm4/i2c.c index 51470eed70..56b4666330 100644 --- a/chip/lm4/i2c.c +++ b/chip/lm4/i2c.c @@ -406,7 +406,7 @@ static void i2c_init(void) i2c_set_timeout(i, 0); } } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); /** * Handle an interrupt on the specified port. diff --git a/chip/mec1322/i2c.c b/chip/mec1322/i2c.c index adc3cef04d..038d4763d9 100644 --- a/chip/mec1322/i2c.c +++ b/chip/mec1322/i2c.c @@ -340,7 +340,7 @@ static void i2c_init(void) for (i = 0; i < i2c_ports_used; ++i) configure_port(i2c_ports[i].port, i2c_ports[i].kbps); } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); static void handle_interrupt(int port) { diff --git a/chip/npcx/i2c.c b/chip/npcx/i2c.c index 1e71ed6c7b..e09bda30b6 100644 --- a/chip/npcx/i2c.c +++ b/chip/npcx/i2c.c @@ -589,4 +589,4 @@ static void i2c_init(void) task_enable_irq(i2c_irqs[port]); } } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); diff --git a/chip/nrf51/i2c.c b/chip/nrf51/i2c.c index 7065345580..6ef109ea0e 100644 --- a/chip/nrf51/i2c.c +++ b/chip/nrf51/i2c.c @@ -63,7 +63,7 @@ static void i2c_init(void) for (i = 0; i < i2c_ports_used; i++) i2c_init_port(i); } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); static void dump_i2c_reg(int port) { diff --git a/chip/stm32/i2c-stm32f.c b/chip/stm32/i2c-stm32f.c index 674808277c..88728f1eb1 100644 --- a/chip/stm32/i2c-stm32f.c +++ b/chip/stm32/i2c-stm32f.c @@ -380,7 +380,7 @@ static void i2c_init(void) task_enable_irq(STM32_IRQ_I2C2_EV); task_enable_irq(STM32_IRQ_I2C2_ER); } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); /*****************************************************************************/ /* STM32 Host I2C */ diff --git a/chip/stm32/i2c-stm32f0.c b/chip/stm32/i2c-stm32f0.c index 28726307ef..a72233d462 100644 --- a/chip/stm32/i2c-stm32f0.c +++ b/chip/stm32/i2c-stm32f0.c @@ -443,7 +443,7 @@ static void i2c_init(void) task_enable_irq(IRQ_SLAVE); #endif } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); #ifdef CONFIG_HOSTCMD_I2C_SLAVE_ADDR /** diff --git a/chip/stm32/i2c-stm32l.c b/chip/stm32/i2c-stm32l.c index 8b37eb3ef9..510c138410 100644 --- a/chip/stm32/i2c-stm32l.c +++ b/chip/stm32/i2c-stm32l.c @@ -408,7 +408,7 @@ static void i2c_init(void) for (i = 0; i < i2c_ports_used; i++, p++) i2c_init_port(p); } -DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_INIT, i2c_init, HOOK_PRIO_INIT_I2C); /*****************************************************************************/ /* Console commands */ diff --git a/include/hooks.h b/include/hooks.h index 579aa0470f..a4a518354a 100644 --- a/include/hooks.h +++ b/include/hooks.h @@ -21,16 +21,18 @@ enum hook_priority { HOOK_PRIO_INIT_DMA = HOOK_PRIO_FIRST + 1, /* LPC inits before modules which need memory-mapped I/O */ HOOK_PRIO_INIT_LPC = HOOK_PRIO_FIRST + 1, + /* I2C is needed before chipset inits (battery communications). */ + HOOK_PRIO_INIT_I2C = HOOK_PRIO_FIRST + 2, /* Chipset inits before modules which need to know its initial state. */ - HOOK_PRIO_INIT_CHIPSET = HOOK_PRIO_FIRST + 2, + HOOK_PRIO_INIT_CHIPSET = HOOK_PRIO_FIRST + 3, /* Lid switch inits before power button */ - HOOK_PRIO_INIT_LID = HOOK_PRIO_FIRST + 3, + HOOK_PRIO_INIT_LID = HOOK_PRIO_FIRST + 4, /* Power button inits before chipset and switch */ - HOOK_PRIO_INIT_POWER_BUTTON = HOOK_PRIO_FIRST + 4, + HOOK_PRIO_INIT_POWER_BUTTON = HOOK_PRIO_FIRST + 5, /* PWM inits before modules which might use it (fans, LEDs) */ - HOOK_PRIO_INIT_PWM = HOOK_PRIO_FIRST + 5, + HOOK_PRIO_INIT_PWM = HOOK_PRIO_FIRST + 6, /* Extpower inits before modules which might use it (battery, LEDs) */ - HOOK_PRIO_INIT_EXTPOWER = HOOK_PRIO_FIRST + 6, + HOOK_PRIO_INIT_EXTPOWER = HOOK_PRIO_FIRST + 7, /* Specific values to lump temperature-related hooks together */ HOOK_PRIO_TEMP_SENSOR = 6000, |