diff options
| author | Remo Senekowitsch <remo@buenzli.dev> | 2025-06-16 17:45:11 +0200 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2025-06-25 17:48:41 +0200 |
| commit | c79cbde9b7bc7a650af96269588518950e3c2441 (patch) | |
| tree | 92da49bc9289a3a8dc64f7687ef2de9af4d6910f /samples | |
| parent | c3e05bd15e0c99f3ff45e0b1f01814778bc1128c (diff) | |
| download | linux-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.rs | 13 |
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(()) } } |
