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

Commit 3042102a authored by Brian Swetland's avatar Brian Swetland Committed by Russell King
Browse files

[ARM] msm: core platform support for ARCH_MSM7X00A



- core header files for arch-msm
- Kconfig and Makefiles to enable ARCH_MSM7X00A builds
- MSM7X00A specific arch_idle
- peripheral iomap and irq number definitions

Signed-off-by: default avatarBrian Swetland <swetland@google.com>
parent 9b73e76f
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -409,6 +409,17 @@ config ARCH_OMAP
	help
	  Support for TI's OMAP platform (OMAP1 and OMAP2).

config ARCH_MSM7X00A
	bool "Qualcomm MSM7X00A"
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	help
	  Support for Qualcomm MSM7X00A based systems.  This runs on the ARM11
	  apps processor of the MSM7X00A and depends on a shared memory
	  interface to the ARM9 modem processor which runs the baseband stack
	  and controls some vital subsystems (clock and power control, etc).
	  <http://www.cdmatech.com/products/msm7200_chipset_solution.jsp>

endchoice

source "arch/arm/mach-clps711x/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -139,6 +139,7 @@ endif
 machine-$(CONFIG_ARCH_KS8695)     := ks8695
  incdir-$(CONFIG_ARCH_MXC)	   := mxc
 machine-$(CONFIG_ARCH_MX3)	   := mx3
 machine-$(CONFIG_ARCH_MSM7X00A)   := msm

ifeq ($(CONFIG_ARCH_EBSA110),y)
# This is what happens if you forget the IOCS16 line.
+2 −0
Original line number Diff line number Diff line
obj-y += io.o idle.o 
+3 −0
Original line number Diff line number Diff line
  zreladdr-y		:= 0x10008000
params_phys-y		:= 0x10000100
initrd_phys-y		:= 0x10800000
+36 −0
Original line number Diff line number Diff line
/* linux/include/asm-arm/arch-msm/idle.S
 *
 * Idle processing for MSM7K - work around bugs with SWFI.
 *
 * Copyright (c) 2007 QUALCOMM Incorporated.
 * Copyright (C) 2007 Google, Inc. 
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * 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/linkage.h>
#include <asm/assembler.h>

ENTRY(arch_idle)
#ifdef CONFIG_MSM7X00A_IDLE
	mrc     p15, 0, r1, c1, c0, 0    /* read current CR    */
	bic     r0, r1, #(1 << 2)        /* clear dcache bit   */
	bic     r0, r0, #(1 << 12)       /* clear icache bit   */
	mcr     p15, 0, r0, c1, c0, 0    /* disable d/i cache  */

	mov     r0, #0                   /* prepare wfi value  */
	mcr     p15, 0, r0, c7, c10, 0   /* flush the cache    */
	mcr     p15, 0, r0, c7, c10, 4   /* memory barrier     */
	mcr     p15, 0, r0, c7, c0, 4    /* wait for interrupt */

	mcr     p15, 0, r1, c1, c0, 0    /* restore d/i cache  */
#endif
	mov     pc, lr
Loading