CryptoAuthLib
Microchip CryptoAuthentication Library
hal_linux_i2c_userspace.c File Reference

ATCA Hardware abstraction layer for Linux using I2C. More...

#include <linux/i2c-dev.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "atca_hal.h"
#include "hal_linux_i2c_userspace.h"

Functions

ATCA_STATUS hal_i2c_discover_buses (int i2c_buses[], int max_buses)
 discover i2c buses available for this hardware this maintains a list of logical to physical bus mappings freeing the application of the prior knowledge More...
 
ATCA_STATUS hal_i2c_discover_devices (int bus_num, ATCAIfaceCfg cfg[], int *found)
 discover any CryptoAuth devices on a given logical bus number More...
 
ATCA_STATUS hal_i2c_init (void *hal, ATCAIfaceCfg *cfg)
 initialize an I2C interface using given config More...
 
ATCA_STATUS hal_i2c_post_init (ATCAIface iface)
 HAL implementation of I2C post init. More...
 
ATCA_STATUS hal_i2c_send (ATCAIface iface, uint8_t *txdata, int txlength)
 HAL implementation of I2C send over ASF. More...
 
ATCA_STATUS hal_i2c_receive (ATCAIface iface, uint8_t *rxdata, uint16_t *rxlength)
 HAL implementation of I2C receive function for ASF I2C. More...
 
void change_i2c_speed (ATCAIface iface, uint32_t speed)
 method to change the bus speed of I2C More...
 
ATCA_STATUS hal_i2c_wake (ATCAIface iface)
 wake up CryptoAuth device using I2C bus More...
 
ATCA_STATUS hal_i2c_idle (ATCAIface iface)
 idle CryptoAuth device using I2C bus More...
 
ATCA_STATUS hal_i2c_sleep (ATCAIface iface)
 sleep CryptoAuth device using I2C bus More...
 
ATCA_STATUS hal_i2c_release (void *hal_data)
 manages reference count on given bus and releases resource if no more refences exist More...
 

Variables

ATCAI2CMaster_ti2c_hal_data [MAX_I2C_BUSES]
 
int i2c_bus_ref_ct = 0
 

Detailed Description

ATCA Hardware abstraction layer for Linux using I2C.