Microchip® Advanced Software Framework

wilc/driver/source/m2m_periph.c File Reference

WILC Peripherials Application Interface.

Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.

#include "driver/include/m2m_periph.h"
#include "driver/source/nmasic.h"
#include "driver/source/m2m_hif.h"

Macros

#define GPIO_OP_DIR   0
 
#define GPIO_OP_GET   2
 
#define GPIO_OP_SET   1
 

Functions

static sint8 get_gpio_idx (uint8 u8GpioNum)
 
static sint8 gpio_ioctl (uint8 op, uint8 u8GpioNum, uint8 u8InVal, uint8 *pu8OutVal)
 GPIO read/write skeleton with wakeup/sleep capability. More...
 
sint8 m2m_periph_gpio_get_val (uint8 u8GpioNum, uint8 *pu8GpioVal)
 Read an NMC1500 GPIO input level. More...
 
sint8 m2m_periph_gpio_pullup_ctrl (uint8 u8GpioNum, uint8 u8PullupEn)
 Set an NMC1500 GPIO pullup resisitor enable or disable. More...
 
sint8 m2m_periph_gpio_set_dir (uint8 u8GpioNum, uint8 u8GpioDir)
 Configure a specific NMC1500 pad as a GPIO and sets its direction (input or output). More...
 
sint8 m2m_periph_gpio_set_val (uint8 u8GpioNum, uint8 u8GpioVal)
 Set an NMC1500 GPIO output level high or low. More...
 
sint8 m2m_periph_i2c_master_init (tstrI2cMasterInitParam *param)
 Initialize and configure the NMC1500 I2C master peripheral. More...
 
sint8 m2m_periph_i2c_master_read (uint8 u8SlaveAddr, uint8 *pu8Buf, uint16 u16BufLen, uint16 *pu16ReadLen, uint8 flags)
 Write a stream of bytes to the I2C slave device. More...
 
sint8 m2m_periph_i2c_master_write (uint8 u8SlaveAddr, uint8 *pu8Buf, uint16 u16BufLen, uint8 flags)
 Write a stream of bytes to the I2C slave device. More...
 
sint8 m2m_periph_init (tstrPerphInitParam *param)
 Initialize the NMC1500 peripheral driver module. More...
 
sint8 m2m_periph_pullup_ctrl (uint32 pinmask, uint8 enable)
 Control the programmable pull-up resistor on the chip pads . More...
 

#define GPIO_OP_DIR   0
#define GPIO_OP_GET   2
#define GPIO_OP_SET   1

static sint8 get_gpio_idx ( uint8  u8GpioNum)
static
static sint8 gpio_ioctl ( uint8  op,
uint8  u8GpioNum,
uint8  u8InVal,
uint8 pu8OutVal 
)
static
NMI_API sint8 m2m_periph_gpio_get_val ( uint8  u8GpioNum,
uint8 pu8GpioVal 
)

Read an NMC1500 GPIO input level.

Read an WINC15x0 GPIO input level.

Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[out]pu8GpioValGPIO input value. Zero = low, non-zero = high.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuGpioNum
Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[out]pu8GpioValGPIO input value. Zero = low, non-zero = high.
Returns
The function returns M2M_SUCCESS for success and a negative value otherwise.
See Also
tenuGpioNum
NMI_API sint8 m2m_periph_gpio_pullup_ctrl ( uint8  u8GpioNum,
uint8  u8PullupEn 
)

Set an NMC1500 GPIO pullup resisitor enable or disable.

Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[in]u8PullupEnZero: pullup disabled. Non-zero: pullup enabled.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuGpioNum

References M2M_SUCCESS.

NMI_API sint8 m2m_periph_gpio_set_dir ( uint8  u8GpioNum,
uint8  u8GpioDir 
)

Configure a specific NMC1500 pad as a GPIO and sets its direction (input or output).

Configure a specific WINC15x0 pad as a GPIO and sets its direction (input or output).

Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[in]u8GpioDirGPIO direction: Zero = input. Non-zero = output.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuGpioNum
Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[in]u8GpioDirGPIO direction: Zero = input. Non-zero = output.
Returns
The function returns M2M_SUCCESS for success and a negative value otherwise.
See Also
tenuGpioNum
NMI_API sint8 m2m_periph_gpio_set_val ( uint8  u8GpioNum,
uint8  u8GpioVal 
)

Set an NMC1500 GPIO output level high or low.

Set an WINC15x0 GPIO output level high or low.

Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[in]u8GpioValGPIO output value. Zero = low, non-zero = high.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuGpioNum
Parameters
[in]u8GpioNumGPIO number. Allowed values are defined in tenuGpioNum.
[in]u8GpioValGPIO output value. Zero = low, non-zero = high.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuGpioNum
NMI_API sint8 m2m_periph_i2c_master_init ( tstrI2cMasterInitParam param)

Initialize and configure the NMC1500 I2C master peripheral.

Parameters
[in]paramI2C master initialization structure. See members of tstrI2cMasterInitParam.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tstrI2cMasterInitParam

References M2M_SUCCESS.

NMI_API sint8 m2m_periph_i2c_master_read ( uint8  u8SlaveAddr,
uint8 pu8Buf,
uint16  u16BufLen,
uint16 pu16ReadLen,
uint8  flags 
)

Write a stream of bytes to the I2C slave device.

Parameters
[in]u8SlaveAddr7-bit I2C slave address.
[out]pu8BufA pointer to an output buffer in which a stream of bytes are received.
[in]u16BufLenMax output buffer length in bytes.
[out]pu16ReadLenActual number of bytes received.
[in]flagsWrite operation bitwise-ORed flags. See tenuI2cMasterFlags.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuI2cMasterFlags

References M2M_SUCCESS.

NMI_API sint8 m2m_periph_i2c_master_write ( uint8  u8SlaveAddr,
uint8 pu8Buf,
uint16  u16BufLen,
uint8  flags 
)

Write a stream of bytes to the I2C slave device.

Parameters
[in]u8SlaveAddr7-bit I2C slave address.
[in]pu8BufA pointer to an input buffer which contains a stream of bytes.
[in]u16BufLenInput buffer length in bytes.
[in]flagsWrite operation bitwise-ORed flags. See tenuI2cMasterFlags.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuI2cMasterFlags

References M2M_SUCCESS.

NMI_API sint8 m2m_periph_init ( tstrPerphInitParam param)

Initialize the NMC1500 peripheral driver module.

Parameters
[in]paramPeripheral module initialization structure. See members of tstrPerphInitParam.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tstrPerphInitParam
NMI_API sint8 m2m_periph_pullup_ctrl ( uint32  pinmask,
uint8  enable 
)

Control the programmable pull-up resistor on the chip pads .

Parameters
[in]pinmaskWrite operation bitwise-ORed mask for which pads to control. Allowed values are defined in tenuPullupMask.
[in]enableSet to 0 to disable pull-up resistor. Non-zero will enable the pull-up.
Returns
The function SHALL return 0 for success and a negative value otherwise.
See Also
tenuPullupMask
Parameters
[in]pinmaskWrite operation bitwise-ORed mask for which pads to control. Allowed values are defined in tenuPullupMask.
[in]enableSet to 0 to disable pull-up resistor. Non-zero will enable the pull-up.
Returns
The function returns M2M_SUCCESS for success and a negative value otherwise.
See Also
tenuPullupMask

Referenced by app_wifi_init(), and disable_pullups().