Skip to content

Commit 01f3d3e

Browse files
authored
fix: add SPI and I2C to teensy 4.1 (#4943)
* fix: add SPI and I2C to teensy 4.1 * fix: add SPI3 variables back * fix: formatting Signed-off-by: Emrick Sorensen <emrickishere@gmail.com>
1 parent 0e43146 commit 01f3d3e

File tree

1 file changed

+93
-5
lines changed

1 file changed

+93
-5
lines changed

src/machine/board_teensy41.go

Lines changed: 93 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ var (
279279
// #===========#==========#===============#=================-=========#
280280
// | SPI1 | LPSPI4 | PLL2(132 MHz) | D12/D11/D13/D10 : 3/3/3/3 |
281281
// | SPI2 | LPSPI3 | PLL2(132 MHz) | D1/D26/D27/D0 : 7/2/2/7 |
282-
// | SPI3 | LPSPI1 | PLL2(132 MHz) | D34/D35/D37/D36 : 4/4/4/4 |
282+
// | SPI3 | LPSPI1 | PLL2(132 MHz) | D42/D43/D45/D44 : 4/4/4/4 |
283283
// #===========#==========#===============#=================-=========#
284284
const (
285285
SPI1_SDI_PIN = D12
@@ -292,10 +292,52 @@ const (
292292
SPI2_SCK_PIN = D27
293293
SPI2_CS_PIN = D0
294294

295-
SPI3_SDI_PIN = D34
296-
SPI3_SDO_PIN = D35
297-
SPI3_SCK_PIN = D37
298-
SPI3_CS_PIN = D36
295+
SPI3_SDI_PIN = D42
296+
SPI3_SDO_PIN = D43
297+
SPI3_SCK_PIN = D45
298+
SPI3_CS_PIN = D44
299+
)
300+
301+
var (
302+
SPI0 = SPI1 // SPI0 is an alias of SPI1 (LPSPI4)
303+
SPI1 = &SPI{
304+
Bus: nxp.LPSPI4,
305+
muxSDI: muxSelect{ // D12 (PB1 [B0_01])
306+
mux: nxp.IOMUXC_LPSPI4_SDI_SELECT_INPUT_DAISY_GPIO_B0_01_ALT3,
307+
sel: &nxp.IOMUXC.LPSPI4_SDI_SELECT_INPUT,
308+
},
309+
muxSDO: muxSelect{ // D11 (PB2 [B0_02])
310+
mux: nxp.IOMUXC_LPSPI4_SDO_SELECT_INPUT_DAISY_GPIO_B0_02_ALT3,
311+
sel: &nxp.IOMUXC.LPSPI4_SDO_SELECT_INPUT,
312+
},
313+
muxSCK: muxSelect{ // D13 (PB3 [B0_03])
314+
mux: nxp.IOMUXC_LPSPI4_SCK_SELECT_INPUT_DAISY_GPIO_B0_03_ALT3,
315+
sel: &nxp.IOMUXC.LPSPI4_SCK_SELECT_INPUT,
316+
},
317+
muxCS: muxSelect{ // D10 (PB0 [B0_00])
318+
mux: nxp.IOMUXC_LPSPI4_PCS0_SELECT_INPUT_DAISY_GPIO_B0_00_ALT3,
319+
sel: &nxp.IOMUXC.LPSPI4_PCS0_SELECT_INPUT,
320+
},
321+
}
322+
SPI2 = &SPI{
323+
Bus: nxp.LPSPI3,
324+
muxSDI: muxSelect{ // D1 (PA2 [AD_B0_02])
325+
mux: nxp.IOMUXC_LPSPI3_SDI_SELECT_INPUT_DAISY_GPIO_AD_B0_02_ALT7,
326+
sel: &nxp.IOMUXC.LPSPI3_SDI_SELECT_INPUT,
327+
},
328+
muxSDO: muxSelect{ // D26 (PA30 [AD_B1_14])
329+
mux: nxp.IOMUXC_LPSPI3_SDO_SELECT_INPUT_DAISY_GPIO_AD_B1_14_ALT2,
330+
sel: &nxp.IOMUXC.LPSPI3_SDO_SELECT_INPUT,
331+
},
332+
muxSCK: muxSelect{ // D27 (PA31 [AD_B1_15])
333+
mux: nxp.IOMUXC_LPSPI3_SCK_SELECT_INPUT_DAISY_GPIO_AD_B1_15,
334+
sel: &nxp.IOMUXC.LPSPI3_SCK_SELECT_INPUT,
335+
},
336+
muxCS: muxSelect{ // D0 (PA3 [AD_B0_03])
337+
mux: nxp.IOMUXC_LPSPI3_PCS0_SELECT_INPUT_DAISY_GPIO_AD_B0_03_ALT7,
338+
sel: &nxp.IOMUXC.LPSPI3_PCS0_SELECT_INPUT,
339+
},
340+
}
299341
)
300342

301343
// #====================================================#
@@ -317,3 +359,49 @@ const (
317359
I2C3_SDA_PIN = D25
318360
I2C3_SCL_PIN = D24
319361
)
362+
363+
var (
364+
I2C0 = I2C1 // I2C0 is an alias for I2C1 (LPI2C1)
365+
I2C1 = &_I2C1
366+
_I2C1 = I2C{
367+
Bus: nxp.LPI2C1,
368+
sda: I2C1_SDA_PIN, // D18 (PA17 [AD_B1_01])
369+
scl: I2C1_SCL_PIN, // D19 (PA16 [AD_B1_00])
370+
muxSDA: muxSelect{
371+
mux: nxp.IOMUXC_LPI2C1_SDA_SELECT_INPUT_DAISY_GPIO_AD_B1_01_ALT3,
372+
sel: &nxp.IOMUXC.LPI2C1_SDA_SELECT_INPUT,
373+
},
374+
muxSCL: muxSelect{
375+
mux: nxp.IOMUXC_LPI2C1_SCL_SELECT_INPUT_DAISY_GPIO_AD_B1_00_ALT3,
376+
sel: &nxp.IOMUXC.LPI2C1_SCL_SELECT_INPUT,
377+
},
378+
}
379+
I2C2 = &_I2C2
380+
_I2C2 = I2C{
381+
Bus: nxp.LPI2C3,
382+
sda: I2C2_SDA_PIN, // D17 (PA22 [AD_B1_06])
383+
scl: I2C2_SCL_PIN, // D16 (PA23 [AD_B1_07])
384+
muxSDA: muxSelect{
385+
mux: nxp.IOMUXC_LPI2C3_SDA_SELECT_INPUT_DAISY_GPIO_AD_B1_06_ALT1,
386+
sel: &nxp.IOMUXC.LPI2C3_SDA_SELECT_INPUT,
387+
},
388+
muxSCL: muxSelect{
389+
mux: nxp.IOMUXC_LPI2C3_SCL_SELECT_INPUT_DAISY_GPIO_AD_B1_07_ALT1,
390+
sel: &nxp.IOMUXC.LPI2C3_SCL_SELECT_INPUT,
391+
},
392+
}
393+
I2C3 = &_I2C3
394+
_I2C3 = I2C{
395+
Bus: nxp.LPI2C4,
396+
sda: I2C3_SDA_PIN, // D25 (PA13 [AD_B0_13])
397+
scl: I2C3_SCL_PIN, // D24 (PA12 [AD_B0_12])
398+
muxSDA: muxSelect{
399+
mux: nxp.IOMUXC_LPI2C4_SDA_SELECT_INPUT_DAISY_GPIO_AD_B0_13_ALT0,
400+
sel: &nxp.IOMUXC.LPI2C4_SDA_SELECT_INPUT,
401+
},
402+
muxSCL: muxSelect{
403+
mux: nxp.IOMUXC_LPI2C4_SCL_SELECT_INPUT_DAISY_GPIO_AD_B0_12_ALT0,
404+
sel: &nxp.IOMUXC.LPI2C4_SCL_SELECT_INPUT,
405+
},
406+
}
407+
)

0 commit comments

Comments
 (0)