* [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips
@ 2015-11-10 7:32 Sugar Zhang
2015-11-10 7:32 ` [PATCH 1/3] " Sugar Zhang
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Sugar Zhang @ 2015-11-10 7:32 UTC (permalink / raw)
To: broonie, lgirdwood, perex, tiwai, heiko
Cc: Sugar Zhang, linux-rockchip, alsa-devel, linux-kernel,
linux-arm-kernel
there maybe more than one i2s module inside chip, and these i2s modules
have different channels features.
for example: there are 3 i2s in rk3066, one support 8 channels playback
and 2 channels capture, but the others only support 2 channels playback
and 2 channels capture.
in order to compatible with these various chips, we add playback and
capture property to specify these values.
there are default channels configuration in driver: 8 channels playback
and 2 channels capture. if not add property, we use the default values.
Sugar Zhang (3):
ASoC: rockchip: i2s: compatible with different chips
ASoC: rockchip: add playback property
ARM: dts: rockchip: add channels properties for i2s
.../devicetree/bindings/sound/rockchip-i2s.txt | 2 ++
arch/arm/boot/dts/rk3066a.dtsi | 6 ++++++
arch/arm/boot/dts/rk3188.dtsi | 2 ++
arch/arm/boot/dts/rk3288.dtsi | 2 ++
sound/soc/rockchip/rockchip_i2s.c | 20 +++++++++++++++-----
5 files changed, 27 insertions(+), 5 deletions(-)
--
2.3.6
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH 1/3] ASoC: rockchip: i2s: compatible with different chips 2015-11-10 7:32 [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips Sugar Zhang @ 2015-11-10 7:32 ` Sugar Zhang 2015-11-10 7:32 ` [PATCH 2/3] ASoC: rockchip: add playback property Sugar Zhang [not found] ` <1447140729-18267-1-git-send-email-sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2 siblings, 0 replies; 5+ messages in thread From: Sugar Zhang @ 2015-11-10 7:32 UTC (permalink / raw) To: broonie, lgirdwood, perex, tiwai, heiko Cc: alsa-devel, linux-arm-kernel, linux-rockchip, linux-kernel, Sugar Zhang there maybe more than one i2s module inside chip, and these i2s modules have different channels features. for example: there are 3 i2s in rk3066, one support 8 channels playback and 2 channels capture, but the others only support 2 channels playback and 2 channels capture. in order to compatible with these various chips, we add playback and capture property to specify these values. there are default channels configuration in driver: 8 channels playback and 2 channels capture. if not add property, we use the default values. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> --- sound/soc/rockchip/rockchip_i2s.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c index 58ee645..ec88e94 100644 --- a/sound/soc/rockchip/rockchip_i2s.c +++ b/sound/soc/rockchip/rockchip_i2s.c @@ -451,6 +451,7 @@ static int rockchip_i2s_probe(struct platform_device *pdev) { struct device_node *node = pdev->dev.of_node; struct rk_i2s_dev *i2s; + struct snd_soc_dai_driver *soc_dai; struct resource *res; void __iomem *regs; int ret; @@ -511,17 +512,26 @@ static int rockchip_i2s_probe(struct platform_device *pdev) goto err_pm_disable; } - /* refine capture channels */ + soc_dai = devm_kzalloc(&pdev->dev, + sizeof(*soc_dai), GFP_KERNEL); + if (!soc_dai) + return -ENOMEM; + + memcpy(soc_dai, &rockchip_i2s_dai, sizeof(*soc_dai)); + if (!of_property_read_u32(node, "rockchip,playback-channels", &val)) { + if (val >= 2 && val <= 8) + soc_dai->playback.channels_max = val; + } + if (!of_property_read_u32(node, "rockchip,capture-channels", &val)) { if (val >= 2 && val <= 8) - rockchip_i2s_dai.capture.channels_max = val; - else - rockchip_i2s_dai.capture.channels_max = 2; + soc_dai->capture.channels_max = val; } ret = devm_snd_soc_register_component(&pdev->dev, &rockchip_i2s_component, - &rockchip_i2s_dai, 1); + soc_dai, 1); + if (ret) { dev_err(&pdev->dev, "Could not register DAI\n"); goto err_suspend; -- 2.3.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] ASoC: rockchip: add playback property 2015-11-10 7:32 [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips Sugar Zhang 2015-11-10 7:32 ` [PATCH 1/3] " Sugar Zhang @ 2015-11-10 7:32 ` Sugar Zhang [not found] ` <1447140729-18267-1-git-send-email-sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org> 2 siblings, 0 replies; 5+ messages in thread From: Sugar Zhang @ 2015-11-10 7:32 UTC (permalink / raw) To: broonie, lgirdwood, perex, tiwai, heiko Cc: Sugar Zhang, linux-rockchip, alsa-devel, linux-kernel, linux-arm-kernel rockchip,playback-channels: max playback channels, 8 channels default. Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> --- Documentation/devicetree/bindings/sound/rockchip-i2s.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt index 2267d24..b7f3a93 100644 --- a/Documentation/devicetree/bindings/sound/rockchip-i2s.txt +++ b/Documentation/devicetree/bindings/sound/rockchip-i2s.txt @@ -19,6 +19,7 @@ Required properties: - clock-names: should contain followings: - "i2s_hclk": clock for I2S BUS - "i2s_clk" : clock for I2S controller +- rockchip,playback-channels: max playback channels, if not set, 8 channels default. - rockchip,capture-channels: max capture channels, if not set, 2 channels default. Example for rk3288 I2S controller: @@ -31,5 +32,6 @@ i2s@ff890000 { dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; + rockchip,playback-channels = <8>; rockchip,capture-channels = <2>; }; -- 2.3.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1447140729-18267-1-git-send-email-sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org>]
* [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s [not found] ` <1447140729-18267-1-git-send-email-sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org> @ 2015-11-10 7:32 ` Sugar Zhang 2015-11-20 15:35 ` Heiko Stuebner 0 siblings, 1 reply; 5+ messages in thread From: Sugar Zhang @ 2015-11-10 7:32 UTC (permalink / raw) To: broonie-DgEjT+Ai2ygdnm+yROfE0A, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, perex-/Fr2/VpizcU, tiwai-IBi9RG/b67k, heiko-4mtYJXux2i+zQB+pC5nmwQ Cc: Sugar Zhang, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r add playback and capture properties to compatible various chips. Signed-off-by: Sugar Zhang <sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org> --- arch/arm/boot/dts/rk3066a.dtsi | 6 ++++++ arch/arm/boot/dts/rk3188.dtsi | 2 ++ arch/arm/boot/dts/rk3288.dtsi | 2 ++ 3 files changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi index 946f187..1003f9c 100644 --- a/arch/arm/boot/dts/rk3066a.dtsi +++ b/arch/arm/boot/dts/rk3066a.dtsi @@ -103,6 +103,8 @@ dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; + rockchip,playback-channels = <8>; + rockchip,capture-channels = <2>; status = "disabled"; }; @@ -118,6 +120,8 @@ dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S1>, <&cru SCLK_I2S1>; + rockchip,playback-channels = <2>; + rockchip,capture-channels = <2>; status = "disabled"; }; @@ -133,6 +137,8 @@ dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S2>, <&cru SCLK_I2S2>; + rockchip,playback-channels = <2>; + rockchip,capture-channels = <2>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi index 3163042..b9b6b3a 100644 --- a/arch/arm/boot/dts/rk3188.dtsi +++ b/arch/arm/boot/dts/rk3188.dtsi @@ -118,6 +118,8 @@ dma-names = "tx", "rx"; clock-names = "i2s_hclk", "i2s_clk"; clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; + rockchip,playback-channels = <2>; + rockchip,capture-channels = <2>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 4e7c6b7..e7ce9f1 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -669,6 +669,8 @@ clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>; pinctrl-names = "default"; pinctrl-0 = <&i2s0_bus>; + rockchip,playback-channels = <8>; + rockchip,capture-channels = <2>; status = "disabled"; }; -- 2.3.6 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s 2015-11-10 7:32 ` [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s Sugar Zhang @ 2015-11-20 15:35 ` Heiko Stuebner 0 siblings, 0 replies; 5+ messages in thread From: Heiko Stuebner @ 2015-11-20 15:35 UTC (permalink / raw) To: Sugar Zhang Cc: alsa-devel, linux-kernel, tiwai, lgirdwood, linux-rockchip, broonie, linux-arm-kernel Am Dienstag, 10. November 2015, 15:32:09 schrieb Sugar Zhang: > add playback and capture properties to compatible various chips. > > Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com> applied to my devicetree branch for 4.5 Thanks Heiko ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-11-20 15:35 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-10 7:32 [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips Sugar Zhang
2015-11-10 7:32 ` [PATCH 1/3] " Sugar Zhang
2015-11-10 7:32 ` [PATCH 2/3] ASoC: rockchip: add playback property Sugar Zhang
[not found] ` <1447140729-18267-1-git-send-email-sugar.zhang-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2015-11-10 7:32 ` [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s Sugar Zhang
2015-11-20 15:35 ` Heiko Stuebner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox