All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips
@ 2015-11-10  7:32 ` Sugar Zhang
  0 siblings, 0 replies; 16+ 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.

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] 16+ messages in thread

* [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips
@ 2015-11-10  7:32 ` Sugar Zhang
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* [PATCH 0/3] ASoC: rockchip: i2s: compatible with different chips
@ 2015-11-10  7:32 ` Sugar Zhang
  0 siblings, 0 replies; 16+ messages in thread
From: Sugar Zhang @ 2015-11-10  7:32 UTC (permalink / raw)
  To: 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] 16+ messages in thread

* [PATCH 1/3] ASoC: rockchip: i2s: compatible with different chips
  2015-11-10  7:32 ` Sugar Zhang
@ 2015-11-10  7:32   ` Sugar Zhang
  -1 siblings, 0 replies; 16+ 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] 16+ messages in thread

* [PATCH 1/3] ASoC: rockchip: i2s: compatible with different chips
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ messages in thread
From: Sugar Zhang @ 2015-11-10  7:32 UTC (permalink / raw)
  To: 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.

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] 16+ messages in thread

* [PATCH 2/3] ASoC: rockchip: add playback property
  2015-11-10  7:32 ` Sugar Zhang
  (?)
@ 2015-11-10  7:32   ` Sugar Zhang
  -1 siblings, 0 replies; 16+ 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

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] 16+ messages in thread

* [PATCH 2/3] ASoC: rockchip: add playback property
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* [PATCH 2/3] ASoC: rockchip: add playback property
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ messages in thread
From: Sugar Zhang @ 2015-11-10  7:32 UTC (permalink / raw)
  To: 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 at 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] 16+ messages in thread

* [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ 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

add playback and capture properties to compatible various chips.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
---
 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] 16+ messages in thread

* [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
@ 2015-11-10  7:32   ` Sugar Zhang
  0 siblings, 0 replies; 16+ messages in thread
From: Sugar Zhang @ 2015-11-10  7:32 UTC (permalink / raw)
  To: linux-arm-kernel

add playback and capture properties to compatible various chips.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
---
 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] 16+ messages in thread

* Applied "ASoC: rockchip: add playback property" to the asoc tree
  2015-11-10  7:32   ` Sugar Zhang
  (?)
  (?)
@ 2015-11-16 17:51   ` Mark Brown
  -1 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2015-11-16 17:51 UTC (permalink / raw)
  To: Sugar Zhang, Mark Brown; +Cc: alsa-devel

The patch

   ASoC: rockchip: add playback property

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

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

>From 7fd9093a7570f5d8bbdc8014c0a349da2afea97e Mon Sep 17 00:00:00 2001
From: Sugar Zhang <sugar.zhang@rock-chips.com>
Date: Tue, 10 Nov 2015 15:32:08 +0800
Subject: [PATCH] ASoC: rockchip: add playback property

rockchip,playback-channels: max playback channels, 8 channels default.

Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 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 2267d249ca0e..b7f3a9325ebd 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.6.2

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Applied "ASoC: rockchip: i2s: compatible with different chips" to the asoc tree
  2015-11-10  7:32   ` Sugar Zhang
  (?)
@ 2015-11-16 17:51   ` Mark Brown
  -1 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2015-11-16 17:51 UTC (permalink / raw)
  To: Sugar Zhang, Mark Brown; +Cc: alsa-devel

The patch

   ASoC: rockchip: i2s: compatible with different chips

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

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

>From c4f9374ddc461ed76be30f4d354a6d1ecb94dfa5 Mon Sep 17 00:00:00 2001
From: Sugar Zhang <sugar.zhang@rock-chips.com>
Date: Tue, 10 Nov 2015 15:32:07 +0800
Subject: [PATCH] ASoC: rockchip: i2s: compatible with different chips

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>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 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 ce880f3bccc7..83b1b9c9e017 100644
--- a/sound/soc/rockchip/rockchip_i2s.c
+++ b/sound/soc/rockchip/rockchip_i2s.c
@@ -474,6 +474,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;
@@ -534,17 +535,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.6.2

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
  2015-11-10  7:32   ` Sugar Zhang
  (?)
@ 2015-11-20 15:35     ` Heiko Stuebner
  -1 siblings, 0 replies; 16+ messages in thread
From: Heiko Stuebner @ 2015-11-20 15:35 UTC (permalink / raw)
  To: Sugar Zhang
  Cc: broonie, lgirdwood, perex, tiwai, alsa-devel, linux-arm-kernel,
	linux-rockchip, linux-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] 16+ messages in thread

* Re: [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
@ 2015-11-20 15:35     ` Heiko Stuebner
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s
@ 2015-11-20 15:35     ` Heiko Stuebner
  0 siblings, 0 replies; 16+ messages in thread
From: Heiko Stuebner @ 2015-11-20 15:35 UTC (permalink / raw)
  To: 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] 16+ messages in thread

end of thread, other threads:[~2015-11-20 15:35 UTC | newest]

Thread overview: 16+ 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 ` Sugar Zhang
2015-11-10  7:32 ` Sugar Zhang
2015-11-10  7:32 ` [PATCH 1/3] " Sugar Zhang
2015-11-10  7:32   ` Sugar Zhang
2015-11-16 17:51   ` Applied "ASoC: rockchip: i2s: compatible with different chips" to the asoc tree Mark Brown
2015-11-10  7:32 ` [PATCH 2/3] ASoC: rockchip: add playback property Sugar Zhang
2015-11-10  7:32   ` Sugar Zhang
2015-11-10  7:32   ` Sugar Zhang
2015-11-16 17:51   ` Applied "ASoC: rockchip: add playback property" to the asoc tree Mark Brown
2015-11-10  7:32 ` [PATCH 3/3] ARM: dts: rockchip: add channels properties for i2s Sugar Zhang
2015-11-10  7:32   ` Sugar Zhang
2015-11-10  7:32   ` Sugar Zhang
2015-11-20 15:35   ` Heiko Stuebner
2015-11-20 15:35     ` Heiko Stuebner
2015-11-20 15:35     ` Heiko Stuebner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.