[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: Brian Swetland <swetland@google.com>
This commit is contained in:
parent
9b73e76f3c
commit
3042102a28
@ -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"
|
||||
|
@ -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
arch/arm/mach-msm/Makefile
Normal file
2
arch/arm/mach-msm/Makefile
Normal file
@ -0,0 +1,2 @@
|
||||
obj-y += io.o idle.o
|
||||
|
3
arch/arm/mach-msm/Makefile.boot
Normal file
3
arch/arm/mach-msm/Makefile.boot
Normal file
@ -0,0 +1,3 @@
|
||||
zreladdr-y := 0x10008000
|
||||
params_phys-y := 0x10000100
|
||||
initrd_phys-y := 0x10800000
|
36
arch/arm/mach-msm/idle.S
Normal file
36
arch/arm/mach-msm/idle.S
Normal file
@ -0,0 +1,36 @@
|
||||
/* 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
|
85
arch/arm/mach-msm/io.c
Normal file
85
arch/arm/mach-msm/io.c
Normal file
@ -0,0 +1,85 @@
|
||||
/* arch/arm/mach-msm/io.c
|
||||
*
|
||||
* MSM7K io support
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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/kernel.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/arch/msm_iomap.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <asm/arch/board.h>
|
||||
|
||||
#define MSM_DEVICE(name) { \
|
||||
.virtual = MSM_##name##_BASE, \
|
||||
.pfn = __phys_to_pfn(MSM_##name##_PHYS), \
|
||||
.length = MSM_##name##_SIZE, \
|
||||
.type = MT_DEVICE_NONSHARED, \
|
||||
}
|
||||
|
||||
static struct map_desc msm_io_desc[] __initdata = {
|
||||
MSM_DEVICE(VIC),
|
||||
MSM_DEVICE(CSR),
|
||||
MSM_DEVICE(GPT),
|
||||
MSM_DEVICE(DMOV),
|
||||
MSM_DEVICE(UART1),
|
||||
MSM_DEVICE(UART2),
|
||||
MSM_DEVICE(UART3),
|
||||
MSM_DEVICE(I2C),
|
||||
MSM_DEVICE(GPIO1),
|
||||
MSM_DEVICE(GPIO2),
|
||||
MSM_DEVICE(HSUSB),
|
||||
MSM_DEVICE(CLK_CTL),
|
||||
MSM_DEVICE(PMDH),
|
||||
MSM_DEVICE(EMDH),
|
||||
MSM_DEVICE(MDP),
|
||||
{
|
||||
.virtual = MSM_SHARED_RAM_BASE,
|
||||
.pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS),
|
||||
.length = MSM_SHARED_RAM_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
void __init msm_map_common_io(void)
|
||||
{
|
||||
/* Make sure the peripheral register window is closed, since
|
||||
* we will use PTE flags (TEX[1]=1,B=0,C=1) to determine which
|
||||
* pages are peripheral interface or not.
|
||||
*/
|
||||
asm("mcr p15, 0, %0, c15, c2, 4" : : "r" (0));
|
||||
|
||||
iotable_init(msm_io_desc, ARRAY_SIZE(msm_io_desc));
|
||||
}
|
||||
|
||||
void __iomem *
|
||||
__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
|
||||
{
|
||||
if (mtype == MT_DEVICE) {
|
||||
/* The peripherals in the 88000000 - D0000000 range
|
||||
* are only accessable by type MT_DEVICE_NONSHARED.
|
||||
* Adjust mtype as necessary to make this "just work."
|
||||
*/
|
||||
if ((phys_addr >= 0x88000000) && (phys_addr < 0xD0000000))
|
||||
mtype = MT_DEVICE_NONSHARED;
|
||||
}
|
||||
|
||||
return __arm_ioremap(phys_addr, size, mtype);
|
||||
}
|
@ -345,8 +345,9 @@ config CPU_XSC3
|
||||
# ARMv6
|
||||
config CPU_V6
|
||||
bool "Support ARM V6 processor"
|
||||
depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3
|
||||
depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3 || ARCH_MSM7X00A
|
||||
default y if ARCH_MX3
|
||||
default y if ARCH_MSM7X00A
|
||||
select CPU_32v6
|
||||
select CPU_ABRT_EV6
|
||||
select CPU_CACHE_V6
|
||||
|
37
include/asm-arm/arch-msm/board.h
Normal file
37
include/asm-arm/arch-msm/board.h
Normal file
@ -0,0 +1,37 @@
|
||||
/* linux/include/asm-arm/arch-msm/board.h
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_BOARD_H
|
||||
#define __ASM_ARCH_MSM_BOARD_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* platform device data structures */
|
||||
|
||||
struct msm_mddi_platform_data
|
||||
{
|
||||
void (*panel_power)(int on);
|
||||
unsigned has_vsync_irq:1;
|
||||
};
|
||||
|
||||
/* common init routines for use by arch/arm/mach-msm/board-*.c */
|
||||
|
||||
void __init msm_add_devices(void);
|
||||
void __init msm_map_common_io(void);
|
||||
void __init msm_init_irq(void);
|
||||
void __init msm_init_gpio(void);
|
||||
|
||||
#endif
|
40
include/asm-arm/arch-msm/debug-macro.S
Normal file
40
include/asm-arm/arch-msm/debug-macro.S
Normal file
@ -0,0 +1,40 @@
|
||||
/* include/asm-arm/arch-msm7200/debug-macro.S
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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 <asm/hardware.h>
|
||||
#include <asm/arch/msm_iomap.h>
|
||||
|
||||
.macro addruart,rx
|
||||
@ see if the MMU is enabled and select appropriate base address
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1
|
||||
ldreq \rx, =MSM_UART1_PHYS
|
||||
ldrne \rx, =MSM_UART1_BASE
|
||||
.endm
|
||||
|
||||
.macro senduart,rd,rx
|
||||
str \rd, [\rx, #0x0C]
|
||||
.endm
|
||||
|
||||
.macro waituart,rd,rx
|
||||
@ wait for TX_READY
|
||||
1: ldr \rd, [\rx, #0x08]
|
||||
tst \rd, #0x04
|
||||
beq 1b
|
||||
.endm
|
||||
|
||||
.macro busyuart,rd,rx
|
||||
.endm
|
1
include/asm-arm/arch-msm/dma.h
Normal file
1
include/asm-arm/arch-msm/dma.h
Normal file
@ -0,0 +1 @@
|
||||
|
38
include/asm-arm/arch-msm/entry-macro.S
Normal file
38
include/asm-arm/arch-msm/entry-macro.S
Normal file
@ -0,0 +1,38 @@
|
||||
/* include/asm-arm/arch-msm7200/entry-macro.S
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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 <asm/arch/msm_iomap.h>
|
||||
|
||||
.macro disable_fiq
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_preamble, base, tmp
|
||||
@ enable imprecise aborts
|
||||
cpsie a
|
||||
mov \base, #MSM_VIC_BASE
|
||||
.endm
|
||||
|
||||
.macro arch_ret_to_user, tmp1, tmp2
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
||||
@ 0xD0 has irq# or old irq# if the irq has been handled
|
||||
@ 0xD4 has irq# or -1 if none pending *but* if you just
|
||||
@ read 0xD4 you never get the first irq for some reason
|
||||
ldr \irqnr, [\base, #0xD0]
|
||||
ldr \irqnr, [\base, #0xD4]
|
||||
cmp \irqnr, #0xffffffff
|
||||
.endm
|
18
include/asm-arm/arch-msm/hardware.h
Normal file
18
include/asm-arm/arch-msm/hardware.h
Normal file
@ -0,0 +1,18 @@
|
||||
/* linux/include/asm-arm/arch-msm/hardware.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_HARDWARE_H
|
||||
|
||||
#endif
|
33
include/asm-arm/arch-msm/io.h
Normal file
33
include/asm-arm/arch-msm/io.h
Normal file
@ -0,0 +1,33 @@
|
||||
/* include/asm-arm/arch-msm/io.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARM_ARCH_IO_H
|
||||
#define __ASM_ARM_ARCH_IO_H
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
#define __arch_ioremap __msm_ioremap
|
||||
#define __arch_iounmap __iounmap
|
||||
|
||||
void __iomem *__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype);
|
||||
|
||||
static inline void __iomem *__io(unsigned long addr)
|
||||
{
|
||||
return (void __iomem *)addr;
|
||||
}
|
||||
#define __io(a) __io(a)
|
||||
#define __mem_pci(a) (a)
|
||||
|
||||
#endif
|
89
include/asm-arm/arch-msm/irqs.h
Normal file
89
include/asm-arm/arch-msm/irqs.h
Normal file
@ -0,0 +1,89 @@
|
||||
/* linux/include/asm-arm/arch-msm/irqs.h
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_IRQS_H
|
||||
|
||||
/* MSM ARM11 Interrupt Numbers */
|
||||
/* See 80-VE113-1 A, pp219-221 */
|
||||
|
||||
#define INT_A9_M2A_0 0
|
||||
#define INT_A9_M2A_1 1
|
||||
#define INT_A9_M2A_2 2
|
||||
#define INT_A9_M2A_3 3
|
||||
#define INT_A9_M2A_4 4
|
||||
#define INT_A9_M2A_5 5
|
||||
#define INT_A9_M2A_6 6
|
||||
#define INT_GP_TIMER_EXP 7
|
||||
#define INT_DEBUG_TIMER_EXP 8
|
||||
#define INT_UART1 9
|
||||
#define INT_UART2 10
|
||||
#define INT_UART3 11
|
||||
#define INT_UART1_RX 12
|
||||
#define INT_UART2_RX 13
|
||||
#define INT_UART3_RX 14
|
||||
#define INT_USB_OTG 15
|
||||
#define INT_MDDI_PRI 16
|
||||
#define INT_MDDI_EXT 17
|
||||
#define INT_MDDI_CLIENT 18
|
||||
#define INT_MDP 19
|
||||
#define INT_GRAPHICS 20
|
||||
#define INT_ADM_AARM 21
|
||||
#define INT_ADSP_A11 22
|
||||
#define INT_ADSP_A9_A11 23
|
||||
#define INT_SDC1_0 24
|
||||
#define INT_SDC1_1 25
|
||||
#define INT_SDC2_0 26
|
||||
#define INT_SDC2_1 27
|
||||
#define INT_KEYSENSE 28
|
||||
#define INT_TCHSCRN_SSBI 29
|
||||
#define INT_TCHSCRN1 30
|
||||
#define INT_TCHSCRN2 31
|
||||
|
||||
#define INT_GPIO_GROUP1 (32 + 0)
|
||||
#define INT_GPIO_GROUP2 (32 + 1)
|
||||
#define INT_PWB_I2C (32 + 2)
|
||||
#define INT_SOFTRESET (32 + 3)
|
||||
#define INT_NAND_WR_ER_DONE (32 + 4)
|
||||
#define INT_NAND_OP_DONE (32 + 5)
|
||||
#define INT_PBUS_ARM11 (32 + 6)
|
||||
#define INT_AXI_MPU_SMI (32 + 7)
|
||||
#define INT_AXI_MPU_EBI1 (32 + 8)
|
||||
#define INT_AD_HSSD (32 + 9)
|
||||
#define INT_ARM11_PMU (32 + 10)
|
||||
#define INT_ARM11_DMA (32 + 11)
|
||||
#define INT_TSIF_IRQ (32 + 12)
|
||||
#define INT_UART1DM_IRQ (32 + 13)
|
||||
#define INT_UART1DM_RX (32 + 14)
|
||||
#define INT_USB_HS (32 + 15)
|
||||
#define INT_SDC3_0 (32 + 16)
|
||||
#define INT_SDC3_1 (32 + 17)
|
||||
#define INT_SDC4_0 (32 + 18)
|
||||
#define INT_SDC4_1 (32 + 19)
|
||||
#define INT_UART2DM_RX (32 + 20)
|
||||
#define INT_UART2DM_IRQ (32 + 21)
|
||||
|
||||
/* 22-31 are reserved */
|
||||
|
||||
#define MSM_IRQ_BIT(irq) (1 << ((irq) & 31))
|
||||
|
||||
#define NR_MSM_IRQS 64
|
||||
#define NR_GPIO_IRQS 122
|
||||
#define NR_BOARD_IRQS 64
|
||||
#define NR_IRQS (NR_MSM_IRQS + NR_GPIO_IRQS + NR_BOARD_IRQS)
|
||||
|
||||
#define MSM_GPIO_TO_INT(n) (NR_MSM_IRQS + (n))
|
||||
|
||||
#endif
|
27
include/asm-arm/arch-msm/memory.h
Normal file
27
include/asm-arm/arch-msm/memory.h
Normal file
@ -0,0 +1,27 @@
|
||||
/* linux/include/asm-arm/arch-msm/memory.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MEMORY_H
|
||||
#define __ASM_ARCH_MEMORY_H
|
||||
|
||||
/* physical offset of RAM */
|
||||
#define PHYS_OFFSET UL(0x10000000)
|
||||
|
||||
/* bus address and physical addresses are identical */
|
||||
#define __virt_to_bus(x) __virt_to_phys(x)
|
||||
#define __bus_to_virt(x) __phys_to_virt(x)
|
||||
|
||||
#endif
|
||||
|
104
include/asm-arm/arch-msm/msm_iomap.h
Normal file
104
include/asm-arm/arch-msm/msm_iomap.h
Normal file
@ -0,0 +1,104 @@
|
||||
/* linux/include/asm-arm/arch-msm/msm_iomap.h
|
||||
*
|
||||
* Copyright (C) 2007 Google, Inc.
|
||||
* Author: Brian Swetland <swetland@google.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*
|
||||
* The MSM peripherals are spread all over across 768MB of physical
|
||||
* space, which makes just having a simple IO_ADDRESS macro to slide
|
||||
* them into the right virtual location rough. Instead, we will
|
||||
* provide a master phys->virt mapping for peripherals here.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_IOMAP_H
|
||||
#define __ASM_ARCH_MSM_IOMAP_H
|
||||
|
||||
#include <asm/sizes.h>
|
||||
|
||||
/* Physical base address and size of peripherals.
|
||||
* Ordered by the virtual base addresses they will be mapped at.
|
||||
*
|
||||
* MSM_VIC_BASE must be an value that can be loaded via a "mov"
|
||||
* instruction, otherwise entry-macro.S will not compile.
|
||||
*
|
||||
* If you add or remove entries here, you'll want to edit the
|
||||
* msm_io_desc array in arch/arm/mach-msm/io.c to reflect your
|
||||
* changes.
|
||||
*
|
||||
*/
|
||||
|
||||
#define MSM_VIC_BASE 0xE0000000
|
||||
#define MSM_VIC_PHYS 0xC0000000
|
||||
#define MSM_VIC_SIZE SZ_4K
|
||||
|
||||
#define MSM_CSR_BASE 0xE0001000
|
||||
#define MSM_CSR_PHYS 0xC0100000
|
||||
#define MSM_CSR_SIZE SZ_4K
|
||||
|
||||
#define MSM_GPT_PHYS MSM_CSR_PHYS
|
||||
#define MSM_GPT_BASE MSM_CSR_BASE
|
||||
#define MSM_GPT_SIZE SZ_4K
|
||||
|
||||
#define MSM_DMOV_BASE 0xE0002000
|
||||
#define MSM_DMOV_PHYS 0xA9700000
|
||||
#define MSM_DMOV_SIZE SZ_4K
|
||||
|
||||
#define MSM_UART1_BASE 0xE0003000
|
||||
#define MSM_UART1_PHYS 0xA9A00000
|
||||
#define MSM_UART1_SIZE SZ_4K
|
||||
|
||||
#define MSM_UART2_BASE 0xE0004000
|
||||
#define MSM_UART2_PHYS 0xA9B00000
|
||||
#define MSM_UART2_SIZE SZ_4K
|
||||
|
||||
#define MSM_UART3_BASE 0xE0005000
|
||||
#define MSM_UART3_PHYS 0xA9C00000
|
||||
#define MSM_UART3_SIZE SZ_4K
|
||||
|
||||
#define MSM_I2C_BASE 0xE0006000
|
||||
#define MSM_I2C_PHYS 0xA9900000
|
||||
#define MSM_I2C_SIZE SZ_4K
|
||||
|
||||
#define MSM_GPIO1_BASE 0xE0007000
|
||||
#define MSM_GPIO1_PHYS 0xA9200000
|
||||
#define MSM_GPIO1_SIZE SZ_4K
|
||||
|
||||
#define MSM_GPIO2_BASE 0xE0008000
|
||||
#define MSM_GPIO2_PHYS 0xA9300000
|
||||
#define MSM_GPIO2_SIZE SZ_4K
|
||||
|
||||
#define MSM_HSUSB_BASE 0xE0009000
|
||||
#define MSM_HSUSB_PHYS 0xA0800000
|
||||
#define MSM_HSUSB_SIZE SZ_4K
|
||||
|
||||
#define MSM_CLK_CTL_BASE 0xE000A000
|
||||
#define MSM_CLK_CTL_PHYS 0xA8600000
|
||||
#define MSM_CLK_CTL_SIZE SZ_4K
|
||||
|
||||
#define MSM_PMDH_BASE 0xE000B000
|
||||
#define MSM_PMDH_PHYS 0xAA600000
|
||||
#define MSM_PMDH_SIZE SZ_4K
|
||||
|
||||
#define MSM_EMDH_BASE 0xE000C000
|
||||
#define MSM_EMDH_PHYS 0xAA700000
|
||||
#define MSM_EMDH_SIZE SZ_4K
|
||||
|
||||
#define MSM_MDP_BASE 0xE0010000
|
||||
#define MSM_MDP_PHYS 0xAA200000
|
||||
#define MSM_MDP_SIZE 0x000F0000
|
||||
|
||||
#define MSM_SHARED_RAM_BASE 0xE0100000
|
||||
#define MSM_SHARED_RAM_PHYS 0x01F00000
|
||||
#define MSM_SHARED_RAM_SIZE SZ_1M
|
||||
|
||||
#endif
|
23
include/asm-arm/arch-msm/system.h
Normal file
23
include/asm-arm/arch-msm/system.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* linux/include/asm-arm/arch-msm/system.h
|
||||
*
|
||||
* 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 <asm/hardware.h>
|
||||
|
||||
void arch_idle(void);
|
||||
|
||||
static inline void arch_reset(char mode)
|
||||
{
|
||||
for (;;) ; /* depends on IPC w/ other core */
|
||||
}
|
20
include/asm-arm/arch-msm/timex.h
Normal file
20
include/asm-arm/arch-msm/timex.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* linux/include/asm-arm/arch-msm/timex.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_TIMEX_H
|
||||
|
||||
#define CLOCK_TICK_RATE 1000000
|
||||
|
||||
#endif
|
36
include/asm-arm/arch-msm/uncompress.h
Normal file
36
include/asm-arm/arch-msm/uncompress.h
Normal file
@ -0,0 +1,36 @@
|
||||
/* linux/include/asm-arm/arch-msm/uncompress.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
|
||||
|
||||
#include "hardware.h"
|
||||
|
||||
static void putc(int c)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void flush(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void arch_decomp_setup(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void arch_decomp_wdog(void)
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
22
include/asm-arm/arch-msm/vmalloc.h
Normal file
22
include/asm-arm/arch-msm/vmalloc.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* linux/include/asm-arm/arch-msm/vmalloc.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MSM_VMALLOC_H
|
||||
#define __ASM_ARCH_MSM_VMALLOC_H
|
||||
|
||||
#define VMALLOC_END (PAGE_OFFSET + 0x10000000)
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user