kernel::utilities::peripheral_management

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.

Implementors§