Add first version of spi_enable()/spi_disable().
This commit is contained in:
parent
a7a3770d51
commit
98997691d3
@ -150,6 +150,8 @@
|
|||||||
/* --- Function prototypes ------------------------------------------------- */
|
/* --- Function prototypes ------------------------------------------------- */
|
||||||
|
|
||||||
int spi_init_master(u32 spi, u32 br, u32 cpol, u32 cpha, u32 dff, u32 lsbfirst);
|
int spi_init_master(u32 spi, u32 br, u32 cpol, u32 cpha, u32 dff, u32 lsbfirst);
|
||||||
|
void spi_enable(u32 spi);
|
||||||
|
void spi_disable(u32 spi);
|
||||||
void spi_write(u32 spi, u16 data);
|
void spi_write(u32 spi, u16 data);
|
||||||
u16 spi_read(u32 spi);
|
u16 spi_read(u32 spi);
|
||||||
|
|
||||||
|
21
lib/spi.c
21
lib/spi.c
@ -51,6 +51,27 @@ int spi_init_master(u32 spi, u32 br, u32 cpol, u32 cpha, u32 dff, u32 lsbfirst)
|
|||||||
return 0; /* TODO */
|
return 0; /* TODO */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: Error handling? */
|
||||||
|
void spi_enable(u32 spi)
|
||||||
|
{
|
||||||
|
u32 reg32;
|
||||||
|
|
||||||
|
reg32 = SPI_CR1(spi);
|
||||||
|
reg32 |= SPI_CR1_SPE; /* Enable SPI. */
|
||||||
|
SPI_CR1(spi) = reg32;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: Error handling? */
|
||||||
|
void spi_disable(u32 spi)
|
||||||
|
{
|
||||||
|
u32 reg32;
|
||||||
|
|
||||||
|
/* TODO: Follow procedure from section 23.3.8 in the techref manual. */
|
||||||
|
reg32 = SPI_CR1(spi);
|
||||||
|
reg32 &= ~(SPI_CR1_SPE); /* Disable SPI. */
|
||||||
|
SPI_CR1(spi) = reg32;
|
||||||
|
}
|
||||||
|
|
||||||
void spi_write(u32 spi, u16 data)
|
void spi_write(u32 spi, u16 data)
|
||||||
{
|
{
|
||||||
/* Write data (8 or 16 bits, depending on DFF) into DR. */
|
/* Write data (8 or 16 bits, depending on DFF) into DR. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user