File indexing completed on 2025-05-11 08:22:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #include <bsp/atsam-spi.h>
0029 #include <bsp/spi.h>
0030
0031
0032 #define PIN_SPI0_MISO {PIO_PD20B_SPI0_MISO, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
0033
0034 #define PIN_SPI0_MOSI {PIO_PD21B_SPI0_MOSI, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
0035
0036 #define PIN_SPI0_NPCS0 {PIO_PB2D_SPI0_NPCS0, PIOB, ID_PIOB, PIO_PERIPH_D, PIO_DEFAULT}
0037
0038 #define PIN_SPI0_NPCS1_1 {PIO_PA31A_SPI0_NPCS1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
0039
0040 #define PIN_SPI0_NPCS1_2 {PIO_PD25B_SPI0_NPCS1, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
0041
0042 #define PIN_SPI0_NPCS2 {PIO_PD12C_SPI0_NPCS2, PIOD, ID_PIOD, PIO_PERIPH_C, PIO_DEFAULT}
0043
0044 #define PIN_SPI0_NPCS3 {PIO_PD27B_SPI0_NPCS3, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
0045
0046 #define PIN_SPI0_CLOCK {PIO_PD22B_SPI0_SPCK, PIOD, ID_PIOD, PIO_PERIPH_B, PIO_DEFAULT}
0047
0048
0049 #define PIN_SPI1_MISO {PIO_PC26C_SPI1_MISO, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0050
0051 #define PIN_SPI1_MOSI {PIO_PC27C_SPI1_MOSI, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0052
0053 #define PIN_SPI1_NPCS0 {PIO_PC25C_SPI1_NPCS0, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0054
0055 #define PIN_SPI1_NPCS1_1 {PIO_PC28C_SPI1_NPCS1, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0056
0057 #define PIN_SPI1_NPCS1_2 {PIO_PD0C_SPI1_NPCS1, PIOD, ID_PIOD, PIO_PERIPH_C, PIO_DEFAULT}
0058
0059 #define PIN_SPI1_NPCS2_1 {PIO_PC29C_SPI1_NPCS2, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0060
0061 #define PIN_SPI1_NPCS2_2 {PIO_PD1C_SPI1_NPCS2, PIOD, ID_PIOD, PIO_PERIPH_C, PIO_DEFAULT}
0062
0063 #define PIN_SPI1_NPCS3_1 {PIO_PC30C_SPI1_NPCS3, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0064
0065 #define PIN_SPI1_NPCS3_2 {PIO_PD2C_SPI1_NPCS3, PIOD, ID_PIOD, PIO_PERIPH_C, PIO_DEFAULT}
0066
0067 #define PIN_SPI1_CLOCK {PIO_PC24C_SPI1_SPCK, PIOC, ID_PIOC, PIO_PERIPH_C, PIO_DEFAULT}
0068
0069 int atsam_register_spi_0(void)
0070 {
0071 static const Pin pins[] = {
0072 PIN_SPI0_MISO,
0073 PIN_SPI0_MOSI,
0074 PIN_SPI0_NPCS0,
0075 PIN_SPI0_NPCS1_1,
0076 PIN_SPI0_NPCS1_2,
0077 PIN_SPI0_NPCS2,
0078 PIN_SPI0_NPCS3,
0079 PIN_SPI0_CLOCK
0080 };
0081
0082 static const atsam_spi_config config = {
0083 .spi_peripheral_id = ID_SPI0,
0084 .spi_regs = SPI0,
0085 .pins = pins,
0086 .pin_count = RTEMS_ARRAY_SIZE(pins),
0087 .chip_select_decode = false
0088 };
0089
0090 return spi_bus_register_atsam(
0091 ATSAM_SPI_0_BUS_PATH,
0092 &config
0093 );
0094 }
0095
0096 int atsam_register_spi_1(void)
0097 {
0098 static const Pin pins[] = {
0099 PIN_SPI1_MISO,
0100 PIN_SPI1_MOSI,
0101 PIN_SPI1_NPCS0,
0102 PIN_SPI1_NPCS1_1,
0103 PIN_SPI1_NPCS1_2,
0104 PIN_SPI1_NPCS2_1,
0105 PIN_SPI1_NPCS2_2,
0106 PIN_SPI1_NPCS3_1,
0107 PIN_SPI1_NPCS3_2,
0108 PIN_SPI1_CLOCK
0109 };
0110
0111 static const atsam_spi_config config = {
0112 .spi_peripheral_id = ID_SPI1,
0113 .spi_regs = SPI1,
0114 .pins = pins,
0115 .pin_count = RTEMS_ARRAY_SIZE(pins),
0116 .chip_select_decode = false
0117 };
0118
0119 return spi_bus_register_atsam(
0120 ATSAM_SPI_1_BUS_PATH,
0121 &config
0122 );
0123 }