summaryrefslogtreecommitdiff
path: root/firmware/drivers/uda1380.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/uda1380.c')
-rw-r--r--firmware/drivers/uda1380.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/firmware/drivers/uda1380.c b/firmware/drivers/uda1380.c
index ef19dcf1c5..241a117385 100644
--- a/firmware/drivers/uda1380.c
+++ b/firmware/drivers/uda1380.c
@@ -76,14 +76,13 @@ unsigned short uda1380_defaults[2*NUM_DEFAULT_REGS] =
76/* Returns 0 if register was written or -1 if write failed */ 76/* Returns 0 if register was written or -1 if write failed */
77int uda1380_write_reg(unsigned char reg, unsigned short value) 77int uda1380_write_reg(unsigned char reg, unsigned short value)
78{ 78{
79 unsigned char data[4]; 79 unsigned char data[3];
80 80
81 data[0] = UDA1380_ADDR; 81 data[0] = reg;
82 data[1] = reg; 82 data[1] = value >> 8;
83 data[2] = value >> 8; 83 data[2] = value & 0xff;
84 data[3] = value & 0xff;
85 84
86 if (i2c_write(1, data, 4) != 4) 85 if (i2c_write(I2C_IFACE_0, UDA1380_ADDR, data, 3) != 3)
87 { 86 {
88 DEBUGF("uda1380 error reg=0x%x", reg); 87 DEBUGF("uda1380 error reg=0x%x", reg);
89 return -1; 88 return -1;
@@ -322,21 +321,20 @@ void uda1380_set_recvol(int left, int right, int type)
322 { 321 {
323 /* for this order we can combine both registers, 322 /* for this order we can combine both registers,
324 making the glitch even smaller */ 323 making the glitch even smaller */
325 unsigned char data[6]; 324 unsigned char data[5];
326 unsigned short value_dec; 325 unsigned short value_dec;
327 unsigned short value_pga; 326 unsigned short value_pga;
328 value_dec = DEC_VOLL(left) | DEC_VOLR(right); 327 value_dec = DEC_VOLL(left) | DEC_VOLR(right);
329 value_pga = (uda1380_regs[REG_PGA] & ~PGA_GAIN_MASK) 328 value_pga = (uda1380_regs[REG_PGA] & ~PGA_GAIN_MASK)
330 | PGA_GAINL(left_ag) | PGA_GAINR(right_ag); 329 | PGA_GAINL(left_ag) | PGA_GAINR(right_ag);
331 330
332 data[0] = UDA1380_ADDR; 331 data[0] = REG_DEC_VOL;
333 data[1] = REG_DEC_VOL; 332 data[1] = value_dec >> 8;
334 data[2] = value_dec >> 8; 333 data[2] = value_dec & 0xff;
335 data[3] = value_dec & 0xff; 334 data[3] = value_pga >> 8;
336 data[4] = value_pga >> 8; 335 data[4] = value_pga & 0xff;
337 data[5] = value_pga & 0xff;
338 336
339 if (i2c_write(1, data, 6) != 6) 337 if (i2c_write(I2C_IFACE_0, UDA1380_ADDR, data, 5) != 5)
340 { 338 {
341 DEBUGF("uda1380 error reg=combi rec gain"); 339 DEBUGF("uda1380 error reg=combi rec gain");
342 } 340 }