no-OS
Loading...
Searching...
No Matches
iio_adp1050.c File Reference

Source file for the ADP1050 IIO Driver. More...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "no_os_alloc.h"
#include "no_os_error.h"
#include "no_os_units.h"
#include "no_os_util.h"
#include "adp1050.h"
#include "iio_adp1050.h"
Include dependency graph for iio_adp1050.c:

Macros

#define ADP1050_IIO_FLOAT_FREQ_INDEX   24
 
#define ADP1050_IIO_FLOAT_FREQ(x)
 
#define ADP1050_IIO_FLOAT_FREQ_ENUM(x)
 
#define ADP1050_IIO_MODULATION_AVAIL_SIZE   8
 
#define ADP1050_IIO_MODULATION_AVAIL_MASK(x)
 
#define ADP1050_IIO_MODULATION_AVAIL_SELECT(x)
 
#define ADP1050_IIO_OUTPUT_CHANNELS   4
 
#define ADP1051_IIO_OUTPUT_CHANNELS   6
 
#define ADP1050_IIO_OUTPUT_CHANNEL(x)
 
#define ADP1051_IIO_OUTPUT_CHANNEL(x)
 
#define ADP1050_IIO_OUTA_DUTY_CYCLE_REPORTING   NO_OS_BIT(2)
 
#define ADP1050_IIO_OUTB_DUTY_CYCLE_REPORTING   NO_OS_BIT(3)
 
#define ADP1051_IIO_OUTC_DUTY_CYCLE_REPORTING   NO_OS_BIT(4)
 
#define ADP1051_IIO_OUTD_DUTY_CYCLE_REPORTING   NO_OS_BIT(5)
 
#define ADP1050_IIO_OUTA_OUTB_MASK   NO_OS_GENMASK(1, 0)
 
#define ADP1051_IIO_OUTC_OUTD_MASK   NO_OS_GENMASK(3, 2)
 
#define ADP1050_IIO_SR1_SR2_MASK   NO_OS_GENMASK(5, 4)
 
#define ADP1050_IIO_OUT_MASK   NO_OS_GENMASK(3, 0)
 
#define ADP1050_IIO_ENABLE_MASK(x)
 
#define ADP1050_IIO_PULSE_DEFAULT_VAL   0x05
 

Enumerations

enum  adp1050_iio_enable_type {
  ADP1050_IIO_OUT_ENABLE ,
  ADP1050_IIO_FEEDFORWARD_ENABLE ,
  ADP1050_IIO_PULSE_ENABLE ,
  ADP1050_IIO_FREQ_SYNC_ENABLE
}
 
enum  adp1050_iio_vout_value_type {
  ADP1050_IIO_VOUT_COMMAND_VALUE = ADP1050_VOUT_COMMAND ,
  ADP1050_IIO_VOUT_MARGIN_LOW_VALUE = ADP1050_VOUT_MARGIN_LOW ,
  ADP1050_IIO_VOUT_MARGIN_HIGH_VALUE = ADP1050_VOUT_MARGIN_HIGH ,
  ADP1050_IIO_VOUT_SCALE_MONITOR_VALUE = ADP1050_VOUT_SCALE_MONITOR ,
  ADP1050_IIO_VOUT_OFFSET_VALUE = ADP1050_VOUT_CAL_OFFSET
}
 
enum  adp1050_iio_input_chan_type {
  ADP1050_IIO_VIN_CHAN ,
  ADP1050_IIO_IIN_CHAN ,
  ADP1050_IIO_VOUT_CHAN ,
  ADP1050_IIO_TEMP_CHAN
}
 
enum  adp1050_iio_output_chan_type {
  ADP1050_IIO_OUTA_CHAN = 4 ,
  ADP1050_IIO_OUTB_CHAN = 5 ,
  ADP1051_IIO_OUTC_CHAN = 6 ,
  ADP1051_IIO_OUTD_CHAN = 7 ,
  ADP1050_IIO_SR1_CHAN = 8 ,
  ADP1050_IIO_SR2_CHAN = 9
}
 

Functions

int adp1050_iio_init (struct adp1050_iio_desc **iio_desc, struct adp1050_iio_desc_init_param *init_param)
 Initializes the ADP1050 IIO descriptor.
 
int adp1050_iio_remove (struct adp1050_iio_desc *iio_desc)
 Free resources allocated by the init function.
 

Detailed Description

Source file for the ADP1050 IIO Driver.

Author
Radu Sabau (radu..nosp@m.saba.nosp@m.u@ana.nosp@m.log..nosp@m.com)

Copyright 2024(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Macro Definition Documentation

◆ ADP1050_IIO_ENABLE_MASK

#define ADP1050_IIO_ENABLE_MASK ( x)
Value:
#define NO_OS_BIT(x)
Definition no_os_util.h:23

◆ ADP1050_IIO_FLOAT_FREQ

#define ADP1050_IIO_FLOAT_FREQ ( x)
Value:
((((x) - 0xF800) / 2))

◆ ADP1050_IIO_FLOAT_FREQ_ENUM

#define ADP1050_IIO_FLOAT_FREQ_ENUM ( x)
Value:
((((x) * 2) + 0xF800) + 1)

◆ ADP1050_IIO_FLOAT_FREQ_INDEX

#define ADP1050_IIO_FLOAT_FREQ_INDEX   24

◆ ADP1050_IIO_MODULATION_AVAIL_MASK

#define ADP1050_IIO_MODULATION_AVAIL_MASK ( x)
Value:
NO_OS_GENMASK((((x) * 2) + 1), ((x) * 2))
#define NO_OS_GENMASK(h, l)
Definition no_os_util.h:60

◆ ADP1050_IIO_MODULATION_AVAIL_SELECT

#define ADP1050_IIO_MODULATION_AVAIL_SELECT ( x)
Value:
NO_OS_BIT(((x) * 2) + 1)

◆ ADP1050_IIO_MODULATION_AVAIL_SIZE

#define ADP1050_IIO_MODULATION_AVAIL_SIZE   8

◆ ADP1050_IIO_OUT_MASK

#define ADP1050_IIO_OUT_MASK   NO_OS_GENMASK(3, 0)

◆ ADP1050_IIO_OUTA_DUTY_CYCLE_REPORTING

#define ADP1050_IIO_OUTA_DUTY_CYCLE_REPORTING   NO_OS_BIT(2)

◆ ADP1050_IIO_OUTA_OUTB_MASK

#define ADP1050_IIO_OUTA_OUTB_MASK   NO_OS_GENMASK(1, 0)

◆ ADP1050_IIO_OUTB_DUTY_CYCLE_REPORTING

#define ADP1050_IIO_OUTB_DUTY_CYCLE_REPORTING   NO_OS_BIT(3)

◆ ADP1050_IIO_OUTPUT_CHANNEL

#define ADP1050_IIO_OUTPUT_CHANNEL ( x)
Value:
((x) - 4)

◆ ADP1050_IIO_OUTPUT_CHANNELS

#define ADP1050_IIO_OUTPUT_CHANNELS   4

◆ ADP1050_IIO_PULSE_DEFAULT_VAL

#define ADP1050_IIO_PULSE_DEFAULT_VAL   0x05

◆ ADP1050_IIO_SR1_SR2_MASK

#define ADP1050_IIO_SR1_SR2_MASK   NO_OS_GENMASK(5, 4)

◆ ADP1051_IIO_OUTC_DUTY_CYCLE_REPORTING

#define ADP1051_IIO_OUTC_DUTY_CYCLE_REPORTING   NO_OS_BIT(4)

◆ ADP1051_IIO_OUTC_OUTD_MASK

#define ADP1051_IIO_OUTC_OUTD_MASK   NO_OS_GENMASK(3, 2)

◆ ADP1051_IIO_OUTD_DUTY_CYCLE_REPORTING

#define ADP1051_IIO_OUTD_DUTY_CYCLE_REPORTING   NO_OS_BIT(5)

◆ ADP1051_IIO_OUTPUT_CHANNEL

#define ADP1051_IIO_OUTPUT_CHANNEL ( x)
Value:
((x) - 6)

◆ ADP1051_IIO_OUTPUT_CHANNELS

#define ADP1051_IIO_OUTPUT_CHANNELS   6

Enumeration Type Documentation

◆ adp1050_iio_enable_type

Enumerator
ADP1050_IIO_OUT_ENABLE 
ADP1050_IIO_FEEDFORWARD_ENABLE 
ADP1050_IIO_PULSE_ENABLE 
ADP1050_IIO_FREQ_SYNC_ENABLE 

◆ adp1050_iio_input_chan_type

Enumerator
ADP1050_IIO_VIN_CHAN 
ADP1050_IIO_IIN_CHAN 
ADP1050_IIO_VOUT_CHAN 
ADP1050_IIO_TEMP_CHAN 

◆ adp1050_iio_output_chan_type

Enumerator
ADP1050_IIO_OUTA_CHAN 
ADP1050_IIO_OUTB_CHAN 
ADP1051_IIO_OUTC_CHAN 
ADP1051_IIO_OUTD_CHAN 
ADP1050_IIO_SR1_CHAN 
ADP1050_IIO_SR2_CHAN 

◆ adp1050_iio_vout_value_type

Enumerator
ADP1050_IIO_VOUT_COMMAND_VALUE 
ADP1050_IIO_VOUT_MARGIN_LOW_VALUE 
ADP1050_IIO_VOUT_MARGIN_HIGH_VALUE 
ADP1050_IIO_VOUT_SCALE_MONITOR_VALUE 
ADP1050_IIO_VOUT_OFFSET_VALUE 

Function Documentation

◆ adp1050_iio_init()

int adp1050_iio_init ( struct adp1050_iio_desc ** iio_desc,
struct adp1050_iio_desc_init_param * init_param )

Initializes the ADP1050 IIO descriptor.

Parameters
iio_desc- The iio device descriptor.
init_param- The structure that contains the device initial parameters.
Returns
0 in case of success, an error code otherwise.

◆ adp1050_iio_remove()

int adp1050_iio_remove ( struct adp1050_iio_desc * iio_desc)

Free resources allocated by the init function.

Parameters
iio_desc- The iio device descriptor.
Returns
0 in case of success, an error code otherwise.