Lines Matching defs:dpot

96 static inline int dpot_read_d8(struct dpot_data *dpot)
98 return dpot->bdata.bops->read_d8(dpot->bdata.client);
101 static inline int dpot_read_r8d8(struct dpot_data *dpot, u8 reg)
103 return dpot->bdata.bops->read_r8d8(dpot->bdata.client, reg);
106 static inline int dpot_read_r8d16(struct dpot_data *dpot, u8 reg)
108 return dpot->bdata.bops->read_r8d16(dpot->bdata.client, reg);
111 static inline int dpot_write_d8(struct dpot_data *dpot, u8 val)
113 return dpot->bdata.bops->write_d8(dpot->bdata.client, val);
116 static inline int dpot_write_r8d8(struct dpot_data *dpot, u8 reg, u16 val)
118 return dpot->bdata.bops->write_r8d8(dpot->bdata.client, reg, val);
121 static inline int dpot_write_r8d16(struct dpot_data *dpot, u8 reg, u16 val)
123 return dpot->bdata.bops->write_r8d16(dpot->bdata.client, reg, val);
126 static s32 dpot_read_spi(struct dpot_data *dpot, u8 reg)
133 if (dpot->feat & F_RDACS_WONLY)
134 return dpot->rdac_cache[reg & DPOT_RDAC_MASK];
135 if (dpot->uid == DPOT_UID(AD5291_ID) ||
136 dpot->uid == DPOT_UID(AD5292_ID) ||
137 dpot->uid == DPOT_UID(AD5293_ID)) {
139 value = dpot_read_r8d8(dpot,
145 if (dpot->uid == DPOT_UID(AD5291_ID))
149 } else if (dpot->uid == DPOT_UID(AD5270_ID) ||
150 dpot->uid == DPOT_UID(AD5271_ID)) {
152 value = dpot_read_r8d8(dpot,
158 if (dpot->uid == DPOT_UID(AD5271_ID))
169 if (dpot->feat & F_SPI_16BIT)
170 return dpot_read_r8d8(dpot, ctrl);
171 else if (dpot->feat & F_SPI_24BIT)
172 return dpot_read_r8d16(dpot, ctrl);
177 static s32 dpot_read_i2c(struct dpot_data *dpot, u8 reg)
182 switch (dpot->uid) {
185 return dpot_read_d8(dpot);
195 return dpot_read_r8d8(dpot, ctrl);
199 return dpot_read_d8(dpot);
204 return dpot_read_r8d8(dpot, ctrl);
207 dpot_write_r8d8(dpot,
210 value = dpot_read_r8d16(dpot, DPOT_AD5270_1_2_4_RDAC << 2);
219 if (dpot->uid == DPOT_UID(AD5274_ID))
223 if ((reg & DPOT_REG_TOL) || (dpot->max_pos > 256))
224 return dpot_read_r8d16(dpot, (reg & 0xF8) |
227 return dpot_read_r8d8(dpot, reg);
231 static s32 dpot_read(struct dpot_data *dpot, u8 reg)
233 if (dpot->feat & F_SPI)
234 return dpot_read_spi(dpot, reg);
236 return dpot_read_i2c(dpot, reg);
239 static s32 dpot_write_spi(struct dpot_data *dpot, u8 reg, u16 value)
244 if (dpot->feat & F_RDACS_WONLY)
245 dpot->rdac_cache[reg & DPOT_RDAC_MASK] = value;
247 if (dpot->feat & F_AD_APPDATA) {
248 if (dpot->feat & F_SPI_8BIT) {
250 DPOT_MAX_POS(dpot->devid)) |
252 return dpot_write_d8(dpot, val);
253 } else if (dpot->feat & F_SPI_16BIT) {
255 DPOT_MAX_POS(dpot->devid)) |
257 return dpot_write_r8d8(dpot, val >> 8,
262 if (dpot->uid == DPOT_UID(AD5291_ID) ||
263 dpot->uid == DPOT_UID(AD5292_ID) ||
264 dpot->uid == DPOT_UID(AD5293_ID)) {
266 dpot_write_r8d8(dpot, DPOT_AD5291_CTRLREG << 2,
269 if (dpot->uid == DPOT_UID(AD5291_ID))
272 return dpot_write_r8d8(dpot,
275 } else if (dpot->uid == DPOT_UID(AD5270_ID) ||
276 dpot->uid == DPOT_UID(AD5271_ID)) {
277 dpot_write_r8d8(dpot,
281 if (dpot->uid == DPOT_UID(AD5271_ID))
284 return dpot_write_r8d8(dpot,
308 if (dpot->uid == DPOT_UID(AD5291_ID) ||
309 dpot->uid == DPOT_UID(AD5292_ID)) {
310 return dpot_write_r8d8(dpot,
312 } else if (dpot->uid == DPOT_UID(AD5270_ID) ||
313 dpot->uid == DPOT_UID(AD5271_ID)) {
314 return dpot_write_r8d8(dpot,
320 if (dpot->feat & F_SPI_16BIT)
321 return dpot_write_r8d8(dpot, val, value);
322 else if (dpot->feat & F_SPI_24BIT)
323 return dpot_write_r8d16(dpot, val, value);
328 static s32 dpot_write_i2c(struct dpot_data *dpot, u8 reg, u16 value)
333 switch (dpot->uid) {
336 return dpot_write_d8(dpot, value);
347 return dpot_write_r8d8(dpot, ctrl, value);
351 tmp = dpot_read_d8(dpot);
356 return dpot_write_r8d8(dpot, ctrl, value);
362 tmp = dpot_read_r8d16(dpot, ctrl);
367 return dpot_write_r8d8(dpot, ctrl, value);
370 tmp = dpot_read_r8d16(dpot, tmp);
375 return dpot_write_r8d8(dpot, ctrl, value);
378 dpot_write_r8d8(dpot, DPOT_AD5270_1_2_4_CTRLREG << 2,
382 return dpot_write_r8d8(dpot,
385 if (dpot->uid == DPOT_UID(AD5274_ID))
388 return dpot_write_r8d8(dpot, (DPOT_AD5270_1_2_4_RDAC << 2) |
392 return dpot_write_d8(dpot, reg);
394 if (dpot->max_pos > 256)
395 return dpot_write_r8d16(dpot, (reg & 0xF8) |
399 return dpot_write_r8d8(dpot, reg, value);
403 static s32 dpot_write(struct dpot_data *dpot, u8 reg, u16 value)
405 if (dpot->feat & F_SPI)
406 return dpot_write_spi(dpot, reg, value);
408 return dpot_write_i2c(dpot, reg, value);