no-OS
Classes | Enumerations | Functions
iio_lt8722.c File Reference

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

#include <errno.h>
#include <stdio.h>
#include <stdlib.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 "lt8722.h"
#include "iio_lt8722.h"
Include dependency graph for iio_lt8722.c:

Classes

struct  lt8722_iio_attr_avail
 Structure holding the available values for an attribute. More...
 

Enumerations

enum  lt8722_iio_spis_command_attrs {
  LT8722_ENABLE_REQ,
  LT8722_SWEN_REQ,
  LT8722_SW_FRQ_SET,
  LT8722_SW_FRQ_ADJ,
  LT8722_SYS_DC,
  LT8722_VCC_VREG,
  LT8722_SW_VC_INT,
  LT8722_SPI_RST,
  LT8722_PWR_LIM
}
 
enum  lt8722_iio_spis_status_attrs {
  LT8722_SWEN,
  LT8722_SRVO_ILIM,
  LT8722_SRVO_PLIM,
  LT8722_MIN_OT,
  LT8722_POR_OCC,
  LT8722_OVER_CURRENT,
  LT8722_TSD,
  LT8722_VCC_UVLO,
  LT8722_VDDIO_UVLO,
  LT8722_CP_UVLO,
  LT8722_V2P5_UVLO
}
 
enum  lt8722_iio_spis_amux_attrs {
  LT8722_AMUX,
  LT8722_AMUX_TEST,
  LT8722_AOUT_EN
}
 
enum  lt8722_iio_pins {
  LT8722_EN_PIN,
  LT8722_SWEN_PIN
}
 

Functions

uint32_t lt8722_iio_get_mask_command (enum lt8722_iio_spis_command_attrs attr)
 Get the mask for the SPIS command register. More...
 
uint32_t lt8722_iio_get_mask_status (enum lt8722_iio_spis_status_attrs attr)
 Get the mask for the SPIS status register. More...
 
uint32_t lt8722_iio_get_mask_amux (enum lt8722_iio_spis_amux_attrs attr)
 Get the mask for the SPIS AMUX register. More...
 
struct lt8722_iio_attr_avail lt8722_iio_get_command_available (enum lt8722_iio_spis_command_attrs attr)
 Get the list of available values of a SPIS_COMMAND register attribute. More...
 
struct lt8722_iio_attr_avail lt8722_iio_get_status_attr_available (enum lt8722_iio_spis_status_attrs attr)
 Get the list of available values of a SPIS_STATUS register attribute. More...
 
struct lt8722_iio_attr_avail lt8722_iio_get_amux_available (enum lt8722_iio_spis_amux_attrs attr)
 Get the list of available values of a SPIS_AMUX register attribute. More...
 
int lt8722_iio_init (struct lt8722_iio_dev **iio_dev, struct lt8722_iio_dev_init_param *init_param)
 Initializes the LT8722 IIO descriptor. More...
 
int lt8722_iio_remove (struct lt8722_iio_dev *desc)
 Free resources allocated by the init function. More...
 

Detailed Description

Source file for the LT8722 IIO Driver.

Author
Ramon Cristopher Calam (ramon.nosp@m.cris.nosp@m.tophe.nosp@m.r.ca.nosp@m.lam@a.nosp@m.nalo.nosp@m.g.com)

Copyright 2024(c) Analog Devices, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Enumeration Type Documentation

◆ lt8722_iio_pins

Enumerator
LT8722_EN_PIN 
LT8722_SWEN_PIN 

◆ lt8722_iio_spis_amux_attrs

Enumerator
LT8722_AMUX 
LT8722_AMUX_TEST 
LT8722_AOUT_EN 

◆ lt8722_iio_spis_command_attrs

Enumerator
LT8722_ENABLE_REQ 
LT8722_SWEN_REQ 
LT8722_SW_FRQ_SET 
LT8722_SW_FRQ_ADJ 
LT8722_SYS_DC 
LT8722_VCC_VREG 
LT8722_SW_VC_INT 
LT8722_SPI_RST 
LT8722_PWR_LIM 

◆ lt8722_iio_spis_status_attrs

Enumerator
LT8722_SWEN 
LT8722_SRVO_ILIM 
LT8722_SRVO_PLIM 
LT8722_MIN_OT 
LT8722_POR_OCC 
LT8722_OVER_CURRENT 
LT8722_TSD 
LT8722_VCC_UVLO 
LT8722_VDDIO_UVLO 
LT8722_CP_UVLO 
LT8722_V2P5_UVLO 

Function Documentation

◆ lt8722_iio_get_amux_available()

struct lt8722_iio_attr_avail lt8722_iio_get_amux_available ( enum lt8722_iio_spis_amux_attrs  attr)

Get the list of available values of a SPIS_AMUX register attribute.

Parameters
attr- The attribute for which the list is needed.
Returns
The list of available values of the attribute.

◆ lt8722_iio_get_command_available()

struct lt8722_iio_attr_avail lt8722_iio_get_command_available ( enum lt8722_iio_spis_command_attrs  attr)

Get the list of available values of a SPIS_COMMAND register attribute.

Parameters
attr- The attribute for which the list is needed.
Returns
The list of available values of the attribute.

◆ lt8722_iio_get_mask_amux()

uint32_t lt8722_iio_get_mask_amux ( enum lt8722_iio_spis_amux_attrs  attr)

Get the mask for the SPIS AMUX register.

Parameters
attr- The attribute for which the mask is needed.
Returns
The mask for the SPIS AMUX register.

◆ lt8722_iio_get_mask_command()

uint32_t lt8722_iio_get_mask_command ( enum lt8722_iio_spis_command_attrs  attr)

Get the mask for the SPIS command register.

Parameters
attr- The attribute for which the mask is needed.
Returns
The mask for the SPIS command register.

◆ lt8722_iio_get_mask_status()

uint32_t lt8722_iio_get_mask_status ( enum lt8722_iio_spis_status_attrs  attr)

Get the mask for the SPIS status register.

Parameters
attr- The attribute for which the mask is needed.
Returns
The mask for the SPIS status register.

◆ lt8722_iio_get_status_attr_available()

struct lt8722_iio_attr_avail lt8722_iio_get_status_attr_available ( enum lt8722_iio_spis_status_attrs  attr)

Get the list of available values of a SPIS_STATUS register attribute.

Parameters
attr- The attribute for which the list is needed.
Returns
The list of available values of the attribute.

◆ lt8722_iio_init()

int lt8722_iio_init ( struct lt8722_iio_dev **  iio_dev,
struct lt8722_iio_dev_init_param init_param 
)

Initializes the LT8722 IIO descriptor.

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

◆ lt8722_iio_remove()

int lt8722_iio_remove ( struct lt8722_iio_dev desc)

Free resources allocated by the init function.

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