From df340d70a0b9c0bda00a8025594a65aa899d84a7 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Thu, 12 Nov 2020 17:26:17 +0800 Subject: [PATCH] ASoC: rockchip: vad: Add support for rk3568 Change-Id: If484601504c69309ae40a5b43bfae8e31e90239c Signed-off-by: Sugar Zhang --- .../devicetree/bindings/sound/rockchip,vad.txt | 1 + sound/soc/rockchip/rockchip_vad.c | 14 ++++++++++++++ sound/soc/rockchip/rockchip_vad.h | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/rockchip,vad.txt b/Documentation/devicetree/bindings/sound/rockchip,vad.txt index b4f128b60561..aab4416c6b2e 100644 --- a/Documentation/devicetree/bindings/sound/rockchip,vad.txt +++ b/Documentation/devicetree/bindings/sound/rockchip,vad.txt @@ -6,6 +6,7 @@ Required properties: - "rockchip,rk1808es-vad": for rk1808es - "rockchip,rk1808-vad": for rk1808 - "rockchip,rk3308-vad": for rk3308 + - "rockchip,rk3568-vad": for rk3568 - reg: physical base address of the controller and length of memory mapped region. - clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names. diff --git a/sound/soc/rockchip/rockchip_vad.c b/sound/soc/rockchip/rockchip_vad.c index 813fcc7fa655..4d8db9ebb6ce 100644 --- a/sound/soc/rockchip/rockchip_vad.c +++ b/sound/soc/rockchip/rockchip_vad.c @@ -616,6 +616,14 @@ static const struct audio_src_addr_map rk3308_addr_map[] = { { /* sentinel */ }, }; +static const struct audio_src_addr_map rk3568_addr_map[] = { + { 0, RK3568_I2S_8CH_1 }, + { 1, RK3568_I2S_2CH_2 }, + { 2, RK3568_I2S_2CH_3 }, + { 3, RK3568_PDM }, + { /* sentinel */ }, +}; + static const struct vad_soc_data rk1808es_soc_data = { .version = VAD_RK1808ES, .map = rk1808_addr_map, @@ -631,6 +639,11 @@ static const struct vad_soc_data rk3308_soc_data = { .map = rk3308_addr_map, }; +static const struct vad_soc_data rk3568_soc_data = { + .version = VAD_RK1808, + .map = rk3568_addr_map, +}; + static int rockchip_vad_get_audio_src_address(struct rockchip_vad *vad, u32 addr) { @@ -1116,6 +1129,7 @@ static const struct of_device_id rockchip_vad_match[] = { { .compatible = "rockchip,rk1808es-vad", .data = &rk1808es_soc_data }, { .compatible = "rockchip,rk1808-vad", .data = &rk1808_soc_data }, { .compatible = "rockchip,rk3308-vad", .data = &rk3308_soc_data }, + { .compatible = "rockchip,rk3568-vad", .data = &rk3568_soc_data }, {}, }; diff --git a/sound/soc/rockchip/rockchip_vad.h b/sound/soc/rockchip/rockchip_vad.h index ab7841c17397..bcfa4089bc0e 100644 --- a/sound/soc/rockchip/rockchip_vad.h +++ b/sound/soc/rockchip/rockchip_vad.h @@ -218,4 +218,10 @@ #define RK3308_I2S_8CH_3 0xff330800 #define RK3308_PDM_8CH 0xff380400 +/* RK3568 SOC */ +#define RK3568_I2S_8CH_1 0xfe410800 +#define RK3568_I2S_2CH_2 0xfe420800 +#define RK3568_I2S_2CH_3 0xfe430800 +#define RK3568_PDM 0xfe440400 + #endif