Nut/OS  5.0.5
API Reference
_NUTSPIBUS Struct Reference

SPI bus structure. More...

#include <spibus.h>

Collaboration diagram for _NUTSPIBUS:
[legend]

Data Fields

HANDLE bus_mutex
 Bus lock queue.
HANDLE bus_ready
 Bus wait ready queue.
uintptr_t bus_base
 Bus base address.
IRQ_HANDLERbus_sig
 Bus interrupt handler.
int(* bus_initnode )(NUTSPINODE *)
 Initialize bus controller.
int(* bus_alloc )(NUTSPINODE *, uint32_t)
 Allocate the bus.
int(* bus_release )(NUTSPINODE *)
 Release the bus.
int(* bus_transfer )(NUTSPINODE *, const void *, void *, int)
 Transfer data.
int(* bus_wait )(NUTSPINODE *, uint32_t)
 Wait for transfer ready.
uint_fast16_t(* bus_set_mode )(NUTSPINODE *, uint_fast16_t)
 Set node's SPI mode.
uint_fast32_t(* bus_set_rate )(NUTSPINODE *, uint_fast32_t)
 Set node's clock rate.
uint_fast8_t(* bus_set_bits )(NUTSPINODE *, uint_fast8_t)
 Set node's data bit size.

Detailed Description

SPI bus structure.


Field Documentation

Initialize bus controller.

This routine is called during device registration.

Referenced by NutRegisterSpiDevice(), UFlashAttach(), and UFlashFormat().

Allocate the bus.

Locks the bus and activates the chip select.

Referenced by At45dNodeStatus(), and At45dNodeTransfer().

Release the bus.

Deactivates the chip select and unlocks the bus.

Referenced by At45dNodeStatus(), At45dNodeTransfer(), SpiMmcBlockWrite(), and SpiMmcIOCtl().

int(* _NUTSPIBUS::bus_transfer)(NUTSPINODE *, const void *, void *, int)

Wait for transfer ready.

Referenced by At45dNodeStatus().


The documentation for this struct was generated from the following file: