All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/7] Add support for audiocodec in Allwinner A64
@ 2018-11-21  5:17 ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

v2: - Use simple-amplifier for speaker amp on Pinebook
    - Rename sun50i-a64-i2s to sun50i-a64-codec-i2s to preserve compatible
      string for other 3 I2S modules in A64 in case if there's any
      incompatibility with H3
v3: - renamed sunxi-adda-pr-regmap to sun8i-adda-pr-regmap
    - use ilog2() to calculate reg value for LRCK div instead of using a
      table
v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
      define our board-level widgets instead.
v5: - collect all the tags
v6: - driver patches has been merged through ASoC tree
    - rebase onto 4.20-rc1
    - Drop 'Speaker' from routes on sopine and pine64, they don't have
      speaker.
v7: - drop 'Mic' and 'Headset Mic' from dtsi
    - move AIF1 Slot 0 ADC to ADC route to sun8i-codec
    - drop BIAS routes for Pine64 and SoPine
v8  - drop merged patches
    - add regulator property for simple amplifier, make enable-gpio
      optional
    - add regulator to speaker amp, introduce headphone amp


Vasily Khoruzhick (7):
  ASoC: dt-bindings: add regulator property to simple amplifier
  ASoC: simple-amplifier: add VCC regulator widget
  ASoC: dt-bindings: make enable-gpio optional for simple amplifier
  ASoC: simple-amplifier: make enable-gpio optional
  arm64: dts: allwinner: a64: add nodes necessary for analog sound
    support
  arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
  arm64: dts: allwinner: a64: enable sound on Pinebook

 .../bindings/sound/simple-amplifier.txt       |  5 ++
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 35 ++++++++++++
 .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 ++++++++++++++++++
 .../allwinner/sun50i-a64-sopine-baseboard.dts | 35 ++++++++++++
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 sound/soc/codecs/simple-amplifier.c           |  7 ++-
 6 files changed, 188 insertions(+), 1 deletion(-)

-- 
2.19.1

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

* [PATCH v8 0/7] Add support for audiocodec in Allwinner A64
@ 2018-11-21  5:17 ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

v2: - Use simple-amplifier for speaker amp on Pinebook
    - Rename sun50i-a64-i2s to sun50i-a64-codec-i2s to preserve compatible
      string for other 3 I2S modules in A64 in case if there's any
      incompatibility with H3
v3: - renamed sunxi-adda-pr-regmap to sun8i-adda-pr-regmap
    - use ilog2() to calculate reg value for LRCK div instead of using a
      table
v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
      define our board-level widgets instead.
v5: - collect all the tags
v6: - driver patches has been merged through ASoC tree
    - rebase onto 4.20-rc1
    - Drop 'Speaker' from routes on sopine and pine64, they don't have
      speaker.
v7: - drop 'Mic' and 'Headset Mic' from dtsi
    - move AIF1 Slot 0 ADC to ADC route to sun8i-codec
    - drop BIAS routes for Pine64 and SoPine
v8  - drop merged patches
    - add regulator property for simple amplifier, make enable-gpio
      optional
    - add regulator to speaker amp, introduce headphone amp


Vasily Khoruzhick (7):
  ASoC: dt-bindings: add regulator property to simple amplifier
  ASoC: simple-amplifier: add VCC regulator widget
  ASoC: dt-bindings: make enable-gpio optional for simple amplifier
  ASoC: simple-amplifier: make enable-gpio optional
  arm64: dts: allwinner: a64: add nodes necessary for analog sound
    support
  arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
  arm64: dts: allwinner: a64: enable sound on Pinebook

 .../bindings/sound/simple-amplifier.txt       |  5 ++
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 35 ++++++++++++
 .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 ++++++++++++++++++
 .../allwinner/sun50i-a64-sopine-baseboard.dts | 35 ++++++++++++
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 sound/soc/codecs/simple-amplifier.c           |  7 ++-
 6 files changed, 188 insertions(+), 1 deletion(-)

-- 
2.19.1

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

* [PATCH v8 1/7] ASoC: dt-bindings: add regulator property to simple amplifier
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

Amplifier may have associated regulator, so add a property for it.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 Documentation/devicetree/bindings/sound/simple-amplifier.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/simple-amplifier.txt b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
index 8647edae7af0..7182ac4f1e65 100644
--- a/Documentation/devicetree/bindings/sound/simple-amplifier.txt
+++ b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
@@ -4,9 +4,14 @@ Required properties:
 - compatible : "dioo,dio2125" or "simple-audio-amplifier"
 - enable-gpios : the gpio connected to the enable pin of the simple amplifier
 
+Optional properties:
+- VCC-supply   : power supply for the device, as covered
+                 in Documentation/devicetree/bindings/regulator/regulator.txt
+
 Example:
 
 amp: analog-amplifier {
 	compatible = "simple-audio-amplifier";
+	VCC-supply = <&regulator>;
 	enable-gpios = <&gpio GPIOH_3 0>;
 };
-- 
2.19.1

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

* [PATCH v8 1/7] ASoC: dt-bindings: add regulator property to simple amplifier
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

Amplifier may have associated regulator, so add a property for it.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 Documentation/devicetree/bindings/sound/simple-amplifier.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/simple-amplifier.txt b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
index 8647edae7af0..7182ac4f1e65 100644
--- a/Documentation/devicetree/bindings/sound/simple-amplifier.txt
+++ b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
@@ -4,9 +4,14 @@ Required properties:
 - compatible : "dioo,dio2125" or "simple-audio-amplifier"
 - enable-gpios : the gpio connected to the enable pin of the simple amplifier
 
+Optional properties:
+- VCC-supply   : power supply for the device, as covered
+                 in Documentation/devicetree/bindings/regulator/regulator.txt
+
 Example:
 
 amp: analog-amplifier {
 	compatible = "simple-audio-amplifier";
+	VCC-supply = <&regulator>;
 	enable-gpios = <&gpio GPIOH_3 0>;
 };
-- 
2.19.1

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

* [PATCH v8 2/7] ASoC: simple-amplifier: add VCC regulator widget
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

Amplifier may have assosicated regulator, so add a widget for it
and appropriate route.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 sound/soc/codecs/simple-amplifier.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sound/soc/codecs/simple-amplifier.c b/sound/soc/codecs/simple-amplifier.c
index 85524acf3e9c..c07e8a80b4b7 100644
--- a/sound/soc/codecs/simple-amplifier.c
+++ b/sound/soc/codecs/simple-amplifier.c
@@ -19,6 +19,7 @@
 
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
+#include <linux/regulator/consumer.h>
 #include <sound/soc.h>
 
 #define DRV_NAME "simple-amplifier"
@@ -58,11 +59,14 @@ static const struct snd_soc_dapm_widget simple_amp_dapm_widgets[] = {
 			       (SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD)),
 	SND_SOC_DAPM_OUTPUT("OUTL"),
 	SND_SOC_DAPM_OUTPUT("OUTR"),
+	SND_SOC_DAPM_REGULATOR_SUPPLY("VCC", 20, 0),
 };
 
 static const struct snd_soc_dapm_route simple_amp_dapm_routes[] = {
 	{ "DRV", NULL, "INL" },
 	{ "DRV", NULL, "INR" },
+	{ "OUTL", NULL, "VCC" },
+	{ "OUTR", NULL, "VCC" },
 	{ "OUTL", NULL, "DRV" },
 	{ "OUTR", NULL, "DRV" },
 };
-- 
2.19.1

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

* [PATCH v8 2/7] ASoC: simple-amplifier: add VCC regulator widget
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

Amplifier may have assosicated regulator, so add a widget for it
and appropriate route.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 sound/soc/codecs/simple-amplifier.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sound/soc/codecs/simple-amplifier.c b/sound/soc/codecs/simple-amplifier.c
index 85524acf3e9c..c07e8a80b4b7 100644
--- a/sound/soc/codecs/simple-amplifier.c
+++ b/sound/soc/codecs/simple-amplifier.c
@@ -19,6 +19,7 @@
 
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
+#include <linux/regulator/consumer.h>
 #include <sound/soc.h>
 
 #define DRV_NAME "simple-amplifier"
@@ -58,11 +59,14 @@ static const struct snd_soc_dapm_widget simple_amp_dapm_widgets[] = {
 			       (SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD)),
 	SND_SOC_DAPM_OUTPUT("OUTL"),
 	SND_SOC_DAPM_OUTPUT("OUTR"),
+	SND_SOC_DAPM_REGULATOR_SUPPLY("VCC", 20, 0),
 };
 
 static const struct snd_soc_dapm_route simple_amp_dapm_routes[] = {
 	{ "DRV", NULL, "INL" },
 	{ "DRV", NULL, "INR" },
+	{ "OUTL", NULL, "VCC" },
+	{ "OUTR", NULL, "VCC" },
 	{ "OUTL", NULL, "DRV" },
 	{ "OUTR", NULL, "DRV" },
 };
-- 
2.19.1

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

* [PATCH v8 3/7] ASoC: dt-bindings: make enable-gpio optional for simple amplifier
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

Amplifier may have no enable GPIO, so make this property optional

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 Documentation/devicetree/bindings/sound/simple-amplifier.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/simple-amplifier.txt b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
index 7182ac4f1e65..b1b097cc9b68 100644
--- a/Documentation/devicetree/bindings/sound/simple-amplifier.txt
+++ b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
@@ -2,9 +2,9 @@ Simple Amplifier Audio Driver
 
 Required properties:
 - compatible : "dioo,dio2125" or "simple-audio-amplifier"
-- enable-gpios : the gpio connected to the enable pin of the simple amplifier
 
 Optional properties:
+- enable-gpios : the gpio connected to the enable pin of the simple amplifier
 - VCC-supply   : power supply for the device, as covered
                  in Documentation/devicetree/bindings/regulator/regulator.txt
 
-- 
2.19.1

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

* [PATCH v8 3/7] ASoC: dt-bindings: make enable-gpio optional for simple amplifier
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

Amplifier may have no enable GPIO, so make this property optional

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 Documentation/devicetree/bindings/sound/simple-amplifier.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/simple-amplifier.txt b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
index 7182ac4f1e65..b1b097cc9b68 100644
--- a/Documentation/devicetree/bindings/sound/simple-amplifier.txt
+++ b/Documentation/devicetree/bindings/sound/simple-amplifier.txt
@@ -2,9 +2,9 @@ Simple Amplifier Audio Driver
 
 Required properties:
 - compatible : "dioo,dio2125" or "simple-audio-amplifier"
-- enable-gpios : the gpio connected to the enable pin of the simple amplifier
 
 Optional properties:
+- enable-gpios : the gpio connected to the enable pin of the simple amplifier
 - VCC-supply   : power supply for the device, as covered
                  in Documentation/devicetree/bindings/regulator/regulator.txt
 
-- 
2.19.1

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

* [PATCH v8 4/7] ASoC: simple-amplifier: make enable-gpio optional
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

Amplifier may have no enable GPIO, so make this property
optional.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 sound/soc/codecs/simple-amplifier.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/simple-amplifier.c b/sound/soc/codecs/simple-amplifier.c
index c07e8a80b4b7..351aa55c384e 100644
--- a/sound/soc/codecs/simple-amplifier.c
+++ b/sound/soc/codecs/simple-amplifier.c
@@ -89,7 +89,8 @@ static int simple_amp_probe(struct platform_device *pdev)
 		return -ENOMEM;
 	platform_set_drvdata(pdev, priv);
 
-	priv->gpiod_enable = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
+	priv->gpiod_enable = devm_gpiod_get_optional(dev, "enable",
+						     GPIOD_OUT_LOW);
 	if (IS_ERR(priv->gpiod_enable)) {
 		err = PTR_ERR(priv->gpiod_enable);
 		if (err != -EPROBE_DEFER)
-- 
2.19.1

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

* [PATCH v8 4/7] ASoC: simple-amplifier: make enable-gpio optional
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

Amplifier may have no enable GPIO, so make this property
optional.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 sound/soc/codecs/simple-amplifier.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/simple-amplifier.c b/sound/soc/codecs/simple-amplifier.c
index c07e8a80b4b7..351aa55c384e 100644
--- a/sound/soc/codecs/simple-amplifier.c
+++ b/sound/soc/codecs/simple-amplifier.c
@@ -89,7 +89,8 @@ static int simple_amp_probe(struct platform_device *pdev)
 		return -ENOMEM;
 	platform_set_drvdata(pdev, priv);
 
-	priv->gpiod_enable = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
+	priv->gpiod_enable = devm_gpiod_get_optional(dev, "enable",
+						     GPIOD_OUT_LOW);
 	if (IS_ERR(priv->gpiod_enable)) {
 		err = PTR_ERR(priv->gpiod_enable);
 		if (err != -EPROBE_DEFER)
-- 
2.19.1

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

* [PATCH v8 5/7] arm64: dts: allwinner: a64: add nodes necessary for analog sound support
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

Add nodes for i2s, digital and analog parts of audiocodec on A64

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index f3a66f888205..44fce4b0ac49 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -155,6 +155,30 @@
 		method = "smc";
 	};
 
+	sound: sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "sun50i-a64-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,mclk-fs = <512>;
+		simple-audio-card,aux-devs = <&codec_analog>;
+		simple-audio-card,routing =
+				"Left DAC", "AIF1 Slot 0 Left",
+				"Right DAC", "AIF1 Slot 0 Right",
+				"AIF1 Slot 0 Left ADC", "Left ADC",
+				"AIF1 Slot 0 Right ADC", "Right ADC";
+		status = "disabled";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&dai>;
+		};
+
+		link_codec: simple-audio-card,codec {
+			sound-dai = <&codec>;
+		};
+	};
+
 	sound_spdif {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "On-board SPDIF";
@@ -665,6 +689,30 @@
 			status = "disabled";
 		};
 
+		dai: dai@1c22c00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun50i-a64-codec-i2s";
+			reg = <0x01c22c00 0x200>;
+			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "apb", "mod";
+			resets = <&ccu RST_BUS_CODEC>;
+			reset-names = "rst";
+			dmas = <&dma 15>, <&dma 15>;
+			dma-names = "rx", "tx";
+			status = "disabled";
+		};
+
+		codec: codec@1c22e00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun8i-a33-codec";
+			reg = <0x01c22e00 0x600>;
+			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "bus", "mod";
+			status = "disabled";
+		};
+
 		uart0: serial@1c28000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
@@ -902,6 +950,12 @@
 			#reset-cells = <1>;
 		};
 
+		codec_analog: codec-analog@1f015c0 {
+			compatible = "allwinner,sun50i-a64-codec-analog";
+			reg = <0x01f015c0 0x4>;
+			status = "disabled";
+		};
+
 		r_i2c: i2c@1f02400 {
 			compatible = "allwinner,sun50i-a64-i2c",
 				     "allwinner,sun6i-a31-i2c";
-- 
2.19.1

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

* [PATCH v8 5/7] arm64: dts: allwinner: a64: add nodes necessary for analog sound support
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

Add nodes for i2s, digital and analog parts of audiocodec on A64

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index f3a66f888205..44fce4b0ac49 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -155,6 +155,30 @@
 		method = "smc";
 	};
 
+	sound: sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "sun50i-a64-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,mclk-fs = <512>;
+		simple-audio-card,aux-devs = <&codec_analog>;
+		simple-audio-card,routing =
+				"Left DAC", "AIF1 Slot 0 Left",
+				"Right DAC", "AIF1 Slot 0 Right",
+				"AIF1 Slot 0 Left ADC", "Left ADC",
+				"AIF1 Slot 0 Right ADC", "Right ADC";
+		status = "disabled";
+
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&dai>;
+		};
+
+		link_codec: simple-audio-card,codec {
+			sound-dai = <&codec>;
+		};
+	};
+
 	sound_spdif {
 		compatible = "simple-audio-card";
 		simple-audio-card,name = "On-board SPDIF";
@@ -665,6 +689,30 @@
 			status = "disabled";
 		};
 
+		dai: dai at 1c22c00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun50i-a64-codec-i2s";
+			reg = <0x01c22c00 0x200>;
+			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "apb", "mod";
+			resets = <&ccu RST_BUS_CODEC>;
+			reset-names = "rst";
+			dmas = <&dma 15>, <&dma 15>;
+			dma-names = "rx", "tx";
+			status = "disabled";
+		};
+
+		codec: codec at 1c22e00 {
+			#sound-dai-cells = <0>;
+			compatible = "allwinner,sun8i-a33-codec";
+			reg = <0x01c22e00 0x600>;
+			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
+			clock-names = "bus", "mod";
+			status = "disabled";
+		};
+
 		uart0: serial at 1c28000 {
 			compatible = "snps,dw-apb-uart";
 			reg = <0x01c28000 0x400>;
@@ -902,6 +950,12 @@
 			#reset-cells = <1>;
 		};
 
+		codec_analog: codec-analog at 1f015c0 {
+			compatible = "allwinner,sun50i-a64-codec-analog";
+			reg = <0x01f015c0 0x4>;
+			status = "disabled";
+		};
+
 		r_i2c: i2c at 1f02400 {
 			compatible = "allwinner,sun50i-a64-i2c",
 				     "allwinner,sun6i-a31-i2c";
-- 
2.19.1

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

* [PATCH v8 6/7] arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

This commit enables I2S, digital and analog parts of audiocodec on
Pine64 and SoPine boards.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 35 +++++++++++++++++++
 .../allwinner/sun50i-a64-sopine-baseboard.dts | 35 +++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
index c077b6c1f458..30d0743d0d79 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
@@ -73,6 +73,24 @@
 			};
 		};
 	};
+
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+};
+
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
 };
 
 &de {
@@ -259,6 +277,23 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>;
+	simple-audio-card,widgets = "Microphone", "Microphone Jack",
+				    "Headphone", "Headphone Jack";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"MIC2", "Microphone Jack";
+	status = "okay";
+};
+
 /* On Euler connector */
 &spdif {
 	status = "disabled";
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
index 53fcc9098df3..81d85ad127a2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
@@ -72,6 +72,12 @@
 		};
 	};
 
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+
 	reg_vcc1v8: vcc1v8 {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc1v8";
@@ -80,6 +86,18 @@
 	};
 };
 
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
+};
+
 &de {
 	status = "okay";
 };
@@ -164,6 +182,23 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>;
+	simple-audio-card,widgets = "Microphone", "Microphone Jack",
+				    "Headphone", "Headphone Jack";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"MIC2", "Microphone Jack";
+	status = "okay";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pb_pins>;
-- 
2.19.1

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

* [PATCH v8 6/7] arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

This commit enables I2S, digital and analog parts of audiocodec on
Pine64 and SoPine boards.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 35 +++++++++++++++++++
 .../allwinner/sun50i-a64-sopine-baseboard.dts | 35 +++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
index c077b6c1f458..30d0743d0d79 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
@@ -73,6 +73,24 @@
 			};
 		};
 	};
+
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+};
+
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
 };
 
 &de {
@@ -259,6 +277,23 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>;
+	simple-audio-card,widgets = "Microphone", "Microphone Jack",
+				    "Headphone", "Headphone Jack";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"MIC2", "Microphone Jack";
+	status = "okay";
+};
+
 /* On Euler connector */
 &spdif {
 	status = "disabled";
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
index 53fcc9098df3..81d85ad127a2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
@@ -72,6 +72,12 @@
 		};
 	};
 
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+
 	reg_vcc1v8: vcc1v8 {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc1v8";
@@ -80,6 +86,18 @@
 	};
 };
 
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
+};
+
 &de {
 	status = "okay";
 };
@@ -164,6 +182,23 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>;
+	simple-audio-card,widgets = "Microphone", "Microphone Jack",
+				    "Headphone", "Headphone Jack";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"MIC2", "Microphone Jack";
+	status = "okay";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pb_pins>;
-- 
2.19.1

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

* [PATCH v8 7/7] arm64: dts: allwinner: a64: enable sound on Pinebook
  2018-11-21  5:17 ` Vasily Khoruzhick
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  -1 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Mark Rutland,
	Maxime Ripard, Chen-Yu Tsai, Jaroslav Kysela, Takashi Iwai,
	Vasily Khoruzhick, Jerome Brunet, alsa-devel, devicetree,
	linux-arm-kernel

This commit enables I2S, digital and analog parts of audiocodec on
Pinebook

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
index 77fac84797e9..cecfa7ea90b2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
@@ -53,6 +53,12 @@
 		};
 	};
 
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+
 	reg_vcc3v3: vcc3v3 {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc3v3";
@@ -64,6 +70,26 @@
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
 	};
+
+	speaker_amp: speaker_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_ldo_io0>;
+		enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
+		sound-name-prefix = "SPEAKER";
+	};
+
+};
+
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
 };
 
 &ehci0 {
@@ -267,6 +293,33 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	status = "okay";
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>,
+				     <&speaker_amp>;
+	simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
+				    "Microphone", "Internal Microphone Right",
+				    "Headphone", "Headphone Jack",
+				    "Speaker", "Internal Speaker";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"SPEAKER INL", "LINEOUT",
+			"SPEAKER INR", "LINEOUT",
+			"Internal Speaker", "SPEAKER OUTL",
+			"Internal Speaker", "SPEAKER OUTR",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"Internal Microphone Left", "MBIAS",
+			"MIC1", "Internal Microphone Left",
+			"Internal Microphone Right", "HBIAS",
+			"MIC2", "Internal Microphone Right";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pb_pins>;
-- 
2.19.1

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

* [PATCH v8 7/7] arm64: dts: allwinner: a64: enable sound on Pinebook
@ 2018-11-21  5:17   ` Vasily Khoruzhick
  0 siblings, 0 replies; 22+ messages in thread
From: Vasily Khoruzhick @ 2018-11-21  5:17 UTC (permalink / raw)
  To: linux-arm-kernel

This commit enables I2S, digital and analog parts of audiocodec on
Pinebook

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
 .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
index 77fac84797e9..cecfa7ea90b2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
@@ -53,6 +53,12 @@
 		};
 	};
 
+	headphone_amp: headphone_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_eldo1>;
+		sound-name-prefix = "HP";
+	};
+
 	reg_vcc3v3: vcc3v3 {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc3v3";
@@ -64,6 +70,26 @@
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
 	};
+
+	speaker_amp: speaker_amp {
+		compatible = "simple-audio-amplifier";
+		VCC-supply = <&reg_ldo_io0>;
+		enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
+		sound-name-prefix = "SPEAKER";
+	};
+
+};
+
+&codec {
+	status = "okay";
+};
+
+&codec_analog {
+	status = "okay";
+};
+
+&dai {
+	status = "okay";
 };
 
 &ehci0 {
@@ -267,6 +293,33 @@
 	vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+	status = "okay";
+	simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>,
+				     <&speaker_amp>;
+	simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
+				    "Microphone", "Internal Microphone Right",
+				    "Headphone", "Headphone Jack",
+				    "Speaker", "Internal Speaker";
+	simple-audio-card,routing =
+			"Left DAC", "AIF1 Slot 0 Left",
+			"Right DAC", "AIF1 Slot 0 Right",
+			"SPEAKER INL", "LINEOUT",
+			"SPEAKER INR", "LINEOUT",
+			"Internal Speaker", "SPEAKER OUTL",
+			"Internal Speaker", "SPEAKER OUTR",
+			"HP INL", "HP",
+			"HP INR", "HP",
+			"Headphone Jack", "HP OUTL",
+			"Headphone Jack", "HP OUTR",
+			"AIF1 Slot 0 Left ADC", "Left ADC",
+			"AIF1 Slot 0 Right ADC", "Right ADC",
+			"Internal Microphone Left", "MBIAS",
+			"MIC1", "Internal Microphone Left",
+			"Internal Microphone Right", "HBIAS",
+			"MIC2", "Internal Microphone Right";
+};
+
 &uart0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart0_pb_pins>;
-- 
2.19.1

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

* Re: [PATCH v8 7/7] arm64: dts: allwinner: a64: enable sound on Pinebook
  2018-11-21  5:17   ` Vasily Khoruzhick
@ 2018-11-21  5:54     ` Chen-Yu Tsai
  -1 siblings, 0 replies; 22+ messages in thread
From: Chen-Yu Tsai @ 2018-11-21  5:54 UTC (permalink / raw)
  To: Vasily Khoruzhick
  Cc: Mark Rutland, devicetree, Linux-ALSA, Maxime Ripard,
	Takashi Iwai, Liam Girdwood, Rob Herring, Mark Brown,
	linux-arm-kernel, Jerome Brunet

On Wed, Nov 21, 2018 at 1:19 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
>
> This commit enables I2S, digital and analog parts of audiocodec on
> Pinebook
>
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> ---
>  .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 +++++++++++++++++++
>  1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> index 77fac84797e9..cecfa7ea90b2 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> @@ -53,6 +53,12 @@
>                 };
>         };
>
> +       headphone_amp: headphone_amp {
> +               compatible = "simple-audio-amplifier";
> +               VCC-supply = <&reg_eldo1>;
> +               sound-name-prefix = "HP";
> +       };
> +

This is part of the analog side of the codec. Representing it as a
standalone amp is inaccurate. Here's what I have to add it to the codec:

DT binding patch:
https://github.com/wens/linux/commit/ca6360b9788b8495daff658280845683ff401441

Driver patch:
https://github.com/wens/linux/commit/17a91e45d62d370bb2350753be6db86eaf824a5e

DT fixup:
https://github.com/wens/linux/commit/df7c2b26d1a66790237ca25e8cc135c237cd8236

As mentioned on IRC, I will pick up this series incorporating some extra
changes.

Thanks
ChenYu

>         reg_vcc3v3: vcc3v3 {
>                 compatible = "regulator-fixed";
>                 regulator-name = "vcc3v3";
> @@ -64,6 +70,26 @@
>                 compatible = "mmc-pwrseq-simple";
>                 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
>         };
> +
> +       speaker_amp: speaker_amp {
> +               compatible = "simple-audio-amplifier";
> +               VCC-supply = <&reg_ldo_io0>;
> +               enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
> +               sound-name-prefix = "SPEAKER";
> +       };
> +
> +};
> +
> +&codec {
> +       status = "okay";
> +};
> +
> +&codec_analog {
> +       status = "okay";
> +};
> +
> +&dai {
> +       status = "okay";
>  };
>
>  &ehci0 {
> @@ -267,6 +293,33 @@
>         vcc-hdmi-supply = <&reg_dldo1>;
>  };
>
> +&sound {
> +       status = "okay";
> +       simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>,
> +                                    <&speaker_amp>;
> +       simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
> +                                   "Microphone", "Internal Microphone Right",
> +                                   "Headphone", "Headphone Jack",
> +                                   "Speaker", "Internal Speaker";
> +       simple-audio-card,routing =
> +                       "Left DAC", "AIF1 Slot 0 Left",
> +                       "Right DAC", "AIF1 Slot 0 Right",
> +                       "SPEAKER INL", "LINEOUT",
> +                       "SPEAKER INR", "LINEOUT",
> +                       "Internal Speaker", "SPEAKER OUTL",
> +                       "Internal Speaker", "SPEAKER OUTR",
> +                       "HP INL", "HP",
> +                       "HP INR", "HP",
> +                       "Headphone Jack", "HP OUTL",
> +                       "Headphone Jack", "HP OUTR",
> +                       "AIF1 Slot 0 Left ADC", "Left ADC",
> +                       "AIF1 Slot 0 Right ADC", "Right ADC",
> +                       "Internal Microphone Left", "MBIAS",
> +                       "MIC1", "Internal Microphone Left",
> +                       "Internal Microphone Right", "HBIAS",
> +                       "MIC2", "Internal Microphone Right";
> +};
> +
>  &uart0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&uart0_pb_pins>;
> --
> 2.19.1
>

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

* [PATCH v8 7/7] arm64: dts: allwinner: a64: enable sound on Pinebook
@ 2018-11-21  5:54     ` Chen-Yu Tsai
  0 siblings, 0 replies; 22+ messages in thread
From: Chen-Yu Tsai @ 2018-11-21  5:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Nov 21, 2018 at 1:19 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
>
> This commit enables I2S, digital and analog parts of audiocodec on
> Pinebook
>
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> ---
>  .../dts/allwinner/sun50i-a64-pinebook.dts     | 53 +++++++++++++++++++
>  1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> index 77fac84797e9..cecfa7ea90b2 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
> @@ -53,6 +53,12 @@
>                 };
>         };
>
> +       headphone_amp: headphone_amp {
> +               compatible = "simple-audio-amplifier";
> +               VCC-supply = <&reg_eldo1>;
> +               sound-name-prefix = "HP";
> +       };
> +

This is part of the analog side of the codec. Representing it as a
standalone amp is inaccurate. Here's what I have to add it to the codec:

DT binding patch:
https://github.com/wens/linux/commit/ca6360b9788b8495daff658280845683ff401441

Driver patch:
https://github.com/wens/linux/commit/17a91e45d62d370bb2350753be6db86eaf824a5e

DT fixup:
https://github.com/wens/linux/commit/df7c2b26d1a66790237ca25e8cc135c237cd8236

As mentioned on IRC, I will pick up this series incorporating some extra
changes.

Thanks
ChenYu

>         reg_vcc3v3: vcc3v3 {
>                 compatible = "regulator-fixed";
>                 regulator-name = "vcc3v3";
> @@ -64,6 +70,26 @@
>                 compatible = "mmc-pwrseq-simple";
>                 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
>         };
> +
> +       speaker_amp: speaker_amp {
> +               compatible = "simple-audio-amplifier";
> +               VCC-supply = <&reg_ldo_io0>;
> +               enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
> +               sound-name-prefix = "SPEAKER";
> +       };
> +
> +};
> +
> +&codec {
> +       status = "okay";
> +};
> +
> +&codec_analog {
> +       status = "okay";
> +};
> +
> +&dai {
> +       status = "okay";
>  };
>
>  &ehci0 {
> @@ -267,6 +293,33 @@
>         vcc-hdmi-supply = <&reg_dldo1>;
>  };
>
> +&sound {
> +       status = "okay";
> +       simple-audio-card,aux-devs = <&codec_analog>, <&headphone_amp>,
> +                                    <&speaker_amp>;
> +       simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
> +                                   "Microphone", "Internal Microphone Right",
> +                                   "Headphone", "Headphone Jack",
> +                                   "Speaker", "Internal Speaker";
> +       simple-audio-card,routing =
> +                       "Left DAC", "AIF1 Slot 0 Left",
> +                       "Right DAC", "AIF1 Slot 0 Right",
> +                       "SPEAKER INL", "LINEOUT",
> +                       "SPEAKER INR", "LINEOUT",
> +                       "Internal Speaker", "SPEAKER OUTL",
> +                       "Internal Speaker", "SPEAKER OUTR",
> +                       "HP INL", "HP",
> +                       "HP INR", "HP",
> +                       "Headphone Jack", "HP OUTL",
> +                       "Headphone Jack", "HP OUTR",
> +                       "AIF1 Slot 0 Left ADC", "Left ADC",
> +                       "AIF1 Slot 0 Right ADC", "Right ADC",
> +                       "Internal Microphone Left", "MBIAS",
> +                       "MIC1", "Internal Microphone Left",
> +                       "Internal Microphone Right", "HBIAS",
> +                       "MIC2", "Internal Microphone Right";
> +};
> +
>  &uart0 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&uart0_pb_pins>;
> --
> 2.19.1
>

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

* Re: [PATCH v8 1/7] ASoC: dt-bindings: add regulator property to simple amplifier
  2018-11-21  5:17   ` Vasily Khoruzhick
@ 2018-11-26 14:53     ` Mark Brown
  -1 siblings, 0 replies; 22+ messages in thread
From: Mark Brown @ 2018-11-26 14:53 UTC (permalink / raw)
  To: Vasily Khoruzhick
  Cc: Mark Rutland, devicetree, alsa-devel, Maxime Ripard,
	Takashi Iwai, Liam Girdwood, Chen-Yu Tsai, Rob Herring,
	linux-arm-kernel, Jerome Brunet


[-- Attachment #1.1: Type: text/plain, Size: 509 bytes --]

On Tue, Nov 20, 2018 at 09:17:46PM -0800, Vasily Khoruzhick wrote:

> +Optional properties:
> +- VCC-supply   : power supply for the device, as covered
> +                 in Documentation/devicetree/bindings/regulator/regulator.txt
> +

As ever supplies shouldn't be marked as optional unless they can be
missing even though they can safely be omitted on Linux.  This one's a
bit odd in that the name is going to depend on which amp is connected
but still it's probably best that we do that for consistency.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

* [PATCH v8 1/7] ASoC: dt-bindings: add regulator property to simple amplifier
@ 2018-11-26 14:53     ` Mark Brown
  0 siblings, 0 replies; 22+ messages in thread
From: Mark Brown @ 2018-11-26 14:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 20, 2018 at 09:17:46PM -0800, Vasily Khoruzhick wrote:

> +Optional properties:
> +- VCC-supply   : power supply for the device, as covered
> +                 in Documentation/devicetree/bindings/regulator/regulator.txt
> +

As ever supplies shouldn't be marked as optional unless they can be
missing even though they can safely be omitted on Linux.  This one's a
bit odd in that the name is going to depend on which amp is connected
but still it's probably best that we do that for consistency.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20181126/17bc6e82/attachment.sig>

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

* Re: [PATCH v8 3/7] ASoC: dt-bindings: make enable-gpio optional for simple amplifier
  2018-11-21  5:17   ` Vasily Khoruzhick
@ 2018-12-06 23:43     ` Rob Herring
  -1 siblings, 0 replies; 22+ messages in thread
From: Rob Herring @ 2018-12-06 23:43 UTC (permalink / raw)
  Cc: Mark Rutland, devicetree, alsa-devel, Maxime Ripard,
	Takashi Iwai, Liam Girdwood, Vasily Khoruzhick, Chen-Yu Tsai,
	Mark Brown, linux-arm-kernel, Jerome Brunet

On Tue, 20 Nov 2018 21:17:48 -0800, Vasily Khoruzhick wrote:
> Amplifier may have no enable GPIO, so make this property optional
> 
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> ---
>  Documentation/devicetree/bindings/sound/simple-amplifier.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v8 3/7] ASoC: dt-bindings: make enable-gpio optional for simple amplifier
@ 2018-12-06 23:43     ` Rob Herring
  0 siblings, 0 replies; 22+ messages in thread
From: Rob Herring @ 2018-12-06 23:43 UTC (permalink / raw)
  To: Vasily Khoruzhick
  Cc: Mark Rutland, devicetree, alsa-devel, Maxime Ripard,
	Takashi Iwai, Liam Girdwood, Jaroslav Kysela, Vasily Khoruzhick,
	Chen-Yu Tsai, Mark Brown, linux-arm-kernel, Jerome Brunet

On Tue, 20 Nov 2018 21:17:48 -0800, Vasily Khoruzhick wrote:
> Amplifier may have no enable GPIO, so make this property optional
> 
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> ---
>  Documentation/devicetree/bindings/sound/simple-amplifier.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2018-12-06 23:44 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-21  5:17 [PATCH v8 0/7] Add support for audiocodec in Allwinner A64 Vasily Khoruzhick
2018-11-21  5:17 ` Vasily Khoruzhick
2018-11-21  5:17 ` [PATCH v8 1/7] ASoC: dt-bindings: add regulator property to simple amplifier Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-26 14:53   ` Mark Brown
2018-11-26 14:53     ` Mark Brown
2018-11-21  5:17 ` [PATCH v8 2/7] ASoC: simple-amplifier: add VCC regulator widget Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-21  5:17 ` [PATCH v8 3/7] ASoC: dt-bindings: make enable-gpio optional for simple amplifier Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-12-06 23:43   ` Rob Herring
2018-12-06 23:43     ` Rob Herring
2018-11-21  5:17 ` [PATCH v8 4/7] ASoC: simple-amplifier: make enable-gpio optional Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-21  5:17 ` [PATCH v8 5/7] arm64: dts: allwinner: a64: add nodes necessary for analog sound support Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-21  5:17 ` [PATCH v8 6/7] arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-21  5:17 ` [PATCH v8 7/7] arm64: dts: allwinner: a64: enable sound on Pinebook Vasily Khoruzhick
2018-11-21  5:17   ` Vasily Khoruzhick
2018-11-21  5:54   ` Chen-Yu Tsai
2018-11-21  5:54     ` Chen-Yu Tsai

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.