Lines Matching +full:prop +full:-

1 // SPDX-License-Identifier: GPL-2.0
7 //! This demonstrates how to test an ACPI-based Rust platform driver using QEMU
36 //! iasl -tc ssdt.dsl
44 //! qemu-system-x86_64 -m 512M \
45 //! -enable-kvm \
46 //! -kernel path/to/bzImage \
47 //! -append "root=/dev/sda console=ttyS0" \
48 //! -hda rootfs.img \
49 //! -serial stdio \
50 //! -acpitable file=ssdt.aml
54 //! - The `rust_driver_platform` must be present either:
55 //! - built directly into the kernel (`bzImage`), or
56 //! - available as a `.ko` file and loadable from `rootfs.img`
88 [(of::DeviceId::new(c_str!("test,rust-device")), Info(42))]
106 ) -> Result<Pin<KBox<Self>>> {
126 fn properties_parse(dev: &device::Device) -> Result {
130 fwnode.property_match_string(c_str!("compatible"), c_str!("test,rust-device"))
136 let prop = fwnode.property_read::<CString>(name).required_by(dev)?;
137 dev_info!(dev, "'{name}'='{prop:?}'\n");
139 let name = c_str!("test,bool-prop");
140 let prop = fwnode.property_read_bool(c_str!("test,bool-prop"));
141 dev_info!(dev, "'{name}'='{prop}'\n");
143 if fwnode.property_present(c_str!("test,u32-prop")) {
144 dev_info!(dev, "'test,u32-prop' is present\n");
147 let name = c_str!("test,u32-optional-prop");
148 let prop = fwnode.property_read::<u32>(name).or(0x12);
149 dev_info!(dev, "'{name}'='{prop:#x}' (default = 0x12)\n",);
153 let name = c_str!("test,u32-required-prop");
156 let name = c_str!("test,u32-prop");
157 let prop: u32 = fwnode.property_read(name).required_by(dev)?;
158 dev_info!(dev, "'{name}'='{prop:#x}'\n");
160 let name = c_str!("test,i16-array");
161 let prop: [i16; 4] = fwnode.property_read(name).required_by(dev)?;
162 dev_info!(dev, "'{name}'='{prop:?}'\n");
166 let name = c_str!("test,i16-array");
167 let prop: KVec<i16> = fwnode.property_read_array_vec(name, 4)?.required_by(dev)?;
168 dev_info!(dev, "'{name}'='{prop:?}' (KVec)\n");
171 let name = c_str!("test,ref-arg");
173 let prop: FwNodeReferenceArgs = child.property_get_reference_args(name, nargs, 0)?;
174 dev_info!(dev, "'{name}'='{prop:?}'\n");