Loading arch/arm/mach-mx2/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -6,11 +6,13 @@ choice config MACH_MX21 bool "i.MX21 support" select ARCH_MXC_AUDMUX_V1 help This enables support for Freescale's MX2 based i.MX21 processor. config MACH_MX27 bool "i.MX27 support" select ARCH_MXC_AUDMUX_V1 help This enables support for Freescale's MX2 based i.MX27 processor. Loading arch/arm/mach-mx3/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -2,11 +2,13 @@ if ARCH_MX3 config ARCH_MX31 select ARCH_HAS_RNGA select ARCH_MXC_AUDMUX_V2 bool config ARCH_MX35 bool select ARCH_MXC_IOMUX_V3 select ARCH_MXC_AUDMUX_V2 comment "MX3 platforms:" Loading arch/arm/plat-mxc/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -78,4 +78,11 @@ config ARCH_HAS_RNGA config ARCH_MXC_IOMUX_V3 bool config ARCH_MXC_AUDMUX_V1 bool config ARCH_MXC_AUDMUX_V2 bool endif arch/arm/plat-mxc/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,5 @@ obj-$(CONFIG_ARCH_MX2) += iomux-mx1-mx2.o dma-mx1-mx2.o obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o obj-$(CONFIG_MXC_PWM) += pwm.o obj-$(CONFIG_MXC_ULPI) += ulpi.o obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o arch/arm/plat-mxc/audmux-v1.c 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2009 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de> * * Initial development of this code was funded by * Phytec Messtechnik GmbH, http://www.phytec.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/module.h> #include <linux/err.h> #include <linux/io.h> #include <linux/clk.h> #include <mach/audmux.h> #include <mach/hardware.h> static void __iomem *audmux_base; #define MXC_AUDMUX_V1_PCR(x) ((x) * 4) int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) { if (!audmux_base) { printk("%s: not configured\n", __func__); return -ENOSYS; } writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port)); return 0; } EXPORT_SYMBOL_GPL(mxc_audmux_v1_configure_port); static int mxc_audmux_v1_init(void) { if (cpu_is_mx27() || cpu_is_mx21()) audmux_base = IO_ADDRESS(AUDMUX_BASE_ADDR); return 0; } postcore_initcall(mxc_audmux_v1_init); Loading
arch/arm/mach-mx2/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -6,11 +6,13 @@ choice config MACH_MX21 bool "i.MX21 support" select ARCH_MXC_AUDMUX_V1 help This enables support for Freescale's MX2 based i.MX21 processor. config MACH_MX27 bool "i.MX27 support" select ARCH_MXC_AUDMUX_V1 help This enables support for Freescale's MX2 based i.MX27 processor. Loading
arch/arm/mach-mx3/Kconfig +2 −0 Original line number Diff line number Diff line Loading @@ -2,11 +2,13 @@ if ARCH_MX3 config ARCH_MX31 select ARCH_HAS_RNGA select ARCH_MXC_AUDMUX_V2 bool config ARCH_MX35 bool select ARCH_MXC_IOMUX_V3 select ARCH_MXC_AUDMUX_V2 comment "MX3 platforms:" Loading
arch/arm/plat-mxc/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -78,4 +78,11 @@ config ARCH_HAS_RNGA config ARCH_MXC_IOMUX_V3 bool config ARCH_MXC_AUDMUX_V1 bool config ARCH_MXC_AUDMUX_V2 bool endif
arch/arm/plat-mxc/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -10,3 +10,5 @@ obj-$(CONFIG_ARCH_MX2) += iomux-mx1-mx2.o dma-mx1-mx2.o obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o obj-$(CONFIG_MXC_PWM) += pwm.o obj-$(CONFIG_MXC_ULPI) += ulpi.o obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o
arch/arm/plat-mxc/audmux-v1.c 0 → 100644 +53 −0 Original line number Diff line number Diff line /* * Copyright 2009 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de> * * Initial development of this code was funded by * Phytec Messtechnik GmbH, http://www.phytec.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/module.h> #include <linux/err.h> #include <linux/io.h> #include <linux/clk.h> #include <mach/audmux.h> #include <mach/hardware.h> static void __iomem *audmux_base; #define MXC_AUDMUX_V1_PCR(x) ((x) * 4) int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) { if (!audmux_base) { printk("%s: not configured\n", __func__); return -ENOSYS; } writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port)); return 0; } EXPORT_SYMBOL_GPL(mxc_audmux_v1_configure_port); static int mxc_audmux_v1_init(void) { if (cpu_is_mx27() || cpu_is_mx21()) audmux_base = IO_ADDRESS(AUDMUX_BASE_ADDR); return 0; } postcore_initcall(mxc_audmux_v1_init);