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:
commit
d93bea007a
12 changed files with 33 additions and 130 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
zreladdr-y += 0x40008000
|
|
|
@ -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__ */
|
|
|
@ -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__ */
|
|
|
@ -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
|
||||||
|
|
|
@ -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
14
arch/arm/mach-mxs/pm.h
Normal 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
|
Loading…
Reference in a new issue