rust: pwm: Add Kconfig and basic data structures
authorMichal Wilczynski <m.wilczynski@samsung.com>
Thu, 16 Oct 2025 13:38:02 +0000 (15:38 +0200)
committerUwe Kleine-König <ukleinek@kernel.org>
Fri, 7 Nov 2025 09:03:54 +0000 (10:03 +0100)
commit7b3dce814a15bc5d9fb6124cd945291012c4ebb9
tree8904e7586221a9cefd546bc06543bbef9fe88e26
parentce284f882022ebcb953984c7eccf4fc4eb531978
rust: pwm: Add Kconfig and basic data structures

Introduce the foundational support for PWM abstractions in Rust.

This commit adds the `RUST_PWM_ABSTRACTIONS` Kconfig option to enable
the feature, along with the necessary build-system support and C
helpers.

It also introduces the first set of safe wrappers for the PWM
subsystem, covering the basic data carrying C structs and enums:
- `Polarity`: A safe wrapper for `enum pwm_polarity`.
- `Waveform`: A wrapper for `struct pwm_waveform`.
- `State`: A wrapper for `struct pwm_state`.

These types provide memory safe, idiomatic Rust representations of the
core PWM data structures and form the building blocks for the
abstractions that will follow.

Tested-by: Drew Fustini <fustini@kernel.org>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Elle Rhumsaa <elle@weathered-steel.dev>
Signed-off-by: Michal Wilczynski <m.wilczynski@samsung.com>
Link: https://patch.msgid.link/20251016-rust-next-pwm-working-fan-for-sending-v16-2-a5df2405d2bd@samsung.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
MAINTAINERS
drivers/pwm/Kconfig
rust/bindings/bindings_helper.h
rust/helpers/helpers.c
rust/helpers/pwm.c [new file with mode: 0644]
rust/kernel/lib.rs
rust/kernel/pwm.rs [new file with mode: 0644]