The mxs multiplatform support for 3.10:

* It enables the multiplatform build for mach-mxs platform.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJRYoD8AAoJEFBXWFqHsHzOM40H/iwJ8kf/xWXrSKstVwszLV/U
 Q0hCvUQ0lp+IvywJi+yDD+X/TCFE4lDGY0nDo5ucQouMtfVUk1DfZEjFCYQRN4q8
 32fqQbeBGKwMd0I2f/jCiRRfZlWmpYU6x1j+sFNpJmjUoD92cVByjOQzFvrO9SSM
 LasJUAs9ujDTXfc+/eekG8PCeCweE0cZaKJtingyEF+Ri5kNEnF/1ZmadVuVukgY
 8pND1jYVTOfhdyBgYFhJIFK1xuaGX5CjJTokn86Ue8d6VqPAA/q2eD1PdHkIKZ39
 erOwCuizplU8Nce9cJpAQDz73I4Cxs2qG8UPcqErvLhZNttOw52pYPvhXZXojG8=
 =IJY6
 -----END PGP SIGNATURE-----

Merge tag 'mxs-multiplatform-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6 into next/multiplatform

From Shawn Guo <shawn.guo@linaro.org>:

The mxs multiplatform support for 3.10:

* It enables the multiplatform build for mach-mxs platform.

* tag 'mxs-multiplatform-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6:
  ARM: mxs: enable multiplatform build
  ARM: mxs: rename debug-macro.S for multiplatform build
  ARM: mxs: call mxs_pm_init() as a machine_desc hook

Conflicts:
	arch/arm/Kconfig.debug

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2013-04-09 15:57:59 +02:00
commit d93bea007a
12 changed files with 33 additions and 130 deletions

View file

@ -422,23 +422,6 @@ config ARCH_FOOTBRIDGE
Support for systems based on the DC21285 companion chip Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
config ARCH_MXS
bool "Freescale MXS-based"
select ARCH_REQUIRE_GPIOLIB
select CLKDEV_LOOKUP
select CLKSRC_MMIO
select CLKSRC_OF
select COMMON_CLK
select GENERIC_CLOCKEVENTS
select HAVE_CLK_PREPARE
select MULTI_IRQ_HANDLER
select PINCTRL
select SPARSE_IRQ
select STMP_DEVICE
select USE_OF
help
Support for Freescale MXS-based family of processors
config ARCH_NETX config ARCH_NETX
bool "Hilscher NetX based" bool "Hilscher NetX based"
select ARM_VIC select ARM_VIC

View file

@ -618,6 +618,7 @@ config DEBUG_LL_INCLUDE
DEBUG_IMX6Q_UART DEBUG_IMX6Q_UART
default "debug/highbank.S" if DEBUG_HIGHBANK_UART default "debug/highbank.S" if DEBUG_HIGHBANK_UART
default "debug/mvebu.S" if DEBUG_MVEBU_UART default "debug/mvebu.S" if DEBUG_MVEBU_UART
default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
default "debug/nomadik.S" if DEBUG_NOMADIK_UART default "debug/nomadik.S" if DEBUG_NOMADIK_UART
default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART

View file

@ -22,8 +22,8 @@ CONFIG_MODVERSIONS=y
CONFIG_BLK_DEV_INTEGRITY=y CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set # CONFIG_IOSCHED_CFQ is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MXS=y CONFIG_ARCH_MXS=y
CONFIG_MACH_MXS_DT=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set
CONFIG_PREEMPT_VOLUNTARY=y CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_AEABI=y CONFIG_AEABI=y

View file

@ -1,5 +1,3 @@
if ARCH_MXS
config SOC_IMX23 config SOC_IMX23
bool bool
select ARM_AMBA select ARM_AMBA
@ -15,14 +13,18 @@ config SOC_IMX28
select HAVE_PWM select HAVE_PWM
select PINCTRL_IMX28 select PINCTRL_IMX28
comment "MXS platforms:" config ARCH_MXS
bool "Freescale MXS (i.MX23, i.MX28) support"
config MACH_MXS_DT depends on ARCH_MULTI_V5
bool "Support MXS platforms from device tree" select ARCH_REQUIRE_GPIOLIB
select CLKDEV_LOOKUP
select CLKSRC_MMIO
select CLKSRC_OF
select GENERIC_CLOCKEVENTS
select HAVE_CLK_PREPARE
select PINCTRL
select SOC_IMX23 select SOC_IMX23
select SOC_IMX28 select SOC_IMX28
select STMP_DEVICE
help help
Include support for Freescale MXS platforms(i.MX23 and i.MX28) Support for Freescale MXS-based family of processors
using the device tree for discovery
endif

View file

@ -1,2 +1,2 @@
obj-$(CONFIG_PM) += pm.o obj-$(CONFIG_PM) += pm.o
obj-$(CONFIG_MACH_MXS_DT) += mach-mxs.o obj-$(CONFIG_ARCH_MXS) += mach-mxs.o

View file

@ -1 +0,0 @@
zreladdr-y += 0x40008000

View file

@ -1,21 +0,0 @@
/*
* Copyright (C) 1999 ARM Limited
* Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
*
* 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.
*/
#ifndef __MACH_MXS_TIMEX_H__
#define __MACH_MXS_TIMEX_H__
#define CLOCK_TICK_RATE 32000 /* 32K */
#endif /* __MACH_MXS_TIMEX_H__ */

View file

@ -1,76 +0,0 @@
/*
* arch/arm/mach-mxs/include/mach/uncompress.h
*
* Copyright (C) 1999 ARM Limited
* Copyright (C) Shane Nay (shane@minirl.com)
* Copyright 2010 Freescale Semiconductor, Inc. All Rights Reserved.
*
* 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.
*/
#ifndef __MACH_MXS_UNCOMPRESS_H__
#define __MACH_MXS_UNCOMPRESS_H__
unsigned long mxs_duart_base;
#define MXS_DUART(x) (*(volatile unsigned long *)(mxs_duart_base + (x)))
#define MXS_DUART_DR 0x00
#define MXS_DUART_FR 0x18
#define MXS_DUART_FR_TXFE (1 << 7)
#define MXS_DUART_CR 0x30
#define MXS_DUART_CR_UARTEN (1 << 0)
/*
* The following code assumes the serial port has already been
* initialized by the bootloader. If it's not, the output is
* simply discarded.
*/
static void putc(int ch)
{
if (!mxs_duart_base)
return;
if (!(MXS_DUART(MXS_DUART_CR) & MXS_DUART_CR_UARTEN))
return;
while (!(MXS_DUART(MXS_DUART_FR) & MXS_DUART_FR_TXFE))
barrier();
MXS_DUART(MXS_DUART_DR) = ch;
}
static inline void flush(void)
{
}
#define MX23_DUART_BASE_ADDR 0x80070000
#define MX28_DUART_BASE_ADDR 0x80074000
#define MXS_DIGCTL_CHIPID 0x8001c310
static inline void __arch_decomp_setup(unsigned long arch_id)
{
u16 chipid = (*(volatile unsigned long *) MXS_DIGCTL_CHIPID) >> 16;
switch (chipid) {
case 0x3780:
mxs_duart_base = MX23_DUART_BASE_ADDR;
break;
case 0x2800:
mxs_duart_base = MX28_DUART_BASE_ADDR;
break;
default:
break;
}
}
#define arch_decomp_setup() __arch_decomp_setup(arch_id)
#endif /* __MACH_MXS_UNCOMPRESS_H__ */

View file

@ -32,6 +32,8 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/system_misc.h> #include <asm/system_misc.h>
#include "pm.h"
/* MXS DIGCTL SAIF CLKMUX */ /* MXS DIGCTL SAIF CLKMUX */
#define MXS_DIGCTL_SAIF_CLKMUX_DIRECT 0x0 #define MXS_DIGCTL_SAIF_CLKMUX_DIRECT 0x0
#define MXS_DIGCTL_SAIF_CLKMUX_CROSSINPUT 0x1 #define MXS_DIGCTL_SAIF_CLKMUX_CROSSINPUT 0x1
@ -607,6 +609,7 @@ DT_MACHINE_START(MXS, "Freescale MXS (Device Tree)")
.handle_irq = icoll_handle_irq, .handle_irq = icoll_handle_irq,
.init_time = mxs_timer_init, .init_time = mxs_timer_init,
.init_machine = mxs_machine_init, .init_machine = mxs_machine_init,
.init_late = mxs_pm_init,
.dt_compat = mxs_dt_compat, .dt_compat = mxs_dt_compat,
.restart = mxs_restart, .restart = mxs_restart,
MACHINE_END MACHINE_END

View file

@ -34,9 +34,7 @@ static struct platform_suspend_ops mxs_suspend_ops = {
.valid = suspend_valid_only_mem, .valid = suspend_valid_only_mem,
}; };
static int __init mxs_pm_init(void) void __init mxs_pm_init(void)
{ {
suspend_set_ops(&mxs_suspend_ops); suspend_set_ops(&mxs_suspend_ops);
return 0;
} }
device_initcall(mxs_pm_init);

14
arch/arm/mach-mxs/pm.h Normal file
View file

@ -0,0 +1,14 @@
/*
* Copyright (C) 2013 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ARCH_MXS_PM_H
#define __ARCH_MXS_PM_H
void mxs_pm_init(void);
#endif