Skip to content

Commit

Permalink
remove refernces to peripheral mode
Browse files Browse the repository at this point in the history
  • Loading branch information
joeycastillo committed Oct 15, 2024
1 parent 7502f66 commit 30cccd0
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 20 deletions.
23 changes: 8 additions & 15 deletions common/spi.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,11 @@
/**
* @addtogroup spi SPI Peripheral
* @brief The SPI peripheral is used for synchronous serial communication with other devices.
* @details Gossamer's SPI implementation only supports SPI controller mode, not peripheral mode.
* Your DOPO pin in this case is COPI/MOSI, and your DIPO pin is CIPO/MISO.
* @{
*/

typedef enum {
SPI_MODE_PERIPHERAL = 2,
SPI_MODE_CONTROLLER = 3,
} spi_mode_t;

typedef enum {
SPI_DOPO_0_SCK_1 = 0,
SPI_DOPO_2_SCK_3,
Expand All @@ -40,15 +37,13 @@ typedef enum {
} spi_dipo_t;

/**
* @brief Initializes the SPI peripheral for a board with a defined SPI_SERCOM.
* @param mode SPI_MODE_CONTROLLER or SPI_MODE_PERIPHERAL
* @brief Initializes the SPI SERCOM as a controller for a board with a defined SPI_SERCOM.
* @param baud The desired baud rate
* @warning SPI_MODE_PERIPHERAL is untested!
*/
void spi_init(spi_mode_t mode, uint32_t baud);
void spi_init(uint32_t baud);

/**
* @brief Enables the SPI peripheral for a board with a defined SPI_SERCOM.
* @brief Enables the SPI SERCOM for a board with a defined SPI_SERCOM.
*/
void spi_enable(void);

Expand All @@ -60,20 +55,18 @@ void spi_enable(void);
uint8_t spi_transfer(uint8_t data);

/**
* @brief Disables the SPI peripheral for a board with a defined SPI_SERCOM.
* @brief Disables the SPI SERCOM for a board with a defined SPI_SERCOM.
*/
void spi_disable(void);

/**
* @brief Initializes a specific SERCOM instance for SPI.
* @brief Initializes a specific SERCOM instance as an SPI controller.
* @param sercom The SERCOM instance to initialize.
* @param dopo The data out pinout. @see spi_dopo_t
* @param dipo The data in pinout. @see spi_dipo_t
* @param mode SPI_MODE_CONTROLLER or SPI_MODE_PERIPHERAL
* @param baud The desired baud rate
* @warning SPI_MODE_PERIPHERAL is untested!
*/
void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, spi_mode_t mode, uint32_t baud);
void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, uint32_t baud);

/**
* @brief Enables a specific SERCOM instance for SPI.
Expand Down
4 changes: 2 additions & 2 deletions dummy/peripherals/spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

#if defined(SPI_SERCOM)

void spi_init(spi_mode_t mode, uint32_t baud) {
void spi_init(uint32_t baud) {
}

void spi_enable(void) {
Expand All @@ -28,7 +28,7 @@ void spi_disable(void) {

#endif

void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, spi_mode_t mode, uint32_t baud) {
void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, uint32_t baud) {
}

void spi_enable_instance(uint8_t sercom) {
Expand Down
6 changes: 3 additions & 3 deletions peripherals/spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

#if defined(SPI_SERCOM)

void spi_init(spi_mode_t mode, uint32_t baud) {
void spi_init(uint32_t baud) {
spi_init_instance(SPI_SERCOM, SPI_SERCOM_DOPO, SPI_SERCOM_DIPO, mode, baud);
}

Expand All @@ -32,7 +32,7 @@ void spi_disable(void) {

#endif

void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, spi_mode_t mode, uint32_t baud) {
void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, uint32_t baud) {
Sercom* SERCOM = SERCOM_Peripherals[sercom].sercom;

_sercom_clock_setup(sercom);
Expand All @@ -50,7 +50,7 @@ void spi_init_instance(uint8_t sercom, spi_dopo_t dopo, spi_dipo_t dipo, spi_mod
} else {
SERCOM->SPI.CTRLB.bit.RXEN = 1;
}
SERCOM->SPI.CTRLA.reg = SERCOM_SPI_CTRLA_MODE(mode) |
SERCOM->SPI.CTRLA.reg = SERCOM_SPI_CTRLA_MODE(3) |
SERCOM_SPI_CTRLA_DOPO(dopo) |
SERCOM_SPI_CTRLA_DIPO(dipo);

Expand Down

0 comments on commit 30cccd0

Please sign in to comment.