summaryrefslogtreecommitdiff
path: root/drivers/i2c
AgeCommit message (Collapse)Author
2017-12-07i2c: at91_i2c: remove the .probe_chip functionAlan Ott
The .probe_chip function is supposed to probe an i2c device on the bus to determine whether a device is answering to a particular address. at91_i2c_probe_chip() did not do anything resembling this and always returned 0. It looks as though at91_i2c_probe_chip() was intended to be a .probe function for the controller, as it was copied-and-pasted to become at91_i2c_probe() in 0bc8f640a4d7ed. Removing the at91_i2c_probe_chip() function makes the higher layer (i2c_probe_chip()) try a zero-length read transfer to test for the presence of a device instead, which does work. Signed-off-by: Alan Ott <[email protected]> Acked-by: Wenyou Yang <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-12-07i2c: at91_i2c: Wait for TXRDY after sending the first byteAlan Ott
The driver must wait for TXRDY after each byte is pushed into the i2c FIFO before pushing the next byte. Previously this was not done for the first byte, causing a race condition with zeros sometimes being sent for the next byte (which is typically the first actual data byte). Signed-off-by: Alan Ott <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-12-07i2c: meson: add some commentsBeniamino Galvani
Add some comment describing the purpose of struct members and functions. Signed-off-by: Beniamino Galvani <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-12-07i2c: meson: fix return codes on errorBeniamino Galvani
Change meson_i2c_xfer_msg() to return -EREMOTEIO in case of NACK, as done by other drivers. Also, don't change the return error in meson_i2c_xfer(). Signed-off-by: Beniamino Galvani <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-12-07i2c: meson: reduce timeoutBeniamino Galvani
The datasheet doesn't specify a suggested timeout and 500ms seems very long: reduce it to 100ms. Signed-off-by: Beniamino Galvani <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-12-07i2c: meson: improve Kconfig descriptionBeniamino Galvani
Expand the Kconfig description with hardware features. Signed-off-by: Beniamino Galvani <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-11-30i2c: rcar_iic: Add RCar IIC driverMarek Vasut
Add driver for the RCar IIC or DVFS I2C controller. This driver is based on the SH I2C driver, but supports DM and DT probing as well as modern I2C framework API. Signed-off-by: Marek Vasut <[email protected]> Cc: Nobuhiro Iwamatsu <[email protected]>
2017-11-27Merge git://www.denx.de/git/u-boot-imxTom Rini
Signed-off-by: Tom Rini <[email protected]>
2017-11-20i2c: add Amlogic Meson driverBeniamino Galvani
Add a driver for the I2C controller available on Amlogic Meson SoCs. Signed-off-by: Beniamino Galvani <[email protected]> Reviewed-by: Neil Armstrong <[email protected]>
2017-11-20imx: mxc_i2c: tweak the i2c transfer methodNandor Han
Tweak the i2c transfer to work for devices that want to read data without addressing a register. Signed-off-by: Nandor Han <[email protected]> Signed-off-by: Martyn Welch <[email protected]> Acked-by: Heiko Schocher <[email protected]> Cc: Heiko Schocher <[email protected]> Cc: Stefano Babic <[email protected]>
2017-10-27i2c: fti2c010: remove unused/unmaintained driverMasahiro Yamada
CONFIG_SYS_I2C_FTI2C010 is not enabled by anyone. Commit 2852709676c8 ("dm: i2c: Add a note to I2C drivers which need conversion") prompted to convert this driver to DM before June 2017, but not converted yet. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2017-10-27i2c: adi_i2c: remove left-over Blackfin I2C driverMasahiro Yamada
This driver was used by Blackfin boards, but Blackfin support is gone. There is no user of this driver. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2017-10-17i2c: stm32f7_i2c: fix usage of useless local variablePatrice Chotard
Remove useless local variable "s" and use directly function's parameter "output" Signed-off-by: Patrice Chotard <[email protected]>
2017-10-17i2c: stm32f7_i2c: fix data abortChristophe Kerello
As "v" is a local variable in stm32_i2c_choose_solution() "v" has to be copied into "s" to avoid data abort in stm32_i2c_compute_timing(). Signed-off-by: Christophe Kerello <[email protected]> Reviewed-by: Patrick DELAUNAY <[email protected]> Signed-off-by: Patrice Chotard <[email protected]>
2017-10-17i2c: remove DECLARE_GLOBAL_DATA_PTR from i2c-uclassMasahiro Yamada
No global pointer is used in this file. Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-10-15i2c: uniphier-f: replace debug() with dev_dbg()Masahiro Yamada
Use dev_dbg() functions. It will be helpful to prefix log messages with the corresponding device name when the core framework is ready. While I am here, I renamed "dev", which was actually private data, into "priv" because dev->dev looks confusing. Signed-off-by: Masahiro Yamada <[email protected]>
2017-10-15i2c: uniphier: replace debug() with dev_dbg()Masahiro Yamada
Use dev_dbg() functions. It will be helpful to prefix log messages with the corresponding device name when the core framework is ready. While I am here, I renamed "dev", which was actually private data, into "priv" because dev->dev looks confusing. Signed-off-by: Masahiro Yamada <[email protected]>
2017-10-11i2c: muxes: pca954x: look up width from chip_descChris Packham
Commit 8e6eda7cda6c ("drivers/i2c/muxes/pca954x: Add pca9547 I2C mux support") introduced a chip_desc for the pca954x devices but failed to update pca954x_ofdata_to_platdata() to be aware of it. Make pca954x_ofdata_to_platdata() lookup the chip_desc to validate the device width. Signed-off-by: Chris Packham <[email protected]> Reviewed-by: Marek Behun <[email protected]>
2017-10-08dm: gpio: Correct use of -ENODEV in driversSimon Glass
In U-Boot -ENODEV means that there is no device. When there is a problem with the device, drivers should return an error like -ENXIO or -EREMOTEIO. When the device tree properties cannot be read correct , they should return -EINVAL. Update various GPIO drivers to follow this rule, to help with consistency for future driver writers. Signed-off-by: Simon Glass <[email protected]> Reported-by: Adam Ford <[email protected]>
2017-10-04treewide: replace with error() with pr_err()Masahiro Yamada
U-Boot widely uses error() as a bit noisier variant of printf(). This macro causes name conflict with the following line in include/linux/compiler-gcc.h: # define __compiletime_error(message) __attribute__((error(message))) This prevents us from using __compiletime_error(), and makes it difficult to fully sync BUILD_BUG macros with Linux. (Notice Linux's BUILD_BUG_ON_MSG is implemented by using compiletime_assert().) Let's convert error() into now treewide-available pr_err(). Done with the help of Coccinelle, excluing tools/ directory. The semantic patch I used is as follows: // <smpl> @@@@ -error +pr_err (...) // </smpl> Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Simon Glass <[email protected]> [trini: Re-run Coccinelle] Signed-off-by: Tom Rini <[email protected]>
2017-10-01rockchip: i2c: rk3328: support i2c for rk3328 SoCElaine Zhang
Add compatible to support rk3328 i2c Signed-off-by: Elaine Zhang <[email protected]> Signed-off-by: Kever Yang <[email protected]> Acked-by: Philipp Tomsich <[email protected]> Reviewed-by: Philipp Tomsich <[email protected]> Acked-by: Heiko Schocher<[email protected]>
2017-09-18rockchip: i2c: Convert to livetreePhilipp Tomsich
Update the Rockchip I2C driver to support livetree. Signed-off-by: Philipp Tomsich <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Philipp Tomsich <[email protected]> Acked-by: Heiko Schocher <[email protected]>
2017-09-13i2c: muxes: pca954x: Add support for GPIO reset lineMoritz Fischer
This commit adds support for GPIO reset lines matching the common linux "reset-gpios" devicetree binding. Signed-off-by: Moritz Fischer <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-09-05rockchip: i2c: fix >32 byte readsWadim Egorov
The hw can read up to 32 bytes at a time. If we need more than one chunk, we have to enter the plain RX mode. Signed-off-by: Wadim Egorov <[email protected]> Acked-by: Philipp Tomsich <[email protected]>
2017-09-01Convert CONFIG_SYS_I2C_BUS_MAX to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_SYS_I2C_BUS_MAX Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> [trini: Fix AM43XX drop AM44XX] Signed-off-by: Tom Rini <[email protected]>
2017-09-01Configs: Migrate I2C_BUS_MAX to CONFIG_SYS_I2C_BUS_MAXAdam Ford
For consistency with other platforms and in preparation of Kconfig migration, let's change Several TI platforms that use I2C_BUS_MAX to CONFIG_SYS_I2C_BUS_MAX Signed-off-by: Adam Ford <[email protected]>
2017-08-23i2c: muxes: add i2c gpio multiplexer driverPeng Fan
Add an i2c mux driver providing access to i2c bus segments using a hardware MUX sitting on a master bus and controlled through gpio pins. E.G. something like: ---------- ---------- Bus segment 1 - - - - - | | SCL/SDA | |-------------- | | | |------------| | | | | | Bus segment 2 | | | Linux | GPIO 1..N | MUX |--------------- Devices | |------------| | | | | | | | Bus segment M | | | |---------------| | ---------- ---------- - - - - - SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M according to the settings of the GPIO pins 1..N. Note commit log from kernel commit 92ed1a76("i2c: Add generic I2C multiplexer using GPIO API") Signed-off-by: Peng Fan <[email protected]> Tested-by: Peng Fan <[email protected]> (i.MX6QP-Sabreauto) Cc: Heiko Schocher <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Simon Glass <[email protected]>
2017-08-23i2c: add i2c driver for stm32Patrice Chotard
Add i2c driver which can be used on both STM32F7 and STM32H7. This I2C block supports the following features: _ Slave and master modes _ Multimaster capability _ Standard-mode (up to 100 kHz) _ Fast-mode (up to 400 kHz) _ Fast-mode Plus (up to 1 MHz) _ 7-bit and 10-bit addressing mode _ Multiple 7-bit slave addresses (2 addresses, 1 with configurable mask) _ All 7-bit addresses acknowledge mode _ General call _ Programmable setup and hold times _ Easy to use event management _ Optional clock stretching _ Software reset Signed-off-by: Christophe Kerello <[email protected]> Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-08-10i2c: designware: Allow sending restart conditionsMarek Vasut
Allow sending restart conditions upon direction change as this is required by some chips. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Alexey Brodkin <[email protected]> Cc: Heiko Schocher <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-08-10Convert CONFIG_SYS_I2C_OMAP24XX to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_SYS_I2C_OMAP24XX Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-08-09Configs: Migrate CONFIG_SYS_I2C_OMAP34XX to CONFIG_SYS_I2C_OMAP24XXAdam Ford
The driver is for all boards 24XX and up, so let's eliminate the extra option called CONFIG_SYS_I2C_OMAP34XX since the driver checks for CONFIG_OMAP34XX we don't need CONFIG_SYS_I2C_OMAP34XX. Signed-off-by: Adam Ford <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-08-09i2c: at91: Add missing probe function to device driver[email protected]
Add missing probe function to the device driver to active a device. Signed-off-by: Wenyou Yang <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-07-28dm: tegra: i2c: Convert to livetreeSimon Glass
Update the tegra i2c driver to support a live device tree. Signed-off-by: Simon Glass <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> Tested-on: Beaver, Jetson-TK1 Tested-by: Stephen Warren <[email protected]>
2017-07-23powerpc: Remove 8260 remaindersChristophe Leroy
commit 2eb48ff7a210d ("powerpc, 8260: remove support for mpc8260") removed support for 8260 CPU. This patch remove some remainders. Signed-off-by: Christophe Leroy <[email protected]>
2017-07-18Merge branch 'master' of git://www.denx.de/git/u-boot-imxTom Rini
2017-07-12imx: reorganize IMX code as other SOCsStefano Babic
Change is consistent with other SOCs and it is in preparation for adding SOMs. SOC's related files are moved from cpu/ to mach-imx/<SOC>. This change is also coherent with the structure in kernel. Signed-off-by: Stefano Babic <[email protected]> CC: Fabio Estevam <[email protected]> CC: Akshay Bhat <[email protected]> CC: Ken Lin <[email protected]> CC: Marek Vasut <[email protected]> CC: Heiko Schocher <[email protected]> CC: "Sébastien Szymanski" <[email protected]> CC: Christian Gmeiner <[email protected]> CC: Stefan Roese <[email protected]> CC: Patrick Bruenn <[email protected]> CC: Troy Kisky <[email protected]> CC: Nikita Kiryanov <[email protected]> CC: Otavio Salvador <[email protected]> CC: "Eric Bénard" <[email protected]> CC: Jagan Teki <[email protected]> CC: Ye Li <[email protected]> CC: Peng Fan <[email protected]> CC: Adrian Alonso <[email protected]> CC: Alison Wang <[email protected]> CC: Tim Harvey <[email protected]> CC: Martin Donnelly <[email protected]> CC: Marcin Niestroj <[email protected]> CC: Lukasz Majewski <[email protected]> CC: Adam Ford <[email protected]> CC: "Albert ARIBAUD (3ADEV)" <[email protected]> CC: Boris Brezillon <[email protected]> CC: Soeren Moch <[email protected]> CC: Richard Hu <[email protected]> CC: Wig Cheng <[email protected]> CC: Vanessa Maegima <[email protected]> CC: Max Krummenacher <[email protected]> CC: Stefan Agner <[email protected]> CC: Markus Niebel <[email protected]> CC: Breno Lima <[email protected]> CC: Francesco Montefoschi <[email protected]> CC: Jaehoon Chung <[email protected]> CC: Scott Wood <[email protected]> CC: Joe Hershberger <[email protected]> CC: Anatolij Gustschin <[email protected]> CC: Simon Glass <[email protected]> CC: "Andrew F. Davis" <[email protected]> CC: "Łukasz Majewski" <[email protected]> CC: Patrice Chotard <[email protected]> CC: Nobuhiro Iwamatsu <[email protected]> CC: Hans de Goede <[email protected]> CC: Masahiro Yamada <[email protected]> CC: Stephen Warren <[email protected]> CC: Andre Przywara <[email protected]> CC: "Álvaro Fernández Rojas" <[email protected]> CC: York Sun <[email protected]> CC: Xiaoliang Yang <[email protected]> CC: Chen-Yu Tsai <[email protected]> CC: George McCollister <[email protected]> CC: Sven Ebenfeld <[email protected]> CC: Filip Brozovic <[email protected]> CC: Petr Kulhavy <[email protected]> CC: Eric Nelson <[email protected]> CC: Bai Ping <[email protected]> CC: Anson Huang <[email protected]> CC: Sanchayan Maity <[email protected]> CC: Lokesh Vutla <[email protected]> CC: Patrick Delaunay <[email protected]> CC: Gary Bisson <[email protected]> CC: Alexander Graf <[email protected]> CC: [email protected] Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
2017-07-12drivers/i2c/muxes/pca954x: Add pca9547 I2C mux supportMarek Behún
This I2C mux is found, for example, on the Turris Omnia board. Signed-off-by: Marek Behun <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2017-07-08powerpc, 8xx: Migrate to KconfigChristophe Leroy
Signed-off-by: Christophe Leroy <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>
2017-07-06avr32: Retire AVR32 for goodAndy Shevchenko
AVR32 is gone. It's already more than two years for no support in Buildroot, even longer there is no support in GCC (last version is heavily patched 4.2.4). Linux kernel v4.12 got rid of it (and v4.11 didn't build successfully). There is no good point to keep this support in U-Boot either. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]>
2017-07-03powerpc: remove 4xx supportHeiko Schocher
There was for long time no activity in the 4xx area. We need to go further and convert to Kconfig, but it turned out, nobody is interested anymore in 4xx, so remove it. Signed-off-by: Heiko Schocher <[email protected]>
2017-06-12powerpc, 8260: remove support for mpc8260Heiko Schocher
There was for long time no activity in the 8260 area. We need to go further and convert to Kconfig, but it turned out, nobody is interested anymore in 8260, so remove it. Signed-off-by: Heiko Schocher <[email protected]>
2017-06-12powerpc, 8xx: remove support for 8xxHeiko Schocher
There was for long time no activity in the 8xx area. We need to go further and convert to Kconfig, but it turned out, nobody is interested anymore in 8xx, so remove it (with a heavy heart, knowing that I remove here the root of U-Boot). Signed-off-by: Heiko Schocher <[email protected]>
2017-06-05samsung: Drop more references fo s3c24x0Simon Glass
This is dead code now. Drop it. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: sandbox: i2c: Drop fdtdec.h headerSimon Glass
This is not needed in this driver. Drop it. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: i2c: Convert uclass to livetreeSimon Glass
Update the i2c uclass to support a live device tree. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: gpio: Add live tree supportSimon Glass
Add support for requesting GPIOs with a live device tree. This involves adjusting the function signature for the legacy function gpio_request_by_name_nodev(), so fix up all callers. Signed-off-by: Simon Glass <[email protected]> Fixes to stm32f746-disco.c: Signed-off-by: Tom Rini <[email protected]>
2017-06-01dm: core: Update device_bind_driver_to_node() to use ofnodeSimon Glass
Adjust this function to us an ofnode instead of an offset, so it can be used with livetree. This involves updating all callers. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: Rename dev_addr..() functionsSimon Glass
These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: Use dm.h header when driver mode is usedSimon Glass
This header includes things that are needed to make driver build. Adjust existing users to include that always, even if other dm/ includes are present Signed-off-by: Simon Glass <[email protected]>
2017-05-15Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini