no-OS
Loading...
Searching...
No Matches
ad5143.h
Go to the documentation of this file.
1/*******************************************************************************
2 * @file ad5143.h
3 * @brief Header file for the AD5143 digital potentiometer drivers
4********************************************************************************
5Copyright 2025(c) Analog Devices, Inc.
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are met:
9
101. Redistributions of source code must retain the above copyright notice,
11 this list of conditions and the following disclaimer.
12
132. Redistributions in binary form must reproduce the above copyright notice,
14 this list of conditions and the following disclaimer in the documentation
15 and/or other materials provided with the distribution.
16
173. Neither the name of Analog Devices, Inc. nor the names of its
18 contributors may be used to endorse or promote products derived from this
19 software without specific prior written permission.
20
21THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR
22IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
23MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
24EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT,
25INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
27OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*******************************************************************************/
32#ifndef AD5143_H_
33#define AD5143_H_
34
35#include "../common/dpot.h"
36#include "no_os_i2c.h"
37#include "no_os_util.h"
38#include "ad51xx_cmd.h"
39
45 /* I2C init parameters */
47 /* Shutdown enable flag for potentiometer mode */
49 /* Shutdown enable flag for potentiometer mode */
51
52 /* Operating mode */
54};
55
61 /* I2C descriptor */
63 /* Shutdown enable flag */
65 /* Operating mode */
67};
68
69/* AD5143 digital potentiometer ops */
70extern const struct dpot_ops ad5143_dpot_ops;
71
72int ad5143_dpot_init(struct dpot_init_param *init_params,
73 struct dpot_dev **desc);
74int ad5143_dpot_remove(struct dpot_dev *desc);
75int ad5143_dpot_reset(struct dpot_dev *desc);
76int ad5143_dpot_shutdown(struct dpot_dev *desc,
77 enum dpot_chn_type chn, bool shutdown_enable);
79 enum dpot_operating_mode operating_mode);
81 enum dpot_chn_type chn, uint8_t *data);
83 enum dpot_chn_type chn, uint8_t data);
84int ad5143_dpot_sw_lrdac_update(struct dpot_dev *desc, enum dpot_chn_type chn);
85int ad5143_dpot_chn_read(struct dpot_dev *desc,
86 enum dpot_chn_type chn, uint8_t *data);
87int ad5143_dpot_chn_write(struct dpot_dev *desc,
88 enum dpot_chn_type chn, uint8_t data);
89int ad5143_dpot_nvm_read(struct dpot_dev *desc,
90 enum dpot_chn_type chn, uint8_t *data);
91int ad5143_dpot_nvm_write(struct dpot_dev *desc,
92 enum dpot_chn_type chn, uint8_t data);
93int ad5143_dpot_copy_rdac_to_nvm(struct dpot_dev *desc, enum dpot_chn_type chn);
94int ad5143_dpot_copy_nvm_to_rdac(struct dpot_dev *desc, enum dpot_chn_type chn);
96 enum dpot_chn_type chn,
97 enum dpot_rdac_linear_status status);
98int ad5143_dpot_rdac_6db_update(struct dpot_dev *desc, enum dpot_chn_type chn,
99 enum dpot_rdac_6db_status status);
100int ad5143_dpot_send_cmd(struct dpot_dev *desc,
101 struct dpot_command *cmd);
102
103#endif // AD5143_H_
const struct dpot_ops ad5143_dpot_ops
Definition ad5143.c:711
int ad5143_dpot_reset(struct dpot_dev *desc)
Reset the AD5143 digital potentiometer.
Definition ad5143.c:177
int ad5143_dpot_set_operating_mode(struct dpot_dev *desc, enum dpot_operating_mode operating_mode)
Set the AD5143 digital potentiometer operating mode.
Definition ad5143.c:249
int ad5143_dpot_init(struct dpot_init_param *init_params, struct dpot_dev **desc)
Initialize the AD5143 digital potentiometer.
Definition ad5143.c:77
int ad5143_dpot_remove(struct dpot_dev *desc)
Free the memory allocated by ad5143_dpot_init().
Definition ad5143.c:152
int ad5143_dpot_copy_rdac_to_nvm(struct dpot_dev *desc, enum dpot_chn_type chn)
Copy RDAC register to NVM/EEPROM.
Definition ad5143.c:536
int ad5143_dpot_shutdown(struct dpot_dev *desc, enum dpot_chn_type chn, bool shutdown_enable)
Shutdown the AD5143 digital potentiometer channel.
Definition ad5143.c:211
int ad5143_dpot_nvm_write(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t data)
Write data to NVM (non-volatile) memory.
Definition ad5143.c:501
int ad5143_dpot_send_cmd(struct dpot_dev *desc, struct dpot_command *cmd)
Send command word to the AD5143 digital potentiometer.
Definition ad5143.c:672
int ad5143_dpot_input_reg_read(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t *data)
Read the AD5143 digital potentiometer input register.
Definition ad5143.c:298
int ad5143_dpot_chn_read(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t *data)
Read the AD5143 digital potentiometer channel.
Definition ad5143.c:398
int ad5143_dpot_rdac_6db_update(struct dpot_dev *desc, enum dpot_chn_type chn, enum dpot_rdac_6db_status status)
Perform RDAC 6dB increment/decrement.
Definition ad5143.c:638
int ad5143_dpot_nvm_read(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t *data)
Read the NVM (non-volatile) memory data.
Definition ad5143.c:466
int ad5143_dpot_rdac_linear_update(struct dpot_dev *desc, enum dpot_chn_type chn, enum dpot_rdac_linear_status status)
Perform RDAC linear increment/decrement.
Definition ad5143.c:602
int ad5143_dpot_sw_lrdac_update(struct dpot_dev *desc, enum dpot_chn_type chn)
Copy input register to RDAC (software LRDAC).
Definition ad5143.c:366
int ad5143_dpot_copy_nvm_to_rdac(struct dpot_dev *desc, enum dpot_chn_type chn)
Copy NVM/EEPROM data to RDAC.
Definition ad5143.c:570
int ad5143_dpot_chn_write(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t data)
Write to the digital potentiometer channel.
Definition ad5143.c:433
int ad5143_dpot_input_reg_write(struct dpot_dev *desc, enum dpot_chn_type chn, uint8_t data)
Write to the digital potentiometer input register.
Definition ad5143.c:333
dpot_operating_mode
Digital potentiometer operating mode.
Definition dpot.h:106
dpot_rdac_linear_status
Digital potentiometer RDAC linear update status.
Definition dpot.h:118
dpot_rdac_6db_status
Digital potentiometer RDAC 6dB update status.
Definition dpot.h:130
dpot_chn_type
Digital potentiometer channel type.
Definition dpot.h:81
Header file of I2C Interface.
Header file of utility functions.
AD5143 digital potentiometer device descriptor parameters.
Definition ad5143.h:60
bool shutdown_enable[4]
Definition ad5143.h:64
enum dpot_operating_mode operating_mode
Definition ad5143.h:66
struct no_os_i2c_desc * i2c_desc
Definition ad5143.h:62
AD5143 digital potentiometer init parameters.
Definition ad5143.h:44
bool shutdown_enable_lg[8]
Definition ad5143.h:50
bool shutdown_enable_pt[4]
Definition ad5143.h:48
enum dpot_operating_mode eoperating_mode
Definition ad5143.h:53
struct no_os_i2c_init_param * i2c_init
Definition ad5143.h:46
Digital potentiometer command structure.
Definition dpot.h:141
Digital potentiometer device descriptor parameters.
Definition dpot.h:175
Digital potentiometer init parameters.
Definition dpot.h:157
Digital potentiometer common APIs.
Definition dpot.h:188
Structure holding I2C address descriptor.
Definition no_os_i2c.h:89
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52