I am have trouble understanding exactly what needs to be written to the
volume component to change the volume. I am using an aic3254 as an SPI
device. The closest I come to making this work is by writing a 24 bit
coefficient to addresses 24, 25 and 26 (page 44). This changes the volume
on the first write but not after. I have attempted (among other things)
to write an index to address 27, this has no effect. Am I having this
problem because I am not setting up adaptive filtering buffers correctly?
The driver created by PurePath has the following:
typedef struct {
u8 control_page; //coefficient page location
u8 control_base; //coefficient base address within page
u8 control_mute_flag; //non-zero means muting required
u8 control_string_index; //string table index
} control;
static control VOLUME_controls[] = {
{44,24,0,0}
};
The PurePath help has this:
Component Interface 1 {Coef=4}
DSPCoefBlockStartLength 1
I2CPage 44
I2CRegister 24