Samsung Internal API reference  2.0
tee_spi.h
Go to the documentation of this file.
1 
9 #ifndef __TEE_SPI_H__
10 #define __TEE_SPI_H__
11 
12 #include <stdint.h>
13 #include <tee_internal_api.h>
14 #include <driver/spi/spi.h>
15 
19 typedef struct {
20  uint32_t speedHz;
21  uint8_t bitsPerWord;
22  uint8_t CPOL;
23  uint8_t CPHA;
24  bool isDMAMode;
28 
32 typedef struct {
33  void *bufAddr;
34  size_t bufLen;
35  size_t transferredLen;
37 
38 /* DMA specific */
44 DSO_EXPORT TEE_Result TEES_SPIDMAInit(uintptr_t address);
45 
47 DSO_EXPORT TEE_Result TEES_SPITestDMA(void);
50 struct __TEES_SPIHandlerImpl;
51 
54 typedef struct __TEES_SPIHandlerImpl* TEES_SPIHandler;
55 
84 DSO_EXPORT TEE_Result TEES_SPIInit(uint32_t port, const TEES_SPIConfig *cfg, TEES_SPIHandler *handler);
85 
119 DSO_EXPORT TEE_Result TEES_SPIExit(TEES_SPIHandler handler);
120 
155 DSO_EXPORT TEE_Result TEES_SPISetConfig(TEES_SPIHandler handler, const TEES_SPIConfig *cfg);
156 
170 DSO_EXPORT TEE_Result TEES_SPISetClockSpeed(TEES_SPIHandler handler, uint32_t speedHz);
171 
185 DSO_EXPORT TEE_Result TEES_SPISetBitsPerWord(TEES_SPIHandler handler, uint8_t bitsPerWord);
186 
200 DSO_EXPORT TEE_Result TEES_SPISetDMAMode(TEES_SPIHandler handler, bool isEnabled);
201 
215 DSO_EXPORT TEE_Result TEES_SPISetCPOL(TEES_SPIHandler handler, uint8_t cpol);
216 
230 DSO_EXPORT TEE_Result TEES_SPISetCPHA(TEES_SPIHandler handler, uint8_t cpha);
231 
237 DSO_EXPORT TEE_Result TEES_SPIClockEnable(TEES_SPIHandler handler);
238 
244 DSO_EXPORT TEE_Result TEES_SPIClockDisable(TEES_SPIHandler handler);
245 
253 DSO_EXPORT TEE_Result TEES_SPIWrite(TEES_SPIHandler handler, TEES_SPITransfer *tx);
254 
297 DSO_EXPORT TEE_Result TEES_SPIRead(TEES_SPIHandler handler, TEES_SPITransfer *rx);
298 
348 DSO_EXPORT TEE_Result TEES_SPIWriteRead(TEES_SPIHandler handler, TEES_SPITransfer *tx, TEES_SPITransfer *rx);
349 
350 #ifndef __HIDE_INTERNAL_FUNCTIONS__
351 
357 DSO_EXPORT TEE_Result TEES_SPISetLoopback(TEES_SPIHandler handler, bool isEnabled);
358 #endif /* __HIDE_INTERNAL_FUNCTIONS__ */
359 
360 #endif /* __TEE_SPI_H__ */
361 
TEE_Result TEES_SPIWrite(TEES_SPIHandler handler, TEES_SPITransfer *tx)
Transfer data from buffer bus to SPI.
TEE_Result TEES_SPISetCPHA(TEES_SPIHandler handler, uint8_t cpha)
Set SPI clock phase bit.
struct __TEES_SPIHandlerImpl * TEES_SPIHandler
Definition: tee_spi.h:54
bool isDMAMode
Definition: tee_spi.h:24
TEE_Result TEES_SPIDMAInit(uintptr_t address)
Initialize DMA for working with SPI device.
Descriptor to transfer data over SPI.
Definition: tee_spi.h:32
size_t transferredLen
Definition: tee_spi.h:35
TEE_Result TEES_SPIRead(TEES_SPIHandler handler, TEES_SPITransfer *rx)
Transfer data from SPI bus to buffer.
TEE_Result TEES_SPISetCPOL(TEES_SPIHandler handler, uint8_t cpol)
Set SPI clock polarity bit.
TEE_Result TEES_SPISetConfig(TEES_SPIHandler handler, const TEES_SPIConfig *cfg)
Initialize handler with configuration values.
Configuration of SPI device.
Definition: tee_spi.h:19
TEE_Result TEES_SPISetBitsPerWord(TEES_SPIHandler handler, uint8_t bitsPerWord)
Set the number of bits that will be transferred per SPI rate.
TEE_Result TEES_SPIExit(TEES_SPIHandler handler)
Free handler resource.
bool manualClockControl
Definition: tee_spi.h:25
uint8_t CPHA
Definition: tee_spi.h:23
size_t bufLen
Definition: tee_spi.h:34
void * bufAddr
Definition: tee_spi.h:33
TEE_Result TEES_SPIClockEnable(TEES_SPIHandler handler)
Not implemented.
TEE_Result TEES_SPIWriteRead(TEES_SPIHandler handler, TEES_SPITransfer *tx, TEES_SPITransfer *rx)
Transfer data from buffer to SPI bus.
TEE_Result TEES_SPISetClockSpeed(TEES_SPIHandler handler, uint32_t speedHz)
Set clock frequency rate.
TEE_Result TEES_SPISetDMAMode(TEES_SPIHandler handler, bool isEnabled)
Enable or disable DMA mode.
uint8_t bitsPerWord
Definition: tee_spi.h:21
TEE_Result TEES_SPIClockDisable(TEES_SPIHandler handler)
Not implemented.
TEE_Result TEES_SPIInit(uint32_t port, const TEES_SPIConfig *cfg, TEES_SPIHandler *handler)
Initialize handler fields.
uint8_t CPOL
Definition: tee_spi.h:22
uint32_t speedHz
Definition: tee_spi.h:20