38 #define SPI_CLK_USE_DIV 0 39 #define SPI_CLK_80MHZ_NODIV 1 41 #define SPI_BYTE_ORDER_HIGH_TO_LOW 1 42 #define SPI_BYTE_ORDER_LOW_TO_HIGH 0 44 #ifndef CPU_CLK_FREQ //Should already be defined in eagle_soc.h 45 #define CPU_CLK_FREQ 80*1000000 49 #define SPI_CLK_PREDIV 10 50 #define SPI_CLK_CNTDIV 2 51 #define SPI_CLK_FREQ CPU_CLK_FREQ/(SPI_CLK_PREDIV*SPI_CLK_CNTDIV) // 80 / 20 = 4 MHz 66 #define spi_busy(spi_no) READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR 68 #define spi_txd(spi_no, bits, data) spi_transaction(spi_no, 0, 0, 0, 0, bits, (uint32) data, 0, 0) 69 #define spi_tx8(spi_no, data) spi_transaction(spi_no, 0, 0, 0, 0, 8, (uint32) data, 0, 0) 70 #define spi_tx16(spi_no, data) spi_transaction(spi_no, 0, 0, 0, 0, 16, (uint32) data, 0, 0) 71 #define spi_tx32(spi_no, data) spi_transaction(spi_no, 0, 0, 0, 0, 32, (uint32) data, 0, 0) 73 #define spi_rxd(spi_no, bits) spi_transaction(spi_no, 0, 0, 0, 0, 0, 0, bits, 0) 74 #define spi_rx8(spi_no) spi_transaction(spi_no, 0, 0, 0, 0, 0, 0, 8, 0) 75 #define spi_rx16(spi_no) spi_transaction(spi_no, 0, 0, 0, 0, 0, 0, 16, 0) 76 #define spi_rx32(spi_no) spi_transaction(spi_no, 0, 0, 0, 0, 0, 0, 32, 0) ICACHE_FLASH_ATTR uint32 spi_transaction(uint8 spi_no, uint8 cmd_bits, uint16 cmd_data, uint32 addr_bits, uint32 addr_data, uint32 dout_bits, uint32 dout_data, uint32 din_bits, uint32 dummy_bits)
ICACHE_FLASH_ATTR void spi_init(uint8 spi_no)
ICACHE_FLASH_ATTR void spi_init_gpio(uint8 spi_no, uint8 sysclk_as_spiclk)
#define ICACHE_FLASH_ATTR
ICACHE_FLASH_ATTR void spi_rx_byte_order(uint8 spi_no, uint8 byte_order)
ICACHE_FLASH_ATTR void spi_tx_byte_order(uint8 spi_no, uint8 byte_order)
ICACHE_FLASH_ATTR void spi_mode(uint8 spi_no, uint8 spi_cpha, uint8 spi_cpol)
ICACHE_FLASH_ATTR void spi_clock(uint8 spi_no, uint16 prediv, uint8 cntdiv)