Skip to main content

PeripheralManagement

Trait PeripheralManagement 

Source
pub trait PeripheralManagement<C>
where C: ClockInterface,
{ type RegisterType; // Required methods fn get_registers(&self) -> &Self::RegisterType; fn get_clock(&self) -> &C; fn before_peripheral_access(&self, _: &C, _: &Self::RegisterType); fn after_peripheral_access(&self, _: &C, _: &Self::RegisterType); }
Expand description

A structure encapsulating a peripheral should implement this trait.

Required Associated Types§

Required Methods§

Source

fn get_registers(&self) -> &Self::RegisterType

How to get a reference to the physical hardware registers (the MMIO struct).

Source

fn get_clock(&self) -> &C

Which clock feeds this peripheral.

For peripherals with no clock, use &::kernel::platform::chip::NO_CLOCK_CONTROL.

Source

fn before_peripheral_access(&self, _: &C, _: &Self::RegisterType)

Called before peripheral access.

Responsible for ensure the peripheral can be safely accessed, e.g. that its clock is powered on.

Source

fn after_peripheral_access(&self, _: &C, _: &Self::RegisterType)

Called after peripheral access.

Currently used primarily for power management to check whether the peripheral can be powered off.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§