Message ID | 20240305-rk3308-audio-codec-v4-0-312acdbe628f@bootlin.com |
---|---|
Headers | show |
Series | Add support for the internal RK3308 audio codec | expand |
On Tue, 05 Mar 2024 15:36:27 +0100, Luca Ceresoli wrote: > This series adds a driver for the internal audio codec of the Rockchip > RK3308 SoC, along with some related patches. This codec is internally > connected to the I2S peripherals on the same chip, and it has some > peculiarities arising from that interconnection. > > For proper bidirectional operation with the internal codec at any possible > combination of sampling rates, the I2S peripheral needs two clock sources > (tx and rx), while connection with an external codec commonly needs only > one. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/7] ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates commit: 9e2ab4b18ebd46813fc3459207335af4d368e323 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
On Tue, 05 Mar 2024 15:36:27 +0100, Luca Ceresoli wrote: > This series adds a driver for the internal audio codec of the Rockchip > RK3308 SoC, along with some related patches. This codec is internally > connected to the I2S peripherals on the same chip, and it has some > peculiarities arising from that interconnection. > > For proper bidirectional operation with the internal codec at any possible > combination of sampling rates, the I2S peripheral needs two clock sources > (tx and rx), while connection with an external codec commonly needs only > one. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [2/7] ASoC: dt-bindings: Add Rockchip RK3308 internal audio codec commit: cce4cbb157493483f03c21213753b66425a31430 [3/7] ASoC: core: add SOC_DOUBLE_RANGE_TLV() helper macro commit: d75a21611a6e723d81db3f827e131ad39b69186c [4/7] ASoC: codecs: Add RK3308 internal audio codec driver commit: 4ed0915f5bc4bcc81bca783a5b984f3d81e9764e 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
On Tue, 05 Mar 2024 15:36:27 +0100, Luca Ceresoli wrote: > This series adds a driver for the internal audio codec of the Rockchip > RK3308 SoC, along with some related patches. This codec is internally > connected to the I2S peripherals on the same chip, and it has some > peculiarities arising from that interconnection. > > For proper bidirectional operation with the internal codec at any possible > combination of sampling rates, the I2S peripheral needs two clock sources > (tx and rx), while connection with an external codec commonly needs only > one. > > [...] Applied, thanks! [5/7] arm64: defconfig: enable Rockchip RK3308 internal audio codec driver commit: 9fdd7b45da18b84d5e7d5a6b8b4b0167910f2d13 [6/7] arm64: dts: rockchip: add i2s_8ch_2 and i2s_8ch_3 commit: b5ffc424360eaced41f405f0e38bcabe61fecf39 [7/7] arm64: dts: rockchip: add the internal audio codec commit: 30d72458624bb1ba7bab1c7a1d5f4c42f512010c Best regards,
This series adds a driver for the internal audio codec of the Rockchip RK3308 SoC, along with some related patches. This codec is internally connected to the I2S peripherals on the same chip, and it has some peculiarities arising from that interconnection. For proper bidirectional operation with the internal codec at any possible combination of sampling rates, the I2S peripheral needs two clock sources (tx and rx), while connection with an external codec commonly needs only one. Since v5.16 there is a driver for the I2S in sound/soc/rockchip/rockchip_i2s_tdm.c, but in some cases it does not configure correctly the clocks, resulting in an unnecessarily inaccurate rate. Patch 1 fixes this. Patches 2-4 add the codec driver along with the bindings and a new helper macro. Patches 5-7 add to the SoC DT file two I2S controllers (those which are internally connected to the internal codec) and the codec itself and enable the driver in the ARM64 defconfig. Luca Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> --- Changes in v4: - several cleanups in the codec probe function - Link to v3: https://lore.kernel.org/r/20240221-rk3308-audio-codec-v3-0-dfa34abfcef6@bootlin.com Changes in v3: - Add the I2S clock fix patch and remove a previous fix which is now superseded - Codec driver: fix silent playback until a given amplitude of sigital value, seen at >= 96 kHz rate - various other changes, listed per-patch - Link to v2: https://lore.kernel.org/r/20231219-rk3308-audio-codec-v2-0-c70d06021946@bootlin.com Changes in v2: - largely rewrote the codec driver to use DAPM and lots of improvements and cleanups - removed the RK3308 audio card and related patches - various other changes, listed per-patch - Link to v1: https://lore.kernel.org/all/20220907142124.2532620-1-luca.ceresoli@bootlin.com/ --- Luca Ceresoli (7): ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates ASoC: dt-bindings: Add Rockchip RK3308 internal audio codec ASoC: core: add SOC_DOUBLE_RANGE_TLV() helper macro ASoC: codecs: Add RK3308 internal audio codec driver arm64: defconfig: enable Rockchip RK3308 internal audio codec driver arm64: dts: rockchip: add i2s_8ch_2 and i2s_8ch_3 arm64: dts: rockchip: add the internal audio codec .../bindings/sound/rockchip,rk3308-codec.yaml | 98 +++ MAINTAINERS | 7 + arch/arm64/boot/dts/rockchip/rk3308.dtsi | 56 ++ arch/arm64/configs/defconfig | 1 + include/sound/soc.h | 12 + sound/soc/codecs/Kconfig | 11 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/rk3308_codec.c | 974 +++++++++++++++++++++ sound/soc/codecs/rk3308_codec.h | 579 ++++++++++++ sound/soc/rockchip/rockchip_i2s_tdm.c | 352 +------- 10 files changed, 1746 insertions(+), 346 deletions(-) --- base-commit: dfda120c512b3edca1436f770924e91b14f93a98 change-id: 20231219-rk3308-audio-codec-a5558ba8949d Best regards,