pub struct LiteXLedController<R: LiteXSoCRegisterConfiguration> { /* private fields */ }
Expand description
LiteX led controller core
Implementations§
Source§impl<R: LiteXSoCRegisterConfiguration> LiteXLedController<R>
impl<R: LiteXSoCRegisterConfiguration> LiteXLedController<R>
pub fn new( base: StaticRef<LiteXLedRegisters<R>>, led_count: usize, ) -> LiteXLedController<R>
Sourcepub fn initialize(&self)
pub fn initialize(&self)
Initialize the LiteXLedController
This will turn all LEDs off, thus disabling the LED Chaser hardware-pattern of the LiteX core and switching to explicit software control.
Sourcepub fn led_count(&self) -> usize
pub fn led_count(&self) -> usize
Returns the number of LEDs managed by the
LiteXLedController
Sourcepub fn get_led(&self, index: usize) -> Option<LiteXLed<'_, R>>
pub fn get_led(&self, index: usize) -> Option<LiteXLed<'_, R>>
Create a LiteXLed
instance
To avoid duplicate use of a LED, this will return None
if an
instance for the requested LED already exists. Call
LiteXLed::destroy
(or drop the LiteXLed
) to be create
a new instance for this LED.
Sourcepub unsafe fn panic_led(&self, index: usize) -> Option<LiteXLed<'_, R>>
pub unsafe fn panic_led(&self, index: usize) -> Option<LiteXLed<'_, R>>
Create a LiteXLed
without checking for duplicates
This function must only be used in a panic handler, if no other code will be running afterwards, in order to guarantee consistency between ownership of the LiteXLed instance and control over the LED state
This function only checks whether the requested LEDs is within the controller’s range of available LEDs, but NOT whether there already is a different reference to the same LED.