The <class>_driver and <class>_driver_ops structures are implementation details of the drivers in that class, and should be moved from the public headers to a private header file in drivers/<class>. This involves converting the static inline wrappers to normal non-static functions, and converting the <CLASS>_OPS macro to a static inline function. See the the clock and i2c (https://github.com/crust-firmware/crust/commit/25e9355c2d93768aae195d86cdb8e2cdca4280be) classes for examples of how this is done.
Type of issue
Enhancement
Description
The
<class>_driver
and<class>_driver_ops
structures are implementation details of the drivers in that class, and should be moved from the public headers to a private header file indrivers/<class>
. This involves converting thestatic inline
wrappers to normal non-static functions, and converting the<CLASS>_OPS
macro to astatic inline
function. See the theclock
andi2c
(https://github.com/crust-firmware/crust/commit/25e9355c2d93768aae195d86cdb8e2cdca4280be) classes for examples of how this is done.Remaining classes where this is a TODO:
msgbox
pmic
regulator
watchdog