mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
78 lines
1.9 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* AD5624R SPI DAC driver |
|
* |
|
* Copyright 2010-2011 Analog Devices Inc. |
|
*/ |
|
#ifndef SPI_AD5624R_H_ |
|
#define SPI_AD5624R_H_ |
|
|
|
#define AD5624R_DAC_CHANNELS 4 |
|
|
|
#define AD5624R_ADDR_DAC0 0x0 |
|
#define AD5624R_ADDR_DAC1 0x1 |
|
#define AD5624R_ADDR_DAC2 0x2 |
|
#define AD5624R_ADDR_DAC3 0x3 |
|
#define AD5624R_ADDR_ALL_DAC 0x7 |
|
|
|
#define AD5624R_CMD_WRITE_INPUT_N 0x0 |
|
#define AD5624R_CMD_UPDATE_DAC_N 0x1 |
|
#define AD5624R_CMD_WRITE_INPUT_N_UPDATE_ALL 0x2 |
|
#define AD5624R_CMD_WRITE_INPUT_N_UPDATE_N 0x3 |
|
#define AD5624R_CMD_POWERDOWN_DAC 0x4 |
|
#define AD5624R_CMD_RESET 0x5 |
|
#define AD5624R_CMD_LDAC_SETUP 0x6 |
|
#define AD5624R_CMD_INTERNAL_REFER_SETUP 0x7 |
|
|
|
#define AD5624R_LDAC_PWRDN_NONE 0x0 |
|
#define AD5624R_LDAC_PWRDN_1K 0x1 |
|
#define AD5624R_LDAC_PWRDN_100K 0x2 |
|
#define AD5624R_LDAC_PWRDN_3STATE 0x3 |
|
|
|
/** |
|
* struct ad5624r_chip_info - chip specific information |
|
* @channels: channel spec for the DAC |
|
* @int_vref_mv: AD5620/40/60: the internal reference voltage |
|
*/ |
|
|
|
struct ad5624r_chip_info { |
|
const struct iio_chan_spec *channels; |
|
u16 int_vref_mv; |
|
}; |
|
|
|
/** |
|
* struct ad5446_state - driver instance specific data |
|
* @indio_dev: the industrial I/O device |
|
* @us: spi_device |
|
* @chip_info: chip model specific constants, available modes etc |
|
* @reg: supply regulator |
|
* @vref_mv: actual reference voltage used |
|
* @pwr_down_mask power down mask |
|
* @pwr_down_mode current power down mode |
|
*/ |
|
|
|
struct ad5624r_state { |
|
struct spi_device *us; |
|
const struct ad5624r_chip_info *chip_info; |
|
struct regulator *reg; |
|
unsigned short vref_mv; |
|
unsigned pwr_down_mask; |
|
unsigned pwr_down_mode; |
|
}; |
|
|
|
/** |
|
* ad5624r_supported_device_ids: |
|
* The AD5624/44/64 parts are available in different |
|
* fixed internal reference voltage options. |
|
*/ |
|
|
|
enum ad5624r_supported_device_ids { |
|
ID_AD5624R3, |
|
ID_AD5644R3, |
|
ID_AD5664R3, |
|
ID_AD5624R5, |
|
ID_AD5644R5, |
|
ID_AD5664R5, |
|
}; |
|
|
|
#endif /* SPI_AD5624R_H_ */
|
|
|