diff options
author | Remo Senekowitsch <remo@buenzli.dev> | 2025-06-11 12:29:00 +0200 |
---|---|---|
committer | Danilo Krummrich <dakr@kernel.org> | 2025-06-12 23:56:42 +0200 |
commit | a2801affa7103862d549050401a9f53b3365fca4 (patch) | |
tree | edbb87db9147201aadb1e63d4f215faa726d6f30 /rust/kernel/device.rs | |
parent | 19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff) |
rust: device: Create FwNode abstraction for accessing device properties
Accessing device properties is currently done via methods on `Device`
itself, using bindings to device_property_* functions. This is
sufficient for the existing method property_present. However, it's not
sufficient for other device properties we want to access. For example,
iterating over child nodes of a device will yield a fwnode_handle.
That's not a device, so it wouldn't be possible to read the properties
of that child node. Thus, we need an abstraction over fwnode_handle and
methods for reading its properties.
Add a struct FwNode which abstracts over the C struct fwnode_handle.
Implement its reference counting analogous to other Rust abstractions
over reference-counted C structs.
Subsequent patches will add functionality to access FwNode and read
properties with it.
Tested-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Remo Senekowitsch <remo@buenzli.dev>
Link: https://lore.kernel.org/r/20250611102908.212514-2-remo@buenzli.dev
[ Add temporary #[expect(dead_code)] to avoid a warning. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/device.rs')
-rw-r--r-- | rust/kernel/device.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs index dea06b79ecb5..d6237827a936 100644 --- a/rust/kernel/device.rs +++ b/rust/kernel/device.rs @@ -14,6 +14,8 @@ use core::{fmt, marker::PhantomData, ptr}; #[cfg(CONFIG_PRINTK)] use crate::c_str; +pub mod property; + /// A reference-counted device. /// /// This structure represents the Rust abstraction for a C `struct device`. This implementation |