| /* | |
| ** $Id: spi.h 4461 2014-07-16 15:39:20Z nizajerk $ | |
| ** | |
| ** This file is system specific and should be edited for your hardware platform | |
| ** | |
| ** This file is used by proslic_timer_intf.h and proslic_spiGci.h | |
| */ | |
| #ifndef SPI_TYPE_H | |
| #define SPI_TYPE_H | |
| #include <linux/ioctl.h> | |
| //////#include <stdio.h> | |
| #include <unistd.h> | |
| #include <fcntl.h> | |
| #include <sys/time.h> | |
| #include <sys/ioctl.h> | |
| #include <pthread.h> | |
| #include <string.h> | |
| #include "si_voice_datatypes.h" | |
| #include "si_voice.h" | |
| #include "proslic_timer.h" | |
| /* See: http://tldp.org/LDP/lkmpg/2.6/html/x892.html for IOCTL exampels */ | |
| #define SI_LINUX_SPI_MAGIC 'S' | |
| #define SI_IOCTL_ASSERT_RESET _IOR(SI_LINUX_SPI_MAGIC,0, int ) /* Argument 1 = in reset, 0 = out of reset */ | |
| #define SI_IOCTL_MAX 1 | |
| #define NUMBER_OF_DEVICES 1 | |
| #define CHAN_PER_DEVICE 1 | |
| #define NUMBER_OF_CHAN (NUMBER_OF_DEVICES * CHAN_PER_DEVICE) | |
| #define NUMBER_OF_SPI_FD NUMBER_OF_CHAN | |
| typedef struct si_hctrl | |
| { | |
| int spi_fd[NUMBER_OF_SPI_FD]; /* File descriptor to SPI device */ | |
| pthread_mutex_t mutex; | |
| } si_hctrl_t; | |
| int si_setup_spi(si_hctrl_t *hCtrl); | |
| int si_teardown_spi(si_hctrl_t *hCtrl); | |
| int si_assoc_apis(si_hctrl_t *hCtrl, SiVoiceControlInterfaceType *proslic_if); | |
| /* | |
| ** SPI/GCI structure | |
| */ | |
| typedef struct{ | |
| int port; | |
| si_hctrl_t hw_ctrl; | |
| } ctrl_S; | |
| /* | |
| ** Function: SPI_Init | |
| ** | |
| ** Description: | |
| ** Initializes the SPI interface | |
| */ | |
| int SPI_Init (si_hctrl_t *hSpi); | |
| /* | |
| ** Function: ctrl_ResetWrapper | |
| ** | |
| ** Description: | |
| ** Sets the reset pin of the ProSLIC | |
| */ | |
| int ctrl_ResetWrapper (void *hCtrl, int status); | |
| /* | |
| ** register read | |
| ** | |
| ** Description: | |
| ** Reads ProSLIC registers | |
| */ | |
| unsigned char ctrl_ReadRegisterWrapper (void *hCtrl, unsigned char channel, unsigned char regAddr); | |
| /* | |
| ** Function: ctrl_WriteRegisterWrapper | |
| ** | |
| ** Description: | |
| ** Writes ProSLIC registers | |
| */ | |
| int ctrl_WriteRegisterWrapper (void *hSpiGci, unsigned char channel, unsigned char regAddr, unsigned char data); | |
| /* | |
| ** Function: ctrl_WriteRAMWrapper | |
| ** | |
| ** Description: | |
| ** Writes ProSLIC RAM | |
| */ | |
| int ctrl_WriteRAMWrapper (void *hSpiGci, unsigned char channel, unsigned short ramAddr, unsigned int data); | |
| /* | |
| ** Function: ctrl_ReadRAMWrapper | |
| ** | |
| ** Description: | |
| ** Reads ProSLIC RAM | |
| */ | |
| unsigned int ctrl_ReadRAMWrapper (void *hSpiGci, unsigned char channel, unsigned short ramAddr); | |
| #endif | |
| /* | |
| ** $Log: spi.h,v $ | |
| ** Revision 1.2 2007/10/22 21:38:10 lajordan | |
| ** fixed some warnings | |
| ** | |
| ** Revision 1.1 2007/10/22 20:52:09 lajordan | |
| ** no message | |
| ** | |
| ** Revision 1.1 2007/06/01 02:27:11 lajordan | |
| ** no message | |
| ** | |
| ** Revision 1.2 2007/02/21 16:53:07 lajordan | |
| ** no message | |
| ** | |
| ** Revision 1.1 2007/02/16 23:55:15 lajordan | |
| ** no message | |
| ** | |
| ** Revision 1.2 2007/02/15 23:33:25 lajordan | |
| ** no message | |
| ** | |
| ** Revision 1.1.1.1 2006/07/13 20:26:08 lajordan | |
| ** no message | |
| ** | |
| */ | |