mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
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_SYSCALL_TRACEPOINTS
|
||||
select HAVE_UID16
|
||||
select HAVE_VIRT_TO_BUS
|
||||
select KTIME_SCALAR
|
||||
select PERF_USE_VMALLOC
|
||||
select RTC_LIB
|
||||
|
@ -415,22 +414,6 @@ config ARCH_GEMINI
|
|||
help
|
||||
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
|
||||
bool "EBSA-110"
|
||||
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
|
||||
|
||||
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_SMP) += platsmp.o headsmp.o
|
||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
|
||||
|
||||
CFLAGS_hotplug.o += -march=armv7-a
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
#include <asm/mach/time.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 void sirfsoc_secondary_startup(void);
|
||||
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 <asm/page.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/map.h>
|
||||
#include "common.h"
|
||||
|
||||
#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1)
|
||||
#define SIRFSOC_UART1_PA_BASE 0xb0060000
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <asm/smp_scu.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/cputype.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
|
Loading…
Reference in a new issue