Message ID | 20221014085253.73733-1-info@benjaminmarty.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] ASoC: nau8822: add spk boost and spk btl options | expand |
On Fri, Oct 14, 2022 at 10:52:54AM +0200, Benjamin Marty wrote: > diff --git a/sound/soc/codecs/nau8822.c b/sound/soc/codecs/nau8822.c > index 1aef281a9972..812b8254f9a0 100644 > --- a/sound/soc/codecs/nau8822.c > +++ b/sound/soc/codecs/nau8822.c > @@ -379,6 +379,12 @@ static const struct snd_kcontrol_new nau8822_snd_controls[] = { > NAU8822_REG_DAC_CONTROL, 5, 1, 0), > SOC_SINGLE("ADC 128x Oversampling Switch", > NAU8822_REG_ADC_CONTROL, 5, 1, 0), <snip> > + SOC_SINGLE("Speaker BTL Configuration", > + NAU8822_REG_RIGHT_SPEAKER_CONTROL, 4, 1, 0), We proposed the exact same change and it was not considered fine [1], this is considered a system property and should be configured from something like a device tree. I would appreciate if you could add me in cc on any follow-up patch on that, thanks. Francesco [1] https://lore.kernel.org/all/20220207153229.1285574-1-francesco.dolcini@toradex.com/
On Fri, Oct 14, 2022 at 10:52:54AM +0200, Benjamin Marty wrote: > The Speaker Boost flag is explained in the Datasheet on page 80. > The Speaker BTL flag is explained in the Datasheet on page 78. Not according to https://www.nuvoton.com/resource-files/NAU8822LDataSheetRev1.9.pdf where the page numbers changed. It's better to actually describe things directly... In any case, as Francesco said things that depend on the physical design of the board should be in firmware description not user controllable, users can't meaningfully change them at runtime and there is only ever one correct setting for a given system. > + SOC_SINGLE("Speaker Gain Boost Control", > + NAU8822_REG_OUTPUT_CONTROL, 2, 1, 0), This looks on the edge of what could be user controllable since while the datasheet does recommend settings based on supply voltage it looks like it's just a gain control so you could reasonably use it at runtime in spite of what the datasheet recommends. However if it is being exposed it should end in Volume as per control-names.rst and ideally have TLV information. > + SOC_SINGLE("Speaker BTL Configuration", > + NAU8822_REG_RIGHT_SPEAKER_CONTROL, 4, 1, 0), Like Francesco says this should be done in firmware configuration since especially in the case where there is a BTL speaker there really only is one correct setting for the system. I guess you might for some reason want to invert the signal on a non-BTL system but it's hard to see what the use case might be.
diff --git a/sound/soc/codecs/nau8822.c b/sound/soc/codecs/nau8822.c index 1aef281a9972..812b8254f9a0 100644 --- a/sound/soc/codecs/nau8822.c +++ b/sound/soc/codecs/nau8822.c @@ -379,6 +379,12 @@ static const struct snd_kcontrol_new nau8822_snd_controls[] = { NAU8822_REG_DAC_CONTROL, 5, 1, 0), SOC_SINGLE("ADC 128x Oversampling Switch", NAU8822_REG_ADC_CONTROL, 5, 1, 0), + + SOC_SINGLE("Speaker Gain Boost Control", + NAU8822_REG_OUTPUT_CONTROL, 2, 1, 0), + + SOC_SINGLE("Speaker BTL Configuration", + NAU8822_REG_RIGHT_SPEAKER_CONTROL, 4, 1, 0), }; /* LMAIN and RMAIN Mixer */
These two options are required to use the Speaker output on this codec to its full potential, when wiring up the Speaker in an BTL configuration. The Speaker Boost flag is explained in the Datasheet on page 80. The Speaker BTL flag is explained in the Datasheet on page 78. Signed-off-by: Benjamin Marty <info@benjaminmarty.ch> --- sound/soc/codecs/nau8822.c | 6 ++++++ 1 file changed, 6 insertions(+)