summaryrefslogtreecommitdiff
path: root/rust/kernel/device.rs
diff options
context:
space:
mode:
authorRemo Senekowitsch <remo@buenzli.dev>2025-06-11 12:29:00 +0200
committerDanilo Krummrich <dakr@kernel.org>2025-06-12 23:56:42 +0200
commita2801affa7103862d549050401a9f53b3365fca4 (patch)
treeedbb87db9147201aadb1e63d4f215faa726d6f30 /rust/kernel/device.rs
parent19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (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.rs2
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