lkml.org 
[lkml]   [2024]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v3 0/7] Add support for the internal RK3308 audio codec
    Date
    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 adds 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 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 | 993 +++++++++++++++++++++
    sound/soc/codecs/rk3308_codec.h | 579 ++++++++++++
    sound/soc/rockchip/rockchip_i2s_tdm.c | 352 +-------
    10 files changed, 1765 insertions(+), 346 deletions(-)
    ---
    base-commit: 20fb305a716356265e9479719502b5a012e0d869
    change-id: 20231219-rk3308-audio-codec-a5558ba8949d

    Best regards,
    --
    Luca Ceresoli <luca.ceresoli@bootlin.com>


    \
     
     \ /
      Last update: 2024-05-27 15:14    [W:4.095 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site