Herzog Library 00.00.01  rel_libdev.herzog.00.00.01.10606
spi_device.h
Go to the documentation of this file.
1 
12 #ifndef __SPI_DEVICE_H__
13 #define __SPI_DEVICE_H__
14 
15 #include "hdf.h"
16 #include "errno.h"
17 
18 #define SPI_BUFF_SIZE 16
19 
26 };
27 
34 };
35 
42 };
43 
47 enum {
60 };
61 
65 typedef struct {
66  uint8_t Mode;
67  uint8_t ClockDiv;
68  uint8_t Phase;
69  uint8_t Polarity;
70  uint8_t IntDlyCnt;
72 
76 typedef const struct {
77  void (*Enable)(void);
78  void (*Disable)(void);
79  void (*IrqEnable)(void);
80  void (*IrqDisable)(void);
81  uint8_t (*ReadData)(void);
82  uint8_t (*GetStatus)(void);
83  void (*WriteData)(uint8_t data);
84  void (*SetMode)(uint8_t mode);
85  void (*SetClockDivider)(uint8_t div);
86  void (*SetPhase)(uint8_t pha);
87  void (*SetPolarity)(uint8_t pol);
88  void (*IRQDelay)(uint8_t cnt);
89  void (*ClearIRQ)(void);
91  char *Name;
92 } SPI_Device_t;
93 
100 void SPI_DevSetClockDivider(uint8_t div);
101 
108 SPI_Device_t *SPI_devRequest(const char *name);
109 
117 int32_t SPI_devInit(SPI_Device_t *dev, SPI_Device_init_t *init);
118 
128 int32_t SPI_devReadData(SPI_Device_t *dev, uint8_t cmd, uint8_t *data, uint32_t len);
129 
139 int32_t SPI_devWriteData(SPI_Device_t *dev, uint8_t cmd, uint8_t *data, uint32_t len);
140 
141 #endif /* __SPI_DEVICE_H__ */
SPI_DEV_CLOCK_POLARITY_t
The enumeration of DPI polarity.
Definition: spi_device.h:31
Definition: spi_device.h:50
Definition: spi_device.h:59
uint8_t Mode
Definition: spi_device.h:66
int32_t SPI_devWriteData(SPI_Device_t *dev, uint8_t cmd, uint8_t *data, uint32_t len)
Write Data to SPI device.
Definition: spi_device.c:143
uint8_t ClockDiv
Definition: spi_device.h:67
Definition: spi_device.h:58
Definition: spi_device.h:56
enum IRQn IRQn_Type
The enumeration of Interrupt Number Assignments.
Definition: spi_device.h:54
Definition: spi_device.h:55
Definition: spi_device.h:51
uint8_t Phase
Definition: spi_device.h:68
Definition: spi_device.h:49
uint8_t Polarity
Definition: spi_device.h:69
IRQn_Type IRQ
Definition: spi_device.h:90
Definition: spi_device.h:33
Definition: spi_device.h:32
SPI_DEV_MODE_t
The enumeration of SPI mode.
Definition: spi_device.h:39
Definition: spi_device.h:57
int32_t SPI_devReadData(SPI_Device_t *dev, uint8_t cmd, uint8_t *data, uint32_t len)
Read Data from SPI device.
Definition: spi_device.c:118
Definition: spi_device.h:41
Definition: spi_device.h:53
Definition: spi_device.h:25
A structure to represent SPI device initialization data.
Definition: spi_device.h:65
Definition: spi_device.h:48
SPI_Device_t * SPI_devRequest(const char *name)
Request a SPI Device.
Definition: spi_device.c:94
int32_t SPI_devInit(SPI_Device_t *dev, SPI_Device_init_t *init)
Initialize SPI device.
Definition: spi_device.c:106
char * Name
Definition: spi_device.h:91
SPI_DEV_CLOCK_PHASE_t
The enumeration of SPI phase.
Definition: spi_device.h:23
void SPI_DevSetClockDivider(uint8_t div)
Set Clock Divider for SPI Device.
Definition: spi_device.c:50
uint8_t IntDlyCnt
Definition: spi_device.h:70
Definition: spi_device.h:40
A structure to represent SPI device.
Definition: spi_device.h:76
Definition: spi_device.h:52
Definition: spi_device.h:24