1 /* 2 * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include "soc/spi_periph.h" 8 #include "stddef.h" 9 10 /* 11 Bunch of constants for every SPI peripheral: GPIO signals, irqs, hw addr of registers etc 12 */ 13 const spi_signal_conn_t spi_periph_signal[SOC_SPI_PERIPH_NUM] = { 14 { 15 .spiclk_out = SPICLK_OUT_MUX_IDX, 16 .spiclk_in = 0,/* SPI clock is not an input signal*/ 17 .spid_out = SPID_OUT_IDX, 18 .spiq_out = SPIQ_OUT_IDX, 19 .spiwp_out = SPIWP_OUT_IDX, 20 .spihd_out = SPIHD_OUT_IDX, 21 .spid_in = SPID_IN_IDX, 22 .spiq_in = SPIQ_IN_IDX, 23 .spiwp_in = SPIWP_IN_IDX, 24 .spihd_in = SPIHD_IN_IDX, 25 .spics_out = {SPICS0_OUT_IDX, SPICS1_OUT_IDX},/* SPI0/1 do not have CS2 now */ 26 .spics_in = 0,/* SPI cs is not an input signal*/ 27 .spiclk_iomux_pin = SPI_IOMUX_PIN_NUM_CLK, 28 .spid_iomux_pin = SPI_IOMUX_PIN_NUM_MOSI, 29 .spiq_iomux_pin = SPI_IOMUX_PIN_NUM_MISO, 30 .spiwp_iomux_pin = SPI_IOMUX_PIN_NUM_WP, 31 .spihd_iomux_pin = SPI_IOMUX_PIN_NUM_HD, 32 .spics0_iomux_pin = SPI_IOMUX_PIN_NUM_CS, 33 .irq = ETS_SPI1_INTR_SOURCE, 34 .irq_dma = -1, 35 .module = PERIPH_SPI_MODULE, 36 .hw = (spi_dev_t *) &SPIMEM1, 37 .func = SPI_FUNC_NUM, 38 }, { 39 .spiclk_out = FSPICLK_OUT_MUX_IDX, 40 .spiclk_in = FSPICLK_IN_IDX, 41 .spid_out = FSPID_OUT_IDX, 42 .spiq_out = FSPIQ_OUT_IDX, 43 .spiwp_out = FSPIWP_OUT_IDX, 44 .spihd_out = FSPIHD_OUT_IDX, 45 .spid4_out = FSPIIO4_OUT_IDX, 46 .spid5_out = FSPIIO5_OUT_IDX, 47 .spid6_out = FSPIIO6_OUT_IDX, 48 .spid7_out = FSPIIO7_OUT_IDX, 49 .spid_in = FSPID_IN_IDX, 50 .spiq_in = FSPIQ_IN_IDX, 51 .spiwp_in = FSPIWP_IN_IDX, 52 .spihd_in = FSPIHD_IN_IDX, 53 .spid4_in = FSPIIO4_IN_IDX, 54 .spid5_in = FSPIIO5_IN_IDX, 55 .spid6_in = FSPIIO6_IN_IDX, 56 .spid7_in = FSPIIO7_IN_IDX, 57 .spics_out = {FSPICS0_OUT_IDX, FSPICS1_OUT_IDX, FSPICS2_OUT_IDX, FSPICS3_OUT_IDX, FSPICS4_OUT_IDX, FSPICS5_OUT_IDX}, 58 .spics_in = FSPICS0_IN_IDX, 59 .spiclk_iomux_pin = FSPI_IOMUX_PIN_NUM_CLK, 60 .spid_iomux_pin = FSPI_IOMUX_PIN_NUM_MOSI, 61 .spiq_iomux_pin = FSPI_IOMUX_PIN_NUM_MISO, 62 .spiwp_iomux_pin = FSPI_IOMUX_PIN_NUM_WP, 63 .spihd_iomux_pin = FSPI_IOMUX_PIN_NUM_HD, 64 .spics0_iomux_pin = FSPI_IOMUX_PIN_NUM_CS, 65 .irq = ETS_SPI2_INTR_SOURCE, 66 .irq_dma = ETS_SPI2_DMA_INTR_SOURCE, 67 .module = PERIPH_FSPI_MODULE, 68 .hw = &GPSPI2, 69 .func = FSPI_FUNC_NUM, 70 }, { 71 .spiclk_out = SPI3_CLK_OUT_MUX_IDX, 72 .spiclk_in = SPI3_CLK_IN_IDX, 73 .spid_out = SPI3_D_OUT_IDX, 74 .spiq_out = SPI3_Q_OUT_IDX, 75 //SPI3 doesn't have wp and hd signals 76 .spiwp_out = -1, 77 .spihd_out = -1, 78 .spid_in = SPI3_D_IN_IDX, 79 .spiq_in = SPI3_Q_IN_IDX, 80 .spiwp_in = -1, 81 .spihd_in = -1, 82 .spics_out = {SPI3_CS0_OUT_IDX, SPI3_CS1_OUT_IDX, SPI3_CS2_OUT_IDX}, 83 .spics_in = SPI3_CS0_IN_IDX, 84 //SPI3 doesn't have iomux pins 85 .spiclk_iomux_pin = -1, 86 .spid_iomux_pin = -1, 87 .spiq_iomux_pin = -1, 88 .spiwp_iomux_pin = -1, 89 .spihd_iomux_pin = -1, 90 .spics0_iomux_pin = -1, 91 .irq = ETS_SPI3_INTR_SOURCE, 92 .irq_dma = ETS_SPI3_DMA_INTR_SOURCE, 93 .module = PERIPH_HSPI_MODULE, 94 .hw = &GPSPI3, 95 .func = -1, 96 } 97 }; 98