Hi Sascha,<br>as you know I have been testing your i.MX27 support and I have found a problem in this audmux patch.<br><br>Please, see my comment below:<br><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
+++ b/arch/arm/plat-mxc/audmux-v1.c<br>
@@ -0,0 +1,53 @@<br>
+/*<br>
+ * Copyright 2009 Pengutronix, Sascha Hauer <<a href="mailto:s.hauer@pengutronix.de">s.hauer@pengutronix.de</a>><br>
+ *<br>
+ * Initial development of this code was funded by<br>
+ * Phytec Messtechnik GmbH, <a href="http://www.phytec.de" target="_blank">http://www.phytec.de</a><br>
+ *<br>
+ * This program is free software; you can redistribute it and/or modify<br>
+ * it under the terms of the GNU General Public License as published by<br>
+ * the Free Software Foundation; either version 2 of the License, or<br>
+ * (at your option) any later version.<br>
+ *<br>
+ * This program is distributed in the hope that it will be useful,<br>
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
+ * GNU General Public License for more details.<br>
+ *<br>
+ * You should have received a copy of the GNU General Public License<br>
+ * along with this program; if not, write to the Free Software<br>
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.<br>
+ */<br>
+<br>
+#include <linux/module.h><br>
+#include <linux/err.h><br>
+#include <linux/io.h><br>
+#include <linux/clk.h><br>
+#include <mach/audmux.h><br>
+#include <mach/hardware.h><br>
+<br>
+static void __iomem *audmux_base;<br>
+<br>
+#define MXC_AUDMUX_V1_PCR(x) ((x) * 4)<br></blockquote><div><br>You cannot calculate AUDMUX register offsets this way because according to i.MX27 manual:<br><br>0x1001_6000 (HPCR1) <br>0x1001_6004 (HPCR2) <br>0x1001_6008 (HPCR3) <br>
0x1001_6010 (PPCR1) <-- You are using 0x0C for this<br>0x1001_6014 (PPCR2) <--- You are using 0x10 for this<br>0x1001_601C (PPCR3) <--- You are using 0x18 for this<br> <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
+int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr)<br>
+{<br>
+ if (!audmux_base) {<br>
+ printk("%s: not configured\n", __func__);<br>
+ return -ENOSYS;<br>
+ }<br>
+<br>
+ writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port));<br>
+<br>
+ return 0;<br>
+}<br>
+EXPORT_SYMBOL_GPL(mxc_audmux_v1_configure_port);<br>
+<br>
+static int mxc_audmux_v1_init(void)<br>
+{<br>
+ if (cpu_is_mx27() || cpu_is_mx21())<br>
+ audmux_base = IO_ADDRESS(AUDMUX_BASE_ADDR);<br>
+ return 0;<br>
+}<br>
+<br>
+postcore_initcall(mxc_audmux_v1_init);<br><br>
</blockquote></div><br><br>Thank you.<br><br>-- <br>Javier Martin<br>Vista Silicon S.L.<br>CDTUC - FASE C - Oficina S-345<br>Avda de los Castros s/n<br>39005- Santander. Cantabria. Spain<br>+34 942 25 32 60<br><a href="http://www.vista-silicon.com">www.vista-silicon.com</a><br>