diff options
author | Stefan Roese <sr@denx.de> | 2014-10-30 09:33:13 +0100 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2014-10-30 10:17:47 +0100 |
commit | ebcaf966ed64b94ff3cd384ca9b3906a6ae0713e (patch) | |
tree | 788b2de8db95237cc3cfbfd55aa33f986fcee615 | |
parent | 571bdf16a78e9e116a93d46f4809c4f8a3f2adb6 (diff) | |
download | u-boot-imx-ebcaf966ed64b94ff3cd384ca9b3906a6ae0713e.zip u-boot-imx-ebcaf966ed64b94ff3cd384ca9b3906a6ae0713e.tar.gz u-boot-imx-ebcaf966ed64b94ff3cd384ca9b3906a6ae0713e.tar.bz2 |
arm: socfpga: Add I2C support to SoCFPGA
This patch adds I2C support for the SoCFPGA. Using the designware I2C
controller driver. It supports all 4 I2C busses on the SoCFPGA.
The designware I2C driver has now been converted to the
CONFIG_SYS_I2C framework. So lets enable it on SoCFPGA.
Tested on SoCrates.
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
Cc: Vince Bridgers <vbridger@altera.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Heiko Schocher <hs@denx.de>
-rw-r--r-- | include/configs/socfpga_common.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h index 83a1bcd..f7b314d 100644 --- a/include/configs/socfpga_common.h +++ b/include/configs/socfpga_common.h @@ -141,6 +141,33 @@ #define CONFIG_SYS_MMC_MAX_BLK_COUNT 256 /* FIXME -- SPL only? */ #endif + /* + * I2C support + */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_DW +#define CONFIG_SYS_I2C_BUS_MAX 4 +#define CONFIG_SYS_I2C_BASE SOCFPGA_I2C0_ADDRESS +#define CONFIG_SYS_I2C_BASE1 SOCFPGA_I2C1_ADDRESS +#define CONFIG_SYS_I2C_BASE2 SOCFPGA_I2C2_ADDRESS +#define CONFIG_SYS_I2C_BASE3 SOCFPGA_I2C3_ADDRESS +/* Using standard mode which the speed up to 100Kb/s */ +#define CONFIG_SYS_I2C_SPEED 100000 +#define CONFIG_SYS_I2C_SPEED1 100000 +#define CONFIG_SYS_I2C_SPEED2 100000 +#define CONFIG_SYS_I2C_SPEED3 100000 +/* Address of device when used as slave */ +#define CONFIG_SYS_I2C_SLAVE 0x02 +#define CONFIG_SYS_I2C_SLAVE1 0x02 +#define CONFIG_SYS_I2C_SLAVE2 0x02 +#define CONFIG_SYS_I2C_SLAVE3 0x02 +#ifndef __ASSEMBLY__ +/* Clock supplied to I2C controller in unit of MHz */ +unsigned int cm_get_l4_sp_clk_hz(void); +#define IC_CLK (cm_get_l4_sp_clk_hz() / 1000000) +#endif +#define CONFIG_CMD_I2C + /* * Serial Driver */ |