On Sat, Aug 04, 2018 at 11:30:29PM +0300, David Ulricht wrote:
What am I doing wrong ? Is the below script correct for testing the GPIOs ? for x in range(0,256): mhex=("0x%0.2X" % x) os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK "+mhex) os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION "+mhex) os.system("hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA "+mhex) I think its not correct gpio_direction i guess could be only 0 or 1? What happens when I pass a different value to data than 0/1 ? this should also not be correct. I guess 0x01 is the NID value is it okay to use 0x01 only or I have to pass other values to it also ?
The speakers are driven by digital amplifiers MAX98706. The MBP13,3 has four (treble/bass x left/right). They're attached via i2c to GPIO 6 (SCL) and 7 (SDA) of the CS8409 HDA bridge. It's possible that you need to initialize the amps via i2c, in that case using the GPIOs in bitbanging mode is wrong.
Leif Liddy has been looking into this as well (+cc): https://bugzilla.kernel.org/show_bug.cgi?id=110561
Lukas