]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
rust: i2c: add manual I2C device creation abstractions
authorIgor Korotin <igor.korotin.linux@gmail.com>
Sun, 16 Nov 2025 16:21:54 +0000 (16:21 +0000)
committerDanilo Krummrich <dakr@kernel.org>
Mon, 17 Nov 2025 21:28:19 +0000 (10:28 +1300)
commitf3cc26a417b77a07ff4418f7621dd318a1c533b1
tree52e8b1e2db1d9780ca7e926bbbf7bd61f1fe2cc0
parent57c5bd9aee944b0f5c2ab314e10a86fae51f7bf2
rust: i2c: add manual I2C device creation abstractions

In addition to the basic I2C device support, add rust abstractions
upon `i2c_new_client_device`/`i2c_unregister_device` C functions.

Implement the core abstractions needed for manual creation/deletion
of I2C devices, including:

 * `i2c::Registration` — a NonNull pointer created by the function
                          `i2c_new_client_device`

 * `i2c::I2cAdapter` — a ref counted wrapper around `struct i2c_adapter`

 * `i2c::I2cBoardInfo` — a safe wrapper around `struct i2c_board_info`

Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Igor Korotin <igor.korotin.linux@gmail.com>
Link: https://patch.msgid.link/20251116162154.171493-1-igor.korotin.linux@gmail.com
[ Remove unnecessary safety comment. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/i2c.rs