no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
adi_hal.h
Go to the documentation of this file.
1
8
9#ifndef _ADI_HAL_H_
10#define _ADI_HAL_H_
11
12/* include standard types and definitions */
13#include <stdint.h>
14#include <stddef.h>
15#include "no_os_util.h"
16
17#define u16 uint16_t
18#define DIV_U64(x, y) no_os_div_u64(x, y)
19#define DIV_S64(x, y) no_os_div_s64(x, y)
20#define DIV_ROUND_CLOSEST NO_OS_DIV_ROUND_CLOSEST
21#define DIV_ROUND_CLOSEST_ULL NO_OS_DIV_ROUND_CLOSEST_ULL
22
23/*========================================
24 * Enums and structures
25 *=======================================*/
26
37
52
66
72
73/*========================================
74 * Prototypes
75 *=======================================*/
76#ifdef __cplusplus
77extern "C" {
78#endif
79
80/* 3 Bytes per SPI transaction * 341 transactions = ~1024 byte buffer size */
81/* Minimum HAL_SPIWRITEARRAY_BUFFERSIZE = 18 */
82#define HAL_SPIWRITEARRAY_BUFFERSIZE 341
83
84/*============================================================================
85 * ADI Device Hardware Control Functions
86 *===========================================================================*/
87
127adiHalErr_t ADIHAL_openHw(void *devHalInfo, uint32_t halTimeout_ms);
128
159adiHalErr_t ADIHAL_closeHw(void *devHalInfo);
160
161
190adiHalErr_t ADIHAL_setTimeout(void *devHalInfo, uint32_t halTimeout_ms);
191
229adiHalErr_t ADIHAL_resetHw(void *devHalInfo);
230
253
285adiHalErr_t ADIHAL_spiWriteByte(void *devHalInfo, uint16_t addr, uint8_t data);
286
331adiHalErr_t ADIHAL_spiWriteBytes(void *devHalInfo, uint16_t *addr,
332 uint8_t *data, uint32_t count);
333
366adiHalErr_t ADIHAL_spiReadByte(void *devHalInfo, uint16_t addr,
367 uint8_t *readdata);
368
404adiHalErr_t ADIHAL_spiReadBytes(void *devHalInfo, uint16_t *addr,
405 uint8_t *readdata, uint32_t count);
406
458adiHalErr_t ADIHAL_spiWriteField(void *devHalInfo, uint16_t addr,
459 uint8_t fieldVal, uint8_t mask, uint8_t startBit);
460
510adiHalErr_t ADIHAL_spiReadField(void *devHalInfo, uint16_t addr,
511 uint8_t *fieldVal, uint8_t mask, uint8_t startBit);
512
541adiHalErr_t ADIHAL_wait_us(void *devHalInfo, uint32_t time_us);
542
543/*========================================
544 * Optional Logging Functions
545 *
546 *=======================================*/
582adiHalErr_t ADIHAL_setLogLevel(void *devHalInfo, uint16_t halLogLevel);
583
621adiHalErr_t ADIHAL_writeToLog(void *devHalInfo, adiLogLevel_t logLevel,
622 uint32_t errorCode, const char *comment);
623
624
625#ifdef __cplusplus
626}
627#endif
628#endif
adiHalErr_t ADIHAL_closeHw(void *devHalInfo)
Closes any platform hardware drivers, handles, etc that were necessary for the ADI Device.
Definition no_os_hal.c:106
adiHalErr_t ADIHAL_spiWriteBytes(void *devHalInfo, uint16_t *addr, uint8_t *data, uint32_t count)
Writes an array of SPI writes to an ADI Device.
Definition no_os_hal.c:174
adiLogLevel_t
An enumerated type in bit mask format to list the log message categories or groups.
Definition adi_hal.h:57
@ ADIHAL_LOG_ERR
Definition adi_hal.h:61
@ ADIHAL_LOG_MSG
Definition adi_hal.h:59
@ ADIHAL_LOG_WARN
Definition adi_hal.h:60
adiHalErr_t ADIHAL_spiWriteByte(void *devHalInfo, uint16_t addr, uint8_t data)
Performs a Single SPI write to an ADI Device.
Definition no_os_hal.c:156
adiHalErr_t ADIHAL_wait_us(void *devHalInfo, uint32_t time_us)
Delay or sleep for the specified number of microseconds.
Definition no_os_hal.c:255
adiHalErr_t ADIHAL_resetHw(void *devHalInfo)
Performs a hardware reset on the ADI Device.
Definition no_os_hal.c:123
adiHalErr_t ADIHAL_writeToLog(void *devHalInfo, adiLogLevel_t logLevel, uint32_t errorCode, const char *comment)
Writes a character array to a log file to facilitate debugging.
Definition no_os_hal.c:262
adiHalErr_t ADIHAL_spiReadByte(void *devHalInfo, uint16_t addr, uint8_t *readdata)
Performs a Single SPI Read from an ADI Device.
Definition no_os_hal.c:189
adiHalErr_t ADIHAL_setLogLevel(void *devHalInfo, uint16_t halLogLevel)
Writes a character array to a log file to facilitate debugging.
Definition no_os_hal.c:280
adiHalErr_t ADIHAL_spiReadBytes(void *devHalInfo, uint16_t *addr, uint8_t *readdata, uint32_t count)
Performs a Multi SPI Read from an ADI Device.
Definition no_os_hal.c:210
sysrefReqMode_t
Definition adi_hal.h:67
@ SYSREF_CONT_OFF
Definition adi_hal.h:69
@ SYSREF_CONT_ON
Definition adi_hal.h:68
@ SYSREF_PULSE
Definition adi_hal.h:70
adiHalErr_t ADIHAL_setTimeout(void *devHalInfo, uint32_t halTimeout_ms)
Sets the a timeout duration for the HAL functions.
Definition no_os_hal.c:49
adiHalErr_t ADIHAL_spiReadField(void *devHalInfo, uint16_t addr, uint8_t *fieldVal, uint8_t mask, uint8_t startBit)
Performs a read from a particular bit field in a SPI register.
Definition no_os_hal.c:240
adiHalErr_t
Enum of possible Errors Detected by HAL layer to be communicated to ADI APIs.
Definition adi_hal.h:42
@ ADIHAL_OK
Definition adi_hal.h:43
@ ADIHAL_TIMER_FAIL
Definition adi_hal.h:46
@ ADIHAL_GEN_SW
Definition adi_hal.h:48
@ ADIHAL_GPIO_FAIL
Definition adi_hal.h:45
@ ADIHAL_ERR
Definition adi_hal.h:50
@ ADIHAL_WAIT_TIMEOUT
Definition adi_hal.h:47
@ ADIHAL_SPI_FAIL
Definition adi_hal.h:44
@ ADIHAL_WARNING
Definition adi_hal.h:49
adiHalErr_t ADIHAL_sysrefReq(void *devHalInfo, sysrefReqMode_t mode)
Performs a SYSREF request to the clock generation device.
Definition no_os_hal.c:137
adiHalErr_t ADIHAL_openHw(void *devHalInfo, uint32_t halTimeout_ms)
Performs a platform hardware initialization for the ADI Device.
Definition no_os_hal.c:54
adiHalErr_t ADIHAL_spiWriteField(void *devHalInfo, uint16_t addr, uint8_t fieldVal, uint8_t mask, uint8_t startBit)
Performs a write to the specified field in a SPI register.
Definition no_os_hal.c:225
Header file of utility functions.
@ ADIHAL_LOG_ALL
Definition common.h:55
@ ADIHAL_LOG_NONE
Definition common.h:48
@ ADIHAL_LOG_SPI
Definition common.h:52
Definition adi_hal.h:27
void * extra_gpio
Definition adi_hal.h:34
uint8_t gpio_adrv_resetb_num
Definition adi_hal.h:35
uint32_t log_level
Definition adi_hal.h:31
void * extra_spi
Definition adi_hal.h:32
struct no_os_gpio_desc * gpio_adrv_sysref_req
Definition adi_hal.h:29
struct no_os_gpio_desc * gpio_adrv_resetb
Definition adi_hal.h:28
uint8_t spi_adrv_csn
Definition adi_hal.h:33
struct no_os_spi_desc * spi_adrv_desc
Definition adi_hal.h:30
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding SPI descriptor.
Definition no_os_spi.h:180
enum no_os_spi_mode mode
Definition no_os_spi.h:190