]> Pileus Git - ~andy/linux/blobdiff - arch/arm/plat-mxc/audmux-v1.c
Merge branch 'thermal-2.6.33' into release
[~andy/linux] / arch / arm / plat-mxc / audmux-v1.c
index 70ab5aff2b9e7e700a90577498b1bf25a8cf8cae..da6387dcdf21897d5f118c3d238d8d92f098aa47 100644 (file)
@@ -28,7 +28,9 @@
 
 static void __iomem *audmux_base;
 
-#define MXC_AUDMUX_V1_PCR(x)   ((x) * 4)
+static unsigned char port_mapping[] = {
+       0x0, 0x4, 0x8, 0x10, 0x14, 0x1c,
+};
 
 int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr)
 {
@@ -37,7 +39,10 @@ int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr)
                return -ENOSYS;
        }
 
-       writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port));
+       if (port >= ARRAY_SIZE(port_mapping))
+               return -EINVAL;
+
+       writel(pcr, audmux_base + port_mapping[port]);
 
        return 0;
 }