ASoC: codec: cs42l56: Convert to GPIO descriptors
authorPeng Fan <peng.fan@nxp.com>
Tue, 6 May 2025 07:29:33 +0000 (15:29 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 6 May 2025 13:48:13 +0000 (22:48 +0900)
commit0bb92e4736a9dd43e3215b378db5ac63075a3cc1
treed7e2489e1c9be0076e454fe9e4c1afcf971de968
parent86f6e4791c40c33891299d95c055e5d06d396284
ASoC: codec: cs42l56: Convert to GPIO descriptors

of_gpio.h is deprecated, update the driver to use GPIO descriptors.
 - Use devm_gpiod_get_optional to get GPIO descriptor with default
   polarity GPIOD_OUT_LOW, set consumer name.
 - Use gpiod_set_value_cansleep to configure output value.

Checking the current driver using legacy GPIO API, the
nreset value is first output HIGH, then LOW, then HIGH.

Checking the datasheet, nreset is should be held low after power
on, when nreset is high, it starts to work.

Since the driver has been here for quite long time and no complain on
the nreset flow, still follow original flow when using GPIOD
descriptors.

Commit 944004eb56dc ("gpiolib: of: add a quirk for reset line for Cirrus
CS42L56 codec") added quirks, so the gpio request API will work as before.

Per datasheet, the DTS polarity should be GPIOD_ACTIVE_LOW. The binding
example use value 0(GPIOD_ACTIVE_HIGH) which seems wrong. There is
no in-tree DTS has the device, so all should be fine.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Link: https://patch.msgid.link/20250506-csl42x-v3-3-e9496db544c4@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs42l56.c