[U-Boot] [Patch] soft_i2c.c compiler/linker error

This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de ---
diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index ed5f5b2..68b267f 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -246,6 +246,7 @@ int i2c_set_bus_num(unsigned int bus) #endif return 0; } +#endif
/* TODO: add 100/400k switching */ unsigned int i2c_get_bus_speed(void) @@ -260,7 +261,7 @@ int i2c_set_bus_speed(unsigned int speed)
return 0; } -#endif +
/*----------------------------------------------------------------------- * if ack == I2C_ACK, ACK the byte so can continue reading, else

On 11:31 Fri 27 Mar , Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
NACK
you must implement it
Best Regards, J.

Jean-Christophe PLAGNIOL-VILLARD schrieb:
On 11:31 Fri 27 Mar , Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
NACK
you must implement it
Pleace a liltle bit more informations
What exactly must I implement?
I2C_MULTI_BUS or i2c_get_bus_speed / i2c_set_bus_speed
Is the driver (soft_i2c.c) not the right pleace for i2c_set/get_bus_speed?
Best Regards, Jens Scharsig

Hello Jean-Christophe
Jean-Christophe PLAGNIOL-VILLARD wrote:
On 11:31 Fri 27 Mar , Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
NACK
you must implement it
It is implemented in the driver, but not activated, because wrong define order ... I think this patch is OK.
bye Heiko

Heiko Schocher schrieb:
Hello Jean-Christophe
Jean-Christophe PLAGNIOL-VILLARD wrote:
On 11:31 Fri 27 Mar , Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
NACK
you must implement it
It is implemented in the driver, but not activated, because wrong define order ... I think this patch is OK.
bye Heiko
Thanks for the confirmation. That was my thought. Only my description was bad or not completely.
regards Jens

Hello Jens,
Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index ed5f5b2..68b267f 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -246,6 +246,7 @@ int i2c_set_bus_num(unsigned int bus) #endif return 0; } +#endif
/* TODO: add 100/400k switching */ unsigned int i2c_get_bus_speed(void) @@ -260,7 +261,7 @@ int i2c_set_bus_speed(unsigned int speed)
return 0; } -#endif
no need to add an empty line.
[...]
thanks for catching Heiko

This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef (wrong define order)
and
removes additional empty lines
Signed-off-by: Jens Scharsig esw@bus-elektronik.de ---
diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index ed5f5b2..185634d 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -51,14 +51,12 @@ DECLARE_GLOBAL_DATA_PTR; #endif
- /*----------------------------------------------------------------------- * Definitions */
#define RETRIES 0
- #define I2C_ACK 0 /* PD_SDA level to ack a byte */ #define I2C_NOACK 1 /* PD_SDA level to noack a byte */
@@ -154,7 +152,6 @@ static void send_stop(void) I2C_TRISTATE; }
- /*----------------------------------------------------------------------- * ack should be I2C_ACK or I2C_NOACK */ @@ -174,7 +171,6 @@ static void send_ack(int ack) I2C_DELAY; }
- /*----------------------------------------------------------------------- * Send 8 bits and look for an acknowledgement. */ @@ -246,6 +242,7 @@ int i2c_set_bus_num(unsigned int bus) #endif return 0; } +#endif
/* TODO: add 100/400k switching */ unsigned int i2c_get_bus_speed(void) @@ -260,7 +257,6 @@ int i2c_set_bus_speed(unsigned int speed)
return 0; } -#endif
/*----------------------------------------------------------------------- * if ack == I2C_ACK, ACK the byte so can continue reading, else

Hello Jens,
Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef (wrong define order)
This line is too long also s/uesd/used should be done ... I fix this, when apply this patch (or you send me a new one)
bye Heiko

This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef (wrong define order)
and
removes additional empty lines
Signed-off-by: Jens Scharsig esw@bus-elektronik.de ---
diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index ed5f5b2..185634d 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -51,14 +51,12 @@ DECLARE_GLOBAL_DATA_PTR; #endif
- /*----------------------------------------------------------------------- * Definitions */
#define RETRIES 0
- #define I2C_ACK 0 /* PD_SDA level to ack a byte */ #define I2C_NOACK 1 /* PD_SDA level to noack a byte */
@@ -154,7 +152,6 @@ static void send_stop(void) I2C_TRISTATE; }
- /*----------------------------------------------------------------------- * ack should be I2C_ACK or I2C_NOACK */ @@ -174,7 +171,6 @@ static void send_ack(int ack) I2C_DELAY; }
- /*----------------------------------------------------------------------- * Send 8 bits and look for an acknowledgement. */ @@ -246,6 +242,7 @@ int i2c_set_bus_num(unsigned int bus) #endif return 0; } +#endif
/* TODO: add 100/400k switching */ unsigned int i2c_get_bus_speed(void) @@ -260,7 +257,6 @@ int i2c_set_bus_speed(unsigned int speed)
return 0; } -#endif
/*----------------------------------------------------------------------- * if ack == I2C_ACK, ACK the byte so can continue reading, else

Hello Jens,
Jens Scharsig wrote:
This patch fix the compiler/linker errors
common/cmd_i2c.c:1252: undefined reference to `i2c_get_bus_speed' common/cmd_i2c.c:1256: undefined reference to `i2c_set_bus_speed'
if board use CONFIG_I2C_CMD_TREE and CONFIG_I2C_MULTI_BUS is not uesd/undef (wrong define order)
and
removes additional empty lines
Signed-off-by: Jens Scharsig esw@bus-elektronik.de
Applied to u-boot-i2c.git
thanks Heiko
participants (3)
-
Heiko Schocher
-
Jean-Christophe PLAGNIOL-VILLARD
-
Jens Scharsig