]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
rust: i2c: add basic I2C device and driver abstractions
authorIgor Korotin <igor.korotin.linux@gmail.com>
Sun, 16 Nov 2025 16:21:44 +0000 (16:21 +0000)
committerDanilo Krummrich <dakr@kernel.org>
Mon, 17 Nov 2025 21:26:42 +0000 (10:26 +1300)
commit57c5bd9aee944b0f5c2ab314e10a86fae51f7bf2
tree75731058140a29f5ec4639f9cd252575c80b8acb
parentdd6ff5cf56fb183fce605ca6a5bfce228cd8888b
rust: i2c: add basic I2C device and driver abstractions

Implement the core abstractions needed for I2C drivers, including:

* `i2c::Driver` — the trait drivers must implement, including `probe`

* `i2c::I2cClient` — a safe wrapper around `struct i2c_client`

* `i2c::Adapter` — implements `driver::RegistrationOps` to hook into the
  generic `driver::Registration` machinery

* `i2c::DeviceId` — a `RawDeviceIdIndex` implementation for I2C device IDs

Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Igor Korotin <igor.korotin.linux@gmail.com>
Link: https://patch.msgid.link/20251116162144.171469-1-igor.korotin.linux@gmail.com
[ Remove unnecessary safety comment; fix rustdoc `Device` -> `I2cClient`.
  - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
MAINTAINERS
rust/bindings/bindings_helper.h
rust/kernel/i2c.rs [new file with mode: 0644]
rust/kernel/lib.rs