u-boot/drivers/i2c
Conor Dooley 6d133b3158 i2c: microchip: fix erroneous late ack send
A late ack is currently being sent at the end of a transfer due to
incorrect logic in mchp_corei2c_empty_rx(). Currently the Assert Ack
bit is being written to the controller's control reg after the last
byte has been received, causing it to sent another byte with the ack.
Instead, the AA flag should be written to the control register when
the penultimate byte is read so it is sent out for the last byte.

Reported-by: Andreas Buerkler <andreas.buerkler@enclustra.com>
Fixes: 0dc0d1e094 ("i2c: Add Microchip PolarFire SoC I2C driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Reviewed-by: Heiko Schocher <hs@denx.de>

Removed Tag by hs: Fixes: 0190d48488 ("i2c: microchip: fix ack sending logic")
2022-11-14 07:21:58 +01:00
..
muxes spl: Ensure all SPL symbols in Kconfig have some SPL dependency 2022-07-07 09:29:08 -04:00
acpi_i2c.c dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
acpi_i2c.h dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
ast_i2c.c i2c: ast_i2c: Remove SCL direct drive mode 2022-07-19 13:46:28 +02:00
ast_i2c.h i2c: ast_i2c: Update to use standard enums for speed 2020-01-27 07:22:41 +01:00
at91_i2c.c i2c: at91: add compatible with microchip,sam9x60-i2c 2022-01-13 11:44:07 +02:00
at91_i2c.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
cros_ec_ldo.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
cros_ec_tunnel.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
davinci_i2c.c i2c: Remove non-DM_I2C support from davinci_i2c.c 2022-07-08 17:57:34 -04:00
davinci_i2c.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
designware_i2c.c stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
designware_i2c.h stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
designware_i2c_pci.c stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
exynos_hs_i2c.c arm: samsung: Migrate a number of symbols to Kconfig 2022-06-28 17:04:37 -04:00
fsl_i2c.c Convert CONFIG_SYS_I2C_INIT_BOARD to Kconfig 2022-11-10 09:45:53 -05:00
i2c-cdns.c i2c: i2c-cdns: Prevent early termination of write 2022-03-09 12:36:37 +01:00
i2c-cortina.c dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
i2c-cortina.h i2c: i2c-cortina: added CAxxxx I2C support 2020-07-09 06:02:44 +02:00
i2c-emul-uclass.c treewide: Use OF_REAL instead of !OF_PLATDATA 2021-09-25 09:46:15 -06:00
i2c-gpio.c i2c: i2c-gpio: Support the named GPIO binding 2021-08-22 11:03:55 +02:00
i2c-microchip.c i2c: microchip: fix erroneous late ack send 2022-11-14 07:21:58 +01:00
i2c-uclass.c i2c: avoid dynamic stack use in dm_i2c_write 2022-07-19 13:46:28 +02:00
i2c-uniphier-f.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
i2c-uniphier.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
i2c-versatile.c i2c: Update for new sequence numbers 2020-12-18 20:32:21 -07:00
i2c_core.c Convert CONFIG_SYS_I2C_EARLY_INIT to Kconfig 2021-08-30 14:10:07 -04:00
ihs_i2c.c i2c: ihs: intel: Fix typo in comments (actual) 2022-05-10 06:47:13 +02:00
imx_lpi2c.c dm: Avoid accessing seq directly 2020-12-18 20:32:21 -07:00
intel_i2c.c i2c: ihs: intel: Fix typo in comments (actual) 2022-05-10 06:47:13 +02:00
iproc_i2c.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
iproc_i2c.h drivers: i2c: add brcm iproc I2C driver support 2020-04-20 06:52:28 +02:00
Kconfig i2c: add support for MediaTek I2C interface 2022-09-23 15:09:15 -04:00
kona_i2c.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
lpc32xx_i2c.c lpc32xx: i2c: finish DM/OF code 2021-07-06 14:12:15 -04:00
Makefile i2c: add support for MediaTek I2C interface 2022-09-23 15:09:15 -04:00
meson_i2c.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
mtk_i2c.c i2c: add support for MediaTek I2C interface 2022-09-23 15:09:15 -04:00
mv_i2c.c Convert CONFIG_SYS_I2C_INIT_BOARD to Kconfig 2022-11-10 09:45:53 -05:00
mv_i2c.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mvtwsi.c i2c: mvtwsi: Add compatible string for allwinner, sun4i-a10-i2c 2022-01-30 01:03:37 +00:00
mxc_i2c.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
npcm-i2c.c i2c: nuvoton: Add NPCM7xx i2c driver 2022-07-19 13:46:28 +02:00
nx_i2c.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
ocores_i2c.c i2c: ocores: Fix -Wint-to-pointer-cast warning 2021-10-20 10:59:09 +08:00
octeon_i2c.c pci: Add mask parameter to dm_pci_map_bar() 2022-05-03 18:33:29 -04:00
omap24xx_i2c.c ti: i2c: fix probe_chip() return value 2022-02-21 08:39:52 -05:00
omap24xx_i2c.h i2c: omap: Update to use standard enums for speed 2020-01-27 07:23:26 +01:00
rcar_i2c.c i2c: rcar_i2c: Enable configuring SCL rise and fall times 2021-09-28 06:34:14 +02:00
rcar_iic.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
rk_i2c.c dm: Rename U_BOOT_DRIVER_ALIAS to DM_DRIVER_ALIAS 2021-01-05 12:26:35 -07:00
s3c24x0_i2c.c arm: samsung: Migrate a number of symbols to Kconfig 2022-06-28 17:04:37 -04:00
s3c24x0_i2c.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sandbox_i2c.c sandbox: i2c: Move priv into a header file 2021-01-05 12:24:41 -07:00
sh_i2c.c rcar: i2c: Migrate SYS_I2C_SH to Kconfig 2021-08-30 14:10:07 -04:00
soft_i2c.c i2c: Remove unused additional legacy soft i2c bus support 2021-08-30 14:10:06 -04:00
stm32f7_i2c.c i2c: stm32: fix usage of rise/fall device tree properties 2022-09-15 14:59:29 +02:00
sun6i_p2wi.c i2c: sun6i_p2wi: Add support for DM clocks and resets 2022-04-04 23:24:17 +01:00
sun8i_rsb.c i2c: sun8i_rsb: Add support for DM clocks and resets 2022-04-04 23:24:17 +01:00
synquacer_i2c.c i2c: synquacer: SNI Synquacer I2C controller 2021-07-06 14:07:37 -04:00
tegra186_bpmp_i2c.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tegra_i2c.c arm: tegra: Update some DT compatibles 2022-06-13 15:31:10 -07:00
xilinx_xiic.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00