summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorXinyu Chen <xinyu.chen@freescale.com>2010-04-29 12:54:48 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2010-04-29 12:54:48 +0800
commitbf96fdef15852477030a2df26c08c8fbd2989841 (patch)
treefb39e3a9485abb34d934fa6a9bab59974ad63960 /arch
parent9b518b4f6c93b55096a66f5440fcb69e84feae80 (diff)
ENGR00123017 MX53 Add support for MLB
Add support for MLB by adding MLB MSL codes. Signed-off-by: Xinyu Chen <xinyu.chen@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/imx5_defconfig3
-rw-r--r--arch/arm/mach-mx5/devices.c22
-rw-r--r--arch/arm/mach-mx5/devices.h2
-rw-r--r--arch/arm/mach-mx5/dummy_gpio.c8
-rw-r--r--arch/arm/mach-mx5/mx53_evk.c6
-rw-r--r--arch/arm/mach-mx5/mx53_evk_gpio.c18
6 files changed, 53 insertions, 6 deletions
diff --git a/arch/arm/configs/imx5_defconfig b/arch/arm/configs/imx5_defconfig
index 7f43f93e679f..7d0cb2fede8d 100644
--- a/arch/arm/configs/imx5_defconfig
+++ b/arch/arm/configs/imx5_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.31
-# Mon Apr 26 10:27:23 2010
+# Thu Apr 29 12:53:21 2010
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
@@ -1797,6 +1797,7 @@ CONFIG_GPS_IOCTRL=m
#
# MXC Media Local Bus Driver
#
+CONFIG_MXC_MLB=m
#
# i.MX ADC support
diff --git a/arch/arm/mach-mx5/devices.c b/arch/arm/mach-mx5/devices.c
index db52d554a429..2c8d56653a18 100644
--- a/arch/arm/mach-mx5/devices.c
+++ b/arch/arm/mach-mx5/devices.c
@@ -1072,6 +1072,26 @@ static inline void mxc_init_gpu2d(void)
}
#endif
+static struct resource mlb_resources[] = {
+ [0] = {
+ .start = MLB_BASE_ADDR,
+ .end = MLB_BASE_ADDR + 0x300,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = MXC_INT_MLB,
+ .end = MXC_INT_MLB,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device mxc_mlb_device = {
+ .name = "mxc_mlb",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(mlb_resources),
+ .resource = mlb_resources,
+};
+
void __init mx5_init_irq(void)
{
unsigned long tzic_addr;
@@ -1382,6 +1402,8 @@ int __init mxc_init_devices(void)
mxc_gpu2d_resources[0].end = MX53_GPU2D_BASE_ADDR + SZ_4K - 1;
ipu_resources[0].start = MX53_IPU_CTRL_BASE_ADDR;
ipu_resources[0].end = MX53_IPU_CTRL_BASE_ADDR + SZ_128M - 1;
+ mlb_resources[0].start -= MX53_OFFSET;
+ mlb_resources[0].end -= MX53_OFFSET;
} else if (cpu_is_mx51_rev(CHIP_REV_2_0) < 0) {
scc_resources[1].start += 0x8000;
scc_resources[1].end += 0x8000;
diff --git a/arch/arm/mach-mx5/devices.h b/arch/arm/mach-mx5/devices.h
index dfaf7df5c5ca..eeb06e45508f 100644
--- a/arch/arm/mach-mx5/devices.h
+++ b/arch/arm/mach-mx5/devices.h
@@ -61,4 +61,4 @@ extern struct platform_device mxc_usbdr_otg_device;
extern struct platform_device mxc_usbdr_host_device;
extern struct platform_device mxc_usbh1_device;
extern struct platform_device mxc_usbh2_device;
-
+extern struct platform_device mxc_mlb_device;
diff --git a/arch/arm/mach-mx5/dummy_gpio.c b/arch/arm/mach-mx5/dummy_gpio.c
index 8d9537d31026..6766cdf43911 100644
--- a/arch/arm/mach-mx5/dummy_gpio.c
+++ b/arch/arm/mach-mx5/dummy_gpio.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2007-2009 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2007-2010 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -111,3 +111,9 @@ EXPORT_SYMBOL(gpio_spdif_active);
void gpio_spdif_inactive(void) {}
EXPORT_SYMBOL(gpio_spdif_inactive);
+
+void gpio_mlb_active(void) {}
+EXPORT_SYMBOL(gpio_mlb_active);
+
+void gpio_mlb_inactive(void) {}
+EXPORT_SYMBOL(gpio_mlb_inactive);
diff --git a/arch/arm/mach-mx5/mx53_evk.c b/arch/arm/mach-mx5/mx53_evk.c
index c42ba3d007d6..9e187de86452 100644
--- a/arch/arm/mach-mx5/mx53_evk.c
+++ b/arch/arm/mach-mx5/mx53_evk.c
@@ -511,6 +511,11 @@ static struct platform_device mxc_sgtl5000_device = {
.name = "imx-3stack-sgtl5000",
};
+static struct mxc_mlb_platform_data mlb_data = {
+ .reg_nvcc = "VCAM",
+ .mlb_clk = "mlb_clk",
+};
+
/*!
* Board specific fixup function. It is called by \b setup_arch() in
* setup.c file very early on during kernel starts. It allows the user to
@@ -678,6 +683,7 @@ static void __init mxc_board_init(void)
pm_power_off = mxc_power_off;
*/
mxc_register_device(&mxc_sgtl5000_device, &sgtl5000_data);
+ mxc_register_device(&mxc_mlb_device, &mlb_data);
mx5_usb_dr_init();
mx5_usbh1_init();
}
diff --git a/arch/arm/mach-mx5/mx53_evk_gpio.c b/arch/arm/mach-mx5/mx53_evk_gpio.c
index da0b47d02b7f..295983feadb3 100644
--- a/arch/arm/mach-mx5/mx53_evk_gpio.c
+++ b/arch/arm/mach-mx5/mx53_evk_gpio.c
@@ -187,16 +187,28 @@ static struct mxc_iomux_pin_cfg __initdata mxc_iomux_pins[] = {
INPUT_CTL_PATH1,
},
{
- MX53_PIN_GPIO_2, IOMUX_CONFIG_GPIO,
+ MX53_PIN_GPIO_2, IOMUX_CONFIG_ALT7,
+ (PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL |
+ PAD_CTL_DRV_HIGH),
+ MUX_IN_MLB_MLBDAT_IN_SELECT_INPUT,
+ INPUT_CTL_PATH2,
},
{
- MX53_PIN_GPIO_3, IOMUX_CONFIG_GPIO,
+ MX53_PIN_GPIO_3, IOMUX_CONFIG_ALT7,
+ (PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL |
+ PAD_CTL_DRV_HIGH),
+ MUX_IN_MLB_MLBCLK_IN_SELECT_INPUT,
+ INPUT_CTL_PATH2,
},
{
MX53_PIN_GPIO_4, IOMUX_CONFIG_GPIO,
},
{
- MX53_PIN_GPIO_6, IOMUX_CONFIG_GPIO,
+ MX53_PIN_GPIO_6, IOMUX_CONFIG_ALT7,
+ (PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL |
+ PAD_CTL_DRV_HIGH),
+ MUX_IN_MLB_MLBSIG_IN_SELECT_INPUT,
+ INPUT_CTL_PATH2,
},
{
MX53_PIN_GPIO_7, IOMUX_CONFIG_GPIO,