Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2405fc97 authored by Shawn Guo's avatar Shawn Guo Committed by Mark Brown
Browse files

ARM: imx: merge audmux-v1 and audmux-v2



It merges audmux-v1 and audmux-v2 under arch/arm/plat-mxc into one.

Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 17ec38a8
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -46,7 +46,7 @@ config SOC_IMX21
	bool
	bool
	select MACH_MX21
	select MACH_MX21
	select CPU_ARM926T
	select CPU_ARM926T
	select ARCH_MXC_AUDMUX_V1
	select ARCH_MXC_AUDMUX
	select IMX_HAVE_DMA_V1
	select IMX_HAVE_DMA_V1
	select IMX_HAVE_IOMUX_V1
	select IMX_HAVE_IOMUX_V1
	select MXC_AVIC
	select MXC_AVIC
@@ -55,7 +55,7 @@ config SOC_IMX25
	bool
	bool
	select ARCH_MX25
	select ARCH_MX25
	select CPU_ARM926T
	select CPU_ARM926T
	select ARCH_MXC_AUDMUX_V2
	select ARCH_MXC_AUDMUX
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_IOMUX_V3
	select MXC_AVIC
	select MXC_AVIC


@@ -63,7 +63,7 @@ config SOC_IMX27
	bool
	bool
	select MACH_MX27
	select MACH_MX27
	select CPU_ARM926T
	select CPU_ARM926T
	select ARCH_MXC_AUDMUX_V1
	select ARCH_MXC_AUDMUX
	select IMX_HAVE_DMA_V1
	select IMX_HAVE_DMA_V1
	select IMX_HAVE_IOMUX_V1
	select IMX_HAVE_IOMUX_V1
	select MXC_AVIC
	select MXC_AVIC
@@ -72,7 +72,7 @@ config SOC_IMX31
	bool
	bool
	select CPU_V6
	select CPU_V6
	select IMX_HAVE_PLATFORM_MXC_RNGA
	select IMX_HAVE_PLATFORM_MXC_RNGA
	select ARCH_MXC_AUDMUX_V2
	select ARCH_MXC_AUDMUX
	select MXC_AVIC
	select MXC_AVIC
	select SMP_ON_UP if SMP
	select SMP_ON_UP if SMP


@@ -80,7 +80,7 @@ config SOC_IMX35
	bool
	bool
	select CPU_V6
	select CPU_V6
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_AUDMUX_V2
	select ARCH_MXC_AUDMUX
	select HAVE_EPIT
	select HAVE_EPIT
	select MXC_AVIC
	select MXC_AVIC
	select SMP_ON_UP if SMP
	select SMP_ON_UP if SMP
@@ -89,7 +89,7 @@ config SOC_IMX5
	select CPU_V7
	select CPU_V7
	select MXC_TZIC
	select MXC_TZIC
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_AUDMUX_V2
	select ARCH_MXC_AUDMUX
	select ARCH_HAS_CPUFREQ
	select ARCH_HAS_CPUFREQ
	select ARCH_MX5
	select ARCH_MX5
	bool
	bool
+1 −4
Original line number Original line Diff line number Diff line
@@ -88,10 +88,7 @@ config IMX_HAVE_IOMUX_V1
config ARCH_MXC_IOMUX_V3
config ARCH_MXC_IOMUX_V3
	bool
	bool


config ARCH_MXC_AUDMUX_V1
config ARCH_MXC_AUDMUX
	bool

config ARCH_MXC_AUDMUX_V2
	bool
	bool


config IRAM_ALLOC
config IRAM_ALLOC
+1 −2
Original line number Original line Diff line number Diff line
@@ -14,8 +14,7 @@ obj-$(CONFIG_IRAM_ALLOC) += iram_alloc.o
obj-$(CONFIG_MXC_PWM)  += pwm.o
obj-$(CONFIG_MXC_PWM)  += pwm.o
obj-$(CONFIG_MXC_ULPI) += ulpi.o
obj-$(CONFIG_MXC_ULPI) += ulpi.o
obj-$(CONFIG_MXC_USE_EPIT) += epit.o
obj-$(CONFIG_MXC_USE_EPIT) += epit.o
obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o
obj-$(CONFIG_ARCH_MXC_AUDMUX) += audmux.o
obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o
obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
obj-$(CONFIG_CPU_FREQ_IMX)    += cpufreq.o
obj-$(CONFIG_CPU_FREQ_IMX)    += cpufreq.o
ifdef CONFIG_SND_IMX_SOC
ifdef CONFIG_SND_IMX_SOC

arch/arm/plat-mxc/audmux-v1.c

deleted100644 → 0
+0 −64
Original line number Original line 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.
 */

#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;

static unsigned char port_mapping[] = {
	0x0, 0x4, 0x8, 0x10, 0x14, 0x1c,
};

int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr)
{
	if (!audmux_base) {
		printk("%s: not configured\n", __func__);
		return -ENOSYS;
	}

	if (port >= ARRAY_SIZE(port_mapping))
		return -EINVAL;

	writel(pcr, audmux_base + port_mapping[port]);

	return 0;
}
EXPORT_SYMBOL_GPL(mxc_audmux_v1_configure_port);

static int mxc_audmux_v1_init(void)
{
#ifdef CONFIG_MACH_MX21
	if (cpu_is_mx21())
		audmux_base = MX21_IO_ADDRESS(MX21_AUDMUX_BASE_ADDR);
	else
#endif
#ifdef CONFIG_MACH_MX27
	if (cpu_is_mx27())
		audmux_base = MX27_IO_ADDRESS(MX27_AUDMUX_BASE_ADDR);
	else
#endif
		(void)0;
	
	return 0;
}

postcore_initcall(mxc_audmux_v1_init);
+26 −3
Original line number Original line Diff line number Diff line
@@ -165,6 +165,24 @@ static inline void audmux_debugfs_init(void)
}
}
#endif
#endif


static const uint8_t port_mapping[] = {
	0x0, 0x4, 0x8, 0x10, 0x14, 0x1c,
};

int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr)
{
	if (!audmux_base)
		return -ENOSYS;

	if (port >= ARRAY_SIZE(port_mapping))
		return -EINVAL;

	writel(pcr, audmux_base + port_mapping[port]);

	return 0;
}
EXPORT_SYMBOL_GPL(mxc_audmux_v1_configure_port);

int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
		unsigned int pdcr)
		unsigned int pdcr)
{
{
@@ -184,7 +202,7 @@ int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr,
}
}
EXPORT_SYMBOL_GPL(mxc_audmux_v2_configure_port);
EXPORT_SYMBOL_GPL(mxc_audmux_v2_configure_port);


static int mxc_audmux_v2_init(void)
static int mxc_audmux_init(void)
{
{
	int ret;
	int ret;
	if (cpu_is_mx51()) {
	if (cpu_is_mx51()) {
@@ -209,11 +227,16 @@ static int mxc_audmux_v2_init(void)
			return ret;
			return ret;
		}
		}
		audmux_base = MX25_IO_ADDRESS(MX25_AUDMUX_BASE_ADDR);
		audmux_base = MX25_IO_ADDRESS(MX25_AUDMUX_BASE_ADDR);
	} else if (cpu_is_mx27()) {
		audmux_base = MX27_IO_ADDRESS(MX27_AUDMUX_BASE_ADDR);
	} else if (cpu_is_mx21()) {
		audmux_base = MX21_IO_ADDRESS(MX21_AUDMUX_BASE_ADDR);
	}
	}


	if (!cpu_is_mx2())
		audmux_debugfs_init();
		audmux_debugfs_init();


	return 0;
	return 0;
}
}


postcore_initcall(mxc_audmux_v2_init);
postcore_initcall(mxc_audmux_init);