• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2018 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "soc/spi_periph.h"
16 
17 #define FUNC_SPI    1   //all pins of SPI1, HSPI and VSPI shares this function number
18 
19 /*
20  Bunch of constants for every SPI peripheral: GPIO signals, irqs, hw addr of registers etc
21 */
22 const spi_signal_conn_t spi_periph_signal[3] = {
23     {
24         .spiclk_out = SPICLK_OUT_IDX,
25         .spiclk_in = SPICLK_IN_IDX,
26         .spid_out = SPID_OUT_IDX,
27         .spiq_out = SPIQ_OUT_IDX,
28         .spiwp_out = SPIWP_OUT_IDX,
29         .spihd_out = SPIHD_OUT_IDX,
30         .spid_in = SPID_IN_IDX,
31         .spiq_in = SPIQ_IN_IDX,
32         .spiwp_in = SPIWP_IN_IDX,
33         .spihd_in = SPIHD_IN_IDX,
34         .spics_out = {SPICS0_OUT_IDX, SPICS1_OUT_IDX, SPICS2_OUT_IDX},
35         .spics_in = SPICS0_IN_IDX,
36         .spiclk_iomux_pin = SPI_IOMUX_PIN_NUM_CLK,
37         .spid_iomux_pin = SPI_IOMUX_PIN_NUM_MOSI,
38         .spiq_iomux_pin = SPI_IOMUX_PIN_NUM_MISO,
39         .spiwp_iomux_pin = SPI_IOMUX_PIN_NUM_WP,
40         .spihd_iomux_pin = SPI_IOMUX_PIN_NUM_HD,
41         .spics0_iomux_pin = SPI_IOMUX_PIN_NUM_CS,
42         .irq = ETS_SPI1_INTR_SOURCE,
43         .irq_dma = ETS_SPI1_DMA_INTR_SOURCE,
44         .module = PERIPH_SPI_MODULE,
45         .func = FUNC_SPI,
46         .hw = &SPI1
47     }, {
48         .spiclk_out = HSPICLK_OUT_IDX,
49         .spiclk_in = HSPICLK_IN_IDX,
50         .spid_out = HSPID_OUT_IDX,
51         .spiq_out = HSPIQ_OUT_IDX,
52         .spiwp_out = HSPIWP_OUT_IDX,
53         .spihd_out = HSPIHD_OUT_IDX,
54         .spid_in = HSPID_IN_IDX,
55         .spiq_in = HSPIQ_IN_IDX,
56         .spiwp_in = HSPIWP_IN_IDX,
57         .spihd_in = HSPIHD_IN_IDX,
58         .spics_out = {HSPICS0_OUT_IDX, HSPICS1_OUT_IDX, HSPICS2_OUT_IDX},
59         .spics_in = HSPICS0_IN_IDX,
60         .spiclk_iomux_pin = HSPI_IOMUX_PIN_NUM_CLK,
61         .spid_iomux_pin = HSPI_IOMUX_PIN_NUM_MOSI,
62         .spiq_iomux_pin = HSPI_IOMUX_PIN_NUM_MISO,
63         .spiwp_iomux_pin = HSPI_IOMUX_PIN_NUM_WP,
64         .spihd_iomux_pin = HSPI_IOMUX_PIN_NUM_HD,
65         .spics0_iomux_pin = HSPI_IOMUX_PIN_NUM_CS,
66         .irq = ETS_SPI2_INTR_SOURCE,
67         .irq_dma = ETS_SPI2_DMA_INTR_SOURCE,
68         .module = PERIPH_HSPI_MODULE,
69         .func = FUNC_SPI,
70         .hw = &SPI2
71     }, {
72         .spiclk_out = VSPICLK_OUT_IDX,
73         .spiclk_in = VSPICLK_IN_IDX,
74         .spid_out = VSPID_OUT_IDX,
75         .spiq_out = VSPIQ_OUT_IDX,
76         .spiwp_out = VSPIWP_OUT_IDX,
77         .spihd_out = VSPIHD_OUT_IDX,
78         .spid_in = VSPID_IN_IDX,
79         .spiq_in = VSPIQ_IN_IDX,
80         .spiwp_in = VSPIWP_IN_IDX,
81         .spihd_in = VSPIHD_IN_IDX,
82         .spics_out = {VSPICS0_OUT_IDX, VSPICS1_OUT_IDX, VSPICS2_OUT_IDX},
83         .spics_in = VSPICS0_IN_IDX,
84         .spiclk_iomux_pin = VSPI_IOMUX_PIN_NUM_CLK,
85         .spid_iomux_pin = VSPI_IOMUX_PIN_NUM_MOSI,
86         .spiq_iomux_pin = VSPI_IOMUX_PIN_NUM_MISO,
87         .spiwp_iomux_pin = VSPI_IOMUX_PIN_NUM_WP,
88         .spihd_iomux_pin = VSPI_IOMUX_PIN_NUM_HD,
89         .spics0_iomux_pin = VSPI_IOMUX_PIN_NUM_CS,
90         .irq = ETS_SPI3_INTR_SOURCE,
91         .irq_dma = ETS_SPI3_DMA_INTR_SOURCE,
92         .module = PERIPH_VSPI_MODULE,
93         .func = FUNC_SPI,
94         .hw = &SPI3
95     }
96 };
97