TLV320AIC3X codec driver, register n°108

Hello,

I’m using the TLV320AIC3X codec driver in a linux kernel 4.19.89 for a TLV320AIC3106 codec.

Actually, I can’t access to number 108 register. In the tlv320aic3x.h (kernel 4.19), this register is named “PASSIVE_BYPASS” but this name never appears in the tlv320aic3x.c.

Can this register be accessed with alsa command like amixer controls ? Otherwise, does someone know how can I access to it?

Thanks for all and best reguards.

You access it by editing the driver.

The register set of the device will also be exposed via debugfs (although you will still need to make kernel changes if you want to write to the registers: https://elixir.bootlin.com/linux/v4.19.146/source/drivers/base/regmap/regmap-debugfs.c#L280 ).

My answer this morning was a bit short on account of time constraints.

The more complete answer is this; the features implemented in drivers tend to be the features needed by those who are implementing the driver. Often this leaves out a lot of what the hardware is capable of. What this means, is that in the not at all uncommon case where you need some feature that the driver doesn’t implement, you get to do it yourself.

For example, I needed to program the DSP on the TI PCM1865, yet that wasn’t implemented in the upstream driver, so I wrote this;