Software APIs
dt_spi_host.c File Reference

Device Tables (DT) for IP spi_host and top englishbreakfast. More...

#include "dt/dt_spi_host.h"

Go to the source code of this file.

Data Structures

struct  dt_desc_spi_host
 Description of instances. More...
 

Macros

#define TRY_GET_DT(dt, default)
 Return a pointer to the dt_spi_host_desc_t structure of the requested dt if it's a valid index.
 

Typedefs

typedef struct dt_desc_spi_host dt_desc_spi_host_t
 Description of instances.
 

Functions

dt_spi_host_t dt_spi_host_from_instance_id (dt_instance_id_t inst_id)
 Get the spi_host instance from an instance ID.
 
dt_instance_id_t dt_spi_host_instance_id (dt_spi_host_t dt)
 Get the instance ID of an instance.
 
uint32_t dt_spi_host_reg_block (dt_spi_host_t dt, dt_spi_host_reg_block_t reg_block)
 Get the register base address of an instance.
 
dt_plic_irq_id_t dt_spi_host_irq_to_plic_id (dt_spi_host_t dt, dt_spi_host_irq_t irq)
 Get the PLIC ID of a spi_host IRQ for a given instance.
 
dt_spi_host_irq_t dt_spi_host_irq_from_plic_id (dt_spi_host_t dt, dt_plic_irq_id_t irq)
 Convert a global IRQ ID to a local spi_host IRQ type.
 
dt_periph_io_t dt_spi_host_periph_io (dt_spi_host_t dt, dt_spi_host_periph_io_t sig)
 Get the peripheral I/O description of an instance.
 
dt_clock_t dt_spi_host_clock (dt_spi_host_t dt, dt_spi_host_clock_t clk)
 Get the clock signal connected to a clock port of an instance.
 
dt_reset_t dt_spi_host_reset (dt_spi_host_t dt, dt_spi_host_reset_t rst)
 Get the reset signal connected to a reset port of an instance.
 

Detailed Description

Device Tables (DT) for IP spi_host and top englishbreakfast.

Definition in file dt_spi_host.c.


Data Structure Documentation

◆ dt_desc_spi_host

struct dt_desc_spi_host

Description of instances.

Definition at line 19 of file dt_spi_host.c.

Data Fields
uint32_t base_addr[kDtSpiHostRegBlockCount] Base address of each register block.
dt_clock_t clock[kDtSpiHostClockCount] Clock signal connected to each clock port.
top_darjeeling_alert_id_t first_alert Alert ID of the first Alert of this instance.

This value is undefined if the block is not connected to the Alert Handler.

top_earlgrey_alert_id_t first_alert Alert ID of the first Alert of this instance.

This value is undefined if the block is not connected to the Alert Handler.

top_darjeeling_plic_irq_id_t first_irq PLIC ID of the first IRQ of this instance.

This can be kDtPlicIrqIdNone if the block is not connected to the PLIC.

top_earlgrey_plic_irq_id_t first_irq PLIC ID of the first IRQ of this instance.

This can be kDtPlicIrqIdNone if the block is not connected to the PLIC.

top_englishbreakfast_plic_irq_id_t first_irq PLIC ID of the first IRQ of this instance.

This can be kDtPlicIrqIdNone if the block is not connected to the PLIC.

dt_instance_id_t inst_id Instance ID.
dt_periph_io_t periph_io[kDtSpiHostPeriphIoCount] Description of each peripheral I/O.
dt_reset_t reset[kDtSpiHostResetCount] Reset signal connected to each reset port.

Macro Definition Documentation

◆ TRY_GET_DT

#define TRY_GET_DT ( dt,
default )
Value:
({ if ((dt) < (dt_spi_host_t)0 || (dt) >= kDtSpiHostCount) return (default); &spi_host_desc[dt]; })

Return a pointer to the dt_spi_host_desc_t structure of the requested dt if it's a valid index.

Otherwise, this macro will return (i.e. exit the function) with the provided default value.

Definition at line 107 of file dt_spi_host.c.

Function Documentation

◆ dt_spi_host_clock()

Get the clock signal connected to a clock port of an instance.

Parameters
dtInstance of spi_host.
clkClock port.
Returns
Clock signal.

Definition at line 161 of file dt_spi_host.c.

◆ dt_spi_host_from_instance_id()

dt_spi_host_t dt_spi_host_from_instance_id ( dt_instance_id_t inst_id)

Get the spi_host instance from an instance ID.

For example, dt_uart_from_instance_id(kDtInstanceIdUart3) == kDtUart3.

Parameters
inst_idInstance ID.
Returns
A spi_host instance.

Note: This function only makes sense if the instance ID has device type spi_host, otherwise the returned value is unspecified.

Definition at line 109 of file dt_spi_host.c.

◆ dt_spi_host_instance_id()

dt_instance_id_t dt_spi_host_instance_id ( dt_spi_host_t dt)

Get the instance ID of an instance.

Parameters
dtInstance of spi_host.
Returns
The instance ID of that instance.

Definition at line 116 of file dt_spi_host.c.

◆ dt_spi_host_irq_from_plic_id()

dt_spi_host_irq_t dt_spi_host_irq_from_plic_id ( dt_spi_host_t dt,
dt_plic_irq_id_t irq )

Convert a global IRQ ID to a local spi_host IRQ type.

Parameters
dtInstance of spi_host.
irqA PLIC ID that belongs to this instance.
Returns
The spi_host IRQ, or kDtSpiHostIrqCount.

Note: This function assumes that the PLIC ID belongs to the instance of spi_host passed in parameter. In other words, it must be the case that dt_spi_host_instance_id(dt) == dt_plic_id_to_instance_id(irq). Otherwise, this function will return kDtSpiHostIrqCount.

Definition at line 138 of file dt_spi_host.c.

◆ dt_spi_host_irq_to_plic_id()

dt_plic_irq_id_t dt_spi_host_irq_to_plic_id ( dt_spi_host_t dt,
dt_spi_host_irq_t irq )

Get the PLIC ID of a spi_host IRQ for a given instance.

If the instance is not connected to the PLIC, this function will return kDtPlicIrqIdNone.

Parameters
dtInstance of spi_host.
irqA spi_host IRQ.
Returns
The PLIC ID of the IRQ of this instance.

Definition at line 128 of file dt_spi_host.c.

◆ dt_spi_host_periph_io()

Get the peripheral I/O description of an instance.

Parameters
dtInstance of spi_host.
sigRequested peripheral I/O.
Returns
Description of the requested peripheral I/O for this instance.

Definition at line 154 of file dt_spi_host.c.

◆ dt_spi_host_reg_block()

Get the register base address of an instance.

Parameters
dtInstance of spi_host.
reg_blockThe register block requested.
Returns
The register base address of the requested block.

Definition at line 121 of file dt_spi_host.c.

◆ dt_spi_host_reset()

Get the reset signal connected to a reset port of an instance.

Parameters
dtInstance of spi_host.
rstReset port.
Returns
Reset signal.

Definition at line 168 of file dt_spi_host.c.