[U-Boot] [PATCH] i2c: Instantiate I2C controllers when selected

Do not enable both I2C controllers by default. Enable them only when they are selected.
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
drivers/i2c/zynq_i2c.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/i2c/zynq_i2c.c b/drivers/i2c/zynq_i2c.c index b3264af4526e..380863bde148 100644 --- a/drivers/i2c/zynq_i2c.c +++ b/drivers/i2c/zynq_i2c.c @@ -297,11 +297,15 @@ static unsigned int zynq_i2c_set_bus_speed(struct i2c_adapter *adap, return 0; }
+#ifdef CONFIG_ZYNQ_I2C0 U_BOOT_I2C_ADAP_COMPLETE(zynq_0, zynq_i2c_init, zynq_i2c_probe, zynq_i2c_read, zynq_i2c_write, zynq_i2c_set_bus_speed, CONFIG_SYS_I2C_ZYNQ_SPEED, CONFIG_SYS_I2C_ZYNQ_SLAVE, 0) +#endif +#ifdef CONFIG_ZYNQ_I2C1 U_BOOT_I2C_ADAP_COMPLETE(zynq_1, zynq_i2c_init, zynq_i2c_probe, zynq_i2c_read, zynq_i2c_write, zynq_i2c_set_bus_speed, CONFIG_SYS_I2C_ZYNQ_SPEED, CONFIG_SYS_I2C_ZYNQ_SLAVE, 1) +#endif

Hello Michal,
Am 27.10.2015 um 16:02 schrieb Michal Simek:
Do not enable both I2C controllers by default. Enable them only when they are selected.
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/i2c/zynq_i2c.c | 4 ++++ 1 file changed, 4 insertions(+)
Thanks!
I will accept this patch, but it is a fix for the old style I2C driver. I would prefer a patch, which converts this driver to DM ;-)
What do you mean with "enabled"? The old style i2c driver, does not initialize (call zynq_i2c_init()) the i2c driver, until it is used ... nevertheless, you save some bytes, which is always good.
Reviewed-by: Heiko Schocher hs@denx.de
bye, Heiko
diff --git a/drivers/i2c/zynq_i2c.c b/drivers/i2c/zynq_i2c.c index b3264af4526e..380863bde148 100644 --- a/drivers/i2c/zynq_i2c.c +++ b/drivers/i2c/zynq_i2c.c @@ -297,11 +297,15 @@ static unsigned int zynq_i2c_set_bus_speed(struct i2c_adapter *adap, return 0; }
+#ifdef CONFIG_ZYNQ_I2C0 U_BOOT_I2C_ADAP_COMPLETE(zynq_0, zynq_i2c_init, zynq_i2c_probe, zynq_i2c_read, zynq_i2c_write, zynq_i2c_set_bus_speed, CONFIG_SYS_I2C_ZYNQ_SPEED, CONFIG_SYS_I2C_ZYNQ_SLAVE, 0) +#endif +#ifdef CONFIG_ZYNQ_I2C1 U_BOOT_I2C_ADAP_COMPLETE(zynq_1, zynq_i2c_init, zynq_i2c_probe, zynq_i2c_read, zynq_i2c_write, zynq_i2c_set_bus_speed, CONFIG_SYS_I2C_ZYNQ_SPEED, CONFIG_SYS_I2C_ZYNQ_SLAVE, 1) +#endif

Hi Heiko,
On 10/28/2015 06:56 AM, Heiko Schocher wrote:
Hello Michal,
Am 27.10.2015 um 16:02 schrieb Michal Simek:
Do not enable both I2C controllers by default. Enable them only when they are selected.
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/i2c/zynq_i2c.c | 4 ++++ 1 file changed, 4 insertions(+)
Thanks!
I will accept this patch, but it is a fix for the old style I2C driver. I would prefer a patch, which converts this driver to DM ;-)
We will do it soon.
What do you mean with "enabled"? The old style i2c driver, does not initialize (call zynq_i2c_init()) the i2c driver, until it is used ... nevertheless, you save some bytes, which is always good.
All zynq devices have 2 I2C core inside but not all of them are connected to the board from chip. I don't know why but both of them were enabled by default. Configuration should be done based on real connection on the board. It means only certain I2C controller (or both) should be enabled via board file. This will be solved by moving driver to DM.
Reviewed-by: Heiko Schocher hs@denx.de
Are you going to queue this? Or do you want me to take it via arm zynq repo?
Thanks, Michal

Hello Michal,
Am 28.10.2015 um 08:08 schrieb Michal Simek:
Hi Heiko,
On 10/28/2015 06:56 AM, Heiko Schocher wrote:
Hello Michal,
Am 27.10.2015 um 16:02 schrieb Michal Simek:
Do not enable both I2C controllers by default. Enable them only when they are selected.
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/i2c/zynq_i2c.c | 4 ++++ 1 file changed, 4 insertions(+)
Thanks!
I will accept this patch, but it is a fix for the old style I2C driver. I would prefer a patch, which converts this driver to DM ;-)
We will do it soon.
Nice!
What do you mean with "enabled"? The old style i2c driver, does not initialize (call zynq_i2c_init()) the i2c driver, until it is used ... nevertheless, you save some bytes, which is always good.
All zynq devices have 2 I2C core inside but not all of them are connected to the board from chip. I don't know why but both of them were enabled by default. Configuration should be done based on real connection on the board. It means only certain I2C controller (or both) should be enabled via board file. This will be solved by moving driver to DM.
Ok.
Reviewed-by: Heiko Schocher hs@denx.de
Are you going to queue this? Or do you want me to take it via arm zynq repo?
Applied to u-boot-i2c.git
bye, Heiko
participants (2)
-
Heiko Schocher
-
Michal Simek