[U-Boot] [PATCH v2 1/2] eeprom: fix DM_I2C support without CONFIG_SYS_I2C_EEPROM_BUS

The current device model enabled eeprom code only works if CONFIG_SYS_I2C_EEPROM_BUS is set.
This patch makes it work without that define so that the bus number passed to 'eeprom_init' is used.
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com ---
Changes in v2: None
cmd/eeprom.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/cmd/eeprom.c b/cmd/eeprom.c index 6c29b33ba3..9e44960c7d 100644 --- a/cmd/eeprom.c +++ b/cmd/eeprom.c @@ -59,6 +59,10 @@ #endif #endif
+#if defined(CONFIG_DM_I2C) +int eeprom_i2c_bus; +#endif + __weak int eeprom_write_enable(unsigned dev_addr, int state) { return 0; @@ -67,7 +71,9 @@ __weak int eeprom_write_enable(unsigned dev_addr, int state) void eeprom_init(int bus) { /* I2C EEPROM */ -#if defined(CONFIG_SYS_I2C) +#if defined(CONFIG_DM_I2C) + eeprom_i2c_bus = bus; +#elif defined(CONFIG_SYS_I2C) if (bus >= 0) i2c_set_bus_num(bus); i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); @@ -124,14 +130,14 @@ static int eeprom_rw_block(unsigned offset, uchar *addr, unsigned alen, { int ret = 0;
-#if defined(CONFIG_DM_I2C) && defined(CONFIG_SYS_I2C_EEPROM_BUS) +#if defined(CONFIG_DM_I2C) struct udevice *dev;
- ret = i2c_get_chip_for_busnum(CONFIG_SYS_I2C_EEPROM_BUS, addr[0], + ret = i2c_get_chip_for_busnum(eeprom_i2c_bus, addr[0], alen - 1, &dev); if (ret) { printf("%s: Cannot find udev for a bus %d\n", __func__, - CONFIG_SYS_I2C_EEPROM_BUS); + eeprom_i2c_bus); return CMD_RET_FAILURE; }
@@ -141,15 +147,12 @@ static int eeprom_rw_block(unsigned offset, uchar *addr, unsigned alen, ret = dm_i2c_write(dev, offset, buffer, len);
#else /* Non DM I2C support - will be removed */ -#if defined(CONFIG_SYS_I2C_EEPROM_BUS) - i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS); -#endif
if (read) ret = i2c_read(addr[0], offset, alen - 1, buffer, len); else ret = i2c_write(addr[0], offset, alen - 1, buffer, len); -#endif /* CONFIG_DM_I2C && CONFIG_SYS_I2C_EEPROM_BUS */ +#endif /* CONFIG_DM_I2C */ if (ret) ret = CMD_RET_FAILURE;
@@ -164,6 +167,10 @@ static int eeprom_rw(unsigned dev_addr, unsigned offset, uchar *buffer, int rcode = 0; uchar addr[3];
+#if defined(CONFIG_SYS_I2C_EEPROM_BUS) + i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS); +#endif + while (offset < end) { alen = eeprom_addr(dev_addr, offset, addr);

This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com ---
Changes in v2: - added patch to fix DM_I2C eeprom code to work without CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 4bcc5c4557..74c5a1a6ed 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -455,7 +455,6 @@ config CRC32_VERIFY
config CMD_EEPROM bool "eeprom - EEPROM subsystem" - depends on !DM_I2C || DM_I2C_COMPAT help (deprecated, needs conversion to driver model) Provides commands to read and write EEPROM (Electrically Erasable

On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org

Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
added patch to fix DM_I2C eeprom code to work without CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Thanks, Simon

On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without
CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.

Hello Marek, Simon,
Am 09.04.2019 um 21:30 schrieb Marek Vasut:
On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without
CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.
Just add to this patches my RB tag, so please pick it up, to prevent dependency problems, thanks!
bye, Heiko

Hello Heiko,
On Wed, Apr 10, 2019 at 7:20 AM Heiko Schocher hs@denx.de wrote:
Hello Marek, Simon,
Am 09.04.2019 um 21:30 schrieb Marek Vasut:
On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
added patch to fix DM_I2C eeprom code to work without CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.
Just add to this patches my RB tag, so please pick it up, to prevent dependency problems, thanks!
OK, I'll do that.
Thanks, Simon

On 4/10/19 7:20 AM, Heiko Schocher wrote:
Hello Marek, Simon,
Am 09.04.2019 um 21:30 schrieb Marek Vasut:
On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without
CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.
Just add to this patches my RB tag, so please pick it up, to prevent dependency problems, thanks!
Then put the RB tag here , so that PW can pick it :)

Hello Marek,
Am 10.04.2019 um 10:05 schrieb Marek Vasut:
On 4/10/19 7:20 AM, Heiko Schocher wrote:
Hello Marek, Simon,
Am 09.04.2019 um 21:30 schrieb Marek Vasut:
On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without
CONFIG_SYS_I2C_EEPROM_BUS
cmd/Kconfig | 1 - 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.
Just add to this patches my RB tag, so please pick it up, to prevent dependency problems, thanks!
Then put the RB tag here , so that PW can pick it :)
already done, see:
http://patchwork.ozlabs.org/patch/1065524/#2149315
bye, Heiko

On 4/10/19 10:19 AM, Heiko Schocher wrote:
Hello Marek,
Am 10.04.2019 um 10:05 schrieb Marek Vasut:
On 4/10/19 7:20 AM, Heiko Schocher wrote:
Hello Marek, Simon,
Am 09.04.2019 um 21:30 schrieb Marek Vasut:
On 4/9/19 8:53 PM, Simon Goldschmidt wrote:
Am 30.03.2019 um 22:18 schrieb Simon Glass:
On Tue, 26 Mar 2019 at 06:39, Simon Goldschmidt simon.k.r.goldschmidt@gmail.com wrote: > > This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51. > > The 'eeprom' command has been converted to work with DM_I2C in a > patch > submitted around the same time as this commit: > commit 0c07a9b4078d ("eeprom: Add device model based I2C support to > eeprom command") > > Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com > --- > > Changes in v2: > - added patch to fix DM_I2C eeprom code to work without > CONFIG_SYS_I2C_EEPROM_BUS > > cmd/Kconfig | 1 - > 1 file changed, 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
Who will take this series? It's assigned in to Marek in patchwork, but might go via Heiko's i2c tree? Or directly via Tom?
I have sent patches (move socfpga_vining to DM_I2C) that are based on this series...
Heiko should at least AB/RB it , then I can take it via socfpga tree to avoid dependency problems.
Just add to this patches my RB tag, so please pick it up, to prevent dependency problems, thanks!
Then put the RB tag here , so that PW can pick it :)
already done, see:
Thanks!

Hello Simon,
Am 26.03.2019 um 13:38 schrieb Simon Goldschmidt:
This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.
The 'eeprom' command has been converted to work with DM_I2C in a patch submitted around the same time as this commit: commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2:
- added patch to fix DM_I2C eeprom code to work without CONFIG_SYS_I2C_EEPROM_BUS
Reviewed-by: Heiko Schocher hs@denx.de
bye, Heiko

Hello Simon,
Am 26.03.2019 um 13:38 schrieb Simon Goldschmidt:
The current device model enabled eeprom code only works if CONFIG_SYS_I2C_EEPROM_BUS is set.
This patch makes it work without that define so that the bus number passed to 'eeprom_init' is used.
Signed-off-by: Simon Goldschmidt simon.k.r.goldschmidt@gmail.com
Changes in v2: None
cmd/eeprom.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)
Reviewed-by: Heiko Schocher hs@denx.de
bye, Heiko
participants (4)
-
Heiko Schocher
-
Marek Vasut
-
Simon Glass
-
Simon Goldschmidt