[PATCH v2 0/9] imx patches when I enable imx6q sabrelite audio

STALE5305d

Revision v2 of 2 in this series.

43 messages, 5 authors, 2012-02-28 · open the first message on its own page

[PATCH v2 0/9] imx patches when I enable imx6q sabrelite audio

From: Richard Zhao <hidden>
Date: 2012-02-02 02:11:59

Changes in v2:

 - change dt peroperty/label to lower case as much as possible
   keep XXX-supply property upper case.
 - convert audmux-v2 to platform device driver
 - move audmux-v2 driver to sound/soc/imx

[PATCH v2 1/9] ARM: mxc: make imx_dma_is_general_purpose more
[PATCH v2 2/9] ARM: imx6q: add cko1 clock
[PATCH v2 3/9] ARM: dts: imx6q-sabrelite: add 2p5v and 3p3v
[PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec
[PATCH v2 5/9] ARM: mxc: convert audmux-v2 to a platform driver
[PATCH v2 6/9] ARM: mx31ads: add audmux device
[PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx
[PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2
[PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

Thanks
Richard

[PATCH v2 1/9] ARM: mxc: make imx_dma_is_general_purpose more generic for sdma

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:00

sdma device names vary for different SoC. So we just check
whether it includes "sdma" substring.

Signed-off-by: Richard Zhao <redacted>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 arch/arm/plat-mxc/include/mach/dma.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/arch/arm/plat-mxc/include/mach/dma.h b/arch/arm/plat-mxc/include/mach/dma.h
index 233d0a5..1b90803 100644
--- a/arch/arm/plat-mxc/include/mach/dma.h
+++ b/arch/arm/plat-mxc/include/mach/dma.h
@@ -60,8 +60,7 @@ static inline int imx_dma_is_ipu(struct dma_chan *chan)
 
 static inline int imx_dma_is_general_purpose(struct dma_chan *chan)
 {
-	return !strcmp(dev_name(chan->device->dev), "imx31-sdma") ||
-		!strcmp(dev_name(chan->device->dev), "imx35-sdma") ||
+	return strstr(dev_name(chan->device->dev), "sdma") ||
 		!strcmp(dev_name(chan->device->dev), "imx-dma");
 }
 
-- 
1.7.5.4

[PATCH v2 2/9] ARM: imx6q: add cko1 clock

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:01

- add DEF_CLK_1B to define clocks using one bit gate
- add cko1 clock and set ahb as the default parent

imx6q-sabrelite board use it as audio codec clock.

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/clock-imx6q.c |   74 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-imx/clock-imx6q.c b/arch/arm/mach-imx/clock-imx6q.c
index 2d88f8b..111c328 100644
--- a/arch/arm/mach-imx/clock-imx6q.c
+++ b/arch/arm/mach-imx/clock-imx6q.c
@@ -329,6 +329,12 @@
 #define BM_CLPCR_MASK_SCU_IDLE		(0x1 << 26)
 #define BM_CLPCR_MASK_L2CC_IDLE		(0x1 << 27)
 
+#define BP_CCOSR_CKO1_EN		7
+#define BP_CCOSR_CKO1_PODF		4
+#define BM_CCOSR_CKO1_PODF		(0x7 << 4)
+#define BP_CCOSR_CKO1_SEL		0
+#define BM_CCOSR_CKO1_SEL		(0xf << 0)
+
 #define FREQ_480M	480000000
 #define FREQ_528M	528000000
 #define FREQ_594M	594000000
@@ -393,6 +399,7 @@ static struct clk ipu1_di1_clk;
 static struct clk ipu2_di0_clk;
 static struct clk ipu2_di1_clk;
 static struct clk enfc_clk;
+static struct clk cko1_clk;
 static struct clk dummy_clk = {};
 
 static unsigned long external_high_reference;
@@ -938,6 +945,24 @@ static void _clk_disable(struct clk *clk)
 	writel_relaxed(reg, clk->enable_reg);
 }
 
+static int _clk_enable_1b(struct clk *clk)
+{
+	u32 reg;
+	reg = readl_relaxed(clk->enable_reg);
+	reg |= 0x1 << clk->enable_shift;
+	writel_relaxed(reg, clk->enable_reg);
+
+	return 0;
+}
+
+static void _clk_disable_1b(struct clk *clk)
+{
+	u32 reg;
+	reg = readl_relaxed(clk->enable_reg);
+	reg &= ~(0x1 << clk->enable_shift);
+	writel_relaxed(reg, clk->enable_reg);
+}
+
 struct divider {
 	struct clk *clk;
 	void __iomem *reg;
@@ -983,6 +1008,7 @@ DEF_CLK_DIV1(ipu2_di0_pre_div,	&ipu2_di0_pre_clk,	CSCDR2,	IPU2_DI0_PRE);
 DEF_CLK_DIV1(ipu2_di1_pre_div,	&ipu2_di1_pre_clk,	CSCDR2,	IPU2_DI1_PRE);
 DEF_CLK_DIV1(ipu1_div,		&ipu1_clk,		CSCDR3,	IPU1_HSP);
 DEF_CLK_DIV1(ipu2_div,		&ipu2_clk,		CSCDR3,	IPU2_HSP);
+DEF_CLK_DIV1(cko1_div,		&cko1_clk,		CCOSR, CKO1);
 
 #define DEF_CLK_DIV2(d, c, r, b)				\
 	static struct divider d = {				\
@@ -1038,6 +1064,7 @@ static struct divider *dividers[] = {
 	&enfc_div,
 	&spdif_div,
 	&asrc_serial_div,
+	&cko1_div,
 };
 
 static unsigned long ldb_di_clk_get_rate(struct clk *clk)
@@ -1625,6 +1652,32 @@ DEF_IPU_DI_MUX(CSCDR2, 2, 1);
 DEF_IPU_MUX(1);
 DEF_IPU_MUX(2);
 
+static struct multiplexer cko1_mux = {
+	.clk = &cko1_clk,
+	.reg = CCOSR,
+	.bp = BP_CCOSR_CKO1_SEL,
+	.bm = BM_CCOSR_CKO1_SEL,
+	.parents = {
+		&pll3_usb_otg,
+		&pll2_bus,
+		&pll1_sys,
+		&pll5_video,
+		&dummy_clk,
+		&axi_clk,
+		&enfc_clk,
+		&ipu1_di0_clk,
+		&ipu1_di1_clk,
+		&ipu2_di0_clk,
+		&ipu2_di1_clk,
+		&ahb_clk,
+		&ipg_clk,
+		&ipg_perclk,
+		&ckil_clk,
+		&pll4_audio,
+		NULL
+	},
+};
+
 static struct multiplexer *multiplexers[] = {
 	&axi_mux,
 	&periph_mux,
@@ -1667,6 +1720,7 @@ static struct multiplexer *multiplexers[] = {
 	&ipu2_di1_mux,
 	&ipu1_mux,
 	&ipu2_mux,
+	&cko1_mux,
 };
 
 static int _clk_set_parent(struct clk *clk, struct clk *parent)
@@ -1690,7 +1744,7 @@ static int _clk_set_parent(struct clk *clk, struct clk *parent)
 			break;
 		i++;
 	}
-	if (!m->parents[i])
+	if (!m->parents[i] || m->parents[i] == &dummy_clk)
 		return -EINVAL;
 
 	val = readl_relaxed(m->reg);
@@ -1745,6 +1799,20 @@ DEF_NG_CLK(asrc_serial_clk,	&pll3_usb_otg);
 		.secondary	= s,			\
 	}
 
+#define DEF_CLK_1B(name, er, es, p, s)			\
+	static struct clk name = {			\
+		.enable_reg	= er,			\
+		.enable_shift	= es,			\
+		.enable		= _clk_enable_1b,	\
+		.disable	= _clk_disable_1b,	\
+		.get_rate	= _clk_get_rate,	\
+		.set_rate	= _clk_set_rate,	\
+		.round_rate	= _clk_round_rate,	\
+		.set_parent	= _clk_set_parent,	\
+		.parent		= p,			\
+		.secondary	= s,			\
+	}
+
 DEF_CLK(aips_tz1_clk,	  CCGR0, CG0,  &ahb_clk,	  NULL);
 DEF_CLK(aips_tz2_clk,	  CCGR0, CG1,  &ahb_clk,	  NULL);
 DEF_CLK(apbh_dma_clk,	  CCGR0, CG2,  &ahb_clk,	  NULL);
@@ -1811,6 +1879,7 @@ DEF_CLK(usdhc4_clk,	  CCGR6, CG4,  &pll2_pfd_400m,	  NULL);
 DEF_CLK(emi_slow_clk,	  CCGR6, CG5,  &axi_clk,	  NULL);
 DEF_CLK(vdo_axi_clk,	  CCGR6, CG6,  &axi_clk,	  NULL);
 DEF_CLK(vpu_clk,	  CCGR6, CG7,  &axi_clk,	  NULL);
+DEF_CLK_1B(cko1_clk,	  CCOSR, BP_CCOSR_CKO1_EN, &pll2_bus, NULL);
 
 static int pcie_clk_enable(struct clk *clk)
 {
@@ -1922,6 +1991,7 @@ static struct clk_lookup lookups[] = {
 	_REGISTER_CLOCK(NULL, "gpmi_io_clk", gpmi_io_clk),
 	_REGISTER_CLOCK(NULL, "usboh3_clk", usboh3_clk),
 	_REGISTER_CLOCK(NULL, "sata_clk", sata_clk),
+	_REGISTER_CLOCK(NULL, "cko1_clk", cko1_clk),
 };
 
 int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
@@ -2029,6 +2099,8 @@ int __init mx6q_clocks_init(void)
 	clk_set_rate(&usdhc3_clk, 49500000);
 	clk_set_rate(&usdhc4_clk, 49500000);
 
+	clk_set_parent(&cko1_clk, &ahb_clk);
+
 	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt");
 	base = of_iomap(np, 0);
 	WARN_ON(!base);
-- 
1.7.5.4

[PATCH v2 3/9] ARM: dts: imx6q-sabrelite: add 2p5v and 3p3v regulators

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:02

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 08d920d..cdc2ad6 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -46,4 +46,24 @@
 			};
 		};
 	};
+
+	regulators {
+		compatible = "simple-bus";
+
+		reg_2p5v: 2p5v {
+			compatible = "regulator-fixed";
+			regulator-name = "2P5V";
+			regulator-min-microvolt = <2500000>;
+			regulator-max-microvolt = <2500000>;
+			regulator-always-on;
+		};
+
+		reg_3p3v: 3p3v {
+			compatible = "regulator-fixed";
+			regulator-name = "3P3V";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			regulator-always-on;
+		};
+	};
 };
-- 
1.7.5.4

[PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:03

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index cdc2ad6..3a9d32c 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -44,6 +44,18 @@
 			uart2: uart at 021e8000 {
 				status = "okay";
 			};
+
+			i2c at 021a0000 { /* I2C1 */
+				status = "okay";
+				clock-frequency = <100000>;
+
+				codec: sgtl5000 at 0a {
+					compatible = "fsl,sgtl5000";
+					reg = <0x0a>;
+					VDDA-supply = <&reg_2p5v>;
+					VDDIO-supply = <&reg_3p3v>;
+				};
+			};
 		};
 	};
 
-- 
1.7.5.4

[PATCH v2 5/9] ARM: mxc: convert audmux-v2 to a platform driver

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:04

Plaform driver is more flexible and easy to add DT support.

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/plat-mxc/audmux-v2.c |  102 ++++++++++++++++++++++++++++++----------
 1 files changed, 76 insertions(+), 26 deletions(-)
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/arch/arm/plat-mxc/audmux-v2.c
index 8cced35..d53c029 100644
--- a/arch/arm/plat-mxc/audmux-v2.c
+++ b/arch/arm/plat-mxc/audmux-v2.c
@@ -24,6 +24,9 @@
 #include <mach/audmux.h>
 #include <mach/hardware.h>
 
+#define DRIVER_NAME "audmux-v2"
+
+struct resource *audmux_res;
 static struct clk *audmux_clk;
 static void __iomem *audmux_base;
 
@@ -140,7 +143,7 @@ static const struct file_operations audmux_debugfs_fops = {
 	.llseek = default_llseek,
 };
 
-static void audmux_debugfs_init(void)
+static void __init audmux_debugfs_init(void)
 {
 	int i;
 	char buf[20];
@@ -159,10 +162,18 @@ static void audmux_debugfs_init(void)
 				   i);
 	}
 }
+
+static void __exit audmux_debugfs_remove(void)
+{
+	debugfs_remove_recursive(audmux_debugfs_root);
+}
 #else
 static inline void audmux_debugfs_init(void)
 {
 }
+static void audmux_debugfs_remove(void)
+{
+}
 #endif
 
 int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
@@ -184,36 +195,75 @@ int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
 }
 EXPORT_SYMBOL_GPL(mxc_audmux_v2_configure_port);
 
-static int mxc_audmux_v2_init(void)
+static int __init mxc_audmux_v2_probe(struct platform_device *pdev)
 {
-	int ret;
-	if (cpu_is_mx51()) {
-		audmux_base = MX51_IO_ADDRESS(MX51_AUDMUX_BASE_ADDR);
-	} else if (cpu_is_mx31()) {
-		audmux_base = MX31_IO_ADDRESS(MX31_AUDMUX_BASE_ADDR);
-	} else if (cpu_is_mx35()) {
-		audmux_clk = clk_get(NULL, "audmux");
-		if (IS_ERR(audmux_clk)) {
-			ret = PTR_ERR(audmux_clk);
-			printk(KERN_ERR "%s: cannot get clock: %d\n", __func__,
-					ret);
-			return ret;
-		}
-		audmux_base = MX35_IO_ADDRESS(MX35_AUDMUX_BASE_ADDR);
-	} else if (cpu_is_mx25()) {
-		audmux_clk = clk_get(NULL, "audmux");
-		if (IS_ERR(audmux_clk)) {
-			ret = PTR_ERR(audmux_clk);
-			printk(KERN_ERR "%s: cannot get clock: %d\n", __func__,
-					ret);
-			return ret;
-		}
-		audmux_base = MX25_IO_ADDRESS(MX25_AUDMUX_BASE_ADDR);
+	struct resource *res;
+	resource_size_t res_size;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res) {
+		dev_err(&pdev->dev, "can't get device resources\n");
+		return -ENOENT;
+	}
+
+	res_size = resource_size(res);
+
+	if (!request_mem_region(res->start, res_size, DRIVER_NAME)) {
+		dev_err(&pdev->dev, "request_mem_region failed\n");
+		return -EBUSY;
+	}
+
+	audmux_base = ioremap(res->start, res_size);
+
+	if (!audmux_base) {
+		dev_err(&pdev->dev, "ioremap failed\n");
+		release_mem_region(res->start, resource_size(res));
+		return -EIO;
+	}
+
+	audmux_clk = clk_get(&pdev->dev, "audmux");
+	if (IS_ERR(audmux_clk)) {
+		dev_warn(&pdev->dev, "cannot get clock: %ld\n",
+				PTR_ERR(audmux_clk));
+		audmux_clk = NULL;
 	}
 
 	audmux_debugfs_init();
+	audmux_res = res;
 
 	return 0;
 }
 
-postcore_initcall(mxc_audmux_v2_init);
+static int __exit mxc_audmux_v2_remove(struct platform_device *pdev)
+{
+	audmux_debugfs_remove();
+	clk_put(audmux_clk);
+	iounmap(audmux_base);
+	release_mem_region(audmux_res->start, resource_size(audmux_res));
+
+	return 0;
+}
+
+static struct platform_driver mxc_audmux_v2_driver = {
+	.remove		= __exit_p(mxc_audmux_v2_remove),
+	.driver	= {
+		.name	= DRIVER_NAME,
+		.owner	= THIS_MODULE,
+	}
+};
+
+static int __init mxc_audmux_v2_init(void)
+{
+	return platform_driver_probe(&mxc_audmux_v2_driver,
+					mxc_audmux_v2_probe);
+}
+subsys_initcall(mxc_audmux_v2_init);
+
+static void __exit mxc_audmux_v2_exit(void)
+{
+	platform_driver_unregister(&mxc_audmux_v2_driver);
+}
+module_exit(mxc_audmux_v2_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:" DRIVER_NAME);
-- 
1.7.5.4

[PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:05

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c
index 4917aab..bb69e71 100644
--- a/arch/arm/mach-imx/mach-mx31ads.c
+++ b/arch/arm/mach-imx/mach-mx31ads.c
@@ -486,10 +486,20 @@ static unsigned int ssi_pins[] = {
 	MX31_PIN_STXD5__STXD5,
 };
 
+static const struct resource audmux_res[] __initconst = {
+	{
+		.start = MX31_AUDMUX_BASE_ADDR,
+		.end = MX31_AUDMUX_SIZE,
+		.flags = IORESOURCE_MEM,
+	},
+};
+
 static void __init mxc_init_audio(void)
 {
 	imx31_add_imx_ssi(0, NULL);
 	mxc_iomux_setup_multiple_pins(ssi_pins, ARRAY_SIZE(ssi_pins), "ssi");
+	imx_add_platform_device("audmux-v2", 0,
+				audmux_res, ARRAY_SIZE(audmux_res), NULL, 0);
 }
 
 /* static mappings */
diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h
index e27619e..8a3d5ef 100644
--- a/arch/arm/plat-mxc/include/mach/mx31.h
+++ b/arch/arm/plat-mxc/include/mach/mx31.h
@@ -66,6 +66,7 @@
 #define MX31_RNGA_BASE_ADDR			(MX31_AIPS2_BASE_ADDR + 0xb0000)
 #define MX31_IPU_CTRL_BASE_ADDR			(MX31_AIPS2_BASE_ADDR + 0xc0000)
 #define MX31_AUDMUX_BASE_ADDR			(MX31_AIPS2_BASE_ADDR + 0xc4000)
+#define MX31_AUDMUX_SIZE			(SZ_16K)
 #define MX31_MPEG4_ENC_BASE_ADDR		(MX31_AIPS2_BASE_ADDR + 0xc8000)
 #define MX31_GPIO1_BASE_ADDR			(MX31_AIPS2_BASE_ADDR + 0xcc000)
 #define MX31_GPIO2_BASE_ADDR			(MX31_AIPS2_BASE_ADDR + 0xd0000)
-- 
1.7.5.4

[PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:06

It's for clean up code under arch/arm.

audmux.h is shared with audmux-v1, leave it under mach/.

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/plat-mxc/Kconfig                        |    3 ---
 arch/arm/plat-mxc/Makefile                       |    1 -
 sound/soc/imx/Kconfig                            |    4 ++++
 sound/soc/imx/Makefile                           |    2 ++
 {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c |    0
 5 files changed, 6 insertions(+), 4 deletions(-)
 rename {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c (100%)
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index dcebb12..9e47d9c 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -91,9 +91,6 @@ config ARCH_MXC_IOMUX_V3
 config ARCH_MXC_AUDMUX_V1
 	bool
 
-config ARCH_MXC_AUDMUX_V2
-	bool
-
 config IRAM_ALLOC
 	bool
 	select GENERIC_ALLOCATOR
diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile
index 076db84f..0cd5d8a 100644
--- a/arch/arm/plat-mxc/Makefile
+++ b/arch/arm/plat-mxc/Makefile
@@ -15,7 +15,6 @@ obj-$(CONFIG_MXC_PWM)  += pwm.o
 obj-$(CONFIG_MXC_ULPI) += ulpi.o
 obj-$(CONFIG_MXC_USE_EPIT) += epit.o
 obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o
-obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o
 obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
 obj-$(CONFIG_CPU_FREQ_IMX)    += cpufreq.o
 ifdef CONFIG_SND_IMX_SOC
diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig
index 7383917..f9eb436 100644
--- a/sound/soc/imx/Kconfig
+++ b/sound/soc/imx/Kconfig
@@ -17,10 +17,14 @@ config SND_MXC_SOC_FIQ
 config SND_MXC_SOC_MX2
 	tristate
 
+config SND_MXC_SOC_AUDMUXV2
+	tristate
+
 config SND_MXC_SOC_WM1133_EV1
 	tristate "Audio on the the i.MX31ADS with WM1133-EV1 fitted"
 	depends on MACH_MX31ADS_WM1133_EV1 && EXPERIMENTAL
 	select SND_SOC_WM8350
+	select SND_MXC_SOC_AUDMUXV2
 	select SND_MXC_SOC_FIQ
 	help
 	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
diff --git a/sound/soc/imx/Makefile b/sound/soc/imx/Makefile
index d6d609b..703ab5e 100644
--- a/sound/soc/imx/Makefile
+++ b/sound/soc/imx/Makefile
@@ -2,10 +2,12 @@
 snd-soc-imx-objs := imx-ssi.o
 snd-soc-imx-fiq-objs := imx-pcm-fiq.o
 snd-soc-imx-mx2-objs := imx-pcm-dma-mx2.o
+snd-soc-imx-audmuxv2-objs := audmux-v2.o
 
 obj-$(CONFIG_SND_IMX_SOC) += snd-soc-imx.o
 obj-$(CONFIG_SND_MXC_SOC_FIQ) += snd-soc-imx-fiq.o
 obj-$(CONFIG_SND_MXC_SOC_MX2) += snd-soc-imx-mx2.o
+obj-$(CONFIG_SND_MXC_SOC_AUDMUXV2) += snd-soc-imx-audmuxv2.o
 
 # i.MX Machine Support
 snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/sound/soc/imx/audmux-v2.c
similarity index 100%
rename from arch/arm/plat-mxc/audmux-v2.c
rename to sound/soc/imx/audmux-v2.c
-- 
1.7.5.4

[PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:07

Signed-off-by: Richard Zhao <redacted>
---
 .../bindings/sound/soc/imx/audmux-v2.txt           |   11 +++++++++++
 sound/soc/imx/audmux-v2.c                          |    8 ++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/soc/imx/audmux-v2.txt
diff --git a/Documentation/devicetree/bindings/sound/soc/imx/audmux-v2.txt b/Documentation/devicetree/bindings/sound/soc/imx/audmux-v2.txt
new file mode 100644
index 0000000..b8ec5aa
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/soc/imx/audmux-v2.txt
@@ -0,0 +1,11 @@
+* Freescale audmux device for imx3, imx5, imx6 etc.
+
+Required properties:
+- compatible : "fsl,imx31-audmux".
+
+Example:
+
+audmux at 021d8000 {
+	compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
+	reg = <0x021d8000 0x4000>;
+};
diff --git a/sound/soc/imx/audmux-v2.c b/sound/soc/imx/audmux-v2.c
index d53c029..af42fca 100644
--- a/sound/soc/imx/audmux-v2.c
+++ b/sound/soc/imx/audmux-v2.c
@@ -20,7 +20,9 @@
 #include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/debugfs.h>
+#include <linux/platform_device.h>
 #include <linux/slab.h>
+#include <linux/of.h>
 #include <mach/audmux.h>
 #include <mach/hardware.h>
 
@@ -244,11 +246,17 @@ static int __exit mxc_audmux_v2_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id audmux_v2_dt_ids[] = {
+	{ .compatible = "fsl,imx31-audmux", },
+	{ /* sentinel */ }
+};
+
 static struct platform_driver mxc_audmux_v2_driver = {
 	.remove		= __exit_p(mxc_audmux_v2_remove),
 	.driver	= {
 		.name	= DRIVER_NAME,
 		.owner	= THIS_MODULE,
+		.of_match_table = audmux_v2_dt_ids,
 	}
 };
 
-- 
1.7.5.4

[PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

From: Richard Zhao <hidden>
Date: 2012-02-02 02:12:08

- enable audmux in dts
- enable audmux in Kconfig

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |    4 ++++
 arch/arm/boot/dts/imx6q.dtsi          |    2 ++
 arch/arm/mach-imx/Kconfig             |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 3a9d32c..5cd6698 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -41,6 +41,10 @@
 				status = "okay";
 			};
 
+			audmux at 021d8000 {
+				status = "okay";
+			};
+
 			uart2: uart at 021e8000 {
 				status = "okay";
 			};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 263e8f3..b0ae495 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -527,7 +527,9 @@
 			};
 
 			audmux at 021d8000 {
+				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
 				reg = <0x021d8000 0x4000>;
+				status = "disabled";
 			};
 
 			mipi at 021dc000 { /* MIPI-CSI */
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4defb97..1aec9c1 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -835,6 +835,7 @@ comment "i.MX6 family:"
 config SOC_IMX6Q
 	bool "i.MX6 Quad support"
 	select ARM_CPU_SUSPEND if PM
+	select ARCH_MXC_AUDMUX_V2
 	select ARM_GIC
 	select CPU_V7
 	select HAVE_ARM_SCU
-- 
1.7.5.4

Re: [PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

From: Richard Zhao <hidden>
Date: 2012-02-02 08:22:29

On Thu, Feb 02, 2012 at 04:30:24PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 10:12:08AM +0800, Richard Zhao wrote:
quoted
- enable audmux in dts
- enable audmux in Kconfig

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |    4 ++++
 arch/arm/boot/dts/imx6q.dtsi          |    2 ++
 arch/arm/mach-imx/Kconfig             |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 3a9d32c..5cd6698 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -41,6 +41,10 @@
 				status = "okay";
 			};
 
+			audmux at 021d8000 {
+				status = "okay";
+			};
+
 			uart2: uart at 021e8000 {
 				status = "okay";
 			};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 263e8f3..b0ae495 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -527,7 +527,9 @@
 			};
 
 			audmux at 021d8000 {
+				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
 				reg = <0x021d8000 0x4000>;
+				status = "disabled";
 			};
 
 			mipi at 021dc000 { /* MIPI-CSI */
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4defb97..1aec9c1 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -835,6 +835,7 @@ comment "i.MX6 family:"
 config SOC_IMX6Q
 	bool "i.MX6 Quad support"
 	select ARM_CPU_SUSPEND if PM
+	select ARCH_MXC_AUDMUX_V2
The ARCH_MXC_AUDMUX_V2 has been removed by patch #7.  Why do you select
it here?
I forgot to remove it when rebase. I can be removed.

Thanks
Richard
Regards,
Shawn
quoted
 	select ARM_GIC
 	select CPU_V7
 	select HAVE_ARM_SCU
-- 
1.7.5.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

From: Shawn Guo <hidden>
Date: 2012-02-02 08:30:24

On Thu, Feb 02, 2012 at 10:12:08AM +0800, Richard Zhao wrote:
quoted hunk
- enable audmux in dts
- enable audmux in Kconfig

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |    4 ++++
 arch/arm/boot/dts/imx6q.dtsi          |    2 ++
 arch/arm/mach-imx/Kconfig             |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 3a9d32c..5cd6698 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -41,6 +41,10 @@
 				status = "okay";
 			};
 
+			audmux at 021d8000 {
+				status = "okay";
+			};
+
 			uart2: uart at 021e8000 {
 				status = "okay";
 			};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 263e8f3..b0ae495 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -527,7 +527,9 @@
 			};
 
 			audmux at 021d8000 {
+				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
 				reg = <0x021d8000 0x4000>;
+				status = "disabled";
 			};
 
 			mipi at 021dc000 { /* MIPI-CSI */
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4defb97..1aec9c1 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -835,6 +835,7 @@ comment "i.MX6 family:"
 config SOC_IMX6Q
 	bool "i.MX6 Quad support"
 	select ARM_CPU_SUSPEND if PM
+	select ARCH_MXC_AUDMUX_V2
The ARCH_MXC_AUDMUX_V2 has been removed by patch #7.  Why do you select
it here?

Regards,
Shawn
 	select ARM_GIC
 	select CPU_V7
 	select HAVE_ARM_SCU
-- 
1.7.5.4

Re: [PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

From: Shawn Guo <hidden>
Date: 2012-02-02 08:32:27

On Thu, Feb 02, 2012 at 10:12:08AM +0800, Richard Zhao wrote:
quoted hunk
- enable audmux in dts
- enable audmux in Kconfig

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/boot/dts/imx6q-sabrelite.dts |    4 ++++
 arch/arm/boot/dts/imx6q.dtsi          |    2 ++
 arch/arm/mach-imx/Kconfig             |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts
index 3a9d32c..5cd6698 100644
--- a/arch/arm/boot/dts/imx6q-sabrelite.dts
+++ b/arch/arm/boot/dts/imx6q-sabrelite.dts
@@ -41,6 +41,10 @@
 				status = "okay";
 			};
 
+			audmux at 021d8000 {
+				status = "okay";
+			};
+
 			uart2: uart at 021e8000 {
 				status = "okay";
 			};
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 263e8f3..b0ae495 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -527,7 +527,9 @@
 			};
 
 			audmux at 021d8000 {
+				compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
 				reg = <0x021d8000 0x4000>;
+				status = "disabled";
 			};
 
 			mipi at 021dc000 { /* MIPI-CSI */
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 4defb97..1aec9c1 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -835,6 +835,7 @@ comment "i.MX6 family:"
 config SOC_IMX6Q
 	bool "i.MX6 Quad support"
 	select ARM_CPU_SUSPEND if PM
+	select ARCH_MXC_AUDMUX_V2
The symbol has been removed by patch #7.  Why do you need to select
it here?

Regards,
Shawn
 	select ARM_GIC
 	select CPU_V7
 	select HAVE_ARM_SCU
-- 

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 08:55:23

On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,

$ git grep -n mxc_audmux_v2_configure_port sound/soc/imx/
sound/soc/imx/wm1133-ev1.c:277: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT1_SSI0, ptcr, pdcr);
sound/soc/imx/wm1133-ev1.c:281: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT5_SSI_PINS_5, ptcr, pdcr);

I guess audmux device needs to be added for all these users.  And for
sake of bisect, it should be added as part of patch #5.

-- 
Regards,
Shawn

Re: [PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx

From: Shawn Guo <hidden>
Date: 2012-02-02 09:02:50

On Thu, Feb 02, 2012 at 10:12:06AM +0800, Richard Zhao wrote:
quoted hunk
It's for clean up code under arch/arm.

audmux.h is shared with audmux-v1, leave it under mach/.

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/plat-mxc/Kconfig                        |    3 ---
 arch/arm/plat-mxc/Makefile                       |    1 -
 sound/soc/imx/Kconfig                            |    4 ++++
 sound/soc/imx/Makefile                           |    2 ++
 {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c |    0
 5 files changed, 6 insertions(+), 4 deletions(-)
 rename {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c (100%)
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index dcebb12..9e47d9c 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -91,9 +91,6 @@ config ARCH_MXC_IOMUX_V3
 config ARCH_MXC_AUDMUX_V1
 	bool
 
-config ARCH_MXC_AUDMUX_V2
-	bool
-
There are 4 more occurrences of the symbol to be removed together.

arch/arm/mach-imx/Kconfig:58:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:75:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:83:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:92:   select ARCH_MXC_AUDMUX_V2

Regards,
Shawn
quoted hunk
 config IRAM_ALLOC
 	bool
 	select GENERIC_ALLOCATOR
diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile
index 076db84f..0cd5d8a 100644
--- a/arch/arm/plat-mxc/Makefile
+++ b/arch/arm/plat-mxc/Makefile
@@ -15,7 +15,6 @@ obj-$(CONFIG_MXC_PWM)  += pwm.o
 obj-$(CONFIG_MXC_ULPI) += ulpi.o
 obj-$(CONFIG_MXC_USE_EPIT) += epit.o
 obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o
-obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o
 obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
 obj-$(CONFIG_CPU_FREQ_IMX)    += cpufreq.o
 ifdef CONFIG_SND_IMX_SOC
diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig
index 7383917..f9eb436 100644
--- a/sound/soc/imx/Kconfig
+++ b/sound/soc/imx/Kconfig
@@ -17,10 +17,14 @@ config SND_MXC_SOC_FIQ
 config SND_MXC_SOC_MX2
 	tristate
 
+config SND_MXC_SOC_AUDMUXV2
+	tristate
+
 config SND_MXC_SOC_WM1133_EV1
 	tristate "Audio on the the i.MX31ADS with WM1133-EV1 fitted"
 	depends on MACH_MX31ADS_WM1133_EV1 && EXPERIMENTAL
 	select SND_SOC_WM8350
+	select SND_MXC_SOC_AUDMUXV2
 	select SND_MXC_SOC_FIQ
 	help
 	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
diff --git a/sound/soc/imx/Makefile b/sound/soc/imx/Makefile
index d6d609b..703ab5e 100644
--- a/sound/soc/imx/Makefile
+++ b/sound/soc/imx/Makefile
@@ -2,10 +2,12 @@
 snd-soc-imx-objs := imx-ssi.o
 snd-soc-imx-fiq-objs := imx-pcm-fiq.o
 snd-soc-imx-mx2-objs := imx-pcm-dma-mx2.o
+snd-soc-imx-audmuxv2-objs := audmux-v2.o
 
 obj-$(CONFIG_SND_IMX_SOC) += snd-soc-imx.o
 obj-$(CONFIG_SND_MXC_SOC_FIQ) += snd-soc-imx-fiq.o
 obj-$(CONFIG_SND_MXC_SOC_MX2) += snd-soc-imx-mx2.o
+obj-$(CONFIG_SND_MXC_SOC_AUDMUXV2) += snd-soc-imx-audmuxv2.o
 
 # i.MX Machine Support
 snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/sound/soc/imx/audmux-v2.c
similarity index 100%
rename from arch/arm/plat-mxc/audmux-v2.c
rename to sound/soc/imx/audmux-v2.c
-- 

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 09:11:34

On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.  Instead, I prefer to call it
from machine driver like what wm1133-ev1 does below.  Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?

Regards,
Shawn
$ git grep -n mxc_audmux_v2_configure_port sound/soc/imx/
sound/soc/imx/wm1133-ev1.c:277: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT1_SSI0, ptcr, pdcr);
sound/soc/imx/wm1133-ev1.c:281: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT5_SSI_PINS_5, ptcr, pdcr);

I guess audmux device needs to be added for all these users.  And for
sake of bisect, it should be added as part of patch #5.

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-02 09:24:28

On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
I didn't grep arch/arm. where is pc043 asoc machine file?
quoted
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.
It don't corrupt git bisect. We don't have to include it in this patch.
 Instead, I prefer to call it
from machine driver like what wm1133-ev1 does below.
Maybe pass the info as asoc machine driver pdata.
 Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?
audux configuration may change after initial set. For example, it may use
one configuration for audio playback, but use another when you connect a
BT audio device.
Regards,
Shawn
quoted
$ git grep -n mxc_audmux_v2_configure_port sound/soc/imx/
sound/soc/imx/wm1133-ev1.c:277: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT1_SSI0, ptcr, pdcr);
sound/soc/imx/wm1133-ev1.c:281: mxc_audmux_v2_configure_port(MX31_AUDMUX_PORT5_SSI_PINS_5, ptcr, pdcr);
It's imx31ads board.
quoted
I guess audmux device needs to be added for all these users.  And for
sake of bisect, it should be added as part of patch #5.
Yes.

Thanks
Richard
quoted
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx

From: Richard Zhao <hidden>
Date: 2012-02-02 09:42:52

On Thu, Feb 02, 2012 at 05:02:50PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 10:12:06AM +0800, Richard Zhao wrote:
quoted
It's for clean up code under arch/arm.

audmux.h is shared with audmux-v1, leave it under mach/.

Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/plat-mxc/Kconfig                        |    3 ---
 arch/arm/plat-mxc/Makefile                       |    1 -
 sound/soc/imx/Kconfig                            |    4 ++++
 sound/soc/imx/Makefile                           |    2 ++
 {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c |    0
 5 files changed, 6 insertions(+), 4 deletions(-)
 rename {arch/arm/plat-mxc => sound/soc/imx}/audmux-v2.c (100%)
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index dcebb12..9e47d9c 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -91,9 +91,6 @@ config ARCH_MXC_IOMUX_V3
 config ARCH_MXC_AUDMUX_V1
 	bool
 
-config ARCH_MXC_AUDMUX_V2
-	bool
-
There are 4 more occurrences of the symbol to be removed together.

arch/arm/mach-imx/Kconfig:58:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:75:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:83:   select ARCH_MXC_AUDMUX_V2
arch/arm/mach-imx/Kconfig:92:   select ARCH_MXC_AUDMUX_V2
right.

Thanks
Richard
Regards,
Shawn

Re: [PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec

From: Fabio Estevam <festevam@gmail.com>
Date: 2012-02-02 11:24:57

Hi Richard,

On Thu, Feb 2, 2012 at 12:12 AM, Richard Zhao [off-list ref] wrote:
Signed-off-by: Richard Zhao <redacted>
---
?arch/arm/boot/dts/imx6q-sabrelite.dts | ? 12 ++++++++++++
?1 files changed, 12 insertions(+), 0 deletions(-)
I would like to test your audio support patch on mx6sabrelite, but the
missing sound/soc/imx-sgtl5000.c does not allow me to do it.

I think you would better introduce sound/soc/imx-sgtl5000.c first (on
separate patch series) so that people could test this patch without
using the imx-sgtl5000.c implementation from the Linaro kernel.

Without imx-sgtl5000.c in place, this patch only introduces dead code
at the moment.

Regards,

Fabio Estevam

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-02 12:09:01

On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
 static void __init mxc_init_audio(void)
 {
 	imx31_add_imx_ssi(0, NULL);
 	mxc_iomux_setup_multiple_pins(ssi_pins, ARRAY_SIZE(ssi_pins), "ssi");
+	imx_add_platform_device("audmux-v2", 0,
+				audmux_res, ARRAY_SIZE(audmux_res), NULL, 0);
Since the audmux is a part of the SoC silicon shouldn't the SoC just
register the device without individual boards having to do anything
(possibly conditional on ASoC being selected in Kconfig or something)?
It's going to be connected in exactly the same fashion on any system
using the SoC.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120202/18cd0d76/attachment.sig>

Re: [PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2

From: Mark Brown <hidden>
Date: 2012-02-02 12:10:20

On Thu, Feb 02, 2012 at 10:12:07AM +0800, Richard Zhao wrote:
+Required properties:
+- compatible : "fsl,imx31-audmux".
+
+Example:
+
+audmux at 021d8000 {
+	compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
+	reg = <0x021d8000 0x4000>;
It's kind of obvious what it is but you should really document the reg
property for completeness.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120202/e5bf6556/attachment.sig>

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 13:09:03

On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
I didn't grep arch/arm. where is pc043 asoc machine file?
It seems to be sound/soc/imx/phycore-ac97.c.
quoted
quoted
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.
It don't corrupt git bisect. We don't have to include it in this patch.
It's logically part of this series.
quoted
 Instead, I prefer to call it
from machine driver like what wm1133-ev1 does below.
Maybe pass the info as asoc machine driver pdata.
Sounds good.
quoted
 Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?
audux configuration may change after initial set. For example, it may use
one configuration for audio playback, but use another when you connect a
BT audio device.
Right.  I forgot this point.

-- 
Regards,
Shawn

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 13:17:18

On Thu, Feb 02, 2012 at 12:09:01PM +0000, Mark Brown wrote:
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
 static void __init mxc_init_audio(void)
 {
 	imx31_add_imx_ssi(0, NULL);
 	mxc_iomux_setup_multiple_pins(ssi_pins, ARRAY_SIZE(ssi_pins), "ssi");
+	imx_add_platform_device("audmux-v2", 0,
+				audmux_res, ARRAY_SIZE(audmux_res), NULL, 0);
Since the audmux is a part of the SoC silicon shouldn't the SoC just
register the device without individual boards having to do anything
(possibly conditional on ASoC being selected in Kconfig or something)?
It's going to be connected in exactly the same fashion on any system
using the SoC.
Hmm, we are trying to save adding the device for those boards which do
not route any audmux pins out at all.

-- 
Regards,
Shawn

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-02 13:26:18

On Thu, Feb 02, 2012 at 09:17:18PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 12:09:01PM +0000, Mark Brown wrote:
quoted
Since the audmux is a part of the SoC silicon shouldn't the SoC just
register the device without individual boards having to do anything
(possibly conditional on ASoC being selected in Kconfig or something)?
It's going to be connected in exactly the same fashion on any system
using the SoC.
Hmm, we are trying to save adding the device for those boards which do
not route any audmux pins out at all.
That's why I'm saying perhaps make it conditional on having ASoC built
(or even on having the AUDMUX driver built).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120202/c5e5f132/attachment-0001.sig>

Re: [PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec

From: Richard Zhao <hidden>
Date: 2012-02-02 13:49:09

On Thu, Feb 02, 2012 at 09:24:57AM -0200, Fabio Estevam wrote:
Hi Richard,

On Thu, Feb 2, 2012 at 12:12 AM, Richard Zhao [off-list ref] wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
?arch/arm/boot/dts/imx6q-sabrelite.dts | ? 12 ++++++++++++
?1 files changed, 12 insertions(+), 0 deletions(-)
I would like to test your audio support patch on mx6sabrelite, but the
missing sound/soc/imx-sgtl5000.c does not allow me to do it.
I have a test branch. I'll push to my linaro git  on git.linaro.org tomorrow.
I think you would better introduce sound/soc/imx-sgtl5000.c first (on
separate patch series) so that people could test this patch without
using the imx-sgtl5000.c implementation from the Linaro kernel.

Without imx-sgtl5000.c in place, this patch only introduces dead code
at the moment.
Each patch make sense too without sgtl5000. 

Thanks
Richard
Regards,

Fabio Estevam

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-02 13:58:07

On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
I didn't grep arch/arm. where is pc043 asoc machine file?
It seems to be sound/soc/imx/phycore-ac97.c.
You see, we're not famaliar with the boards.
quoted
quoted
quoted
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.
It don't corrupt git bisect. We don't have to include it in this patch.
It's logically part of this series.
I don't know much about the above boards and I can not test either. I think I
have to leave it to other volunteers. I mainly focus on audmux itself.
quoted
quoted
 Instead, I prefer to call it
from machine driver like what wm1133-ev1 does below.
Maybe pass the info as asoc machine driver pdata.
Sounds good.
quoted
quoted
 Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?
audux configuration may change after initial set. For example, it may use
one configuration for audio playback, but use another when you connect a
BT audio device.
Right.  I forgot this point.

-- 
Regards,
Shawn

Re: [PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2

From: Richard Zhao <hidden>
Date: 2012-02-02 14:02:15

On Thu, Feb 02, 2012 at 12:10:20PM +0000, Mark Brown wrote:
On Thu, Feb 02, 2012 at 10:12:07AM +0800, Richard Zhao wrote:
quoted
+Required properties:
+- compatible : "fsl,imx31-audmux".
+
+Example:
+
+audmux at 021d8000 {
+	compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
+	reg = <0x021d8000 0x4000>;
It's kind of obvious what it is but you should really document the reg
property for completeness.
Right.

Thanks
Richard

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-02 14:09:30

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
It's logically part of this series.
I don't know much about the above boards and I can not test either. I think I
have to leave it to other volunteers. I mainly focus on audmux itself.
For stuff like this a build test and CCing the relevant maintainers is
fine, you don't need to test everything.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120202/891c1602/attachment.sig>

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 14:11:26

On Thu, Feb 02, 2012 at 01:26:18PM +0000, Mark Brown wrote:
On Thu, Feb 02, 2012 at 09:17:18PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 12:09:01PM +0000, Mark Brown wrote:
quoted
quoted
Since the audmux is a part of the SoC silicon shouldn't the SoC just
register the device without individual boards having to do anything
(possibly conditional on ASoC being selected in Kconfig or something)?
It's going to be connected in exactly the same fashion on any system
using the SoC.
quoted
Hmm, we are trying to save adding the device for those boards which do
not route any audmux pins out at all.
That's why I'm saying perhaps make it conditional on having ASoC built
(or even on having the AUDMUX driver built).
Do you mean by having the below in some place like function
imx31_soc_init()?

#ifdef CONFIG_SND_MXC_SOC_AUDMUXV2
	imx_add_platform_device("audmux-v2", 0,
		audmux_res, ARRAY_SIZE(audmux_res), NULL, 0);
#endif

I do not think it's nice and consistent to the way that imx
sub-architecture adds platform device.

Furthermore, when a DT based board boots here, the code is broken.
Explicitly adding the device by individual board as needed can easily
align with DT based boards.  By default, the audmux node in <soc>.dtsi
file has status = "disabled", and any board that needs audmux device
only need to overwrite status property of audmux node as 'okay' in its
<board>.dts.  Then DT core will add the audmux device when the board
boots.

-- 
Regards,
Shawn

Re: [PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec

From: Fabio Estevam <festevam@gmail.com>
Date: 2012-02-02 14:15:52

On 2/2/12, Richard Zhao [off-list ref] wrote:
quoted
Without imx-sgtl5000.c in place, this patch only introduces dead code
at the moment.
Each patch make sense too without sgtl5000.
Well, as this patch goal is to provide audio support to mx6sabrelite,
we need imx-sgtl5000 in place to test it, right? How can we know that
don't get a kernel oops or something?

Regards,

Fabio Estevam

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-02 14:16:36

On Thu, Feb 02, 2012 at 10:11:26PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 01:26:18PM +0000, Mark Brown wrote:
quoted
That's why I'm saying perhaps make it conditional on having ASoC built
(or even on having the AUDMUX driver built).
Do you mean by having the below in some place like function
imx31_soc_init()?
#ifdef CONFIG_SND_MXC_SOC_AUDMUXV2
	imx_add_platform_device("audmux-v2", 0,
		audmux_res, ARRAY_SIZE(audmux_res), NULL, 0);
#endif
Yes (you need to check for module too, there's a macro for that the name
of which escapes me right now).
I do not think it's nice and consistent to the way that imx
sub-architecture adds platform device.
Well, the i.MX thus far has had relatively few of these always present
type devices - it makes sense to make things conditional for devices
with external signals but for things entirely within the SoC the above
is less work.
Furthermore, when a DT based board boots here, the code is broken.
Explicitly adding the device by individual board as needed can easily
align with DT based boards.  By default, the audmux node in <soc>.dtsi
file has status = "disabled", and any board that needs audmux device
only need to overwrite status property of audmux node as 'okay' in its
<board>.dts.  Then DT core will add the audmux device when the board
boots.
That seems like more work than is needed for boards, same issue applies.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120202/21058621/attachment.sig>

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-02 14:25:40

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
I didn't grep arch/arm. where is pc043 asoc machine file?
It seems to be sound/soc/imx/phycore-ac97.c.
You see, we're not famaliar with the boards.
It does not need to be familiar with the board to find that out.  I'm
not familiar with the board either, but I gave the answer.
quoted
quoted
quoted
quoted
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.
It don't corrupt git bisect. We don't have to include it in this patch.
It's logically part of this series.
I don't know much about the above boards and I can not test either. I think I
have to leave it to other volunteers. I mainly focus on audmux itself.
Since you get there, you should be the one cleaning that up.  You will
need to touch those board files anyway, since you need to add audmux
device for those boards.  So no hardware for testing is not an excuse.
For those boards, all you need to do are:

 * Change and compile-test the code
 * Cc board maintainers when submitting the patch

We will wait for board maintainers to respond for a reasonable period
of time.  If we do not get any response during the time, we will send
patch upstream anyway.

-- 
Regards,
Shawn

Re: [PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec

From: Richard Zhao <hidden>
Date: 2012-02-02 14:41:18

On Thu, Feb 02, 2012 at 12:15:52PM -0200, Fabio Estevam wrote:
On 2/2/12, Richard Zhao [off-list ref] wrote:
quoted
quoted
Without imx-sgtl5000.c in place, this patch only introduces dead code
at the moment.
Each patch make sense too without sgtl5000.
Well, as this patch goal is to provide audio support to mx6sabrelite,
we need imx-sgtl5000 in place to test it, right?
My goal seem less important here. You see I'm adding more and more things
into the patch series, which is out of my goal. The maintainers only
consider right patch go to right git.
 How can we know that
don't get a kernel oops or something?
patch pass building is possible go to upstream too.
Regards,

Fabio Estevam

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-03 02:15:54

adding Eric B?nard.

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
It's machine specific code, though audmux driver is common. Might be ok?
The asoc machine file for the above 3 boards is not platform driver, and
don't get any plat info.

Sascha, Any suggestion? I saw pcm043 board was added by you. 
quoted
quoted
I didn't grep arch/arm. where is pc043 asoc machine file?
It seems to be sound/soc/imx/phycore-ac97.c.
You see, we're not famaliar with the boards.
quoted
quoted
quoted
quoted
As we are moving audmux into sound/soc/imx, it makes less sense to
still keep these calls in board files.
It don't corrupt git bisect. We don't have to include it in this patch.
It's logically part of this series.
I don't know much about the above boards and I can not test either. I think I
have to leave it to other volunteers. I mainly focus on audmux itself.
quoted
quoted
quoted
 Instead, I prefer to call it
from machine driver like what wm1133-ev1 does below.
Maybe pass the info as asoc machine driver pdata.
Sorry, they're not platform drivers.
quoted
Sounds good.
quoted
quoted
 Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?
audux configuration may change after initial set. For example, it may use
one configuration for audio playback, but use another when you connect a
BT audio device.
Right.  I forgot this point.

-- 
Regards,
Shawn

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-03 13:27:14

On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
...
quoted
quoted
 Or we can simply
make the it a audmux-self call with 3 parameters it needs retrieved
from platform_data or device tree, so that machine driver does not
even bother with the call.  Makes sense?
audux configuration may change after initial set. For example, it may use
one configuration for audio playback, but use another when you connect a
BT audio device.
Right.  I forgot this point.
With a second thought on this, we can still do this as long as we have
mxc_audmux_v2_configure_port() exported.  For init-time setup, we can
just do it in audmux driver probe function.

-- 
Regards,
Shawn

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Shawn Guo <hidden>
Date: 2012-02-03 13:32:42

On Fri, Feb 03, 2012 at 10:15:54AM +0800, Richard Zhao wrote:
adding Eric B?nard.

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao wrote:
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using mxc_audmux_v2_configure_port().

$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:     mxc_audmux_v2_configure_port(4,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:     mxc_audmux_v2_configure_port(0,
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:     mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:365:    mxc_audmux_v2_configure_port(3,
arch/arm/mach-imx/mach-pcm043.c:371:    mxc_audmux_v2_configure_port(0,
It's machine specific code, though audmux driver is common. Might be ok?
With audmux driver moved out, it's not ok to me to have board file
call this function.
The asoc machine file for the above 3 boards is not platform driver, and
don't get any plat info.
It can be nicely solved if we do these initial setup in audmux driver
probe function with the configuration data retrieved from audmux
platform data or device tree.

-- 
Regards,
Shawn

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-05 04:50:15


Shawn Guo [off-list ref] wrote:
On Fri, Feb 03, 2012 at 10:15:54AM +0800, Richard Zhao wrote:
quoted
adding Eric B?nard.

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao
wrote:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using
mxc_audmux_v2_configure_port().
quoted
quoted
quoted
quoted
quoted
quoted
$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:    
mxc_audmux_v2_configure_port(0,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:    
mxc_audmux_v2_configure_port(4,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:    
mxc_audmux_v2_configure_port(0,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:    
mxc_audmux_v2_configure_port(3,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/mach-pcm043.c:365:   
mxc_audmux_v2_configure_port(3,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/mach-pcm043.c:371:   
mxc_audmux_v2_configure_port(0,
quoted
It's machine specific code, though audmux driver is common. Might be
ok?

With audmux driver moved out, it's not ok to me to have board file
call this function.
quoted
The asoc machine file for the above 3 boards is not platform driver,
and
quoted
don't get any plat info.
It can be nicely solved if we do these initial setup in audmux driver
probe function with the configuration data retrieved from audmux
platform data or device tree.
no, it is asoc machine driver to have machine specific code. 
the machine driver do not correspond to any hw device, which cause hard to bind dt or create platform device.
-- 
Regards,
Shawn

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

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-14 01:35:07

On Sun, Feb 05, 2012 at 12:50:15PM +0800, Richard Zhao wrote:

Shawn Guo [off-list ref] wrote:
quoted
On Fri, Feb 03, 2012 at 10:15:54AM +0800, Richard Zhao wrote:
quoted
adding Eric B?nard.

On Thu, Feb 02, 2012 at 09:58:07PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 09:09:03PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 05:24:28PM +0800, Richard Zhao wrote:
quoted
On Thu, Feb 02, 2012 at 05:11:34PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 04:55:23PM +0800, Shawn Guo wrote:
quoted
On Thu, Feb 02, 2012 at 10:12:05AM +0800, Richard Zhao
wrote:
quoted
quoted
quoted
quoted
quoted
quoted
quoted
Signed-off-by: Richard Zhao <redacted>
---
 arch/arm/mach-imx/mach-mx31ads.c      |   10 ++++++++++
 arch/arm/plat-mxc/include/mach/mx31.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Hmm, let's see who are actually using
mxc_audmux_v2_configure_port().
quoted
quoted
quoted
quoted
quoted
quoted
$ git grep -n mxc_audmux_v2_configure_port arch/arm/
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:246:    
mxc_audmux_v2_configure_port(0,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c:254:    
mxc_audmux_v2_configure_port(4,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:257:    
mxc_audmux_v2_configure_port(0,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c:265:    
mxc_audmux_v2_configure_port(3,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/mach-pcm043.c:365:   
mxc_audmux_v2_configure_port(3,
quoted
quoted
quoted
quoted
quoted
quoted
arch/arm/mach-imx/mach-pcm043.c:371:   
mxc_audmux_v2_configure_port(0,
quoted
It's machine specific code, though audmux driver is common. Might be
ok?

With audmux driver moved out, it's not ok to me to have board file
call this function.
quoted
The asoc machine file for the above 3 boards is not platform driver,
and
quoted
don't get any plat info.
It can be nicely solved if we do these initial setup in audmux driver
probe function with the configuration data retrieved from audmux
platform data or device tree.
no, it is asoc machine driver to have machine specific code. 
the machine driver do not correspond to any hw device, which cause hard
to bind dt or create platform device.
I'll have to keep audmux driver in arch/, till ASOC machine driver
has a way to get platfrom parameters.

Thanks
Richard
quoted
-- 
Regards,
Shawn

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

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-14 06:06:28

On Tue, Feb 14, 2012 at 09:35:07AM +0800, Richard Zhao wrote:
On Sun, Feb 05, 2012 at 12:50:15PM +0800, Richard Zhao wrote:
quoted
no, it is asoc machine driver to have machine specific code. 
the machine driver do not correspond to any hw device, which cause hard
to bind dt or create platform device.
I'll have to keep audmux driver in arch/, till ASOC machine driver
has a way to get platfrom parameters.
Machine drivers can easily get platform data, they're just regular
drivers of whatever type so can get platform data in the same way that
any other driver for their bus can.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120213/8c785d8b/attachment.sig>

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Richard Zhao <hidden>
Date: 2012-02-14 07:34:15

On Mon, Feb 13, 2012 at 10:06:28PM -0800, Mark Brown wrote:
On Tue, Feb 14, 2012 at 09:35:07AM +0800, Richard Zhao wrote:
quoted
On Sun, Feb 05, 2012 at 12:50:15PM +0800, Richard Zhao wrote:
quoted
quoted
no, it is asoc machine driver to have machine specific code. 
the machine driver do not correspond to any hw device, which cause hard
to bind dt or create platform device.
quoted
I'll have to keep audmux driver in arch/, till ASOC machine driver
has a way to get platfrom parameters.
Machine drivers can easily get platform data, they're just regular
drivers of whatever type so can get platform data in the same way that
any other driver for their bus can.
Machine drivers don't correspond to any hw devices. If we create a
virtual platform device, it'll be hard for DT binding.

Thanks
Richard

Re: [PATCH v2 6/9] ARM: mx31ads: add audmux device

From: Mark Brown <hidden>
Date: 2012-02-14 17:23:43

On Tue, Feb 14, 2012 at 03:34:15PM +0800, Richard Zhao wrote:
On Mon, Feb 13, 2012 at 10:06:28PM -0800, Mark Brown wrote:
quoted
Machine drivers can easily get platform data, they're just regular
drivers of whatever type so can get platform data in the same way that
any other driver for their bus can.
Machine drivers don't correspond to any hw devices. If we create a
virtual platform device, it'll be hard for DT binding.
As has been discussed repeatedly and at some considerable length the
board design for audio is considered sufficiently interesting to be
worth representing in the device tree directly, there are plenty of
choices made during board design.  There is absolutely no technical
problem from doing this on the device tree side.

People working on device tree really need to talk to each other more...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120214/e4642b63/attachment.sig>

Re: [PATCH v2 0/9] imx patches when I enable imx6q sabrelite audio

From: Shawn Guo <hidden>
Date: 2012-02-27 07:59:02

On Thu, Feb 02, 2012 at 10:11:59AM +0800, Richard Zhao wrote:
Changes in v2:

 - change dt peroperty/label to lower case as much as possible
   keep XXX-supply property upper case.
 - convert audmux-v2 to platform device driver
 - move audmux-v2 driver to sound/soc/imx

[PATCH v2 1/9] ARM: mxc: make imx_dma_is_general_purpose more
[PATCH v2 2/9] ARM: imx6q: add cko1 clock
[PATCH v2 3/9] ARM: dts: imx6q-sabrelite: add 2p5v and 3p3v
[PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec
I applied patch 1 ~ 4.  Thanks.

Regards,
Shawn
[PATCH v2 5/9] ARM: mxc: convert audmux-v2 to a platform driver
[PATCH v2 6/9] ARM: mx31ads: add audmux device
[PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx
[PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2
[PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support

Re: [PATCH v2 0/9] imx patches when I enable imx6q sabrelite audio

From: Richard Zhao <hidden>
Date: 2012-02-28 12:07:28

On Mon, Feb 27, 2012 at 03:59:02PM +0800, Shawn Guo wrote:
On Thu, Feb 02, 2012 at 10:11:59AM +0800, Richard Zhao wrote:
quoted
Changes in v2:

 - change dt peroperty/label to lower case as much as possible
   keep XXX-supply property upper case.
 - convert audmux-v2 to platform device driver
 - move audmux-v2 driver to sound/soc/imx

[PATCH v2 1/9] ARM: mxc: make imx_dma_is_general_purpose more
[PATCH v2 2/9] ARM: imx6q: add cko1 clock
[PATCH v2 3/9] ARM: dts: imx6q-sabrelite: add 2p5v and 3p3v
[PATCH v2 4/9] ARM: dts: imx6q-sabrelite: add sgtl5000 audio codec
I applied patch 1 ~ 4.  Thanks.
Thanks. I'll continue to work on other patches in this series after
your audio work get it. and feel free to take any patch you need.

Richard
Regards,
Shawn
quoted
[PATCH v2 5/9] ARM: mxc: convert audmux-v2 to a platform driver
[PATCH v2 6/9] ARM: mx31ads: add audmux device
[PATCH v2 7/9] ARM: mxc: move audmux-v2 to sound/soc/imx
[PATCH v2 8/9] ASoC: imx: add dt support for audmux-v2
[PATCH v2 9/9] ARM: imx6q-sabrelite: add audmux support
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help