mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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>
21 lines
486 B
C
21 lines
486 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
// Copyright (c) 2025 Samsung Electronics Co., Ltd.
|
|
// Author: Michal Wilczynski <m.wilczynski@samsung.com>
|
|
|
|
#include <linux/pwm.h>
|
|
|
|
struct device *rust_helper_pwmchip_parent(const struct pwm_chip *chip)
|
|
{
|
|
return pwmchip_parent(chip);
|
|
}
|
|
|
|
void *rust_helper_pwmchip_get_drvdata(struct pwm_chip *chip)
|
|
{
|
|
return pwmchip_get_drvdata(chip);
|
|
}
|
|
|
|
void rust_helper_pwmchip_set_drvdata(struct pwm_chip *chip, void *data)
|
|
{
|
|
pwmchip_set_drvdata(chip, data);
|
|
}
|