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

Commit 75b0d32d authored by David Brown's avatar David Brown
Browse files

Merge branch 'msm-8960' into for-next

* msm-8960:
  msm: Support for the MSM8960 RUMI3 target
  msm: Support for the MSM8960 Simulator target
  msm: Makefile cleanup
  msm: timer: Timer support for MSM8960
  msm: Add MSM 8960 cpu_is check
  msm: irqs-8960: Interrupt map for MSM8960
  msm: Physical offset for MSM8960
  msm: io: I/O register definitions for MSM8960
  msm: Generalize QGIC registers
  msm: Generalize timer register mappings
  msm: Add CPU queries
parents c243e528 50ede4e3
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -48,6 +48,16 @@ config ARCH_MSM8X60
	select IOMMU_API
	select MSM_SCM if SMP

config ARCH_MSM8960
	bool "MSM8960"
	select ARCH_MSM_SCORPIONMP
	select MACH_MSM8960_SIM if (!MACH_MSM8960_RUMI3)
	select ARM_GIC
	select CPU_V7
	select MSM_V2_TLMM
	select MSM_GPIOMUX
	select MSM_SCM if SMP

endchoice

config MSM_SOC_REV_A
@@ -125,6 +135,18 @@ config MACH_MSM8X60_FFA
	help
	  Support for the Qualcomm MSM8x60 FFA eval board.

config MACH_MSM8960_SIM
	depends on ARCH_MSM8960
	bool "MSM8960 Simulator"
	help
	  Support for the Qualcomm MSM8960 simulator.

config MACH_MSM8960_RUMI3
	depends on ARCH_MSM8960
	bool "MSM8960 RUMI3"
	help
	  Support for the Qualcomm MSM8960 RUMI3 emulator.

endmenu

config IOMMU_PGTABLES_L2
+11 −12
Original line number Diff line number Diff line
obj-y += io.o idle.o timer.o
ifndef CONFIG_ARCH_MSM8X60
obj-y += acpuclock-arm11.o
obj-y += dma.o
endif

ifdef CONFIG_MSM_VIC
obj-y += irq-vic.o
else
ifndef CONFIG_ARCH_MSM8X60
obj-y += irq.o
endif
endif
obj-$(CONFIG_MSM_VIC) += irq-vic.o

obj-$(CONFIG_ARCH_MSM7X00A) += dma.o irq.o acpuclock-arm11.o
obj-$(CONFIG_ARCH_MSM7X30) += dma.o
obj-$(CONFIG_ARCH_QSD8X50) += dma.o sirc.o
obj-$(CONFIG_ARCH_MSM8X60) += clock-dummy.o iommu.o iommu_dev.o devices-msm8x60-iommu.o
obj-$(CONFIG_ARCH_MSM8960) += clock-dummy.o

obj-$(CONFIG_MSM_PROC_COMM) += proc_comm.o clock-pcom.o vreg.o
obj-$(CONFIG_MSM_PROC_COMM) += clock.o
obj-$(CONFIG_ARCH_QSD8X50) += sirc.o

obj-$(CONFIG_MSM_SMD) += smd.o smd_debug.o
obj-$(CONFIG_MSM_SMD) += last_radio_log.o
obj-$(CONFIG_MSM_SCM) += scm.o scm-boot.o
@@ -29,12 +24,16 @@ obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o devices-msm7x00.o
obj-$(CONFIG_ARCH_MSM7X30) += board-msm7x30.o devices-msm7x30.o
obj-$(CONFIG_ARCH_QSD8X50) += board-qsd8x50.o devices-qsd8x50.o
obj-$(CONFIG_ARCH_MSM8X60) += board-msm8x60.o
obj-$(CONFIG_ARCH_MSM8960) += board-msm8960.o

obj-$(CONFIG_ARCH_MSM7X30) += gpiomux-v1.o gpiomux.o
obj-$(CONFIG_ARCH_QSD8X50) += gpiomux-8x50.o gpiomux-v1.o gpiomux.o
obj-$(CONFIG_ARCH_MSM8X60) += gpiomux-8x60.o gpiomux-v2.o gpiomux.o
ifdef CONFIG_MSM_V2_TLMM
ifndef CONFIG_ARCH_MSM8960
# TODO: TLMM Mapping issues need to be resolved
obj-y	+= gpio-v2.o
endif
else
obj-y	+= gpio.o
endif
+68 −0
Original line number Diff line number Diff line
/* Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 *
 */
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/irq.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/hardware/gic.h>

#include <mach/board.h>
#include <mach/msm_iomap.h>

static void __init msm8960_map_io(void)
{
	msm_map_msm8960_io();
}

static void __init msm8960_init_irq(void)
{
	unsigned int i;
	gic_init(0, GIC_PPI_START, MSM_QGIC_DIST_BASE,
		 (void *)MSM_QGIC_CPU_BASE);

	/* Edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */
	writel(0xFFFFD7FF, MSM_QGIC_DIST_BASE + GIC_DIST_CONFIG + 4);

	if (machine_is_msm8960_rumi3())
		writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET);

	/* FIXME: Not installing AVS_SVICINT and AVS_SVICINTSWDONE yet
	 * as they are configured as level, which does not play nice with
	 * handle_percpu_irq.
	 */
	for (i = GIC_PPI_START; i < GIC_SPI_START; i++) {
		if (i != AVS_SVICINT && i != AVS_SVICINTSWDONE)
			set_irq_handler(i, handle_percpu_irq);
	}
}

MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR")
	.map_io = msm8960_map_io,
	.init_irq = msm8960_init_irq,
	.timer = &msm_timer,
MACHINE_END

MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3")
	.map_io = msm8960_map_io,
	.init_irq = msm8960_init_irq,
	.timer = &msm_timer,
MACHINE_END
+54 −0
Original line number Diff line number Diff line
/* Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 */

#ifndef __ARCH_ARM_MACH_MSM_CPU_H__
#define __ARCH_ARM_MACH_MSM_CPU_H__

/* TODO: For now, only one CPU can be compiled at a time. */

#define cpu_is_msm7x01()	0
#define cpu_is_msm7x30()	0
#define cpu_is_qsd8x50()	0
#define cpu_is_msm8x60()	0
#define cpu_is_msm8960()	0

#ifdef CONFIG_ARCH_MSM7X00A
# undef cpu_is_msm7x01
# define cpu_is_msm7x01()	1
#endif

#ifdef CONFIG_ARCH_MSM7X30
# undef cpu_is_msm7x30
# define cpu_is_msm7x30()	1
#endif

#ifdef CONFIG_ARCH_QSD8X50
# undef cpu_is_qsd8x50
# define cpu_is_qsd8x50()	1
#endif

#ifdef CONFIG_ARCH_MSM8X60
# undef cpu_is_msm8x60
# define cpu_is_msm8x60()	1
#endif

#ifdef CONFIG_ARCH_MSM8960
# undef cpu_is_msm8960
# define cpu_is_msm8960()	1
#endif

#endif
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ void __iomem *__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int m
void msm_map_qsd8x50_io(void);
void msm_map_msm7x30_io(void);
void msm_map_msm8x60_io(void);
void msm_map_msm8960_io(void);

extern unsigned int msm_shared_ram_phys;

Loading