fix: ensure use of pointers for SPI interface on atsam21/atsam51 and other machines/boards that were missing implementation. (#4798)

Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
Ron Evans
2025-03-11 08:50:31 -07:00
committed by GitHub
parent bcdc5e0097
commit f76e8d2812
17 changed files with 77 additions and 80 deletions
+1 -1
View File
@@ -77,7 +77,7 @@ var (
I2C0 = I2C1 I2C0 = I2C1
// SPI // SPI
SPI3 = SPI{ SPI3 = &SPI{
Bus: stm32.SPI3, Bus: stm32.SPI3,
} }
) )
+1 -1
View File
@@ -6,7 +6,7 @@ import "device/sifive"
// SPI on the HiFive1. // SPI on the HiFive1.
var ( var (
SPI1 = SPI{ SPI1 = &SPI{
Bus: sifive.QSPI1, Bus: sifive.QSPI1,
} }
) )
+1 -1
View File
@@ -85,7 +85,7 @@ var (
I2C0 = I2C2 I2C0 = I2C2
// SPI // SPI
SPI3 = SPI{ SPI3 = &SPI{
Bus: stm32.SPI3, Bus: stm32.SPI3,
} }
) )
+1 -1
View File
@@ -84,7 +84,7 @@ var (
I2C0 = I2C1 I2C0 = I2C1
// SPI // SPI
SPI3 = SPI{ SPI3 = &SPI{
Bus: stm32.SPI3, Bus: stm32.SPI3,
} }
) )
+4 -7
View File
@@ -263,9 +263,8 @@ const (
) )
var ( var (
SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4) SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4)
SPI1 = &_SPI1 SPI1 = &SPI{
_SPI1 = SPI{
Bus: nxp.LPSPI4, Bus: nxp.LPSPI4,
muxSDI: muxSelect{ // D12 (PB1 [B0_01]) muxSDI: muxSelect{ // D12 (PB1 [B0_01])
mux: nxp.IOMUXC_LPSPI4_SDI_SELECT_INPUT_DAISY_GPIO_B0_01_ALT3, mux: nxp.IOMUXC_LPSPI4_SDI_SELECT_INPUT_DAISY_GPIO_B0_01_ALT3,
@@ -284,8 +283,7 @@ var (
sel: &nxp.IOMUXC.LPSPI4_PCS0_SELECT_INPUT, sel: &nxp.IOMUXC.LPSPI4_PCS0_SELECT_INPUT,
}, },
} }
SPI2 = &_SPI2 SPI2 = &SPI{
_SPI2 = SPI{
Bus: nxp.LPSPI3, Bus: nxp.LPSPI3,
muxSDI: muxSelect{ // D1 (PA2 [AD_B0_02]) muxSDI: muxSelect{ // D1 (PA2 [AD_B0_02])
mux: nxp.IOMUXC_LPSPI3_SDI_SELECT_INPUT_DAISY_GPIO_AD_B0_02_ALT7, mux: nxp.IOMUXC_LPSPI3_SDI_SELECT_INPUT_DAISY_GPIO_AD_B0_02_ALT7,
@@ -304,8 +302,7 @@ var (
sel: &nxp.IOMUXC.LPSPI3_PCS0_SELECT_INPUT, sel: &nxp.IOMUXC.LPSPI3_PCS0_SELECT_INPUT,
}, },
} }
SPI3 = &_SPI3 SPI3 = &SPI{
_SPI3 = SPI{
Bus: nxp.LPSPI1, Bus: nxp.LPSPI1,
muxSDI: muxSelect{ // D34 (PC15 [SD_B0_03]) muxSDI: muxSelect{ // D34 (PC15 [SD_B0_03])
mux: nxp.IOMUXC_LPSPI1_SDI_SELECT_INPUT_DAISY_GPIO_SD_B0_03_ALT4, mux: nxp.IOMUXC_LPSPI1_SDI_SELECT_INPUT_DAISY_GPIO_SD_B0_03_ALT4,
+4 -4
View File
@@ -22,10 +22,10 @@ var (
sercomI2CM2 = &I2C{Bus: sam.SERCOM2_I2CM, SERCOM: 2} sercomI2CM2 = &I2C{Bus: sam.SERCOM2_I2CM, SERCOM: 2}
sercomI2CM3 = &I2C{Bus: sam.SERCOM3_I2CM, SERCOM: 3} sercomI2CM3 = &I2C{Bus: sam.SERCOM3_I2CM, SERCOM: 3}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
) )
func init() { func init() {
+6 -6
View File
@@ -26,12 +26,12 @@ var (
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4} sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5} sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPI, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPI, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPI, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPI, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPI, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPI, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPI, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPI, SERCOM: 5}
) )
func init() { func init() {
+6 -6
View File
@@ -18,12 +18,12 @@ var (
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4} sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5} sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+6 -6
View File
@@ -18,12 +18,12 @@ var (
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4} sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5} sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+6 -6
View File
@@ -18,12 +18,12 @@ var (
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4} sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5} sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+8 -8
View File
@@ -20,14 +20,14 @@ var (
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6} sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7} sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6} sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7} sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+8 -8
View File
@@ -20,14 +20,14 @@ var (
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6} sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7} sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6} sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7} sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+6 -6
View File
@@ -18,12 +18,12 @@ var (
sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4} sercomI2CM4 = &I2C{Bus: sam.SERCOM4_I2CM, SERCOM: 4}
sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5} sercomI2CM5 = &I2C{Bus: sam.SERCOM5_I2CM, SERCOM: 5}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+8 -8
View File
@@ -20,14 +20,14 @@ var (
sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6} sercomI2CM6 = &I2C{Bus: sam.SERCOM6_I2CM, SERCOM: 6}
sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7} sercomI2CM7 = &I2C{Bus: sam.SERCOM7_I2CM, SERCOM: 7}
sercomSPIM0 = SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0} sercomSPIM0 = &SPI{Bus: sam.SERCOM0_SPIM, SERCOM: 0}
sercomSPIM1 = SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1} sercomSPIM1 = &SPI{Bus: sam.SERCOM1_SPIM, SERCOM: 1}
sercomSPIM2 = SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2} sercomSPIM2 = &SPI{Bus: sam.SERCOM2_SPIM, SERCOM: 2}
sercomSPIM3 = SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3} sercomSPIM3 = &SPI{Bus: sam.SERCOM3_SPIM, SERCOM: 3}
sercomSPIM4 = SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4} sercomSPIM4 = &SPI{Bus: sam.SERCOM4_SPIM, SERCOM: 4}
sercomSPIM5 = SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5} sercomSPIM5 = &SPI{Bus: sam.SERCOM5_SPIM, SERCOM: 5}
sercomSPIM6 = SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6} sercomSPIM6 = &SPI{Bus: sam.SERCOM6_SPIM, SERCOM: 6}
sercomSPIM7 = SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7} sercomSPIM7 = &SPI{Bus: sam.SERCOM7_SPIM, SERCOM: 7}
) )
// setSERCOMClockGenerator sets the GCLK for sercom // setSERCOMClockGenerator sets the GCLK for sercom
+2 -2
View File
@@ -334,8 +334,8 @@ type SPI struct {
var ( var (
// SPI0 and SPI1 are reserved for use by the caching system etc. // SPI0 and SPI1 are reserved for use by the caching system etc.
SPI2 = SPI{esp.SPI2} SPI2 = &SPI{esp.SPI2}
SPI3 = SPI{esp.SPI3} SPI3 = &SPI{esp.SPI3}
) )
// SPIConfig configures a SPI peripheral on the ESP32. Make sure to set at least // SPIConfig configures a SPI peripheral on the ESP32. Make sure to set at least
+1 -1
View File
@@ -52,7 +52,7 @@ type SPI struct {
var ( var (
// SPI0 and SPI1 are reserved for use by the caching system etc. // SPI0 and SPI1 are reserved for use by the caching system etc.
SPI2 = SPI{esp.SPI2} SPI2 = &SPI{esp.SPI2}
) )
// SPIConfig is used to store config info for SPI. // SPIConfig is used to store config info for SPI.
+8 -8
View File
@@ -248,14 +248,14 @@ var (
sercomI2CM6 = &I2C{6} sercomI2CM6 = &I2C{6}
sercomI2CM7 = &I2C{7} sercomI2CM7 = &I2C{7}
sercomSPIM0 = SPI{0} sercomSPIM0 = &SPI{0}
sercomSPIM1 = SPI{1} sercomSPIM1 = &SPI{1}
sercomSPIM2 = SPI{2} sercomSPIM2 = &SPI{2}
sercomSPIM3 = SPI{3} sercomSPIM3 = &SPI{3}
sercomSPIM4 = SPI{4} sercomSPIM4 = &SPI{4}
sercomSPIM5 = SPI{5} sercomSPIM5 = &SPI{5}
sercomSPIM6 = SPI{6} sercomSPIM6 = &SPI{6}
sercomSPIM7 = SPI{7} sercomSPIM7 = &SPI{7}
) )
// GetRNG returns 32 bits of random data from the WASI random source. // GetRNG returns 32 bits of random data from the WASI random source.