There was a last instance of sprintf which somehow was not converted.
I know it can't fail, but for consistency, let's use snprintf and
check for truncation as we already do in gather_i2c_busses().
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Add all the JEDEC-registered manufacturer names added since JEP106AQ.
Signed-off-by: Vincent Palatin <vpalatin@upmem.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
The Python bindings haven't been updated after commit
330bba29f3 ("libi2c: Properly
propagate real error codes on read errors"). This led to erronenous
behavior every time an error other than -1 is returned by i2c_smbus_*
functions.
[JD: Edited description.]
Signed-off-by: Georgii Staroselskii <georgii.staroselskii@emlid.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Allow the user to define the installation prefix as an alternative
to "/usr/local".
Suggested by Per Olav Kroka.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Allow the user select a different strip tool for the build
(same as done with the CC and AR variables).
Contributed by Per Olav Kroka.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
The libi2c library is released under the LGPL, not GPL, as explained
in the README file and documented in lib/Module.mk. Thanks to
Aurelien Jarno for pointing out the inconsistency.
A little bit of history:
The code started its life two decades ago as part of the lm-sensors
project, which was released as a whole under the GPL originally,
including the library part (libsensors).
In 2007, I decided to split the i2c tools, which are not specific
to sensor devices, to a separate package.
In 2009, as I was working on lm-sensors v3, I contacted all the
original authors to get their approval to release the upcoming and all
future versions of libsensors as LGPL instead, to allow wider
adoption. The proposal was accepted by all original authors.
In 2012, I decided to turn the inlined i2c_smbus_* helper functions
into a proper library, with the intent to release it under the LGPL,
as is the common practice for libraries. As the authors of this code
is a subset of the authors of libsensors, I assumed their agreement
for libsensors could be extended to libi2c as well. This is the
reason why LGPL is mentioned in README and lib/Module.mk.
Unfortunately, when working on the library code itself, I forgot to
update the comments in the source files. Let's fix them now.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
We now have the flag '-a' for all i2c-tools to allow access for all
addresses. This was tied in i2ctransfer to the '-f' flag. Remove it and
keep that feature to '-a' only. This is also more in sync with the other
i2c-tools which use '-f' only to access already busy devices.
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Reviewed-by: Peter Rosin <peda@axentia.se>
If the user is sure that the reserved 0x00 - 0x02 and 0x77 - 0x7f ranges
are not needed by its devices, then the "-a" option can be passed for
allowing all theorical addresses to be used. It is then possible to
access devices in this address range.
Signed-off-by: Romain Porte <romain.porte@nokia.com>
Reviewed-by: Peter Rosin <peda@axentia.se>
[wsa: imonr fixes to commit message]
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
The <linux/i2c-dev.h> header file is provided by the kernel, so drop
our own copy of this file.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Wolfram Sang <wsa@the-dreams.de>
Do not attempt to install the dynamic library when build of that library
is disabled. Fixes the following installation error:
install -m 755 lib/libi2c.so.0.1.0 .../target/usr/lib
install: cannot stat 'lib/libi2c.so.0.1.0': No such file or directory
lib/Module.mk:90: recipe for target 'install-lib' failed
Cc: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 9906b2ecb6 ("Makefile: Add flag to disable dynamic library")
Absence of this dependency caused parallel build to run into a race
and break.
Signed-off-by: Maxin B. John <maxin.john@intel.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
If the user disables the build of the dynamic library, we have to
link the tools with the static library. If we don't, the dependencies
will cause the dynamic library to be built regardless of the user's
request.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 9906b2ecb6 ("Makefile: Add flag to disable dynamic library")
LIB_LINKS should be added as a dependency only when
BUILD_DYNAMIC_LIB is enabled.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Fixes: 9906b2ecb6 ("Makefile: Add flag to disable dynamic library"
Better build the library before building the tools which link against
it, otherwise parallel builds could run into a race and break.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Tested-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Acked-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Document the newly introduced BUILD_DYNAMIC_LIB flag and clarify the
use of the other variables USE_STATIC_LIB and BUILD_STATIC_LIB.
[JD: Edit]
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
In such cases where you need to disable entirely the dynamic
library compilation, now you can use the BUILD_DYNAMIC_LIB=0
flag.
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Increese sleep time between writes to accomodate typical write
cycle times. An Atmel AT24C02 as well as an ON Semiconductor
CAT24C02 EEPROM specify 5ms. This resolves errors such as:
...
Bus: /dev/i2c-1, Address: 0x50, Mode: 8bit
Writing stdin starting at address 0x0
..Error i2c_write_2b: Input/output error
Error at line 162: write error
[JD] Define a single constant and add a note that this could be
revisited.
Probably because of a bad rebase, the old and bogus handling (v1) of "force"
slipped into the latest version of the patch (v3). Apply the better
version from v2 which does the error handling correct and makes the code
a lot easier to understand.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
This tool allows to construct and concat multiple I2C messages into one
single transfer. Its aim is to test I2C master controllers, and so there
is no SMBus fallback.
I've been missing such a tool a number of times now, so I finally got
around to writing it myself. As with all I2C tools, it can be dangerous,
but it can also be very useful when developing.
It has been tested with various Renesas I2C IP cores as well as Tegra,
i.MX and AT91.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
[wsa: fixed two more typos and ugly linebreak]
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>