Message ID | 20231219-topic-sm8650-upstream-wcd939x-codec-v4-0-1c3bbff2d7ab@linaro.org |
---|---|
Headers | show |
Series | ASoC: codecs: add support for WCD939x Codec | expand |
On Tue, 19 Dec 2023 13:45:33 +0100, Neil Armstrong wrote: > Add the main WCD9390/WCD9395 Audio Codec driver to support: > - 4 ADC inputs for up to 5 Analog Microphones > - 4 DMIC inputs for up to 8 Digital Microphones > - 4 Microphone BIAS > - Stereo Headphone output > - Mono EAR output > - MBHC engine for Headset Detection > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/5] ASoC: dt-bindings: qcom,wcd938x: move out common properties commit: 166ee0b3bfbb3611579c77fc84e44cd27a0099ef [2/5] ASoC: dt-bindings: document WCD939x Audio Codec commit: edf647d1335fd55c81cdb8cc8cbf1da7d97739df [3/5] ASoC: codec: wcd-mbhc-v2: add support when connected behind an USB-C audio mux commit: 0c105997eefd98603796c4e5890615527578eb04 [4/5] ASoC: codecs: Add WCD939x Soundwire devices driver commit: be2af391cea018eaea61f929eaef9394c78faaf2 [5/5] ASoC: codecs: Add WCD939x Codec driver commit: 10f514bd172a40b9d03d759678e4711612d671a1 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
Add the main WCD9390/WCD9395 Audio Codec driver to support: - 4 ADC inputs for up to 5 Analog Microphones - 4 DMIC inputs for up to 8 Digital Microphones - 4 Microphone BIAS - Stereo Headphone output - Mono EAR output - MBHC engine for Headset Detection This adds: - bindings - MBHC changes to support Type-C muc - Soundwire Slave driver - Code driver The USB Mux subsystem support will be submitted separalety since it's a functionally separate subsystem connected over I2C with it's own reset signal. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- Changes in v4: - Soundwire driver - Removed volatile/read-only registers from defaults list - Added a wcd939x_readable_register() with read-only + read-write registers, so cache does it's job - Added wcd939x_volatile_register() with only volatile registers - Fixed a probable but by not using devm_ from probe() otherwise it would be freed in component unbind - Fixed lifetime of the soundwire device, by setting it un forced suspend until component it bound - Used the component bind/unbind to control the runtime pm, avoiding soundwire callbacks when not bound - Added a wcd939x_swr_get_regmap() callback, because dev_get_regmap() would not work anymore without using devm in probe - Removed useless pm_runtime_mark_last_busy in resume - Codec driver - Fixed hph_mode setup, returning 0 is already set, checking against all possible values - Used CLS_H_NORMAL instead CLS_H_INVALID as it should be in the hph_mode_mux_text list - Used wcd939x_swr_get_regmap() to get TX SoundWire device device - Fixed a probable uninitialized usage of version variable in probe - Link to v3: https://lore.kernel.org/r/20231207-topic-sm8650-upstream-wcd939x-codec-v3-0-6df9585ec7c8@linaro.org Changes in v3: - Fixed W=1 and smatch warnings reported by lkp & Dan Carpenter - Fixed dependency on CONFIG_TYPEC and added guards to not build type-c related code when disabled - Collected review on second bindings patch - Link to v2: https://lore.kernel.org/r/20231201-topic-sm8650-upstream-wcd939x-codec-v2-0-94ed814b25aa@linaro.org Changes in v2: - Bindings: - Dropped all references to "Slave" or "Host" terminology when possible - Collected review for first patch - Added wcd9395 as fallback of wcd9390 - Fixes typos errors - MBHC: - Dropped all references to "Slave" or "Host" terminology when possible - Fixed EXPORT_SYMBOL into EXPORT_SYMBOL_GPL - Fixed typo in commit message - Soundwire Devices driver - Dropped all references to "Slave" or "Host" terminology when possible - Dropped comments and unused code - Reworked wcd939x_swr_get_current_bank() - Added comments to wcd9390_interrupt_callback() - Reworked regmap's wcd939x_readonly/volatile_register checks - Added comments explaining while bind/unbind are empty - Added comment on SDW_SLAVE_ENTRY meaning - Added more register fields defines - Style fixes - Codec driver - Dropped all references to "Slave" or "Host" terminology when possible - Added MICB_BIAS_ values enum and used them in the code - Moved zdet_param to the top - Added TLV data for ear_pa_gain and used it - Defined as much as possible every bit field used on/from register - Replaced 1/0 to true/false when writing to single bit fields - Replaced for loop on all bits with ffs(), simplified code - Simplified MICB fields handling code - Reworked and simplified wcd939x_get/set_compander and other kcontrol get/setters - Reworked and simplified MHGC impedance/zdet/qval code, dropped dead code - Added comments on wcd939x_wd_handle_irq() utility - Added comment on the interrupt handling architecture - I've not moved common code yet, I'll probably do later since it would alter wcd939x code - Link to v1: https://lore.kernel.org/r/20231123-topic-sm8650-upstream-wcd939x-codec-v1-0-21d4ad9276de@linaro.org --- Neil Armstrong (5): ASoC: dt-bindings: qcom,wcd938x: move out common properties ASoC: dt-bindings: document WCD939x Audio Codec ASoC: codec: wcd-mbhc-v2: add support when connected behind an USB-C audio mux ASoC: codecs: Add WCD939x Soundwire devices driver ASoC: codecs: Add WCD939x Codec driver .../devicetree/bindings/sound/qcom,wcd938x.yaml | 81 +- .../bindings/sound/qcom,wcd939x-sdw.yaml | 69 + .../devicetree/bindings/sound/qcom,wcd939x.yaml | 96 + .../bindings/sound/qcom,wcd93xx-common.yaml | 95 + sound/soc/codecs/Kconfig | 19 + sound/soc/codecs/Makefile | 7 + sound/soc/codecs/wcd-clsh-v2.h | 1 + sound/soc/codecs/wcd-mbhc-v2.c | 95 +- sound/soc/codecs/wcd-mbhc-v2.h | 3 + sound/soc/codecs/wcd939x-sdw.c | 1551 ++++++++ sound/soc/codecs/wcd939x.c | 3686 ++++++++++++++++++++ sound/soc/codecs/wcd939x.h | 989 ++++++ 12 files changed, 6597 insertions(+), 95 deletions(-) --- base-commit: 07b677953b9dca02928be323e2db853511305fa9 change-id: 20231123-topic-sm8650-upstream-wcd939x-codec-c46f621b55d4 Best regards,