Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+33 -130
-17
arch/arm/Kconfig
··· 422 422 Support for systems based on the DC21285 companion chip 423 423 ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. 424 424 425 - config ARCH_MXS 426 - bool "Freescale MXS-based" 427 - select ARCH_REQUIRE_GPIOLIB 428 - select CLKDEV_LOOKUP 429 - select CLKSRC_MMIO 430 - select CLKSRC_OF 431 - select COMMON_CLK 432 - select GENERIC_CLOCKEVENTS 433 - select HAVE_CLK_PREPARE 434 - select MULTI_IRQ_HANDLER 435 - select PINCTRL 436 - select SPARSE_IRQ 437 - select STMP_DEVICE 438 - select USE_OF 439 - help 440 - Support for Freescale MXS-based family of processors 441 - 442 425 config ARCH_NETX 443 426 bool "Hilscher NetX based" 444 427 select ARM_VIC
+1
arch/arm/Kconfig.debug
··· 618 618 DEBUG_IMX6Q_UART 619 619 default "debug/highbank.S" if DEBUG_HIGHBANK_UART 620 620 default "debug/mvebu.S" if DEBUG_MVEBU_UART 621 + default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART 621 622 default "debug/nomadik.S" if DEBUG_NOMADIK_UART 622 623 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART 623 624 default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
+1 -1
arch/arm/configs/mxs_defconfig
··· 22 22 CONFIG_BLK_DEV_INTEGRITY=y 23 23 # CONFIG_IOSCHED_DEADLINE is not set 24 24 # CONFIG_IOSCHED_CFQ is not set 25 + # CONFIG_ARCH_MULTI_V7 is not set 25 26 CONFIG_ARCH_MXS=y 26 - CONFIG_MACH_MXS_DT=y 27 27 # CONFIG_ARM_THUMB is not set 28 28 CONFIG_PREEMPT_VOLUNTARY=y 29 29 CONFIG_AEABI=y
+12 -10
arch/arm/mach-mxs/Kconfig
··· 1 - if ARCH_MXS 2 - 3 1 config SOC_IMX23 4 2 bool 5 3 select ARM_AMBA ··· 13 15 select HAVE_PWM 14 16 select PINCTRL_IMX28 15 17 16 - comment "MXS platforms:" 17 - 18 - config MACH_MXS_DT 19 - bool "Support MXS platforms from device tree" 18 + config ARCH_MXS 19 + bool "Freescale MXS (i.MX23, i.MX28) support" 20 + depends on ARCH_MULTI_V5 21 + select ARCH_REQUIRE_GPIOLIB 22 + select CLKDEV_LOOKUP 23 + select CLKSRC_MMIO 24 + select CLKSRC_OF 25 + select GENERIC_CLOCKEVENTS 26 + select HAVE_CLK_PREPARE 27 + select PINCTRL 20 28 select SOC_IMX23 21 29 select SOC_IMX28 30 + select STMP_DEVICE 22 31 help 23 - Include support for Freescale MXS platforms(i.MX23 and i.MX28) 24 - using the device tree for discovery 25 - 26 - endif 32 + Support for Freescale MXS-based family of processors
+1 -1
arch/arm/mach-mxs/Makefile
··· 1 1 obj-$(CONFIG_PM) += pm.o 2 - obj-$(CONFIG_MACH_MXS_DT) += mach-mxs.o 2 + obj-$(CONFIG_ARCH_MXS) += mach-mxs.o
-1
arch/arm/mach-mxs/Makefile.boot
··· 1 - zreladdr-y += 0x40008000
arch/arm/mach-mxs/include/mach/debug-macro.S arch/arm/include/debug/mxs.S
-21
arch/arm/mach-mxs/include/mach/timex.h
··· 1 - /* 2 - * Copyright (C) 1999 ARM Limited 3 - * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. 4 - * 5 - * This program is free software; you can redistribute it and/or modify 6 - * it under the terms of the GNU General Public License as published by 7 - * the Free Software Foundation; either version 2 of the License, or 8 - * (at your option) any later version. 9 - * 10 - * This program is distributed in the hope that it will be useful, 11 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 - * GNU General Public License for more details. 14 - */ 15 - 16 - #ifndef __MACH_MXS_TIMEX_H__ 17 - #define __MACH_MXS_TIMEX_H__ 18 - 19 - #define CLOCK_TICK_RATE 32000 /* 32K */ 20 - 21 - #endif /* __MACH_MXS_TIMEX_H__ */
-76
arch/arm/mach-mxs/include/mach/uncompress.h
··· 1 - /* 2 - * arch/arm/mach-mxs/include/mach/uncompress.h 3 - * 4 - * Copyright (C) 1999 ARM Limited 5 - * Copyright (C) Shane Nay (shane@minirl.com) 6 - * Copyright 2010 Freescale Semiconductor, Inc. All Rights Reserved. 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License as published by 10 - * the Free Software Foundation; either version 2 of the License, or 11 - * (at your option) any later version. 12 - * 13 - * This program is distributed in the hope that it will be useful, 14 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 - * GNU General Public License for more details. 17 - */ 18 - #ifndef __MACH_MXS_UNCOMPRESS_H__ 19 - #define __MACH_MXS_UNCOMPRESS_H__ 20 - 21 - unsigned long mxs_duart_base; 22 - 23 - #define MXS_DUART(x) (*(volatile unsigned long *)(mxs_duart_base + (x))) 24 - 25 - #define MXS_DUART_DR 0x00 26 - #define MXS_DUART_FR 0x18 27 - #define MXS_DUART_FR_TXFE (1 << 7) 28 - #define MXS_DUART_CR 0x30 29 - #define MXS_DUART_CR_UARTEN (1 << 0) 30 - 31 - /* 32 - * The following code assumes the serial port has already been 33 - * initialized by the bootloader. If it's not, the output is 34 - * simply discarded. 35 - */ 36 - 37 - static void putc(int ch) 38 - { 39 - if (!mxs_duart_base) 40 - return; 41 - if (!(MXS_DUART(MXS_DUART_CR) & MXS_DUART_CR_UARTEN)) 42 - return; 43 - 44 - while (!(MXS_DUART(MXS_DUART_FR) & MXS_DUART_FR_TXFE)) 45 - barrier(); 46 - 47 - MXS_DUART(MXS_DUART_DR) = ch; 48 - } 49 - 50 - static inline void flush(void) 51 - { 52 - } 53 - 54 - #define MX23_DUART_BASE_ADDR 0x80070000 55 - #define MX28_DUART_BASE_ADDR 0x80074000 56 - #define MXS_DIGCTL_CHIPID 0x8001c310 57 - 58 - static inline void __arch_decomp_setup(unsigned long arch_id) 59 - { 60 - u16 chipid = (*(volatile unsigned long *) MXS_DIGCTL_CHIPID) >> 16; 61 - 62 - switch (chipid) { 63 - case 0x3780: 64 - mxs_duart_base = MX23_DUART_BASE_ADDR; 65 - break; 66 - case 0x2800: 67 - mxs_duart_base = MX28_DUART_BASE_ADDR; 68 - break; 69 - default: 70 - break; 71 - } 72 - } 73 - 74 - #define arch_decomp_setup() __arch_decomp_setup(arch_id) 75 - 76 - #endif /* __MACH_MXS_UNCOMPRESS_H__ */
+3
arch/arm/mach-mxs/mach-mxs.c
··· 32 32 #include <asm/mach/time.h> 33 33 #include <asm/system_misc.h> 34 34 35 + #include "pm.h" 36 + 35 37 /* MXS DIGCTL SAIF CLKMUX */ 36 38 #define MXS_DIGCTL_SAIF_CLKMUX_DIRECT 0x0 37 39 #define MXS_DIGCTL_SAIF_CLKMUX_CROSSINPUT 0x1 ··· 609 607 .handle_irq = icoll_handle_irq, 610 608 .init_time = mxs_timer_init, 611 609 .init_machine = mxs_machine_init, 610 + .init_late = mxs_pm_init, 612 611 .dt_compat = mxs_dt_compat, 613 612 .restart = mxs_restart, 614 613 MACHINE_END
+1 -3
arch/arm/mach-mxs/pm.c
··· 34 34 .valid = suspend_valid_only_mem, 35 35 }; 36 36 37 - static int __init mxs_pm_init(void) 37 + void __init mxs_pm_init(void) 38 38 { 39 39 suspend_set_ops(&mxs_suspend_ops); 40 - return 0; 41 40 } 42 - device_initcall(mxs_pm_init);
+14
arch/arm/mach-mxs/pm.h
··· 1 + /* 2 + * Copyright (C) 2013 Freescale Semiconductor, Inc. 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + */ 8 + 9 + #ifndef __ARCH_MXS_PM_H 10 + #define __ARCH_MXS_PM_H 11 + 12 + void mxs_pm_init(void); 13 + 14 + #endif