<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/sound/soc/codecs/Kconfig, branch v6.3-rc2</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v6.3-rc2</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v6.3-rc2'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2023-02-28T13:59:56+00:00</updated>
<entry>
<title>ASoC: zl38060 add gpiolib dependency</title>
<updated>2023-02-28T13:59:56+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2023-02-27T08:58:26+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0de2cc3707b6b6e2ad40bd24ce09a5c1f65d01e1'/>
<id>urn:sha1:0de2cc3707b6b6e2ad40bd24ce09a5c1f65d01e1</id>
<content type='text'>
Without gpiolib, this driver fails to link:

arm-linux-gnueabi-ld: sound/soc/codecs/zl38060.o: in function `chip_gpio_get':
zl38060.c:(.text+0x30): undefined reference to `gpiochip_get_data'
arm-linux-gnueabi-ld: sound/soc/codecs/zl38060.o: in function `zl38_spi_probe':
zl38060.c:(.text+0xa18): undefined reference to `devm_gpiochip_add_data_with_key'

This appears to have been in the driver since the start, but is hard to
hit in randconfig testing since gpiolib is almost always selected by something
else.

Fixes: 52e8a94baf90 ("ASoC: Add initial ZL38060 driver")
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Link: https://lore.kernel.org/r/20230227085850.2503725-1-arnd@kernel.org
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cs35l45: Remove separate tables module</title>
<updated>2023-02-15T13:10:44+00:00</updated>
<author>
<name>Charles Keepax</name>
<email>ckeepax@opensource.cirrus.com</email>
</author>
<published>2023-02-15T10:58:17+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=4dac6f5abc02ffeeb10459c575aba2343363d4ee'/>
<id>urn:sha1:4dac6f5abc02ffeeb10459c575aba2343363d4ee</id>
<content type='text'>
There is no reason to have a separate module for the tables file it just
holds regmap callbacks and register patches used by the main part of the
driver. Remove the separate module and merge it into the main driver
module.

Signed-off-by: Charles Keepax &lt;ckeepax@opensource.cirrus.com&gt;
Link: https://lore.kernel.org/r/20230215105818.3315925-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: codecs: Modify error implicit declaration of function 'gpiod_set_value_cansleep'</title>
<updated>2023-02-13T12:44:57+00:00</updated>
<author>
<name>Weidong Wang</name>
<email>wangweidong.a@awinic.com</email>
</author>
<published>2023-02-13T09:36:49+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=4680716d6a33f50c96eb7ce6ae9cb868baa04438'/>
<id>urn:sha1:4680716d6a33f50c96eb7ce6ae9cb868baa04438</id>
<content type='text'>
Add select GPIOLIB to the sound/soc/codecs/Kconfig file

Signed-off-by: Ben Yi &lt;yijiangtao@awinic.com&gt;
Signed-off-by: Weidong Wang &lt;wangweidong.a@awinic.com&gt;
Link: https://lore.kernel.org/r/20230213093649.22928-4-wangweidong.a@awinic.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Add the Infineon PEB2466 codec support</title>
<updated>2023-02-09T18:24:27+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2023-02-09T18:24:27+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=487417f0d11970f2c3f06d427d90f98c1afb2e51'/>
<id>urn:sha1:487417f0d11970f2c3f06d427d90f98c1afb2e51</id>
<content type='text'>
Merge series from Herve Codina &lt;herve.codina@bootlin.com&gt;:

The Infineon PEB2466 codec is a programmable DSP-based four channels
codec with filters capabilities.
It also provides signals as GPIOs.
</content>
</entry>
<entry>
<title>ASoC: rt712-sdca: Add RT712 SDCA driver for Jack and Amp topology</title>
<updated>2023-02-09T16:06:39+00:00</updated>
<author>
<name>Shuming Fan</name>
<email>shumingf@realtek.com</email>
</author>
<published>2023-02-07T09:09:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6c39710da75caabc5f459a3f73fbb7435b4000aa'/>
<id>urn:sha1:6c39710da75caabc5f459a3f73fbb7435b4000aa</id>
<content type='text'>
This is the initial codec driver for rt712 SDCA (Jack+Amp topology).
The host should connect with rt712 SdW1 interface.

Signed-off-by: Shuming Fan &lt;shumingf@realtek.com&gt;
Link: https://lore.kernel.org/r/20230207090946.20659-1-shumingf@realtek.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: codecs: Add support for the Infineon PEB2466 codec</title>
<updated>2023-02-09T15:38:26+00:00</updated>
<author>
<name>Herve Codina</name>
<email>herve.codina@bootlin.com</email>
</author>
<published>2023-02-06T14:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=227f609c7c0e44f2103a8406ff9379ee1de3bc28'/>
<id>urn:sha1:227f609c7c0e44f2103a8406ff9379ee1de3bc28</id>
<content type='text'>
The Infineon PEB2466 codec is a programmable DSP-based four channels
codec with filters capabilities.
It also provides signals as GPIOs.

Signed-off-by: Herve Codina &lt;herve.codina@bootlin.com&gt;
Link: https://lore.kernel.org/r/20230206144904.91078-3-herve.codina@bootlin.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: cs42l42: Add SoundWire support</title>
<updated>2023-01-31T17:07:56+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2023-01-31T17:07:56+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=98fda42a85b4324b6c404ec163940371c63625df'/>
<id>urn:sha1:98fda42a85b4324b6c404ec163940371c63625df</id>
<content type='text'>
Merge series from Stefan Binding &lt;sbinding@opensource.cirrus.com&gt;:

The CS42L42 has a SoundWire interface for control and audio. This
chain of patches adds support for this.

Patches #1 .. #5 split out various changes to the existing code that
are needed for adding Soundwire. These are mostly around clocking and
supporting the separate probe and enumeration stages in SoundWire.

Patches #6 .. #8 actually adds the SoundWire handling.
</content>
</entry>
<entry>
<title>ASoC: codecs: Add Awinic AW88395 audio amplifier</title>
<updated>2023-01-31T14:12:02+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2023-01-31T14:12:02+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=41e0207f16488320cb3166137cb787d5ab7ef092'/>
<id>urn:sha1:41e0207f16488320cb3166137cb787d5ab7ef092</id>
<content type='text'>
Merge series from wangweidong.a@awinic.com:

The Awinic AW88395 is an I2S/TDM input, high efficiency
digital Smart K audio amplifier with an integrated 10.25V
smart boost converter.

Add a DT schema for describing Awinic AW88395 audio amplifiers. They are
controlled using I2C
</content>
</entry>
<entry>
<title>ASoC: cs42l42: Add SoundWire support</title>
<updated>2023-01-31T12:10:50+00:00</updated>
<author>
<name>Richard Fitzgerald</name>
<email>rf@opensource.cirrus.com</email>
</author>
<published>2023-01-27T16:51:09+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=90f6a2a20bd2e88bd7ea4b4f99509b831c5c1c47'/>
<id>urn:sha1:90f6a2a20bd2e88bd7ea4b4f99509b831c5c1c47</id>
<content type='text'>
This adds support for using CS42L42 as a SoundWire device.

SoundWire-specifics are kept separate from the I2S implementation as
much as possible, aiming to limit the risk of breaking the I2C+I2S
support.

There are some important differences in the silicon behaviour between
I2S and SoundWire mode that are reflected in the implementation:

- ASP (I2S) most not be used in SoundWire mode because the two interfaces
  share pins.

- The SoundWire capture (record) port only supports 1 channel. It does
  not have left-to-right duplication like the ASP.

- DP2 can only be prepared if the HP has powered-up. DP1 can only be
  prepared if the ADC has powered-up. (This ordering restriction does
  not exist for ASPs.) The SoundWire core port-prepare step is
  triggered by the DAI-link prepare(). This happens before the
  codec DAI prepare() or the DAPM sequence so these cannot be used
  to enable HP/ADC. Instead the HP/ADC enable/disable are done during
  the port_prep callback.

- The SRCs are an integral part of the audio chain but in silicon their
  power control is linked to the ASP. There is no equivalent power link
  to SoundWire DPs so the driver must take "manual" control of SRC power.

- The SoundWire control registers occupy the lower part of the SoundWire
  address space so cs42l42 registers are offset by 0x8000 (non-paged) in
  SoundWire mode.

- Register addresses are 8-bit paged in I2C mode but 16-bit unpaged in
  SoundWire.

- Special procedures are needed on register read/writes to (a) ensure
  that the previous internal bus transaction has completed, and
  (b) handle delayed read results, when the read value could not be
  returned within the SoundWire read command.

There are also some differences in driver implementation between I2S
and SoundWire operation:

- CS42L42 I2S does not runtime_suspend, but runtime_suspend/resume support
  has been added into the driver in SoundWire mode as the most convenient
  way to power-up the bus manager and to handle the unattach_request
  condition, though the CS42L42 chip does not itself suspend or resume.

- Intel SoundWire host controllers have a low-power clock-stop mode that
  requires resetting all peripherals when resuming. This means that the
  interrupt registers will be reset in between the interrupt being
  generated and the interrupt being handled, and since the interrupt
  status is debounced, these values may not be accurate immediately,
  and may cause spurious unplug events before settling.

- As in I2S mode, the PLL is only used while audio is active because
  of clocking quirks in the silicon. For SoundWire the cs42l42_pll_config()
  is deferred until the DAI prepare(), to allow the cs42l42_bus_config()
  callback to set the SCLK.

Signed-off-by: Richard Fitzgerald &lt;rf@opensource.cirrus.com&gt;
Signed-off-by: Stefan Binding &lt;sbinding@opensource.cirrus.com&gt;
Reviewed-by: Pierre-Louis Bossart &lt;pierre-louis.bossart@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20230127165111.3010960-7-sbinding@opensource.cirrus.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: codecs: Aw88395 chip register file, data type file and Kconfig Makefile</title>
<updated>2023-01-30T19:33:44+00:00</updated>
<author>
<name>Weidong Wang</name>
<email>wangweidong.a@awinic.com</email>
</author>
<published>2023-01-13T05:53:00+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=14bd857286115bab1e7860ab6e30016b0cae8233'/>
<id>urn:sha1:14bd857286115bab1e7860ab6e30016b0cae8233</id>
<content type='text'>
The Awinic AW88395 is an I2S/TDM input, high efficiency
digital Smart K audio amplifier with an integrated 10.25V
smart boost convert

Signed-off-by: Nick Li &lt;liweilei@awinic.com&gt;
Signed-off-by: Bruce zhao &lt;zhaolei@awinic.com&gt;
Signed-off-by: Weidong Wang &lt;wangweidong.a@awinic.com&gt;
Link: https://lore.kernel.org/r/20230113055301.189541-5-wangweidong.a@awinic.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
</feed>
