diff options
author | Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> | 2013-10-11 07:23:54 (GMT) |
---|---|---|
committer | Heiko Schocher <hs@denx.de> | 2013-10-17 05:20:25 (GMT) |
commit | b55b8eef35f9ca04cf790381bab14510278b08a4 (patch) | |
tree | a47147f5aa69f7e62a155640c25d6b75f990956f /drivers/i2c/sh_i2c.c | |
parent | 13c2433ccb4d9a5efb95ad953c2b3a0eb1909988 (diff) | |
download | u-boot-b55b8eef35f9ca04cf790381bab14510278b08a4.tar.xz |
i2c: sh_i2c: Avoid using I2C prior to relocation
If user uses the I2C in before the relocation, board of sh and rmobile
will not start. This will solve this problem.
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Diffstat (limited to 'drivers/i2c/sh_i2c.c')
-rw-r--r-- | drivers/i2c/sh_i2c.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/i2c/sh_i2c.c b/drivers/i2c/sh_i2c.c index 58f8bf1..808202c 100644 --- a/drivers/i2c/sh_i2c.c +++ b/drivers/i2c/sh_i2c.c @@ -1,6 +1,6 @@ /* - * Copyright (C) 2011 Renesas Solutions Corp. - * Copyright (C) 2011 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> + * Copyright (C) 2011, 2013 Renesas Solutions Corp. + * Copyright (C) 2011, 2013 Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> * * SPDX-License-Identifier: GPL-2.0+ */ @@ -8,6 +8,8 @@ #include <common.h> #include <asm/io.h> +DECLARE_GLOBAL_DATA_PTR; + /* Every register is 32bit aligned, but only 8bits in size */ #define ureg(name) u8 name; u8 __pad_##name##0; u16 __pad_##name##1; struct sh_i2c { @@ -240,6 +242,10 @@ void i2c_init(int speed, int slaveaddr) { int num, denom, tmp; + /* No i2c support prior to relocation */ + if (!(gd->flags & GD_FLG_RELOC)) + return; + #ifdef CONFIG_I2C_MULTI_BUS current_bus = 0; #endif |