aboutsummaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorRemo Senekowitsch <remo@buenzli.dev>2025-06-16 17:45:11 +0200
committerDanilo Krummrich <dakr@kernel.org>2025-06-25 17:48:41 +0200
commitc79cbde9b7bc7a650af96269588518950e3c2441 (patch)
tree92da49bc9289a3a8dc64f7687ef2de9af4d6910f /samples
parentc3e05bd15e0c99f3ff45e0b1f01814778bc1128c (diff)
downloadlinux-c79cbde9b7bc7a650af96269588518950e3c2441.tar.gz
samples: rust: platform: Add property child and reference args examples
Add some example usage of the device property methods for reading DT/ACPI/swnode child nodes and reference args. Signed-off-by: Remo Senekowitsch <remo@buenzli.dev> Link: https://lore.kernel.org/r/20250616154511.1862909-4-remo@buenzli.dev [ Convert 'child@{0,1}' to 'child-{0,1}'; skip child nodes without 'compatible' property in of_unittest_platform_populate() as proposed by Rob Herring. - Danilo] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'samples')
-rw-r--r--samples/rust/rust_driver_platform.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_driver_platform.rs
index c0abf78d0683b5..4dcedb22a4bbc6 100644
--- a/samples/rust/rust_driver_platform.rs
+++ b/samples/rust/rust_driver_platform.rs
@@ -4,7 +4,11 @@
use kernel::{
c_str,
- device::{self, Core},
+ device::{
+ self,
+ property::{FwNodeReferenceArgs, NArgs},
+ Core,
+ },
of, platform,
prelude::*,
str::CString,
@@ -91,6 +95,13 @@ impl SampleDriver {
let prop: KVec<i16> = fwnode.property_read_array_vec(name, 4)?.required_by(dev)?;
dev_info!(dev, "'{name}'='{prop:?}' (KVec)\n");
+ for child in fwnode.children() {
+ let name = c_str!("test,ref-arg");
+ let nargs = NArgs::N(2);
+ let prop: FwNodeReferenceArgs = child.property_get_reference_args(name, nargs, 0)?;
+ dev_info!(dev, "'{name}'='{prop:?}'\n");
+ }
+
Ok(())
}
}