[U-Boot] [PATCH] arm: socfpga: Add I2C support to SoCFPGA
Heiko Schocher
hs at denx.de
Tue Oct 21 08:44:38 CEST 2014
Hello Marek,
Am 20.10.2014 16:46, schrieb Marek Vasut:
> On Monday, October 20, 2014 at 08:45:48 AM, Stefan Roese wrote:
>
> Hi all,
>
>> This patch adds I2C support for the SoCFPGA. Using the designware I2C
>> controller driver. It supports all 4 I2C busses on the SoCFPGA.
>>
>> Signed-off-by: Stefan Roese<sr at denx.de>
>> Cc: Marek Vasut<marex at denx.de>
>> Cc: Vince Briders<vbridger at altera.com>
>> Cc: Chin Liang See<clsee at altera.com>
>> Cc: Dinh Nguyen<dinguyen at altera.com>
>
> +CC Heiko, the I2C custodian.
Thanks! As I am just not really find time to work, I do not
look into the u-boot ML ...
>> ---
>> include/configs/socfpga_common.h | 22 ++++++++++++++++++++++
>> 1 file changed, 22 insertions(+)
>>
>> diff --git a/include/configs/socfpga_common.h
>> b/include/configs/socfpga_common.h index 49504dc..ba1e072 100644
>> --- a/include/configs/socfpga_common.h
>> +++ b/include/configs/socfpga_common.h
>> @@ -157,6 +157,28 @@
>> #define CONFIG_BAUDRATE 115200
>>
>> /*
>> + * I2C support
>> + */
>> +#define CONFIG_HARD_I2C
No ... do not add this define please.
>> +#define CONFIG_DW_I2C
>> +#define CONFIG_I2C_MULTI_BUS
>
> I presume this should be converted to CONFIG_SYS_I2C framework instead of using
> this I2C multibus horror, no?
... Yes, please!
Which i2c driver does socfpga use? If it is the "drivers/i2c/designware_i2c.c"
driver, please convert it to the "CONFIG_SYS_I2C" framework.
You may also take a look into Simons RFC patches, which introduce
DM model:
http://lists.denx.de/pipermail/u-boot/2014-October/191497.html
bye,
Heiko
>> +#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
>> +/* address of device when used as slave */
>> +#define CONFIG_SYS_I2C_SLAVE 0x02
>> +#ifndef __ASSEMBLY__
>> +/* clock supplied to I2C controller in unit of MHz */
>> +unsigned int cm_get_l4_sp_clk_hz(void);
>
> Include clock_manager.h instead maybe ?
>
>> +#define IC_CLK (cm_get_l4_sp_clk_hz() / 1000000)
>> +#endif
>> +#define CONFIG_CMD_I2C
>> +
>> +/*
>> * U-Boot environment
>> */
>> #define CONFIG_SYS_CONSOLE_IS_IN_ENV
>
> Best regards,
> Marek Vasut
>
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list