[PATCH v3 0/3] i2c: Add Novatek NT726xx SoC I2C controller
| Newsgroups | org.kernel.vger.linux-i2c,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Ben Huang <[email protected]> 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. --- v3: - Only remove attached HTML messages, no code is modified. v2: https://lore.kernel.org/lkml/[email protected]/T/#t 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/[email protected]/T/#t Signed-off-by: Ben Huang <[email protected]> Signed-off-by: Nina Kuo <[email protected]> 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