Re: [PATCH 5/5] ASoC: codecs: Add WCD939x Codec driver

From: neil . armstrong
Date: Wed Nov 29 2023 - 10:12:27 EST


On 29/11/2023 14:46, Konrad Dybcio wrote:
On 28.11.2023 16:01, Neil Armstrong wrote:
On 25/11/2023 13:07, Konrad Dybcio wrote:

<snip>

+
+static int wcd939x_io_init(struct snd_soc_component *component)
+{
+    snd_soc_component_write_field(component, WCD939X_ANA_BIAS,
+                      WCD939X_BIAS_ANALOG_BIAS_EN, 1);
All of these values are BIT()s or 2-4 ORed BIT()s, can you check what they
mean?

Same for almost all other snd_soc_component_ write/modify functions

It uses snd_soc_component_write_field() with is the same as
regmap_write_bits(REGISTER, REGISTER_MASK,
                  FIELD_PREP(REGISTER_MASK, value);

So the 1 mean write in enable mask in this case, and mask is single bit,
read it exactly like if it was using FIELD_PREP(), but even for BITs.

I did check every single snd_soc_component_write_field() so far to check
it matches.

Or it's another question ?
What I wanted to ask is whether it's possible to #define these magic
values within these fields

OK, so most of writes are to boolean enable bits, I can use true/false
instead of 0 & 1 for those, would it be more readable ?

For the rest, those a integer values to a field, those are not bitmasks
and I do not have the definition of the values.

I did a full cleanup and tried to define as much as possible,
there were still lot of places where not defined bitmasks we used,
but there's still some integer values, but I think it's acceptable.

Neil


Konrad