diff options
author | David Hendricks <dhendrix@chromium.org> | 2013-04-05 16:11:12 -0700 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-04-10 00:01:02 +0200 |
commit | b959fbb87adb274b442bc6ab812e5a2ce92ca220 (patch) | |
tree | 9d055eb9126f50e5c72ab8bdcbe6c8efa4bceb51 /src/cpu/samsung/exynos5-common/i2c.h | |
parent | cfb73607be05e57237592c5c94a98589aba04833 (diff) |
exynos5: Re-factor I2C code
This re-factors the Exynos5 I2C code to be simpler and use the
new API, and updates users accordingly.
- i2c_read() and i2c_write() functions updated to take bus number
as an argument.
- Get rid of the EEPROM_ADDR_OVERFLOW stuff in i2c_read() and
i2c_write(). If a chip needs special handling we should take care
of it elsewhere, not in every low-level i2c driver.
- All the confusing bus config functions eliminated. No more
i2c_set_early_config() or i2c_set_bus() or i2c_get_bus(). All this
is handled automatically when the caller does a transaction and
specifies the desired bus number.
- i2c_probe() eliminated. We're not a command-line utility.
- Let the compiler place static variables automatically. We don't need
any of this fancy manual data placement.
- Remove dead code while we're at it. This stuff was ported early on
and much of it was left commented out in case we needed it. Some
also includes nested macros which caused gcc to complain.
- Clean up #includes (no more common.h, woohoo!), replace debug() with
printk().
Change-Id: I8e1f974ea4c6c7db9f33b77bbc4fb16008ed0d2a
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/3044
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/cpu/samsung/exynos5-common/i2c.h')
-rw-r--r-- | src/cpu/samsung/exynos5-common/i2c.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cpu/samsung/exynos5-common/i2c.h b/src/cpu/samsung/exynos5-common/i2c.h index eb68af78f0..0bfee340e1 100644 --- a/src/cpu/samsung/exynos5-common/i2c.h +++ b/src/cpu/samsung/exynos5-common/i2c.h @@ -35,9 +35,11 @@ struct s3c24x0_i2c { }; struct s3c24x0_i2c_bus { - int node; /* device tree node */ - int bus_num; /* i2c bus number */ + int bus_num; struct s3c24x0_i2c *regs; - enum periph_id id; + enum periph_id periph_id; }; + +void i2c_init(unsigned bus, int speed, int slaveadd); + #endif /* _S3C24X0_I2C_H */ |