[alsa-devel] CS8409 Macbook Pro 2016 2017
Takashi Iwai
tiwai at suse.de
Fri Nov 16 18:31:41 CET 2018
On Fri, 16 Nov 2018 17:50:24 +0100,
David Ulricht wrote:
>
> The stuff in sound/i2c/* are mostly for the i2c bus on a PCI sound
> cards, an implementation independent from the standard i2c stuff.
>
> And, in your case, it's hard to know how the i2c bus is connected.
> If it's controlled over HD-audio GPIO pin (one for clk and one for
> data), then some stuff in sound/i2c can be re-used. Or, if it's on
> another i2c bus, the story will be completely different...
>
> I have the schematics of the CS8409. the i2c is connected to the GPIO of the
> HDA.
>
> MAX98374 has a Reset Low pin which is connected to GPIO 5 on the HDA
> controller CS8409. This must
> be driven high, then wait for 1.5 ms. Only then will the amps be out of
> device shutdown.
> GPIO6 is 8409_I2C_SCL
> GPIO7 is 8409_I2C_SDA
>
> GPIO5 is AUD_SPKRAMP_RESET_L
>
> Knowing GPIO6 is the clock and GPIO7 is the data, how can I use them?
> Can I use hda-verb /dev/snd/hwC0D0 0x01 XXX YYY ? what XXX YYY would be ?
You need to set GPIO mask, direction then data.
0x01 SET_GPIO_MASK 0xXX
0x01 SET_GPIO_DIR 0xXX
0x01 SET_GPIO_DATA 0xXX
The value to be pass is the bits. GPIO0=0x01, GPIO1=0x02, GPIO3=0x04,
...
You can read the data after setting mask and dir by 0x01
GET_GPIO_DATA. Pass 0 for the value, and you'll get a byte value as a
read result.
Takashi
More information about the Alsa-devel
mailing list