[PATCH v2 0/3] i2c: Add Novatek NT726xx SoC I2C controller
From: Nina_Kuo
Date: Tue Jul 14 2026 - 05:37:10 EST
CONFIDENTIALITY NOTICE: This message, including attachments, contains information which may be confidential and privileged, and is intended only for use by the addressees designated above. Unless you are the intended recipient, any use, copying, disclosure, or distribution is prohibited. If you have received the message in error, please immediately delete the message and destroy all copies thereof and notify the sender by reply email. 本郵件及任何附件均屬機密,僅供其上指定地址之收件人使用。除非您是指定之收件人,否則請勿使用、複製、揭露或散布本郵件之任何部份。若您錯誤地收到此郵件,請立即回覆電子郵件通知寄件人,並請完全刪除且銷毀本郵件及其複本。
These patch series adds support for the I2C bus controllers on
Novatek NT726xx SoCs.
The controller driver implements the fundamental I2C read/write
operations and supports Standard-mode and Fast-mode.
Some I2C bus controllers on Novatek NT726xx SoCs are controllable by
stbc (Standby controller) and named as `stbc-i2c`s. These `stbc-i2c`s
are driven by stbc clock (12 MHz) and require the authentication to
stbc before any control.
The patch is tested with concurrent read/write operations on
2 different I2C busses for 1000000 times on Novatek NT72676 SoC.
Neither error nor data corruption is detected under this test.
---
v2:
From Krzysztof's review of novatek,nt726xx-i2c.yaml:
- Explicitly specify the unique compatibles "novatek,nt72600-i2c" for
Novatek NT726xx SoCs
- Modify `maxItems` as 1 for both `reg` and `interrupts` properties
- Modify description and allowed values for `clock-frequency`
property
- Remove `minItems` for `novatek,hwmods` custom property
- Rename, fix wrong type definition and add more description for
`novatek,stbc-controllable` custom property
- Remove `bus-enable` custom property
- Add an example for dtsi declaration
From Sashiko AI's review of i2c-nt726xx.c:
- Remove flows related to `bus-enable` custom property
- Add default value 100000 (100 kHz) of `clock-frequency` property
to prevent from devide-by-zero panic
- Add flows for handling ioremap() in nvt_i2c_use_case_feature()
- Remove I2C_FUNC_SMBUS_QUICK functionality due to unsupported handling
of 0-byte messages
- Add flows of disabling IRQs in nvt_i2c_suspend() and nvt_i2c_remove()
- Add of_node_get() to release the reference to device tree node in
nvt_i2c_remove()
v1:
https://lore.kernel.org/lkml/20260604060411.355675-1-SP_ISW1_AT@xxxxxxxxxxxxxx/T/#t
Signed-off-by: Ben Huang <Ben_Huang@xxxxxxxxxxxxxx>
Signed-off-by: Nina Kuo <Nina_Kuo@xxxxxxxxxxxxxx>
Ben Huang (3):
MAINTAINERS: Add entry for Novatek NT726xx SoC I2C controller driver
dt-bindings: i2c: Add Novatek NT726xx SoC I2C controller
i2c: Add i2c-nt726xx.c I2C driver for Novatek NT726xx SoCs
.../bindings/i2c/novatek,nt726xx-i2c.yaml | 74 ++
MAINTAINERS | 7 +
drivers/i2c/busses/Kconfig | 10 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-nt726xx.c | 698 ++++++++++++++++++
5 files changed, 790 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/novatek,nt726xx-i2c.yaml
create mode 100644 drivers/i2c/busses/i2c-nt726xx.c
--
2.40.1