On 25.10.2024 23:05, Rob Herring (Arm) wrote:
> I got asked about upstreaming DT rust bindings, so I decided to take a
> stab at it.
Many thanks for this!
> This series adds rust bindings for the device property API
> which is a firmware agnostic interface for reading firmware properties.
> There are "DT rust bindings" patches floating around, but for many
> drivers they don't need to know any DT specifics nor deal with struct
> device_node (and its refcounts). And reading firmware properties are
> simple enough for my feeble rust abilities.
>
> This series is based on top of Danilo's PCI and platform device
> series[1], though that's really only for the sample driver.
On x86 having CONFIG_OF_UNITTESTS enabled I get
rust_driver_platform testcase-data:platform-tests:test-device@2: Probed
by OF compatible match: 'test,rust-device' with info: '42'.
rust_driver_platform testcase-data:platform-tests:test-device@2: matched
compatible string idx = 0
rust_driver_platform testcase-data:platform-tests:test-device@2: bool
prop is false
rust_driver_platform testcase-data:platform-tests:test-device@2:
'test,u32-prop' is 0xdeadbeef
rust_driver_platform testcase-data:platform-tests:test-device@2:
'test,i16-array' is [1, 2, -3, -4]
rust_driver_platform testcase-data:platform-tests:test-device@2:
'test,i16-array' length is 4
with this. Looks good :)
I'm not sure if it makes sense for an RFC patch series but in case it helps:
Tested-by: Dirk Behme <dirk.behme@de.bosch.com>
Some comments will follow in the individual patches.
Best regards
Dirk
> Please tell me how my rust code sucks before I spend more time beating
> my head against the wall^W^W^W^W^W^W learning rust.
>
> Rob
>
> [1] https://lore.kernel.org/all/20241022213221.2383-1-dakr@kernel.org/
>
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
> Rob Herring (Arm) (3):
> of: unittest: Add a platform device node for rust platform driver sample
> rust: Add bindings for device properties
> samples: rust: platform: Add property read examples
>
> drivers/of/unittest-data/tests-platform.dtsi | 8 ++
> rust/bindings/bindings_helper.h | 1 +
> rust/kernel/device.rs | 145 ++++++++++++++++++++++++++-
> samples/rust/rust_driver_platform.rs | 24 ++++-
> 4 files changed, 176 insertions(+), 2 deletions(-)
> ---
> base-commit: eeb31b3e7e9e1b485763ecc66ece8afba1416b2a
> change-id: 20241025-rust-platform-dev-0e89debcbba5
>
> Best regards,