coreboot/src/drivers/i2c
Kilian Krause ca601f7df6 drivers/i2c/rv3028c7: Use byte ops for i801 SMBus compatibility
The RV3028-C7 driver currently uses i2c_dev_read_at() and
i2c_dev_write_at() for block transfers when accessing RTC registers.
These block transfer functions are not universally supported across all
I2C/SMBus controller implementations in coreboot.

Specifically, the Intel i801 SMBus controller does not implement block
read/write operations, causing the RV3028-C7 driver to fail on platforms
using this controller due to missing transfer ops.

Replace block transfers with byte-by-byte operations
i2c_dev_readb_at() and i2c_dev_writeb_at(). These functions are
supported by i801.

TEST=Verified new SMBus functionality on mc_ehl8 (i801 controller).
     Verified I2C functionality still works on mc_ehl2.
     Used i2ctools from OS to read out registers 0x00-0x06 and confirmed
     values match date/time set in coreboot.

Change-Id: I8a40ae14e62e3acf7c3904a8654c1d58fe4eb813
Signed-off-by: Kilian Krause <kilian.krause@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91199
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-02-17 14:23:18 +00:00
..
at24rf08c drivers/i2c/at24rf08c: Add option for early locking 2026-02-11 13:22:11 +00:00
ck505 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
cs35l53 tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
cs42l42 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
da7219 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
designware drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
generic drivers/i2c/generic: Add option to generate proper PowerResource _STA 2025-03-11 21:40:57 +00:00
gpiomux tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
hid tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
lm96000 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
max98373 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
max98390 tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
max98396 tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
max98927 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
nau8825 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
nct7802y drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
pca9538 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
pcf8523 include/device/device.h: Remove CHIP_NAME() macro 2024-01-31 09:51:58 +00:00
pi608gp drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
ptn3460 tree: Remove blank lines before '}' and after '{' 2024-04-11 19:19:08 +00:00
rt1011 tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
rt5645 tree: Use <stdio.h> for snprintf 2024-05-29 10:33:54 +00:00
rt5663 tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
rtd2132 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
rv3028c7 drivers/i2c/rv3028c7: Use byte ops for i801 SMBus compatibility 2026-02-17 14:23:18 +00:00
rx6110sa drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
sx9310 tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
sx9324 tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
sx9360 tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
tas2563 drivers/i2c/tas2563: Add driver for generating device in SSDT 2025-11-12 14:30:33 +00:00
tas5825m drivers/i2c/tas5825m: Allow using I2C bus 2024-03-23 18:07:12 +00:00
tpm tpm: Add Ti50 OpenTitan DID_VID 2024-06-14 12:33:31 +00:00
ww_ring drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00