This module contains SAM4S WILC bus wrapper APIs implementation.
Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
#include <stdio.h>
#include "conf_wilc.h"
#include "bsp/include/nm_bsp.h"
#include "common/include/nm_common.h"
#include "bus_wrapper/include/nm_bus_wrapper.h"
#include "ioport.h"
#include "asf.h"
Macros | |
#define | NM_BUS_MAX_TRX_SZ 4096 |
#define | SPI_ASSERT_CS() do {p_pio_cs->PIO_CODR = 1 << (CONF_WILC_SPI_CS_GPIO & 0x1F);} while(0) |
Fast CS macro. More... | |
#define | SPI_DEASSERT_CS() do {p_pio_cs->PIO_SODR = 1 << (CONF_WILC_SPI_CS_GPIO & 0x1F);} while(0) |
Functions | |
sint8 | nm_bus_deinit (void) |
De-initialize the bus wrapper. More... | |
sint8 | nm_bus_init (void *pvinit) |
sint8 | nm_bus_ioctl (uint8 u8Cmd, void *pvParameter) |
static sint8 | spi_rw (uint8 *pu8Mosi, uint8 *pu8Miso, uint16 u16Sz) |
Variables | |
tstrNmBusCapabilities | egstrNmBusCapabilities |
Pio * | p_pio_cs |
PIO instance used by CS. More... | |
#define NM_BUS_MAX_TRX_SZ 4096 |
#define SPI_ASSERT_CS | ( | ) | do {p_pio_cs->PIO_CODR = 1 << (CONF_WILC_SPI_CS_GPIO & 0x1F);} while(0) |
Fast CS macro.
Referenced by spi_rw().
#define SPI_DEASSERT_CS | ( | ) | do {p_pio_cs->PIO_SODR = 1 << (CONF_WILC_SPI_CS_GPIO & 0x1F);} while(0) |
Referenced by nm_bus_init(), and spi_rw().
nm_bus_deinit | ( | void | ) |
De-initialize the bus wrapper.
References M2M_SUCCESS.
Referenced by nm_bus_iface_deinit().
SPI clock. Exact SPI frequency will depend on the CPU clock configuration and it will be less than or equal to what is configured in CONF_WINC_SPI_CLOCK Changed based on WSGA-874
References CONF_WILC_SPI, CONF_WILC_SPI_CLK_FLAGS, CONF_WILC_SPI_CLK_GPIO, CONF_WILC_SPI_CLOCK, CONF_WILC_SPI_CS_GPIO, CONF_WILC_SPI_DLYBCT, CONF_WILC_SPI_DLYBS, CONF_WILC_SPI_MISO_FLAGS, CONF_WILC_SPI_MISO_GPIO, CONF_WILC_SPI_MOSI_FLAGS, CONF_WILC_SPI_MOSI_GPIO, CONF_WILC_SPI_NPCS, CONF_WILC_SPI_PHA, CONF_WILC_SPI_POL, ioport_disable_pin(), ioport_set_pin_mode(), M2M_ERR_BUS_FAIL, M2M_SUCCESS, nm_bsp_reset(), p_pio_cs, PIO_DELTA, SPI_DEASSERT_CS, spi_disable(), spi_disable_mode_fault_detect(), spi_enable(), spi_enable_clock(), spi_get_pcs, spi_reset(), spi_set_baudrate_div(), spi_set_bits_per_transfer(), spi_set_clock_phase(), spi_set_clock_polarity(), spi_set_lastxfer(), spi_set_master_mode(), spi_set_peripheral_chip_select_value(), spi_set_transfer_delay(), and sysclk_get_cpu_hz().
Referenced by nm_bus_iface_init().
References M2M_ERR, NM_BUS_IOCTL_CMD_52, NM_BUS_IOCTL_CMD_53, NM_BUS_IOCTL_R, NM_BUS_IOCTL_RW, NM_BUS_IOCTL_W, NM_BUS_IOCTL_W_SPECIAL, tstrNmI2cDefault::pu8Buf, tstrNmI2cSpecial::pu8Buf1, tstrNmI2cSpecial::pu8Buf2, tstrNmSpiRw::pu8InBuf, tstrNmSpiRw::pu8OutBuf, spi_rw(), tstrNmI2cDefault::u16Sz, tstrNmSpiRw::u16Sz, tstrNmI2cSpecial::u16Sz1, and tstrNmI2cSpecial::u16Sz2.
Referenced by nmi_spi_read(), and nmi_spi_write().
References CONF_WILC_SPI, M2M_SUCCESS, SPI_ASSERT_CS, SPI_DEASSERT_CS, spi_read(), spi_read_status(), and spi_write().
Referenced by nm_bus_ioctl().
tstrNmBusCapabilities egstrNmBusCapabilities |
< Bus capabilities. This structure must be declared at platform specific bus wrapper
Referenced by nm_read_block(), and nm_write_block().
Pio* p_pio_cs |
PIO instance used by CS.
Referenced by nm_bus_init().