[RFC PATCH 0/3] Rust bindings for cpufreq and OPP core + sample driver

From: Viresh Kumar
Date: Fri Apr 05 2024 - 07:09:58 EST


Hello,

This RFC adds initial rust bindings for two subsystems, cpufreq and operating
performance points (OPP). The bindings are provided for most of the interface
these subsystems expose.

This series also provides a sample cpufreq driver rcpufreq-dt, which is a
duplicate of the merged cpufreq-dt driver (A generic platform agnostic device
tree based cpufreq driver) used on most of the ARM platforms.

This is tested with the help of QEMU for now and frequency transitions and
configurations work as expected. No performance measurement is done as of now
with this.

These patches (along with a lot of other dependencies) are pushed here for
anyone to give them a try:

git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git rust/cpufreq-dt


I understand that there is a long road ahead before these patches can get merged
as a lot of other stuff needs to get in first, i.e. Rust bindings for:
- generic device / driver
- platform device / driver
- clk, regulator, OF, cpumask, etc

Because of the missing bindings for above APIs, lot of calls are made directly
into the bindgen generated bindings for now, to make this work. Hopefully we can
have a lot less unsafe code once we get all those things merged.

Based over v6.9-rc1.

Thanks.

Viresh Kumar (3):
rust: Add bindings for OPP framework
rust: Add bindings for cpufreq framework
cpufreq: Add Rust based cpufreq-dt driver

drivers/cpufreq/Kconfig | 12 +
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/rcpufreq_dt.rs | 264 ++++++++
rust/bindings/bindings_helper.h | 2 +
rust/helpers.c | 15 +
rust/kernel/cpufreq.rs | 1090 +++++++++++++++++++++++++++++++
rust/kernel/lib.rs | 4 +
rust/kernel/opp.rs | 895 +++++++++++++++++++++++++
8 files changed, 2283 insertions(+)
create mode 100644 drivers/cpufreq/rcpufreq_dt.rs
create mode 100644 rust/kernel/cpufreq.rs
create mode 100644 rust/kernel/opp.rs

--
2.31.1.272.g89b43f80a514