Adding SPEAr13xx support
Subsystems (3)
v6 cover Adding SPEAr13xx support
This patchset adds support for SPEAr13xx machine family. Currently support for to machines SPEAr1300 & SPEAr1310 are added.
Note: These patches were earlier sent as part of a larger patchset:
"Updating SPEAr Support"
Now it is divided into smaller patchsets. In order to apply these patches cleanly following order of patchsets must be maintained.
- SPEAr3xx & SPEAr6xx Fixes
- SPEAr3xx & SPEAr6xx: Single Image solution and padmux updates
- Adding SPEAr13xx support
- Adding devices support for all spear machines
- Clock Framework & CPU Freq Updates
Bhupesh Sharma (1):
ST SPEAr13xx: Adding support for SPEAr1310
Deepak Sikri (1):
ST SPEAr13xx: Adding CPU hotplug support added for SMP platforms
Shiraz Hashim (7):
ST SPEAr13xx: Adding machine specific header files
ST SPEAr13xx: Adding machine specific src files
ST SPEAr13xx: Adding support in SPEAr generic plat/
ST SPEAr13xx: Added compilation support in arch/arm/
ST SPEAr13xx: Adding default config file
ST SPEAr13xx: Adding information in Documentation/ and MAINTAINERS ST SPEAr13xx: add L2 cache support
Vipin Kumar (1):
ST SPEAr13xx: Add padmux support
Documentation/arm/SPEAr/overview.txt | 34 +- MAINTAINERS | 6 + arch/arm/Kconfig | 4 +- arch/arm/Makefile | 2 + arch/arm/configs/spear13xx_defconfig | 61 + arch/arm/mach-spear13xx/Kconfig | 32 + arch/arm/mach-spear13xx/Makefile | 21 + arch/arm/mach-spear13xx/Makefile.boot | 3 + arch/arm/mach-spear13xx/clock.c | 1167 ++++++++++++++++++++ arch/arm/mach-spear13xx/headsmp.S | 42 + arch/arm/mach-spear13xx/hotplug.c | 121 ++ arch/arm/mach-spear13xx/include/mach/clkdev.h | 19 + arch/arm/mach-spear13xx/include/mach/debug-macro.S | 14 + arch/arm/mach-spear13xx/include/mach/entry-macro.S | 22 + arch/arm/mach-spear13xx/include/mach/generic.h | 261 +++++ arch/arm/mach-spear13xx/include/mach/gpio.h | 19 + arch/arm/mach-spear13xx/include/mach/hardware.h | 31 + arch/arm/mach-spear13xx/include/mach/io.h | 19 + arch/arm/mach-spear13xx/include/mach/irqs.h | 128 +++ arch/arm/mach-spear13xx/include/mach/memory.h | 19 + arch/arm/mach-spear13xx/include/mach/misc_regs.h | 386 +++++++ arch/arm/mach-spear13xx/include/mach/smp.h | 25 + arch/arm/mach-spear13xx/include/mach/spear.h | 95 ++ arch/arm/mach-spear13xx/include/mach/spear1300.h | 21 + arch/arm/mach-spear13xx/include/mach/spear1310.h | 64 ++ arch/arm/mach-spear13xx/include/mach/system.h | 35 + arch/arm/mach-spear13xx/include/mach/timex.h | 19 + arch/arm/mach-spear13xx/include/mach/uncompress.h | 19 + arch/arm/mach-spear13xx/include/mach/vmalloc.h | 18 + arch/arm/mach-spear13xx/localtimer.c | 25 + arch/arm/mach-spear13xx/platsmp.c | 162 +++ arch/arm/mach-spear13xx/spear1300.c | 38 + arch/arm/mach-spear13xx/spear1300_evb.c | 67 ++ arch/arm/mach-spear13xx/spear1310.c | 494 +++++++++ arch/arm/mach-spear13xx/spear1310_evb.c | 86 ++ arch/arm/mach-spear13xx/spear13xx.c | 697 ++++++++++++ arch/arm/mm/Kconfig | 2 +- arch/arm/plat-spear/Kconfig | 8 + arch/arm/plat-spear/Makefile | 1 + 39 files changed, 4273 insertions(+), 14 deletions(-) create mode 100644 arch/arm/configs/spear13xx_defconfig create mode 100644 arch/arm/mach-spear13xx/Kconfig create mode 100644 arch/arm/mach-spear13xx/Makefile create mode 100644 arch/arm/mach-spear13xx/Makefile.boot create mode 100644 arch/arm/mach-spear13xx/clock.c create mode 100644 arch/arm/mach-spear13xx/headsmp.S create mode 100644 arch/arm/mach-spear13xx/hotplug.c create mode 100644 arch/arm/mach-spear13xx/include/mach/clkdev.h create mode 100644 arch/arm/mach-spear13xx/include/mach/debug-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/entry-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/generic.h create mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h create mode 100644 arch/arm/mach-spear13xx/include/mach/hardware.h create mode 100644 arch/arm/mach-spear13xx/include/mach/io.h create mode 100644 arch/arm/mach-spear13xx/include/mach/irqs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/memory.h create mode 100644 arch/arm/mach-spear13xx/include/mach/misc_regs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/smp.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear1300.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear1310.h create mode 100644 arch/arm/mach-spear13xx/include/mach/system.h create mode 100644 arch/arm/mach-spear13xx/include/mach/timex.h create mode 100644 arch/arm/mach-spear13xx/include/mach/uncompress.h create mode 100644 arch/arm/mach-spear13xx/include/mach/vmalloc.h create mode 100644 arch/arm/mach-spear13xx/localtimer.c create mode 100644 arch/arm/mach-spear13xx/platsmp.c create mode 100644 arch/arm/mach-spear13xx/spear1300.c create mode 100644 arch/arm/mach-spear13xx/spear1300_evb.c create mode 100644 arch/arm/mach-spear13xx/spear1310.c create mode 100644 arch/arm/mach-spear13xx/spear1310_evb.c create mode 100644 arch/arm/mach-spear13xx/spear13xx.c
Signature · 1 line
1.7.2.2
PATCH v6 1/10 ST SPEAr13xx: Adding machine specific header files
From: Shiraz Hashim <[email protected]>
--- arch/arm/mach-spear13xx/include/mach/clkdev.h | 19 + arch/arm/mach-spear13xx/include/mach/debug-macro.S | 14 + arch/arm/mach-spear13xx/include/mach/entry-macro.S | 22 ++ arch/arm/mach-spear13xx/include/mach/generic.h | 50 +++ arch/arm/mach-spear13xx/include/mach/gpio.h | 19 + arch/arm/mach-spear13xx/include/mach/hardware.h | 31 ++ arch/arm/mach-spear13xx/include/mach/io.h | 19 + arch/arm/mach-spear13xx/include/mach/irqs.h | 91 +++++ arch/arm/mach-spear13xx/include/mach/memory.h | 19 + arch/arm/mach-spear13xx/include/mach/misc_regs.h | 386 ++++++++++++++++++++ arch/arm/mach-spear13xx/include/mach/smp.h | 25 ++ arch/arm/mach-spear13xx/include/mach/spear.h | 94 +++++ arch/arm/mach-spear13xx/include/mach/spear1300.h | 21 + arch/arm/mach-spear13xx/include/mach/system.h | 35 ++ arch/arm/mach-spear13xx/include/mach/timex.h | 19 + arch/arm/mach-spear13xx/include/mach/uncompress.h | 19 + arch/arm/mach-spear13xx/include/mach/vmalloc.h | 18 + 17 files changed, 901 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-spear13xx/include/mach/clkdev.h create mode 100644 arch/arm/mach-spear13xx/include/mach/debug-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/entry-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/generic.h create mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h create mode 100644 arch/arm/mach-spear13xx/include/mach/hardware.h create mode 100644 arch/arm/mach-spear13xx/include/mach/io.h create mode 100644 arch/arm/mach-spear13xx/include/mach/irqs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/memory.h create mode 100644 arch/arm/mach-spear13xx/include/mach/misc_regs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/smp.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear1300.h create mode 100644 arch/arm/mach-spear13xx/include/mach/system.h create mode 100644 arch/arm/mach-spear13xx/include/mach/timex.h create mode 100644 arch/arm/mach-spear13xx/include/mach/uncompress.h create mode 100644 arch/arm/mach-spear13xx/include/mach/vmalloc.h
arch/arm/mach-spear13xx/include/mach/clkdev.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/clkdev.h +* +* Clock Dev framework definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_CLKDEV_H +#define __MACH_CLKDEV_H + +#include <plat/clkdev.h> + +#endif /* __MACH_CLKDEV_H */
arch/arm/mach-spear13xx/include/mach/debug-macro.S new file +14 -0
@@ -0,0 +1,14 @@ +/* + * arch/arm/mach-spear13xx/include/mach/debug-macro.S + * + * Debugging macro include header spear13xx machine family + * + * Copyright (C) 2009 ST Microelectronics + * Shiraz Hashim <[email protected]> + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include <plat/debug-macro.S>
arch/arm/mach-spear13xx/include/mach/entry-macro.S new file +22 -0
@@ -0,0 +1,22 @@ +/* + * arch/arm/mach-spear13xx/include/mach/entry-macro.S + * + * Copyright (C) 2009 ST Microelectronics + * Shiraz Hashim <[email protected]> + * + * Copy of RealView platform implementation + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include <asm/hardware/entry-macro-gic.S> +#include <mach/hardware.h> + + .macro disable_fiq + .endm + + .macro arch_ret_to_user, tmp1, tmp2 + .endm +
arch/arm/mach-spear13xx/include/mach/generic.h new file +50 -0
50 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/gpio.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/gpio.h +* +* GPIO macros for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_GPIO_H +#define __MACH_GPIO_H + +#include <plat/gpio.h> + +#endif /* __MACH_GPIO_H */
arch/arm/mach-spear13xx/include/mach/hardware.h new file +31 -0
@@ -0,0 +1,31 @@ +/* +* arch/arm/mach-spear13xx/include/mach/hardware.h +* +* Hardware definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_HARDWARE_H +#define __MACH_HARDWARE_H + +#include <plat/hardware.h> +#include <mach/spear.h> + +/* Vitual to physical translation of statically mapped space */ +/* +* if phy_addr is 0x8...,.... and above then map it to 0xF...,.... +* else map it to 0xE...,.... +*/ + +#define IO_ADDRESS (x) ((x) | ((((x) >> 31) << 28) | 0xE0000000)) + +/* typesafe io address */ +#define __io_address (n) __io(IO_ADDRESS(n)) + +#endif /* __MACH_HARDWARE_H */
arch/arm/mach-spear13xx/include/mach/io.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/io.h +* +* IO definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_IO_H +#define __MACH_IO_H + +#include <plat/io.h> + +#endif /* __MACH_IO_H */
arch/arm/mach-spear13xx/include/mach/irqs.h new file +91 -0
91 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/memory.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/memory.h +* +* Memory map for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_MEMORY_H +#define __MACH_MEMORY_H + +#include <plat/memory.h> + +#endif /* __MACH_MEMORY_H */
arch/arm/mach-spear13xx/include/mach/misc_regs.h new file +386 -0
386 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/smp.h new file +25 -0
@@ -0,0 +1,25 @@ +/* +* arch/arm/mach-spear13xx/include/mach/smp.h +* +* Few SMP related definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_SMP_H +#define __MACH_SMP_H + +#include <asm/hardware/gic.h> + +/* We use IRQ1 as the IPI */ +static inline void smp_cross_call (const struct cpumask *mask,int ipi) +{ +gic_raise_softirq (mask, ipi); +} + +#endif
arch/arm/mach-spear13xx/include/mach/spear.h new file +94 -0
94 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/spear1300.h new file +21 -0
@@ -0,0 +1,21 @@ +/* +* arch/arm/mach-spear13xx/include/mach/spear1300.h +* +* SPEAr1300 Machine specific definition +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifdef CONFIG_MACH_SPEAR1300 + +#ifndef __MACH_SPEAR1300_H +#define __MACH_SPEAR1300_H + +#endif /* __MACH_SPEAR1300_H */ + +#endif /* CONFIG_MACH_SPEAR1300 */
arch/arm/mach-spear13xx/include/mach/system.h new file +35 -0
@@ -0,0 +1,35 @@ +/* +* arch/arm/mach-spear13xx/include/mach/system.h +* +* spear13xx Machine family specific architecture functions +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_SYSTEM_H +#define __MACH_SYSTEM_H + +#include <linux/io.h> +#include <mach/hardware.h> +#include <mach/misc_regs.h> + +static inline void arch_idle (void ) +{ +/* +* This should do all the clock switching +* and wait for interrupt tricks +*/ +cpu_do_idle (); +} + +static inline void arch_reset (char mode,const char *cmd) +{ +writel (0x01 ,SYS_SW_RES ); +} + +#endif /* __MACH_SYSTEM_H */
arch/arm/mach-spear13xx/include/mach/timex.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/timex.h +* +* spear13xx machine family specific timex definitions +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_TIMEX_H +#define __MACH_TIMEX_H + +#define CLOCK_TICK_RATE 24000000 + +#endif /* __MACH_TIMEX_H */
arch/arm/mach-spear13xx/include/mach/uncompress.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/uncompress.h +* +* Serial port stubs for kernel decompress status messages +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_UNCOMPRESS_H +#define __MACH_UNCOMPRESS_H + +#include <plat/uncompress.h> + +#endif /* __MACH_UNCOMPRESS_H */
arch/arm/mach-spear13xx/include/mach/vmalloc.h new file +18 -0
@@ -0,0 +1,18 @@ +/* +* arch/arm/mach-spear13xx/include/mach/vmalloc.h +* +* Defining Vmalloc area for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_VMALLOC_H +#define __MACH_VMALLOC_H + +#define VMALLOC_END 0xEC800000UL + +#endif /* __MACH_VMALLOC_H */
Signature · 1 line
1.7.2.2
PATCH RESEND v6 1/10 SPEAr13xx: Add machine specific header files
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
Changes in V6 resend:
- misc register definitions are fixed & updated in misc_regs.h
--- arch/arm/mach-spear13xx/include/mach/clkdev.h | 19 + arch/arm/mach-spear13xx/include/mach/debug-macro.S | 14 + arch/arm/mach-spear13xx/include/mach/entry-macro.S | 22 + arch/arm/mach-spear13xx/include/mach/generic.h | 50 +++ arch/arm/mach-spear13xx/include/mach/gpio.h | 19 + arch/arm/mach-spear13xx/include/mach/hardware.h | 31 ++ arch/arm/mach-spear13xx/include/mach/io.h | 19 + arch/arm/mach-spear13xx/include/mach/irqs.h | 91 +++++ arch/arm/mach-spear13xx/include/mach/memory.h | 19 + arch/arm/mach-spear13xx/include/mach/misc_regs.h | 424 ++++++++++++++++++++ arch/arm/mach-spear13xx/include/mach/smp.h | 25 ++ arch/arm/mach-spear13xx/include/mach/spear.h | 94 +++++ arch/arm/mach-spear13xx/include/mach/spear1300.h | 21 + arch/arm/mach-spear13xx/include/mach/system.h | 35 ++ arch/arm/mach-spear13xx/include/mach/timex.h | 19 + arch/arm/mach-spear13xx/include/mach/uncompress.h | 19 + arch/arm/mach-spear13xx/include/mach/vmalloc.h | 18 + 17 files changed, 939 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-spear13xx/include/mach/clkdev.h create mode 100644 arch/arm/mach-spear13xx/include/mach/debug-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/entry-macro.S create mode 100644 arch/arm/mach-spear13xx/include/mach/generic.h create mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h create mode 100644 arch/arm/mach-spear13xx/include/mach/hardware.h create mode 100644 arch/arm/mach-spear13xx/include/mach/io.h create mode 100644 arch/arm/mach-spear13xx/include/mach/irqs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/memory.h create mode 100644 arch/arm/mach-spear13xx/include/mach/misc_regs.h create mode 100644 arch/arm/mach-spear13xx/include/mach/smp.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear.h create mode 100644 arch/arm/mach-spear13xx/include/mach/spear1300.h create mode 100644 arch/arm/mach-spear13xx/include/mach/system.h create mode 100644 arch/arm/mach-spear13xx/include/mach/timex.h create mode 100644 arch/arm/mach-spear13xx/include/mach/uncompress.h create mode 100644 arch/arm/mach-spear13xx/include/mach/vmalloc.h
arch/arm/mach-spear13xx/include/mach/clkdev.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/clkdev.h +* +* Clock Dev framework definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_CLKDEV_H +#define __MACH_CLKDEV_H + +#include <plat/clkdev.h> + +#endif /* __MACH_CLKDEV_H */
arch/arm/mach-spear13xx/include/mach/debug-macro.S new file +14 -0
@@ -0,0 +1,14 @@ +/* + * arch/arm/mach-spear13xx/include/mach/debug-macro.S + * + * Debugging macro include header spear13xx machine family + * + * Copyright (C) 2009 ST Microelectronics + * Shiraz Hashim <[email protected]> + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include <plat/debug-macro.S>
arch/arm/mach-spear13xx/include/mach/entry-macro.S new file +22 -0
@@ -0,0 +1,22 @@ +/* + * arch/arm/mach-spear13xx/include/mach/entry-macro.S + * + * Copyright (C) 2009 ST Microelectronics + * Shiraz Hashim <[email protected]> + * + * Copy of RealView platform implementation + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include <asm/hardware/entry-macro-gic.S> +#include <mach/hardware.h> + + .macro disable_fiq + .endm + + .macro arch_ret_to_user, tmp1, tmp2 + .endm +
arch/arm/mach-spear13xx/include/mach/generic.h new file +50 -0
50 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/gpio.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/gpio.h +* +* GPIO macros for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_GPIO_H +#define __MACH_GPIO_H + +#include <plat/gpio.h> + +#endif /* __MACH_GPIO_H */
arch/arm/mach-spear13xx/include/mach/hardware.h new file +31 -0
@@ -0,0 +1,31 @@ +/* +* arch/arm/mach-spear13xx/include/mach/hardware.h +* +* Hardware definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_HARDWARE_H +#define __MACH_HARDWARE_H + +#include <plat/hardware.h> +#include <mach/spear.h> + +/* Vitual to physical translation of statically mapped space */ +/* +* if phy_addr is 0x8...,.... and above then map it to 0xF...,.... +* else map it to 0xE...,.... +*/ + +#define IO_ADDRESS (x) ((x) | ((((x) >> 31) << 28) | 0xE0000000)) + +/* typesafe io address */ +#define __io_address (n) __io(IO_ADDRESS(n)) + +#endif /* __MACH_HARDWARE_H */
arch/arm/mach-spear13xx/include/mach/io.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/io.h +* +* IO definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_IO_H +#define __MACH_IO_H + +#include <plat/io.h> + +#endif /* __MACH_IO_H */
arch/arm/mach-spear13xx/include/mach/irqs.h new file +91 -0
91 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/memory.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/memory.h +* +* Memory map for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_MEMORY_H +#define __MACH_MEMORY_H + +#include <plat/memory.h> + +#endif /* __MACH_MEMORY_H */
arch/arm/mach-spear13xx/include/mach/misc_regs.h new file +424 -0
424 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/smp.h new file +25 -0
@@ -0,0 +1,25 @@ +/* +* arch/arm/mach-spear13xx/include/mach/smp.h +* +* Few SMP related definitions for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_SMP_H +#define __MACH_SMP_H + +#include <asm/hardware/gic.h> + +/* We use IRQ1 as the IPI */ +static inline void smp_cross_call (const struct cpumask *mask,int ipi) +{ +gic_raise_softirq (mask, ipi); +} + +#endif
arch/arm/mach-spear13xx/include/mach/spear.h new file +94 -0
94 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/spear1300.h new file +21 -0
@@ -0,0 +1,21 @@ +/* +* arch/arm/mach-spear13xx/include/mach/spear1300.h +* +* SPEAr1300 Machine specific definition +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifdef CONFIG_MACH_SPEAR1300 + +#ifndef __MACH_SPEAR1300_H +#define __MACH_SPEAR1300_H + +#endif /* __MACH_SPEAR1300_H */ + +#endif /* CONFIG_MACH_SPEAR1300 */
arch/arm/mach-spear13xx/include/mach/system.h new file +35 -0
@@ -0,0 +1,35 @@ +/* +* arch/arm/mach-spear13xx/include/mach/system.h +* +* spear13xx Machine family specific architecture functions +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_SYSTEM_H +#define __MACH_SYSTEM_H + +#include <linux/io.h> +#include <mach/hardware.h> +#include <mach/misc_regs.h> + +static inline void arch_idle (void ) +{ +/* +* This should do all the clock switching +* and wait for interrupt tricks +*/ +cpu_do_idle (); +} + +static inline void arch_reset (char mode,const char *cmd) +{ +writel (0x01 ,SYS_SW_RES ); +} + +#endif /* __MACH_SYSTEM_H */
arch/arm/mach-spear13xx/include/mach/timex.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/timex.h +* +* spear13xx machine family specific timex definitions +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_TIMEX_H +#define __MACH_TIMEX_H + +#define CLOCK_TICK_RATE 24000000 + +#endif /* __MACH_TIMEX_H */
arch/arm/mach-spear13xx/include/mach/uncompress.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* arch/arm/mach-spear13xx/include/mach/uncompress.h +* +* Serial port stubs for kernel decompress status messages +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_UNCOMPRESS_H +#define __MACH_UNCOMPRESS_H + +#include <plat/uncompress.h> + +#endif /* __MACH_UNCOMPRESS_H */
arch/arm/mach-spear13xx/include/mach/vmalloc.h new file +18 -0
@@ -0,0 +1,18 @@ +/* +* arch/arm/mach-spear13xx/include/mach/vmalloc.h +* +* Defining Vmalloc area for spear13xx machine family +* +* Copyright (C) 2010 ST Microelectronics +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#ifndef __MACH_VMALLOC_H +#define __MACH_VMALLOC_H + +#define VMALLOC_END 0xEC800000UL + +#endif /* __MACH_VMALLOC_H */
Signature · 1 line
1.7.2.2
PATCH v6 2/10 ST SPEAr13xx: Adding machine specific src files
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
--- arch/arm/mach-spear13xx/Kconfig | 21 + arch/arm/mach-spear13xx/Makefile | 14 + arch/arm/mach-spear13xx/Makefile.boot | 3 + arch/arm/mach-spear13xx/clock.c | 1013 ++++++++++++++++++++++++ arch/arm/mach-spear13xx/headsmp.S | 42 + arch/arm/mach-spear13xx/include/mach/generic.h | 2 +- arch/arm/mach-spear13xx/localtimer.c | 25 + arch/arm/mach-spear13xx/platsmp.c | 162 ++++ arch/arm/mach-spear13xx/spear1300.c | 23 + arch/arm/mach-spear13xx/spear1300_evb.c | 48 ++ arch/arm/mach-spear13xx/spear13xx.c | 121 +++ 11 files changed, 1473 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-spear13xx/Kconfig create mode 100644 arch/arm/mach-spear13xx/Makefile create mode 100644 arch/arm/mach-spear13xx/Makefile.boot create mode 100644 arch/arm/mach-spear13xx/clock.c create mode 100644 arch/arm/mach-spear13xx/headsmp.S create mode 100644 arch/arm/mach-spear13xx/localtimer.c create mode 100644 arch/arm/mach-spear13xx/platsmp.c create mode 100644 arch/arm/mach-spear13xx/spear1300.c create mode 100644 arch/arm/mach-spear13xx/spear1300_evb.c create mode 100644 arch/arm/mach-spear13xx/spear13xx.c
arch/arm/mach-spear13xx/Kconfig new file +21 -0
@@ -0,0 +1,21 @@ +# +# SPEAr13XX Machine configuration file +# + +if ARCH_SPEAR13XX + +menu "SPEAr13xx Implementations" +config BOARD_SPEAR1300_EVB + bool "SPEAr1300 Evaluation Board" + select MACH_SPEAR1300 + help + Supports ST SPEAr1300 Evaluation Board + +endmenu + +config MACH_SPEAR1300 + bool "SPEAr1300" + help + Supports ST SPEAr1300 Machine + +endif #ARCH_SPEAR13XX
arch/arm/mach-spear13xx/Makefile new file +14 -0
@@ -0,0 +1,14 @@ +# +# Makefile for SPEAr13XX machine series +# + +# common files +obj-y += spear13xx.o clock.o +obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o + +# spear1300 specific files +obj-$(CONFIG_MACH_SPEAR1300) += spear1300.o + +# spear1300 boards files +obj-$(CONFIG_BOARD_SPEAR1300_EVB) += spear1300_evb.o
arch/arm/mach-spear13xx/Makefile.boot new file +3 -0
@@ -0,0 +1,3 @@ +zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000
arch/arm/mach-spear13xx/clock.c new file +1013 -0
1,013 lines not on this page · raw message
arch/arm/mach-spear13xx/headsmp.S new file +42 -0
42 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/generic.h +1 -1
@@ -33,7 +33,7 @@ extern struct amba_device spear13xx_uart_device;extern struct sys_timer spear13xx_timer;/* Add spear13xx family function declarations here */ -void __init clk_init (void ); +void __init spear13xx_clk_init (void );void __init spear_setup_timer (void );void __init spear13xx_map_io (void );void __init spear13xx_init_irq (void );
arch/arm/mach-spear13xx/localtimer.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* arch/arm/mach-spear13xx/localtimer.c +* Directly picked from realview +* +* Copyright (C) 2010 ST Microelectronics Ltd. +* Shiraz Hashim <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#include <linux/init.h> +#include <linux/smp.h> +#include <linux/clockchips.h> +#include <asm/irq.h> +#include <asm/smp_twd.h> +#include <asm/localtimer.h> + +/* Setup the local clock events for a CPU. */ +void __cpuinit local_timer_setup (struct clock_event_device *evt) +{ + evt->irq =IRQ_LOCALTIMER ; +twd_timer_setup (evt); +}
arch/arm/mach-spear13xx/platsmp.c new file +162 -0
162 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1300.c new file +23 -0
@@ -0,0 +1,23 @@ +/* +* arch/arm/mach-spear13xx/spear1300.c +* +* SPEAr1300 machine source file +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <mach/generic.h> +#include <mach/hardware.h> + +/* Add spear1300 specific devices here */ + +void __init spear1300_init (void ) +{ +/* call spear13xx family common init function */ +spear13xx_init (); +}
arch/arm/mach-spear13xx/spear1300_evb.c new file +48 -0
48 lines not on this page · raw message
arch/arm/mach-spear13xx/spear13xx.c new file +121 -0
121 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH RESEND v6 2/10 SPEAr13xx: Add machine specific src files
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
Changes in V6 resend:
- Updated clock.c according to misc register definition updations
--- arch/arm/mach-spear13xx/Kconfig | 21 + arch/arm/mach-spear13xx/Makefile | 14 + arch/arm/mach-spear13xx/Makefile.boot | 3 + arch/arm/mach-spear13xx/clock.c | 1012 ++++++++++++++++++++++++ arch/arm/mach-spear13xx/headsmp.S | 42 + arch/arm/mach-spear13xx/include/mach/generic.h | 2 +- arch/arm/mach-spear13xx/localtimer.c | 25 + arch/arm/mach-spear13xx/platsmp.c | 162 ++++ arch/arm/mach-spear13xx/spear1300.c | 23 + arch/arm/mach-spear13xx/spear1300_evb.c | 48 ++ arch/arm/mach-spear13xx/spear13xx.c | 121 +++ 11 files changed, 1472 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-spear13xx/Kconfig create mode 100644 arch/arm/mach-spear13xx/Makefile create mode 100644 arch/arm/mach-spear13xx/Makefile.boot create mode 100644 arch/arm/mach-spear13xx/clock.c create mode 100644 arch/arm/mach-spear13xx/headsmp.S create mode 100644 arch/arm/mach-spear13xx/localtimer.c create mode 100644 arch/arm/mach-spear13xx/platsmp.c create mode 100644 arch/arm/mach-spear13xx/spear1300.c create mode 100644 arch/arm/mach-spear13xx/spear1300_evb.c create mode 100644 arch/arm/mach-spear13xx/spear13xx.c
arch/arm/mach-spear13xx/Kconfig new file +21 -0
@@ -0,0 +1,21 @@ +# +# SPEAr13XX Machine configuration file +# + +if ARCH_SPEAR13XX + +menu "SPEAr13xx Implementations" +config BOARD_SPEAR1300_EVB + bool "SPEAr1300 Evaluation Board" + select MACH_SPEAR1300 + help + Supports ST SPEAr1300 Evaluation Board + +endmenu + +config MACH_SPEAR1300 + bool "SPEAr1300" + help + Supports ST SPEAr1300 Machine + +endif #ARCH_SPEAR13XX
arch/arm/mach-spear13xx/Makefile new file +14 -0
@@ -0,0 +1,14 @@ +# +# Makefile for SPEAr13XX machine series +# + +# common files +obj-y += spear13xx.o clock.o +obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o + +# spear1300 specific files +obj-$(CONFIG_MACH_SPEAR1300) += spear1300.o + +# spear1300 boards files +obj-$(CONFIG_BOARD_SPEAR1300_EVB) += spear1300_evb.o
arch/arm/mach-spear13xx/Makefile.boot new file +3 -0
@@ -0,0 +1,3 @@ +zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000
arch/arm/mach-spear13xx/clock.c new file +1012 -0
1,012 lines not on this page · raw message
arch/arm/mach-spear13xx/headsmp.S new file +42 -0
42 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/generic.h +1 -1
@@ -33,7 +33,7 @@ extern struct amba_device spear13xx_uart_device;extern struct sys_timer spear13xx_timer;/* Add spear13xx family function declarations here */ -void __init clk_init (void ); +void __init spear13xx_clk_init (void );void __init spear_setup_timer (void );void __init spear13xx_map_io (void );void __init spear13xx_init_irq (void );
arch/arm/mach-spear13xx/localtimer.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* arch/arm/mach-spear13xx/localtimer.c +* Directly picked from realview +* +* Copyright (C) 2010 ST Microelectronics Ltd. +* Shiraz Hashim <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#include <linux/init.h> +#include <linux/smp.h> +#include <linux/clockchips.h> +#include <asm/irq.h> +#include <asm/smp_twd.h> +#include <asm/localtimer.h> + +/* Setup the local clock events for a CPU. */ +void __cpuinit local_timer_setup (struct clock_event_device *evt) +{ + evt->irq =IRQ_LOCALTIMER ; +twd_timer_setup (evt); +}
arch/arm/mach-spear13xx/platsmp.c new file +162 -0
162 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1300.c new file +23 -0
@@ -0,0 +1,23 @@ +/* +* arch/arm/mach-spear13xx/spear1300.c +* +* SPEAr1300 machine source file +* +* Copyright (C) 2010 ST Microelectronics +* Shiraz Hashim <[email protected]> +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <mach/generic.h> +#include <mach/hardware.h> + +/* Add spear1300 specific devices here */ + +void __init spear1300_init (void ) +{ +/* call spear13xx family common init function */ +spear13xx_init (); +}
arch/arm/mach-spear13xx/spear1300_evb.c new file +48 -0
48 lines not on this page · raw message
arch/arm/mach-spear13xx/spear13xx.c new file +121 -0
121 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v6 3/10 ST SPEAr13xx: Adding support in SPEAr generic plat/
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
--- arch/arm/plat-spear/Kconfig | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
arch/arm/plat-spear/Kconfig +8 -0
@@ -8,6 +8,13 @@ choice prompt "ST SPEAr Family" default ARCH_SPEAR3XX +config ARCH_SPEAR13XX + bool "SPEAr13XX" + select ARM_GIC + select CPU_V7 + help + Supports for ARM's SPEAR13XX family + config ARCH_SPEAR3XX bool "SPEAr3XX" select ARM_VIC
@@ -25,6 +32,7 @@ config ARCH_SPEAR6XX endchoice # Adding SPEAr machine specific configuration files +source "arch/arm/mach-spear13xx/Kconfig" source "arch/arm/mach-spear3xx/Kconfig" source "arch/arm/mach-spear6xx/Kconfig"
Signature · 1 line
1.7.2.2
PATCH v6 4/10 ST SPEAr13xx: Added compilation support in arch/arm/
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
This patch adds compilation support for ST Microelectronics SPEAr13xx machines. SPEAr13xx SOC's are based on Arm CortexA9 CPUs.
--- arch/arm/Kconfig | 4 ++-- arch/arm/Makefile | 1 + 2 files changed, 3 insertions(+), 2 deletions(-)
arch/arm/Kconfig +2 -2
@@ -1278,8 +1278,8 @@ config SMP depends on GENERIC_CLOCKEVENTS depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ - ARCH_S5PV310 || ARCH_TEGRA || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || \ - ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE + ARCH_S5PV310 || ARCH_SPEAR13XX || ARCH_TEGRA || ARCH_U8500 || \ + ARCH_VEXPRESS_CA9X4 || ARCH_MSM_SCORPIONMP || ARCH_SHMOBILE select USE_GENERIC_SMP_HELPERS select HAVE_ARM_SCU if !ARCH_MSM_SCORPIONMP help
arch/arm/Makefile +1 -0
@@ -193,6 +193,7 @@ machine-$(CONFIG_ARCH_VEXPRESS) := vexpress machine-$(CONFIG_ARCH_W90X900) := w90x900 machine-$(CONFIG_ARCH_NUC93X) := nuc93x machine-$(CONFIG_FOOTBRIDGE) := footbridge +machine-$(CONFIG_MACH_SPEAR1300) := spear13xx machine-$(CONFIG_MACH_SPEAR300) := spear3xx machine-$(CONFIG_MACH_SPEAR310) := spear3xx machine-$(CONFIG_MACH_SPEAR320) := spear3xx
Signature · 1 line
1.7.2.2
PATCH v6 5/10 ST SPEAr13xx: Adding default config file
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
--- arch/arm/configs/spear13xx_defconfig | 60 ++++++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 0 deletions(-) create mode 100644 arch/arm/configs/spear13xx_defconfig
arch/arm/configs/spear13xx_defconfig new file +60 -0
@@ -0,0 +1,60 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_EXTRA_PASS=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_PLAT_SPEAR=y +CONFIG_ARCH_SPEAR13XX=y +CONFIG_BOARD_SPEAR1300_EVB=y +CONFIG_SMP=y +CONFIG_NR_CPUS=2 +CONFIG_AEABI=y +CONFIG_BINFMT_MISC=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_MTD=y +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_INPUT_FF_MEMLESS=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_RAW_DRIVER=y +CONFIG_MAX_RAW_DEVS=8192 +# CONFIG_HWMON is not set +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT3_FS_SECURITY=y +CONFIG_AUTOFS4_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_IOCHARSET="ascii" +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=m +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_SPINLOCK_SLEEP=y +CONFIG_DEBUG_INFO=y
Signature · 1 line
1.7.2.2
PATCH v6 6/10 ST SPEAr13xx: Adding information in Documentation/ and MAINTAINERS
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
--- Documentation/arm/SPEAr/overview.txt | 34 +++++++++++++++++++++++----------- MAINTAINERS | 6 ++++++ 2 files changed, 29 insertions(+), 11 deletions(-)
Documentation/arm/SPEAr/overview.txt +23 -11
@@ -9,8 +9,9 @@ Introduction The ST Microelectronics SPEAr range of ARM9/CortexA9 System-on-Chip CPUs are supported by the 'spear' platform of ARM Linux. Currently SPEAr300, - SPEAr310, SPEAr320 and SPEAr600 SOCs are supported. Support for the SPEAr13XX - series is in progress. + SPEAr310, SPEAr320, SPEAr600, SPEAr1300 and SPEAr1310 SOCs are supported. + SPEAr3XX and SPEAr6XX are based on ARM9 whereas SPEAr13XX is based on latest + ARM Cortex A9 CPUs. Hierarchy in SPEAr is as follows:
@@ -27,16 +28,25 @@ Introduction - SPEAr600_EVB (Evaluation Board) - SPEAr13XX (13XX SOC series, based on ARM CORTEXA9) - SPEAr1300 (SOC) + - SPEAr1300_EVB (Evaluation Board) + - SPEAr1310 (SOC) + - SPEAr1310_EVB (Evaluation Board) Configuration ------------- - A generic configuration is provided for each machine, and can be used as the + A generic configuration is provided for each machine family, and can be used as the default by - make spear600_defconfig - make spear300_defconfig - make spear310_defconfig - make spear320_defconfig + #make ARCH=arm spear13xx_defconfig + #make ARCH=arm spear3xx_defconfig + #make ARCH=arm spear6xx_defconfig + + Compilation + ----------- + + After applying default configuration, Linux kernel for SPEAr architecture + can be compiled as + #make ARCH=arm CROSS_COMPILE=arm-linux- uImage Layout ------
@@ -48,13 +58,15 @@ Introduction Each machine series have a directory with name arch/arm/mach-spear followed by series name. Like mach-spear3xx, mach-spear6xx and mach-spear13xx. - Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c and for - spear6xx is mach-spear6xx/spear6xx.c. mach-spear* also contain soc/machine + Common file for machines of spear3xx family is mach-spear3xx/spear3xx.c, for + spear6xx is mach-spear6xx/spear6xx.c and similarly for spear13xx is + mach-spear13xx/spear13xx.c. mach-spear* also contain soc/machine specific files, like spear300.c, spear310.c, spear320.c and spear600.c. - mach-spear* also contains board specific files for each machine type. + Board specific files for each machine type is also contained in mach-spear* + folder. Document Author --------------- - Viresh Kumar, (c) 2010 ST Microelectronics + Viresh Kumar, Shiraz Hashim (c) 2010 ST Microelectronics
MAINTAINERS +6 -0
@@ -5852,6 +5852,12 @@ W: http://www.st.com/spear S: Maintained F: arch/arm/plat-spear/ +SPEAR13XX MACHINE SUPPORT +M: Shiraz Hashim <[email protected]> +W: http://www.st.com/spear +S: Maintained +F: arch/arm/mach-spear13xx/ + SPEAR3XX MACHINE SUPPORT M: Viresh Kumar <[email protected]> W: http://www.st.com/spear
Signature · 1 line
1.7.2.2
PATCH v6 7/10 ST SPEAr13xx: Adding CPU hotplug support added for SMP platforms
In reply to Viresh KumarFrom: Deepak Sikri <[email protected]>
--- arch/arm/mach-spear13xx/Makefile | 1 + arch/arm/mach-spear13xx/hotplug.c | 121 +++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-spear13xx/hotplug.c
arch/arm/mach-spear13xx/Makefile +1 -0
@@ -5,6 +5,7 @@ # common files obj-y += spear13xx.o clock.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o +obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o # spear1300 specific files
arch/arm/mach-spear13xx/hotplug.c new file +121 -0
121 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v6 8/10 ST SPEAr13xx: add L2 cache support
In reply to Viresh KumarFrom: Shiraz Hashim <[email protected]>
--- arch/arm/mach-spear13xx/spear13xx.c | 19 ++++++++++++++++++- arch/arm/mm/Kconfig | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-)
arch/arm/mach-spear13xx/spear13xx.c +18 -1
@@ -18,6 +18,7 @@#include <asm/irq.h> #include <asm/localtimer.h> #include <asm/mach/arch.h> +#include <asm/hardware/cache-l2x0.h> #include <asm/smp_twd.h> #include <mach/generic.h> #include <mach/hardware.h>
@@ -40,7 +41,16 @@ struct amba_device spear13xx_uart_device = {/* Do spear13xx familiy common initialization part here */ void __init spear13xx_init (void ) { -/* nothing to do for now */ +#ifdef CONFIG_CACHE_L2X0 +/* +* 512KB (64KB/way), 8-way associativity, parity supported +* +* TODO: 0x249, picked from nomadik, to be analyzed +* Comment from nomadik: +* At full speed latency must be >=2, so 0x249 in low bits +*/ +l2x0_init (__io_address (SPEAR13XX_L2CC_BASE ),0x00260249 ,0xfe00ffff ); +#endif }/* This will initialize vic */
@@ -62,6 +72,13 @@ struct map_desc spear13xx_io_desc[] __initdata = { .pfn = __phys_to_pfn(SPEAR13XX_A9SM_PERIP_BASE), .length = SZ_8K, .type = MT_DEVICE +#ifdef CONFIG_CACHE_L2X0 + }, { + .virtual = IO_ADDRESS(SPEAR13XX_L2CC_BASE), + .pfn = __phys_to_pfn(SPEAR13XX_L2CC_BASE), + .length = SZ_4K, + .type = MT_DEVICE +#endif }, { .virtual = IO_ADDRESS(SPEAR13XX_MISC_BASE), .pfn = __phys_to_pfn(SPEAR13XX_MISC_BASE),
arch/arm/mm/Kconfig +1 -1
@@ -813,7 +813,7 @@ config CACHE_L2X0 depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \ REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31 || MACH_REALVIEW_PBX || \ ARCH_NOMADIK || ARCH_OMAP4 || ARCH_S5PV310 || ARCH_TEGRA || \ - ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || ARCH_SHMOBILE + ARCH_SPEAR13XX || ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || ARCH_SHMOBILE default y select OUTER_CACHE select OUTER_CACHE_SYNC
Signature · 1 line
1.7.2.2
PATCH v6 9/10 ST SPEAr13xx: Adding support for SPEAr1310
In reply to Viresh KumarFrom: Bhupesh Sharma <[email protected]>
This patch adds support for SPEAr1310 Machine and evaluation board.
--- arch/arm/Makefile | 1 + arch/arm/configs/spear13xx_defconfig | 1 + arch/arm/mach-spear13xx/Kconfig | 11 ++ arch/arm/mach-spear13xx/Makefile | 6 + arch/arm/mach-spear13xx/clock.c | 154 ++++++++++++++++++++++ arch/arm/mach-spear13xx/include/mach/generic.h | 17 +++ arch/arm/mach-spear13xx/include/mach/irqs.h | 37 +++++ arch/arm/mach-spear13xx/include/mach/spear.h | 1 + arch/arm/mach-spear13xx/include/mach/spear1310.h | 64 +++++++++ arch/arm/mach-spear13xx/spear1310.c | 144 ++++++++++++++++++++ arch/arm/mach-spear13xx/spear1310_evb.c | 61 +++++++++ 11 files changed, 497 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-spear13xx/include/mach/spear1310.h create mode 100644 arch/arm/mach-spear13xx/spear1310.c create mode 100644 arch/arm/mach-spear13xx/spear1310_evb.c
arch/arm/Makefile +1 -0
@@ -194,6 +194,7 @@ machine-$(CONFIG_ARCH_W90X900) := w90x900 machine-$(CONFIG_ARCH_NUC93X) := nuc93x machine-$(CONFIG_FOOTBRIDGE) := footbridge machine-$(CONFIG_MACH_SPEAR1300) := spear13xx +machine-$(CONFIG_MACH_SPEAR1310) := spear13xx machine-$(CONFIG_MACH_SPEAR300) := spear3xx machine-$(CONFIG_MACH_SPEAR310) := spear3xx machine-$(CONFIG_MACH_SPEAR320) := spear3xx
arch/arm/configs/spear13xx_defconfig +1 -0
@@ -9,6 +9,7 @@ CONFIG_MODVERSIONS=y CONFIG_PLAT_SPEAR=y CONFIG_ARCH_SPEAR13XX=y CONFIG_BOARD_SPEAR1300_EVB=y +CONFIG_BOARD_SPEAR1310_EVB=y CONFIG_SMP=y CONFIG_NR_CPUS=2 CONFIG_AEABI=y
arch/arm/mach-spear13xx/Kconfig +11 -0
@@ -11,6 +11,12 @@ config BOARD_SPEAR1300_EVB help Supports ST SPEAr1300 Evaluation Board +config BOARD_SPEAR1310_EVB + bool "SPEAr1310 Evaluation Board" + select MACH_SPEAR1310 + help + Supports ST SPEAr1310 Evaluation Board + endmenu config MACH_SPEAR1300
@@ -18,4 +24,9 @@ config MACH_SPEAR1300 help Supports ST SPEAr1300 Machine +config MACH_SPEAR1310 + bool "SPEAr1310" + help + Supports ST SPEAr1310 Machine + endif #ARCH_SPEAR13XX
arch/arm/mach-spear13xx/Makefile +6 -0
@@ -13,3 +13,9 @@ obj-$(CONFIG_MACH_SPEAR1300) += spear1300.o # spear1300 boards files obj-$(CONFIG_BOARD_SPEAR1300_EVB) += spear1300_evb.o + +# spear1310 specific files +obj-$(CONFIG_MACH_SPEAR1310) += spear1310.o + +# spear1310 boards files +obj-$(CONFIG_BOARD_SPEAR1310_EVB) += spear1310_evb.o
arch/arm/mach-spear13xx/clock.c +154 -0
172 lines not on this page · raw message
arch/arm/mach-spear13xx/include/mach/generic.h +17 -0
@@ -47,4 +47,21 @@ void __init spear1300_init(void);#endif /* CONFIG_MACH_SPEAR1300 */ +/* spear1310 declarations */ +#ifdef CONFIG_MACH_SPEAR1310 +/* Add spear1310 machine device structure declarations here */ +extern struct amba_device spear1310_uart1_device; +extern struct amba_device spear1310_uart2_device; +extern struct amba_device spear1310_uart3_device; +extern struct amba_device spear1310_uart4_device; +extern struct amba_device spear1310_uart5_device; +extern struct platform_device spear1310_can0_device; +extern struct platform_device spear1310_can1_device; + +/* Add spear1310 machine function declarations here */ +void __init spear1310_init (void ); +void __init spear1310_map_io (void ); + +#endif /* CONFIG_MACH_SPEAR1310 */ +#endif /* __MACH_GENERIC_H */
arch/arm/mach-spear13xx/include/mach/irqs.h +37 -0
@@ -5,6 +5,7 @@* * Copyright (C) 2010 ST Microelectronics * Shiraz Hashim <[email protected]> +* Bhupesh Sharma <[email protected]> * * This file is licensed under the terms of the GNU General Public * License version 2. This program is licensed "as is" without any
@@ -84,6 +85,42 @@#define IRQ_PCIE1 (IRQ_SHPI_START + 69)#define IRQ_PCIE2 (IRQ_SHPI_START + 70) +/* Add spear1310 specific IRQs here */ +#ifdef CONFIG_MACH_SPEAR1310 +#define IRQ_FSMC_PC1 (IRQ_SHPI_START + 76) +#define IRQ_FSMC_PC2 (IRQ_SHPI_START + 77) +#define IRQ_FSMC_PC3 (IRQ_SHPI_START + 78) +#define IRQ_FSMC_PC4 (IRQ_SHPI_START + 79) +#define IRQ_RS4850 (IRQ_SHPI_START + 80) +#define IRQ_RS4851 (IRQ_SHPI_START + 81) +#define IRQ_CCAN0 (IRQ_SHPI_START + 82) +#define IRQ_CCAN1 (IRQ_SHPI_START + 83) +#define IRQ_TDM0 (IRQ_SHPI_START + 84) +#define IRQ_TDM1 (IRQ_SHPI_START + 85) +#define IRQ_UART1 (IRQ_SHPI_START + 86) +#define IRQ_UART2 (IRQ_SHPI_START + 87) +#define IRQ_UART3 (IRQ_SHPI_START + 88) +#define IRQ_UART4 (IRQ_SHPI_START + 89) +#define IRQ_UART5 (IRQ_SHPI_START + 90) +#define IRQ_I2C_CNTR (IRQ_SHPI_START + 91) +#define IRQ_GMAC0_SBD (IRQ_SHPI_START + 92) +#define IRQ_GMAC0_PMT (IRQ_SHPI_START + 93) +#define IRQ_GMAC1_SBD (IRQ_SHPI_START + 94) +#define IRQ_GMAC1_PMT (IRQ_SHPI_START + 95) +#define IRQ_GMAC2_SBD (IRQ_SHPI_START + 96) +#define IRQ_GMAC2_PMT (IRQ_SHPI_START + 97) +#define IRQ_GMAC3_SBD (IRQ_SHPI_START + 98) +#define IRQ_GMAC3_PMT (IRQ_SHPI_START + 99) +#define IRQ_GPIO (IRQ_SHPI_START + 100) +#define IRQ_PCI_BRDG_HOST_FATAL (IRQ_SHPI_START + 101) +#define IRQ_PCI_INTA (IRQ_SHPI_START + 102) +#define IRQ_PCI_INTB (IRQ_SHPI_START + 103) +#define IRQ_PCI_INTC (IRQ_SHPI_START + 104) +#define IRQ_PCI_INTD (IRQ_SHPI_START + 105) +#define IRQ_PCI_ME_TO_ARM (IRQ_SHPI_START + 106) +#define IRQ_PCI_SERR_TO_ARM (IRQ_SHPI_START + 107) +#endif /* CONFIG_MACH_SPEAR1310 */ +#define IRQ_GIC_END (IRQ_SHPI_START + 128)#define NR_IRQS IRQ_GIC_END
arch/arm/mach-spear13xx/include/mach/spear.h +1 -0
@@ -16,6 +16,7 @@#include <asm/memory.h> #include <mach/spear1300.h> +#include <mach/spear1310.h> #define SPEAR13XX_L2CC_BASE UL(0xED000000)
arch/arm/mach-spear13xx/include/mach/spear1310.h new file +64 -0
64 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1310.c new file +144 -0
144 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1310_evb.c new file +61 -0
61 lines not on this page · raw message
Signature · 1 line
1.7.2.2
PATCH v6 10/10 ST SPEAr13xx: Add padmux support
In reply to Viresh KumarFrom: Vipin Kumar <[email protected]>
This patch adds padmux support for SPEAr1300 & SPEAr1310.
--- arch/arm/mach-spear13xx/include/mach/generic.h | 198 +++++++++- arch/arm/mach-spear13xx/spear1300.c | 17 +- arch/arm/mach-spear13xx/spear1300_evb.c | 21 +- arch/arm/mach-spear13xx/spear1310.c | 352 +++++++++++++++- arch/arm/mach-spear13xx/spear1310_evb.c | 27 ++- arch/arm/mach-spear13xx/spear13xx.c | 559 ++++++++++++++++++++++++ arch/arm/plat-spear/Makefile | 1 + 7 files changed, 1169 insertions(+), 6 deletions(-)
arch/arm/mach-spear13xx/include/mach/generic.h +196 -2
@@ -19,6 +19,198 @@#include <linux/amba/bus.h> #include <asm/mach/time.h> #include <asm/mach/map.h> +#include <plat/padmux.h> + +/* +* Function enable (Pad multiplexing register) offsets +*/ +/* Pad multiplexing base */ +#define SPEAR13XX_FUNC_ENB_BASE UL(0xE0700650) +#define SPEAR13XX_PCM_CFG_BASE UL(0xE0700100) + +#define PAD_MUX_CONFIG_REG_0 UL(0xE0700650) +#define PAD_MUX_CONFIG_REG_1 UL(0xE0700654) +#define PAD_MUX_CONFIG_REG_2 UL(0xE0700658) +#define PAD_MUX_CONFIG_REG_3 UL(0xE070065C) + +#if defined(CONFIG_MACH_SPEAR1310 ) +#define SPEAR1310_FUNC_CNTL_0 UL(0x6C800000) + +#define PMX_SMII_MASK (1 << 24)/* Func cntl reg0 */ +#define PMX_EGPIO7_MASK (1 << 2)/* Pcm cfg reg */ +#endif + +/* pad mux declarations */ +#define PMX_I2S1_MASK (1 << 3) +#define PMX_I2S2_MASK (1 << 16)/* Offset 4 */ +#define PMX_CLCD1_MASK (1 << 5) +#define PMX_CLCD2_MASK (1 << 3)/* Offset 4 */ +#define PMX_EGPIO00_MASK (1 << 6) +#define PMX_EGPIO01_MASK (1 << 7) +#define PMX_EGPIO02_MASK (1 << 8) +#define PMX_EGPIO03_MASK (1 << 9) +#define PMX_EGPIO04_MASK (1 << 10) +#define PMX_EGPIO05_MASK (1 << 11) +#define PMX_EGPIO06_MASK (1 << 12) +#define PMX_EGPIO07_MASK (1 << 13) +#define PMX_EGPIO08_MASK (1 << 14) +#define PMX_EGPIO09_MASK (1 << 15) +#define PMX_EGPIO10_MASK (1 << 5)/* Offset 4 */ +#define PMX_EGPIO11_MASK (1 << 6)/* Offset 4 */ +#define PMX_EGPIO12_MASK (1 << 7)/* Offset 4 */ +#define PMX_EGPIO13_MASK (1 << 8)/* Offset 4 */ +#define PMX_EGPIO14_MASK (1 << 9)/* Offset 4 */ +#define PMX_EGPIO15_MASK (1 << 10)/* Offset 4 */ +#define PMX_EGPIO_0_GRP_MASK (PMX_EGPIO00_MASK | PMX_EGPIO01_MASK | \ + PMX_EGPIO02_MASK | PMX_EGPIO03_MASK | PMX_EGPIO04_MASK | \ + PMX_EGPIO05_MASK | PMX_EGPIO06_MASK | PMX_EGPIO07_MASK | \ + PMX_EGPIO08_MASK | PMX_EGPIO09_MASK) +#define PMX_EGPIO_1_GRP_MASK (PMX_EGPIO10_MASK | PMX_EGPIO11_MASK | \ + PMX_EGPIO12_MASK | PMX_EGPIO13_MASK | PMX_EGPIO14_MASK | \ + PMX_EGPIO15_MASK) + +#define PMX_SMI_MASK (1 << 16) +#define PMX_SMINCS2_MASK (1 << 1)/* Offset 4 */ +#define PMX_SMINCS3_MASK (1 << 2)/* Offset 4 */ + +#define PMX_GMIICLK_MASK (1 << 18) +#define PMX_GMIICOL_CRS_XFERER_MIITXCLK_MASK (1 << 19) +#define PMX_RXCLK_RDV_TXEN_D03_MASK (1 << 20) +#define PMX_GMIID47_MASK (1 << 21) +#define PMX_MDC_MDIO_MASK (1 << 22) + +#define PMX_GMII_MASK (PMX_GMIICLK_MASK | \ + PMX_GMIICOL_CRS_XFERER_MIITXCLK_MASK | \ + PMX_RXCLK_RDV_TXEN_D03_MASK | PMX_GMIID47_MASK | \ + PMX_MDC_MDIO_MASK) + +#define PMX_NAND8_MASK (1 << 17) +#define PMX_NFAD023_MASK (1 << 24) +#define PMX_NFAD24_MASK (1 << 25) +#define PMX_NFAD25_MASK (1 << 26) +#define PMX_NFWPRT1_MASK (1 << 24)/* Offset 4 */ +#define PMX_NFWPRT2_MASK (1 << 26)/* Offset 4 */ +#define PMX_NFWPRT3_MASK (1 << 28) +#define PMX_NFRSTPWDWN0_MASK (1 << 29) +#define PMX_NFRSTPWDWN1_MASK (1 << 30) +#define PMX_NFRSTPWDWN2_MASK (1 << 31) +#define PMX_NFRSTPWDWN3_MASK (1 << 0)/* Offset 4 */ +#define PMX_NFCE1_MASK (1 << 20)/* Offset 4 */ +#define PMX_NFCE2_MASK (1 << 22)/* Offset 4 */ +#define PMX_NFCE3_MASK (1 << 27) +#define PMX_NFIO815_MASK (1 << 18)/* Offset 4 */ + +#define PMX_NAND8BIT_0_MASK (PMX_NAND8_MASK | PMX_NFAD023_MASK | \ + PMX_NFAD24_MASK | PMX_NFAD25_MASK | PMX_NFWPRT3_MASK | \ + PMX_NFRSTPWDWN0_MASK | PMX_NFRSTPWDWN1_MASK | \ + PMX_NFRSTPWDWN2_MASK | PMX_NFCE3_MASK) +#define PMX_NAND8BIT_1_MASK (PMX_NFRSTPWDWN3_MASK) + +#define PMX_NAND8BIT4DEV_0_MASK (PMX_NAND8BIT_0_MASK) +#define PMX_NAND8BIT4DEV_1_MASK (PMX_NAND8BIT_1_MASK | PMX_NFCE1_MASK | \ + PMX_NFCE2_MASK | PMX_NFWPRT1_MASK | PMX_NFWPRT2_MASK) + +#define PMX_NAND16BIT_0_MASK (PMX_NAND8BIT_0_MASK) +#define PMX_NAND16BIT_1_MASK (PMX_NAND8BIT_1_MASK | PMX_NFIO815_MASK) +#define PMX_NAND16BIT4DEV_0_MASK (PMX_NAND8BIT4DEV_0_MASK) +#define PMX_NAND16BIT4DEV_1_MASK (PMX_NAND8BIT4DEV_1_MASK | \ + PMX_NFIO815_MASK) + +#define PMX_KBD_ROW0_MASK (1 << 25)/* Offset 4 */ +#define PMX_KBD_ROW1_MASK (1 << 23)/* Offset 4 */ +#define PMX_KBD_ROWCOL25_MASK (1 << 17)/* Offset 4 */ +#define PMX_KBD_ROWCOL68_MASK (1 << 4)/* Offset 4 */ +#define PMX_KBD_COL0_MASK (1 << 21)/* Offset 4 */ +#define PMX_KBD_COL1_MASK (1 << 19)/* Offset 4 */ +#define PMX_KEYBOARD_6X6_MASK (PMX_KBD_ROW0_MASK | PMX_KBD_ROW1_MASK | \ + PMX_KBD_ROWCOL25_MASK | PMX_KBD_COL0_MASK | PMX_KBD_COL1_MASK) + +#define PMX_UART0_MASK (1 << 1) +#define PMX_I2C_MASK (1 << 2) +#define PMX_SSP_MASK (1 << 4) +#define PMX_UART0_MODEM_MASK (1 << 11)/* Offset 4 */ +#define PMX_GPT0_TMR1_MASK (1 << 12)/* Offset 4 */ +#define PMX_GPT0_TMR2_MASK (1 << 13)/* Offset 4 */ +#define PMX_GPT1_TMR1_MASK (1 << 14)/* Offset 4 */ +#define PMX_GPT1_TMR2_MASK (1 << 15)/* Offset 4 */ + +#define PMX_MCIDATA0_MASK (1 << 27)/* Offset 4 */ +#define PMX_MCIDATA1_MASK (1 << 28)/* Offset 4 */ +#define PMX_MCIDATA2_MASK (1 << 29)/* Offset 4 */ +#define PMX_MCIDATA3_MASK (1 << 30)/* Offset 4 */ +#define PMX_MCIDATA4_MASK (1 << 31)/* Offset 4 */ +#define PMX_MCIDATA5_MASK (1 << 0)/* Offset 8 */ +#define PMX_MCIDATA6_MASK (1 << 1)/* Offset 8 */ +#define PMX_MCIDATA7_MASK (1 << 2)/* Offset 8 */ +#define PMX_MCIDATA1SD_MASK (1 << 3)/* Offset 8 */ +#define PMX_MCIDATA2SD_MASK (1 << 4)/* Offset 8 */ +#define PMX_MCIDATA3SD_MASK (1 << 5)/* Offset 8 */ +#define PMX_MCIADDR0ALE_MASK (1 << 6)/* Offset 8 */ +#define PMX_MCIADDR1CLECLK_MASK (1 << 7)/* Offset 8 */ +#define PMX_MCIADDR2_MASK (1 << 8)/* Offset 8 */ +#define PMX_MCICECF_MASK (1 << 9)/* Offset 8 */ +#define PMX_MCICEXD_MASK (1 << 10)/* Offset 8 */ +#define PMX_MCICESDMMC_MASK (1 << 11)/* Offset 8 */ +#define PMX_MCICDCF1_MASK (1 << 12)/* Offset 8 */ +#define PMX_MCICDCF2_MASK (1 << 13)/* Offset 8 */ +#define PMX_MCICDXD_MASK (1 << 14)/* Offset 8 */ +#define PMX_MCICDSDMMC_MASK (1 << 15)/* Offset 8 */ +#define PMX_MCIDATADIR_MASK (1 << 16)/* Offset 8 */ +#define PMX_MCIDMARQWP_MASK (1 << 17)/* Offset 8 */ +#define PMX_MCIIORDRE_MASK (1 << 18)/* Offset 8 */ +#define PMX_MCIIOWRWE_MASK (1 << 19)/* Offset 8 */ +#define PMX_MCIRESETCF_MASK (1 << 20)/* Offset 8 */ +#define PMX_MCICS0CE_MASK (1 << 21)/* Offset 8 */ +#define PMX_MCICFINTR_MASK (1 << 22)/* Offset 8 */ +#define PMX_MCIIORDY_MASK (1 << 23)/* Offset 8 */ +#define PMX_MCICS1_MASK (1 << 24)/* Offset 8 */ +#define PMX_MCIDMAACK_MASK (1 << 25)/* Offset 8 */ +#define PMX_MCISDCMD_MASK (1 << 26)/* Offset 8 */ +#define PMX_MCILEDS_MASK (1 << 27)/* Offset 8 */ + +#define PMX_MCIFALL_1_MASK (0xF8000000) +#define PMX_MCIFALL_2_MASK (0x0FFFFFFF) + +/* pad mux devices */ +extern struct pmx_dev pmx_i2c; +extern struct pmx_dev pmx_ssp; +extern struct pmx_dev pmx_i2s1; +extern struct pmx_dev pmx_i2s2; +extern struct pmx_dev pmx_clcd; +extern struct pmx_dev pmx_clcd_hires; +extern struct pmx_dev pmx_egpio_grp; +extern struct pmx_dev pmx_smi_2_chips; +extern struct pmx_dev pmx_smi_4_chips; +extern struct pmx_dev pmx_gmii; +extern struct pmx_dev pmx_nand_8bit; +extern struct pmx_dev pmx_nand_16bit; +extern struct pmx_dev pmx_keyboard_6x6; +extern struct pmx_dev pmx_keyboard_9x9; +extern struct pmx_dev pmx_uart0; +extern struct pmx_dev pmx_uart0_modem; +extern struct pmx_dev pmx_gpt_0_1; +extern struct pmx_dev pmx_gpt_0_2; +extern struct pmx_dev pmx_gpt_1_1; +extern struct pmx_dev pmx_gpt_1_2; +extern struct pmx_dev pmx_mcif; + +#if defined(CONFIG_MACH_SPEAR1310 ) +extern struct pmx_dev pmx_uart1_modem; +extern struct pmx_dev pmx_uart_1; +extern struct pmx_dev pmx_uart_2; +extern struct pmx_dev pmx_uart_3_4_5; +extern struct pmx_dev pmx_rs485_hdlc_1_2; +extern struct pmx_dev pmx_tdm_hdlc_1_2; +extern struct pmx_dev pmx_nand32bit; +extern struct pmx_dev pmx_fsmc16bit_4_chips; +extern struct pmx_dev pmx_fsmc32bit_4_chips; +extern struct pmx_dev pmx_gmii1; +extern struct pmx_dev pmx_rgmii; +extern struct pmx_dev pmx_i2c1; +extern struct pmx_dev pmx_smii_0_1_2; +extern struct pmx_dev pmx_can; +extern struct pmx_dev pmx_uart1_modem; +#endif /* * Each GPT has 2 timer channels
@@ -43,7 +235,8 @@ void spear13xx_secondary_startup(void);/* spear1300 declarations */ #ifdef CONFIG_MACH_SPEAR1300 /* Add spear1300 machine function declarations here */ -void __init spear1300_init (void ); +void __init spear1300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);#endif /* CONFIG_MACH_SPEAR1300 */
@@ -59,7 +252,8 @@ extern struct platform_device spear1310_can0_device;extern struct platform_device spear1310_can1_device;/* Add spear1310 machine function declarations here */ -void __init spear1310_init (void ); +void __init spear1310_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count);void __init spear1310_map_io (void );#endif /* CONFIG_MACH_SPEAR1310 */
arch/arm/mach-spear13xx/spear1300.c +16 -1
@@ -14,10 +14,25 @@#include <mach/generic.h> #include <mach/hardware.h> +/* pmx driver structure */ +static struct pmx_driver pmx_driver; +/* Add spear1300 specific devices here */ -void __init spear1300_init (void ) +void __init spear1300_init (struct pmx_mode *pmx_mode,struct pmx_dev **pmx_devs, +u8 pmx_dev_count) { +int ret; +/* call spear13xx family common init function */ spear13xx_init (); + +/* pmx initialization */ + pmx_driver.mode = pmx_mode; + pmx_driver.devs = pmx_devs; + pmx_driver.devs_count = pmx_dev_count; + + ret =pmx_register (&pmx_driver); +if (ret) +pr_err ("padmux: registeration failed. err no: %d\n" , ret); }
arch/arm/mach-spear13xx/spear1300_evb.c +20 -1
@@ -17,6 +17,25 @@#include <mach/generic.h> #include <mach/hardware.h> +/* padmux devices to enable */ +static struct pmx_dev *pmx_devs[] = { +/* spear13xx specific devices */ + &pmx_i2c, + &pmx_i2s1, + &pmx_i2s2, + &pmx_clcd, + &pmx_egpio_grp, + &pmx_gmii, + &pmx_keyboard_6x6, + &pmx_mcif, + &pmx_nand_8bit, + &pmx_smi_4_chips, + &pmx_ssp, + &pmx_uart0, + +/* spear1300 specific devices */ +}; +static struct amba_device *amba_devs[]__initdata = { &spear13xx_uart_device, };
@@ -29,7 +48,7 @@ static void __init spear1300_evb_init(void)unsigned int i;/* call spear1300 machine init function */ -spear1300_init (); +spear1300_init (NULL , pmx_devs,ARRAY_SIZE (pmx_devs));/* Add Platform Devices */ platform_add_devices (plat_devs,ARRAY_SIZE (plat_devs));
arch/arm/mach-spear13xx/spear1310.c +351 -1
365 lines not on this page · raw message
arch/arm/mach-spear13xx/spear1310_evb.c +26 -1
@@ -17,6 +17,31 @@#include <mach/generic.h> #include <mach/hardware.h> +/* padmux devices to enable */ +static struct pmx_dev *pmx_devs[] = { +/* spear13xx specific devices */ + &pmx_i2c, + &pmx_i2s1, + &pmx_egpio_grp, + &pmx_gmii, + &pmx_keyboard_6x6, + &pmx_mcif, + &pmx_nand_8bit, + &pmx_smi_2_chips, + &pmx_uart0, + +/* spear1310 specific devices */ + &pmx_can, + &pmx_i2c1, + &pmx_smii_0_1_2, + &pmx_fsmc16bit_4_chips, + &pmx_rs485_hdlc_1_2, + &pmx_tdm_hdlc_1_2, + &pmx_uart_1, + &pmx_uart_2, + &pmx_uart_3_4_5, +}; +static struct amba_device *amba_devs[]__initdata = {/* spear13xx specific devices */ &spear13xx_uart_device,
@@ -42,7 +67,7 @@ static void __init spear1310_evb_init(void)unsigned int i;/* call spear1310 machine init function */ -spear1310_init (); +spear1310_init (NULL , pmx_devs,ARRAY_SIZE (pmx_devs));/* Add Platform Devices */ platform_add_devices (plat_devs,ARRAY_SIZE (plat_devs));
arch/arm/mach-spear13xx/spear13xx.c +559 -0
562 lines not on this page · raw message
arch/arm/plat-spear/Makefile +1 -0
@@ -5,4 +5,5 @@ # Common support obj-y := clock.o time.o +obj-$(CONFIG_ARCH_SPEAR13XX) += padmux.o obj-$(CONFIG_ARCH_SPEAR3XX) += shirq.o padmux.o
Signature · 1 line
1.7.2.2
v6 cover Adding SPEAr13xx support
In reply to Viresh KumarQuoted 6 lines · Viresh KUMAR
This patchset adds support for SPEAr13xx machine family. Currently support for to machines SPEAr1300 & SPEAr1310 are added.
Note: These patches were earlier sent as part of a larger patchset:
"Updating SPEAr Support"
Quoted 8 lines
Now it is divided into smaller patchsets. In order to apply these patches cleanly following order of patchsets must be maintained.
- SPEAr3xx & SPEAr6xx Fixes
- SPEAr3xx & SPEAr6xx: Single Image solution and padmux updates
- Adding SPEAr13xx support
- Adding devices support for all spear machines
- Clock Framework & CPU Freq Updates
Russell,
I am removing this patchset from your tracker as it can't be pushed as it is. Will submit new patches after updating stuff.
Signature · 1 line
viresh