forked from mirrors/linux
		
	ARM: sirf: enable multiplatform support
All the prerequisites are there now, so we can move sirf into multiplatform. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
		
							parent
							
								
									275786b71d
								
							
						
					
					
						commit
						cf82e0e405
					
				
					 13 changed files with 18 additions and 173 deletions
				
			
		| 
						 | 
					@ -49,7 +49,6 @@ config ARM
 | 
				
			||||||
	select HAVE_REGS_AND_STACK_ACCESS_API
 | 
						select HAVE_REGS_AND_STACK_ACCESS_API
 | 
				
			||||||
	select HAVE_SYSCALL_TRACEPOINTS
 | 
						select HAVE_SYSCALL_TRACEPOINTS
 | 
				
			||||||
	select HAVE_UID16
 | 
						select HAVE_UID16
 | 
				
			||||||
	select HAVE_VIRT_TO_BUS
 | 
					 | 
				
			||||||
	select KTIME_SCALAR
 | 
						select KTIME_SCALAR
 | 
				
			||||||
	select PERF_USE_VMALLOC
 | 
						select PERF_USE_VMALLOC
 | 
				
			||||||
	select RTC_LIB
 | 
						select RTC_LIB
 | 
				
			||||||
| 
						 | 
					@ -415,22 +414,6 @@ config ARCH_GEMINI
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  Support for the Cortina Systems Gemini family SoCs
 | 
						  Support for the Cortina Systems Gemini family SoCs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config ARCH_SIRF
 | 
					 | 
				
			||||||
	bool "CSR SiRF"
 | 
					 | 
				
			||||||
	select ARCH_REQUIRE_GPIOLIB
 | 
					 | 
				
			||||||
	select AUTO_ZRELADDR
 | 
					 | 
				
			||||||
	select COMMON_CLK
 | 
					 | 
				
			||||||
	select GENERIC_CLOCKEVENTS
 | 
					 | 
				
			||||||
	select GENERIC_IRQ_CHIP
 | 
					 | 
				
			||||||
	select MIGHT_HAVE_CACHE_L2X0
 | 
					 | 
				
			||||||
	select NO_IOPORT
 | 
					 | 
				
			||||||
	select PINCTRL
 | 
					 | 
				
			||||||
	select PINCTRL_SIRF
 | 
					 | 
				
			||||||
	select USE_OF
 | 
					 | 
				
			||||||
	select SPARSE_IRQ
 | 
					 | 
				
			||||||
	help
 | 
					 | 
				
			||||||
	  Support for CSR SiRFprimaII/Marco/Polo platforms
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
config ARCH_EBSA110
 | 
					config ARCH_EBSA110
 | 
				
			||||||
	bool "EBSA-110"
 | 
						bool "EBSA-110"
 | 
				
			||||||
	select ARCH_USES_GETTIMEOFFSET
 | 
						select ARCH_USES_GETTIMEOFFSET
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,15 @@
 | 
				
			||||||
 | 
					config ARCH_SIRF
 | 
				
			||||||
 | 
						bool "CSR SiRF" if ARCH_MULTI_V7
 | 
				
			||||||
 | 
						select ARCH_REQUIRE_GPIOLIB
 | 
				
			||||||
 | 
						select GENERIC_CLOCKEVENTS
 | 
				
			||||||
 | 
						select GENERIC_IRQ_CHIP
 | 
				
			||||||
 | 
						select MIGHT_HAVE_CACHE_L2X0
 | 
				
			||||||
 | 
						select NO_IOPORT
 | 
				
			||||||
 | 
						select PINCTRL
 | 
				
			||||||
 | 
						select PINCTRL_SIRF
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  Support for CSR SiRFprimaII/Marco/Polo platforms
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ARCH_SIRF
 | 
					if ARCH_SIRF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
menu "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
 | 
					menu "CSR SiRF atlas6/primaII/Marco/Polo Specific Features"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,3 +6,5 @@ obj-$(CONFIG_CACHE_L2X0) += l2x0.o
 | 
				
			||||||
obj-$(CONFIG_SUSPEND) += pm.o sleep.o
 | 
					obj-$(CONFIG_SUSPEND) += pm.o sleep.o
 | 
				
			||||||
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
 | 
					obj-$(CONFIG_SMP) += platsmp.o headsmp.o
 | 
				
			||||||
obj-$(CONFIG_HOTPLUG_CPU)  += hotplug.o
 | 
					obj-$(CONFIG_HOTPLUG_CPU)  += hotplug.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS_hotplug.o += -march=armv7-a
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,9 @@
 | 
				
			||||||
#include <asm/mach/time.h>
 | 
					#include <asm/mach/time.h>
 | 
				
			||||||
#include <asm/exception.h>
 | 
					#include <asm/exception.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIRFSOC_VA_BASE		_AC(0xFEC00000, UL)
 | 
				
			||||||
 | 
					#define SIRFSOC_VA(x)		(SIRFSOC_VA_BASE + ((x) & 0x00FFF000))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern struct smp_operations   sirfsoc_smp_ops;
 | 
					extern struct smp_operations   sirfsoc_smp_ops;
 | 
				
			||||||
extern void sirfsoc_secondary_startup(void);
 | 
					extern void sirfsoc_secondary_startup(void);
 | 
				
			||||||
extern void sirfsoc_cpu_die(unsigned int cpu);
 | 
					extern void sirfsoc_cpu_die(unsigned int cpu);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,15 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/clkdev.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __MACH_CLKDEV_H
 | 
					 | 
				
			||||||
#define __MACH_CLKDEV_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define __clk_get(clk) ({ 1; })
 | 
					 | 
				
			||||||
#define __clk_put(clk) do { } while (0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/entry-macro.S
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <mach/hardware.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SIRFSOC_INT_ID 0x38
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	.macro  get_irqnr_preamble, base, tmp
 | 
					 | 
				
			||||||
	ldr     \base, =sirfsoc_intc_base
 | 
					 | 
				
			||||||
	ldr     \base, [\base]
 | 
					 | 
				
			||||||
	.endm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	.macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
 | 
					 | 
				
			||||||
	ldr \irqnr, [\base, #SIRFSOC_INT_ID]	@ Get the highest priority irq
 | 
					 | 
				
			||||||
	cmp \irqnr, #0x40			@ the irq num can't be larger than 0x3f
 | 
					 | 
				
			||||||
	movges \irqnr, #0
 | 
					 | 
				
			||||||
	.endm
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,15 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/hardware.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __MACH_HARDWARE_H__
 | 
					 | 
				
			||||||
#define __MACH_HARDWARE_H__
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <asm/sizes.h>
 | 
					 | 
				
			||||||
#include <mach/map.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * memory & I/O static mapping definitions for CSR SiRFprimaII
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __MACH_PRIMA2_MAP_H__
 | 
					 | 
				
			||||||
#define __MACH_PRIMA2_MAP_H__
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <linux/const.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SIRFSOC_VA_BASE		_AC(0xFEC00000, UL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SIRFSOC_VA(x)		(SIRFSOC_VA_BASE + ((x) & 0x00FFF000))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/timex.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __MACH_TIMEX_H__
 | 
					 | 
				
			||||||
#define __MACH_TIMEX_H__
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define CLOCK_TICK_RATE  1000000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/uart.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __MACH_PRIMA2_SIRFSOC_UART_H
 | 
					 | 
				
			||||||
#define __MACH_PRIMA2_SIRFSOC_UART_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* UART-1: used as serial debug port */
 | 
					 | 
				
			||||||
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_PA_BASE          0xb0060000
 | 
					 | 
				
			||||||
#elif defined(CONFIG_DEBUG_SIRFMARCO_UART1)
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_PA_BASE          0xcc060000
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_PA_BASE          0
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_VA_BASE          SIRFSOC_VA(0x060000)
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_SIZE		SZ_4K
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SIRFSOC_UART_TXFIFO_STATUS	0x0114
 | 
					 | 
				
			||||||
#define SIRFSOC_UART_TXFIFO_DATA	0x0118
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_TXFIFO_FULL                       (1 << 5)
 | 
					 | 
				
			||||||
#define SIRFSOC_UART1_TXFIFO_EMPTY			(1 << 6)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,41 +0,0 @@
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * arch/arm/mach-prima2/include/mach/uncompress.h
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Licensed under GPLv2 or later.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef __ASM_ARCH_UNCOMPRESS_H
 | 
					 | 
				
			||||||
#define __ASM_ARCH_UNCOMPRESS_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <linux/io.h>
 | 
					 | 
				
			||||||
#include <mach/hardware.h>
 | 
					 | 
				
			||||||
#include <mach/uart.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void arch_decomp_setup(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static __inline__ void putc(char c)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * during kernel decompression, all mappings are flat:
 | 
					 | 
				
			||||||
	 *  virt_addr == phys_addr
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	if (!SIRFSOC_UART1_PA_BASE)
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	while (__raw_readl((void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_STATUS)
 | 
					 | 
				
			||||||
		& SIRFSOC_UART1_TXFIFO_FULL)
 | 
					 | 
				
			||||||
		barrier();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	__raw_writel(c, (void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_DATA);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline void flush(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
#include <linux/kernel.h>
 | 
					#include <linux/kernel.h>
 | 
				
			||||||
#include <asm/page.h>
 | 
					#include <asm/page.h>
 | 
				
			||||||
#include <asm/mach/map.h>
 | 
					#include <asm/mach/map.h>
 | 
				
			||||||
#include <mach/map.h>
 | 
					#include "common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
 | 
					#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
 | 
				
			||||||
#define SIRFSOC_UART1_PA_BASE          0xb0060000
 | 
					#define SIRFSOC_UART1_PA_BASE          0xb0060000
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,6 @@
 | 
				
			||||||
#include <asm/smp_scu.h>
 | 
					#include <asm/smp_scu.h>
 | 
				
			||||||
#include <asm/cacheflush.h>
 | 
					#include <asm/cacheflush.h>
 | 
				
			||||||
#include <asm/cputype.h>
 | 
					#include <asm/cputype.h>
 | 
				
			||||||
#include <mach/map.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "common.h"
 | 
					#include "common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue