diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-09-01 00:54:14 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-09-01 00:54:14 -0400 |
commit | ac6a0cf6716bb46813d0161024c66c2af66e53d1 (patch) | |
tree | c7f53b1a04c590032c022549f3186fb9b04f8358 /arch/sh/include | |
parent | e76a0136a3cf1859fbc07f122e42293d22229558 (diff) | |
parent | ce3f7cb96e67d6518c7fc7b361a76409c3817d64 (diff) |
Merge branch 'master' into sh/smp
Conflicts:
arch/sh/mm/cache-sh4.c
Diffstat (limited to 'arch/sh/include')
-rw-r--r-- | arch/sh/include/asm/Kbuild | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/bug.h | 31 | ||||
-rw-r--r-- | arch/sh/include/asm/cachectl.h | 19 | ||||
-rw-r--r-- | arch/sh/include/asm/device.h | 16 | ||||
-rw-r--r-- | arch/sh/include/asm/dwarf.h | 30 | ||||
-rw-r--r-- | arch/sh/include/asm/entry-macros.S | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/ftrace.h | 1 | ||||
-rw-r--r-- | arch/sh/include/asm/hwblk.h | 4 | ||||
-rw-r--r-- | arch/sh/include/asm/io.h | 16 | ||||
-rw-r--r-- | arch/sh/include/asm/pgtable_32.h | 8 | ||||
-rw-r--r-- | arch/sh/include/asm/processor.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/system.h | 5 | ||||
-rw-r--r-- | arch/sh/include/asm/system_32.h | 28 | ||||
-rw-r--r-- | arch/sh/include/asm/unistd_32.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/unistd_64.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/unwinder.h | 6 | ||||
-rw-r--r-- | arch/sh/include/asm/watchdog.h | 19 | ||||
-rw-r--r-- | arch/sh/include/cpu-sh4/cpu/freq.h | 4 | ||||
-rw-r--r-- | arch/sh/include/cpu-sh4/cpu/sh7757.h | 243 | ||||
-rw-r--r-- | arch/sh/include/mach-common/mach/sh7785lcr.h | 2 | ||||
-rw-r--r-- | arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt | 6 | ||||
-rw-r--r-- | arch/sh/include/mach-kfr2r09/mach/romimage.h | 13 |
22 files changed, 411 insertions, 50 deletions
diff --git a/arch/sh/include/asm/Kbuild b/arch/sh/include/asm/Kbuild index 43910cdf78a5..e121c30f797d 100644 --- a/arch/sh/include/asm/Kbuild +++ b/arch/sh/include/asm/Kbuild | |||
@@ -1,6 +1,6 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += cpu-features.h | 3 | header-y += cachectl.h cpu-features.h |
4 | 4 | ||
5 | unifdef-y += unistd_32.h | 5 | unifdef-y += unistd_32.h |
6 | unifdef-y += unistd_64.h | 6 | unifdef-y += unistd_64.h |
diff --git a/arch/sh/include/asm/bug.h b/arch/sh/include/asm/bug.h index c01718040166..d02c01b3e6b9 100644 --- a/arch/sh/include/asm/bug.h +++ b/arch/sh/include/asm/bug.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __ASM_SH_BUG_H | 2 | #define __ASM_SH_BUG_H |
3 | 3 | ||
4 | #define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */ | 4 | #define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */ |
5 | #define BUGFLAG_UNWINDER (1 << 1) | ||
5 | 6 | ||
6 | #ifdef CONFIG_GENERIC_BUG | 7 | #ifdef CONFIG_GENERIC_BUG |
7 | #define HAVE_ARCH_BUG | 8 | #define HAVE_ARCH_BUG |
@@ -72,6 +73,36 @@ do { \ | |||
72 | unlikely(__ret_warn_on); \ | 73 | unlikely(__ret_warn_on); \ |
73 | }) | 74 | }) |
74 | 75 | ||
76 | #define UNWINDER_BUG() \ | ||
77 | do { \ | ||
78 | __asm__ __volatile__ ( \ | ||
79 | "1:\t.short %O0\n" \ | ||
80 | _EMIT_BUG_ENTRY \ | ||
81 | : \ | ||
82 | : "n" (TRAPA_BUG_OPCODE), \ | ||
83 | "i" (__FILE__), \ | ||
84 | "i" (__LINE__), \ | ||
85 | "i" (BUGFLAG_UNWINDER), \ | ||
86 | "i" (sizeof(struct bug_entry))); \ | ||
87 | } while (0) | ||
88 | |||
89 | #define UNWINDER_BUG_ON(x) ({ \ | ||
90 | int __ret_unwinder_on = !!(x); \ | ||
91 | if (__builtin_constant_p(__ret_unwinder_on)) { \ | ||
92 | if (__ret_unwinder_on) \ | ||
93 | UNWINDER_BUG(); \ | ||
94 | } else { \ | ||
95 | if (unlikely(__ret_unwinder_on)) \ | ||
96 | UNWINDER_BUG(); \ | ||
97 | } \ | ||
98 | unlikely(__ret_unwinder_on); \ | ||
99 | }) | ||
100 | |||
101 | #else | ||
102 | |||
103 | #define UNWINDER_BUG BUG | ||
104 | #define UNWINDER_BUG_ON BUG_ON | ||
105 | |||
75 | #endif /* CONFIG_GENERIC_BUG */ | 106 | #endif /* CONFIG_GENERIC_BUG */ |
76 | 107 | ||
77 | #include <asm-generic/bug.h> | 108 | #include <asm-generic/bug.h> |
diff --git a/arch/sh/include/asm/cachectl.h b/arch/sh/include/asm/cachectl.h new file mode 100644 index 000000000000..6ffb4b7a212e --- /dev/null +++ b/arch/sh/include/asm/cachectl.h | |||
@@ -0,0 +1,19 @@ | |||
1 | #ifndef _SH_CACHECTL_H | ||
2 | #define _SH_CACHECTL_H | ||
3 | |||
4 | /* Definitions for the cacheflush system call. */ | ||
5 | |||
6 | #define CACHEFLUSH_D_INVAL 0x1 /* invalidate (without write back) */ | ||
7 | #define CACHEFLUSH_D_WB 0x2 /* write back (without invalidate) */ | ||
8 | #define CACHEFLUSH_D_PURGE 0x3 /* writeback and invalidate */ | ||
9 | |||
10 | #define CACHEFLUSH_I 0x4 | ||
11 | |||
12 | /* | ||
13 | * Options for cacheflush system call | ||
14 | */ | ||
15 | #define ICACHE CACHEFLUSH_I /* flush instruction cache */ | ||
16 | #define DCACHE CACHEFLUSH_D_PURGE /* writeback and flush data cache */ | ||
17 | #define BCACHE (ICACHE|DCACHE) /* flush both caches */ | ||
18 | |||
19 | #endif /* _SH_CACHECTL_H */ | ||
diff --git a/arch/sh/include/asm/device.h b/arch/sh/include/asm/device.h index 8688a88303ee..b16debfe8c1e 100644 --- a/arch/sh/include/asm/device.h +++ b/arch/sh/include/asm/device.h | |||
@@ -3,7 +3,9 @@ | |||
3 | * | 3 | * |
4 | * This file is released under the GPLv2 | 4 | * This file is released under the GPLv2 |
5 | */ | 5 | */ |
6 | #include <asm-generic/device.h> | 6 | |
7 | struct dev_archdata { | ||
8 | }; | ||
7 | 9 | ||
8 | struct platform_device; | 10 | struct platform_device; |
9 | /* allocate contiguous memory chunk and fill in struct resource */ | 11 | /* allocate contiguous memory chunk and fill in struct resource */ |
@@ -12,3 +14,15 @@ int platform_resource_setup_memory(struct platform_device *pdev, | |||
12 | 14 | ||
13 | void plat_early_device_setup(void); | 15 | void plat_early_device_setup(void); |
14 | 16 | ||
17 | #define PDEV_ARCHDATA_FLAG_INIT 0 | ||
18 | #define PDEV_ARCHDATA_FLAG_IDLE 1 | ||
19 | #define PDEV_ARCHDATA_FLAG_SUSP 2 | ||
20 | |||
21 | struct pdev_archdata { | ||
22 | int hwblk_id; | ||
23 | #ifdef CONFIG_PM_RUNTIME | ||
24 | unsigned long flags; | ||
25 | struct list_head entry; | ||
26 | struct mutex mutex; | ||
27 | #endif | ||
28 | }; | ||
diff --git a/arch/sh/include/asm/dwarf.h b/arch/sh/include/asm/dwarf.h index d3d3837c5e1b..ced6795891a6 100644 --- a/arch/sh/include/asm/dwarf.h +++ b/arch/sh/include/asm/dwarf.h | |||
@@ -200,7 +200,7 @@ | |||
200 | */ | 200 | */ |
201 | static __always_inline unsigned long dwarf_read_arch_reg(unsigned int reg) | 201 | static __always_inline unsigned long dwarf_read_arch_reg(unsigned int reg) |
202 | { | 202 | { |
203 | unsigned long value; | 203 | unsigned long value = 0; |
204 | 204 | ||
205 | switch (reg) { | 205 | switch (reg) { |
206 | case 14: | 206 | case 14: |
@@ -265,10 +265,7 @@ struct dwarf_frame { | |||
265 | 265 | ||
266 | unsigned long pc; | 266 | unsigned long pc; |
267 | 267 | ||
268 | struct dwarf_reg *regs; | 268 | struct list_head reg_list; |
269 | unsigned int num_regs; /* how many regs are allocated? */ | ||
270 | |||
271 | unsigned int depth; /* what level are we in the callstack? */ | ||
272 | 269 | ||
273 | unsigned long cfa; | 270 | unsigned long cfa; |
274 | 271 | ||
@@ -292,20 +289,15 @@ struct dwarf_frame { | |||
292 | * @flags: Describes how to calculate the value of this register | 289 | * @flags: Describes how to calculate the value of this register |
293 | */ | 290 | */ |
294 | struct dwarf_reg { | 291 | struct dwarf_reg { |
292 | struct list_head link; | ||
293 | |||
294 | unsigned int number; | ||
295 | |||
295 | unsigned long addr; | 296 | unsigned long addr; |
296 | unsigned long flags; | 297 | unsigned long flags; |
297 | #define DWARF_REG_OFFSET (1 << 0) | 298 | #define DWARF_REG_OFFSET (1 << 0) |
298 | }; | 299 | #define DWARF_VAL_OFFSET (1 << 1) |
299 | 300 | #define DWARF_UNDEFINED (1 << 2) | |
300 | /** | ||
301 | * dwarf_stack - a DWARF stack contains a collection of DWARF frames | ||
302 | * @depth: the number of frames in the stack | ||
303 | * @level: an array of DWARF frames, indexed by stack level | ||
304 | * | ||
305 | */ | ||
306 | struct dwarf_stack { | ||
307 | unsigned int depth; | ||
308 | struct dwarf_frame **level; | ||
309 | }; | 301 | }; |
310 | 302 | ||
311 | /* | 303 | /* |
@@ -370,17 +362,16 @@ static inline unsigned int DW_CFA_operand(unsigned long insn) | |||
370 | #define DW_EXT_HI 0xffffffff | 362 | #define DW_EXT_HI 0xffffffff |
371 | #define DW_EXT_DWARF64 DW_EXT_HI | 363 | #define DW_EXT_DWARF64 DW_EXT_HI |
372 | 364 | ||
373 | extern void dwarf_unwinder_init(void); | ||
374 | |||
375 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, | 365 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, |
376 | struct dwarf_frame *); | 366 | struct dwarf_frame *); |
377 | #endif /* __ASSEMBLY__ */ | 367 | #endif /* !__ASSEMBLY__ */ |
378 | 368 | ||
379 | #define CFI_STARTPROC .cfi_startproc | 369 | #define CFI_STARTPROC .cfi_startproc |
380 | #define CFI_ENDPROC .cfi_endproc | 370 | #define CFI_ENDPROC .cfi_endproc |
381 | #define CFI_DEF_CFA .cfi_def_cfa | 371 | #define CFI_DEF_CFA .cfi_def_cfa |
382 | #define CFI_REGISTER .cfi_register | 372 | #define CFI_REGISTER .cfi_register |
383 | #define CFI_REL_OFFSET .cfi_rel_offset | 373 | #define CFI_REL_OFFSET .cfi_rel_offset |
374 | #define CFI_UNDEFINED .cfi_undefined | ||
384 | 375 | ||
385 | #else | 376 | #else |
386 | 377 | ||
@@ -394,6 +385,7 @@ extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, | |||
394 | #define CFI_DEF_CFA CFI_IGNORE | 385 | #define CFI_DEF_CFA CFI_IGNORE |
395 | #define CFI_REGISTER CFI_IGNORE | 386 | #define CFI_REGISTER CFI_IGNORE |
396 | #define CFI_REL_OFFSET CFI_IGNORE | 387 | #define CFI_REL_OFFSET CFI_IGNORE |
388 | #define CFI_UNDEFINED CFI_IGNORE | ||
397 | 389 | ||
398 | #ifndef __ASSEMBLY__ | 390 | #ifndef __ASSEMBLY__ |
399 | static inline void dwarf_unwinder_init(void) | 391 | static inline void dwarf_unwinder_init(void) |
diff --git a/arch/sh/include/asm/entry-macros.S b/arch/sh/include/asm/entry-macros.S index 64fd0de24daf..cc43a55e1fcf 100644 --- a/arch/sh/include/asm/entry-macros.S +++ b/arch/sh/include/asm/entry-macros.S | |||
@@ -7,7 +7,7 @@ | |||
7 | .endm | 7 | .endm |
8 | 8 | ||
9 | .macro sti | 9 | .macro sti |
10 | mov #0xf0, r11 | 10 | mov #0xfffffff0, r11 |
11 | extu.b r11, r11 | 11 | extu.b r11, r11 |
12 | not r11, r11 | 12 | not r11, r11 |
13 | stc sr, r10 | 13 | stc sr, r10 |
diff --git a/arch/sh/include/asm/ftrace.h b/arch/sh/include/asm/ftrace.h index 7e0bcc4d4a96..12f3a31f20af 100644 --- a/arch/sh/include/asm/ftrace.h +++ b/arch/sh/include/asm/ftrace.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #ifdef CONFIG_FUNCTION_TRACER | 4 | #ifdef CONFIG_FUNCTION_TRACER |
5 | 5 | ||
6 | #define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */ | 6 | #define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */ |
7 | #define FTRACE_SYSCALL_MAX NR_syscalls | ||
7 | 8 | ||
8 | #ifndef __ASSEMBLY__ | 9 | #ifndef __ASSEMBLY__ |
9 | extern void mcount(void); | 10 | extern void mcount(void); |
diff --git a/arch/sh/include/asm/hwblk.h b/arch/sh/include/asm/hwblk.h index c01d72cb6757..5d3ccae4202b 100644 --- a/arch/sh/include/asm/hwblk.h +++ b/arch/sh/include/asm/hwblk.h | |||
@@ -5,7 +5,9 @@ | |||
5 | #include <asm/io.h> | 5 | #include <asm/io.h> |
6 | 6 | ||
7 | #define HWBLK_CNT_USAGE 0 | 7 | #define HWBLK_CNT_USAGE 0 |
8 | #define HWBLK_CNT_NR 1 | 8 | #define HWBLK_CNT_IDLE 1 |
9 | #define HWBLK_CNT_DEVICES 2 | ||
10 | #define HWBLK_CNT_NR 3 | ||
9 | 11 | ||
10 | #define HWBLK_AREA_FLAG_PARENT (1 << 0) /* valid parent */ | 12 | #define HWBLK_AREA_FLAG_PARENT (1 << 0) /* valid parent */ |
11 | 13 | ||
diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h index 25348141674b..5be45ea4dfec 100644 --- a/arch/sh/include/asm/io.h +++ b/arch/sh/include/asm/io.h | |||
@@ -92,8 +92,12 @@ | |||
92 | 92 | ||
93 | static inline void ctrl_delay(void) | 93 | static inline void ctrl_delay(void) |
94 | { | 94 | { |
95 | #ifdef P2SEG | 95 | #ifdef CONFIG_CPU_SH4 |
96 | __raw_readw(CCN_PVR); | ||
97 | #elif defined(P2SEG) | ||
96 | __raw_readw(P2SEG); | 98 | __raw_readw(P2SEG); |
99 | #else | ||
100 | #error "Need a dummy address for delay" | ||
97 | #endif | 101 | #endif |
98 | } | 102 | } |
99 | 103 | ||
@@ -146,6 +150,7 @@ __BUILD_MEMORY_STRING(q, u64) | |||
146 | #define readl_relaxed(a) readl(a) | 150 | #define readl_relaxed(a) readl(a) |
147 | #define readq_relaxed(a) readq(a) | 151 | #define readq_relaxed(a) readq(a) |
148 | 152 | ||
153 | #ifndef CONFIG_GENERIC_IOMAP | ||
149 | /* Simple MMIO */ | 154 | /* Simple MMIO */ |
150 | #define ioread8(a) __raw_readb(a) | 155 | #define ioread8(a) __raw_readb(a) |
151 | #define ioread16(a) __raw_readw(a) | 156 | #define ioread16(a) __raw_readw(a) |
@@ -166,6 +171,15 @@ __BUILD_MEMORY_STRING(q, u64) | |||
166 | #define iowrite8_rep(a, s, c) __raw_writesb((a), (s), (c)) | 171 | #define iowrite8_rep(a, s, c) __raw_writesb((a), (s), (c)) |
167 | #define iowrite16_rep(a, s, c) __raw_writesw((a), (s), (c)) | 172 | #define iowrite16_rep(a, s, c) __raw_writesw((a), (s), (c)) |
168 | #define iowrite32_rep(a, s, c) __raw_writesl((a), (s), (c)) | 173 | #define iowrite32_rep(a, s, c) __raw_writesl((a), (s), (c)) |
174 | #endif | ||
175 | |||
176 | #define mmio_insb(p,d,c) __raw_readsb(p,d,c) | ||
177 | #define mmio_insw(p,d,c) __raw_readsw(p,d,c) | ||
178 | #define mmio_insl(p,d,c) __raw_readsl(p,d,c) | ||
179 | |||
180 | #define mmio_outsb(p,s,c) __raw_writesb(p,s,c) | ||
181 | #define mmio_outsw(p,s,c) __raw_writesw(p,s,c) | ||
182 | #define mmio_outsl(p,s,c) __raw_writesl(p,s,c) | ||
169 | 183 | ||
170 | /* synco on SH-4A, otherwise a nop */ | 184 | /* synco on SH-4A, otherwise a nop */ |
171 | #define mmiowb() wmb() | 185 | #define mmiowb() wmb() |
diff --git a/arch/sh/include/asm/pgtable_32.h b/arch/sh/include/asm/pgtable_32.h index 0db19db913c7..4c4429cda56d 100644 --- a/arch/sh/include/asm/pgtable_32.h +++ b/arch/sh/include/asm/pgtable_32.h | |||
@@ -87,6 +87,14 @@ | |||
87 | #define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */ | 87 | #define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */ |
88 | #define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */ | 88 | #define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */ |
89 | 89 | ||
90 | #ifndef CONFIG_X2TLB | ||
91 | /* copy the ptea attributes */ | ||
92 | static inline unsigned long copy_ptea_attributes(unsigned long x) | ||
93 | { | ||
94 | return ((x >> 28) & 0xe) | (x & 0x1); | ||
95 | } | ||
96 | #endif | ||
97 | |||
90 | /* Mask which drops unused bits from the PTEL value */ | 98 | /* Mask which drops unused bits from the PTEL value */ |
91 | #if defined(CONFIG_CPU_SH3) | 99 | #if defined(CONFIG_CPU_SH3) |
92 | #define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED| \ | 100 | #define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED| \ |
diff --git a/arch/sh/include/asm/processor.h b/arch/sh/include/asm/processor.h index db1a4f3a755f..017e0c1807b2 100644 --- a/arch/sh/include/asm/processor.h +++ b/arch/sh/include/asm/processor.h | |||
@@ -32,7 +32,7 @@ enum cpu_type { | |||
32 | 32 | ||
33 | /* SH-4A types */ | 33 | /* SH-4A types */ |
34 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SH7786, | 34 | CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SH7786, |
35 | CPU_SH7723, CPU_SH7724, CPU_SHX3, | 35 | CPU_SH7723, CPU_SH7724, CPU_SH7757, CPU_SHX3, |
36 | 36 | ||
37 | /* SH4AL-DSP types */ | 37 | /* SH4AL-DSP types */ |
38 | CPU_SH7343, CPU_SH7722, CPU_SH7366, | 38 | CPU_SH7343, CPU_SH7722, CPU_SH7366, |
diff --git a/arch/sh/include/asm/system.h b/arch/sh/include/asm/system.h index bf7c4cbde372..6b272238a46e 100644 --- a/arch/sh/include/asm/system.h +++ b/arch/sh/include/asm/system.h | |||
@@ -169,6 +169,11 @@ BUILD_TRAP_HANDLER(breakpoint); | |||
169 | BUILD_TRAP_HANDLER(singlestep); | 169 | BUILD_TRAP_HANDLER(singlestep); |
170 | BUILD_TRAP_HANDLER(fpu_error); | 170 | BUILD_TRAP_HANDLER(fpu_error); |
171 | BUILD_TRAP_HANDLER(fpu_state_restore); | 171 | BUILD_TRAP_HANDLER(fpu_state_restore); |
172 | BUILD_TRAP_HANDLER(unwinder); | ||
173 | |||
174 | #ifdef CONFIG_BUG | ||
175 | extern void handle_BUG(struct pt_regs *); | ||
176 | #endif | ||
172 | 177 | ||
173 | #define arch_align_stack(x) (x) | 178 | #define arch_align_stack(x) (x) |
174 | 179 | ||
diff --git a/arch/sh/include/asm/system_32.h b/arch/sh/include/asm/system_32.h index 5ddd2359f3ef..607d413f6168 100644 --- a/arch/sh/include/asm/system_32.h +++ b/arch/sh/include/asm/system_32.h | |||
@@ -14,12 +14,12 @@ do { \ | |||
14 | (u32 *)&tsk->thread.dsp_status; \ | 14 | (u32 *)&tsk->thread.dsp_status; \ |
15 | __asm__ __volatile__ ( \ | 15 | __asm__ __volatile__ ( \ |
16 | ".balign 4\n\t" \ | 16 | ".balign 4\n\t" \ |
17 | "movs.l @r2+, a0\n\t" \ | ||
17 | "movs.l @r2+, a1\n\t" \ | 18 | "movs.l @r2+, a1\n\t" \ |
18 | "movs.l @r2+, a0g\n\t" \ | 19 | "movs.l @r2+, a0g\n\t" \ |
19 | "movs.l @r2+, a1g\n\t" \ | 20 | "movs.l @r2+, a1g\n\t" \ |
20 | "movs.l @r2+, m0\n\t" \ | 21 | "movs.l @r2+, m0\n\t" \ |
21 | "movs.l @r2+, m1\n\t" \ | 22 | "movs.l @r2+, m1\n\t" \ |
22 | "movs.l @r2+, a0\n\t" \ | ||
23 | "movs.l @r2+, x0\n\t" \ | 23 | "movs.l @r2+, x0\n\t" \ |
24 | "movs.l @r2+, x1\n\t" \ | 24 | "movs.l @r2+, x1\n\t" \ |
25 | "movs.l @r2+, y0\n\t" \ | 25 | "movs.l @r2+, y0\n\t" \ |
@@ -39,20 +39,20 @@ do { \ | |||
39 | \ | 39 | \ |
40 | __asm__ __volatile__ ( \ | 40 | __asm__ __volatile__ ( \ |
41 | ".balign 4\n\t" \ | 41 | ".balign 4\n\t" \ |
42 | "stc.l mod, @-r2\n\t" \ | 42 | "stc.l mod, @-r2\n\t" \ |
43 | "stc.l re, @-r2\n\t" \ | 43 | "stc.l re, @-r2\n\t" \ |
44 | "stc.l rs, @-r2\n\t" \ | 44 | "stc.l rs, @-r2\n\t" \ |
45 | "sts.l dsr, @-r2\n\t" \ | 45 | "sts.l dsr, @-r2\n\t" \ |
46 | "sts.l y1, @-r2\n\t" \ | 46 | "movs.l y1, @-r2\n\t" \ |
47 | "sts.l y0, @-r2\n\t" \ | 47 | "movs.l y0, @-r2\n\t" \ |
48 | "sts.l x1, @-r2\n\t" \ | 48 | "movs.l x1, @-r2\n\t" \ |
49 | "sts.l x0, @-r2\n\t" \ | 49 | "movs.l x0, @-r2\n\t" \ |
50 | "sts.l a0, @-r2\n\t" \ | 50 | "movs.l m1, @-r2\n\t" \ |
51 | ".word 0xf653 ! movs.l a1, @-r2\n\t" \ | 51 | "movs.l m0, @-r2\n\t" \ |
52 | ".word 0xf6f3 ! movs.l a0g, @-r2\n\t" \ | 52 | "movs.l a1g, @-r2\n\t" \ |
53 | ".word 0xf6d3 ! movs.l a1g, @-r2\n\t" \ | 53 | "movs.l a0g, @-r2\n\t" \ |
54 | ".word 0xf6c3 ! movs.l m0, @-r2\n\t" \ | 54 | "movs.l a1, @-r2\n\t" \ |
55 | ".word 0xf6e3 ! movs.l m1, @-r2\n\t" \ | 55 | "movs.l a0, @-r2\n\t" \ |
56 | : : "r" (__ts2)); \ | 56 | : : "r" (__ts2)); \ |
57 | } while (0) | 57 | } while (0) |
58 | 58 | ||
@@ -214,7 +214,7 @@ static inline reg_size_t register_align(void *val) | |||
214 | } | 214 | } |
215 | 215 | ||
216 | int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, | 216 | int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, |
217 | struct mem_access *ma); | 217 | struct mem_access *ma, int); |
218 | 218 | ||
219 | asmlinkage void do_address_error(struct pt_regs *regs, | 219 | asmlinkage void do_address_error(struct pt_regs *regs, |
220 | unsigned long writeaccess, | 220 | unsigned long writeaccess, |
diff --git a/arch/sh/include/asm/unistd_32.h b/arch/sh/include/asm/unistd_32.h index 61d6ad93d786..925dd40d9d55 100644 --- a/arch/sh/include/asm/unistd_32.h +++ b/arch/sh/include/asm/unistd_32.h | |||
@@ -132,7 +132,7 @@ | |||
132 | #define __NR_clone 120 | 132 | #define __NR_clone 120 |
133 | #define __NR_setdomainname 121 | 133 | #define __NR_setdomainname 121 |
134 | #define __NR_uname 122 | 134 | #define __NR_uname 122 |
135 | #define __NR_modify_ldt 123 | 135 | #define __NR_cacheflush 123 |
136 | #define __NR_adjtimex 124 | 136 | #define __NR_adjtimex 124 |
137 | #define __NR_mprotect 125 | 137 | #define __NR_mprotect 125 |
138 | #define __NR_sigprocmask 126 | 138 | #define __NR_sigprocmask 126 |
diff --git a/arch/sh/include/asm/unistd_64.h b/arch/sh/include/asm/unistd_64.h index a751699afda3..2b84bc916bc5 100644 --- a/arch/sh/include/asm/unistd_64.h +++ b/arch/sh/include/asm/unistd_64.h | |||
@@ -137,7 +137,7 @@ | |||
137 | #define __NR_clone 120 | 137 | #define __NR_clone 120 |
138 | #define __NR_setdomainname 121 | 138 | #define __NR_setdomainname 121 |
139 | #define __NR_uname 122 | 139 | #define __NR_uname 122 |
140 | #define __NR_modify_ldt 123 | 140 | #define __NR_cacheflush 123 |
141 | #define __NR_adjtimex 124 | 141 | #define __NR_adjtimex 124 |
142 | #define __NR_mprotect 125 | 142 | #define __NR_mprotect 125 |
143 | #define __NR_sigprocmask 126 | 143 | #define __NR_sigprocmask 126 |
diff --git a/arch/sh/include/asm/unwinder.h b/arch/sh/include/asm/unwinder.h index 3dc551453e28..1e65c07b3e18 100644 --- a/arch/sh/include/asm/unwinder.h +++ b/arch/sh/include/asm/unwinder.h | |||
@@ -22,4 +22,10 @@ extern void stack_reader_dump(struct task_struct *, struct pt_regs *, | |||
22 | unsigned long *, const struct stacktrace_ops *, | 22 | unsigned long *, const struct stacktrace_ops *, |
23 | void *); | 23 | void *); |
24 | 24 | ||
25 | /* | ||
26 | * Used by fault handling code to signal to the unwinder code that it | ||
27 | * should switch to a different unwinder. | ||
28 | */ | ||
29 | extern int unwinder_faulted; | ||
30 | |||
25 | #endif /* _LINUX_UNWINDER_H */ | 31 | #endif /* _LINUX_UNWINDER_H */ |
diff --git a/arch/sh/include/asm/watchdog.h b/arch/sh/include/asm/watchdog.h index f024fed00a72..2fe7cee9e43a 100644 --- a/arch/sh/include/asm/watchdog.h +++ b/arch/sh/include/asm/watchdog.h | |||
@@ -13,10 +13,18 @@ | |||
13 | #ifdef __KERNEL__ | 13 | #ifdef __KERNEL__ |
14 | 14 | ||
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/io.h> | ||
17 | |||
18 | #define WTCNT_HIGH 0x5a | ||
19 | #define WTCSR_HIGH 0xa5 | ||
20 | |||
21 | #define WTCSR_CKS2 0x04 | ||
22 | #define WTCSR_CKS1 0x02 | ||
23 | #define WTCSR_CKS0 0x01 | ||
24 | |||
16 | #include <cpu/watchdog.h> | 25 | #include <cpu/watchdog.h> |
17 | #include <asm/io.h> | ||
18 | 26 | ||
19 | /* | 27 | /* |
20 | * See cpu-sh2/watchdog.h for explanation of this stupidity.. | 28 | * See cpu-sh2/watchdog.h for explanation of this stupidity.. |
21 | */ | 29 | */ |
22 | #ifndef WTCNT_R | 30 | #ifndef WTCNT_R |
@@ -27,13 +35,6 @@ | |||
27 | # define WTCSR_R WTCSR | 35 | # define WTCSR_R WTCSR |
28 | #endif | 36 | #endif |
29 | 37 | ||
30 | #define WTCNT_HIGH 0x5a | ||
31 | #define WTCSR_HIGH 0xa5 | ||
32 | |||
33 | #define WTCSR_CKS2 0x04 | ||
34 | #define WTCSR_CKS1 0x02 | ||
35 | #define WTCSR_CKS0 0x01 | ||
36 | |||
37 | /* | 38 | /* |
38 | * CKS0-2 supports a number of clock division ratios. At the time the watchdog | 39 | * CKS0-2 supports a number of clock division ratios. At the time the watchdog |
39 | * is enabled, it defaults to a 41 usec overflow period .. we overload this to | 40 | * is enabled, it defaults to a 41 usec overflow period .. we overload this to |
diff --git a/arch/sh/include/cpu-sh4/cpu/freq.h b/arch/sh/include/cpu-sh4/cpu/freq.h index ccf1d999db6d..e1e90960ee9a 100644 --- a/arch/sh/include/cpu-sh4/cpu/freq.h +++ b/arch/sh/include/cpu-sh4/cpu/freq.h | |||
@@ -22,6 +22,10 @@ | |||
22 | #define MSTPCR0 0xa4150030 | 22 | #define MSTPCR0 0xa4150030 |
23 | #define MSTPCR1 0xa4150034 | 23 | #define MSTPCR1 0xa4150034 |
24 | #define MSTPCR2 0xa4150038 | 24 | #define MSTPCR2 0xa4150038 |
25 | #elif defined(CONFIG_CPU_SUBTYPE_SH7757) | ||
26 | #define FRQCR 0xffc80000 | ||
27 | #define OSCCR 0xffc80018 | ||
28 | #define PLLCR 0xffc80024 | ||
25 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) || \ | 29 | #elif defined(CONFIG_CPU_SUBTYPE_SH7763) || \ |
26 | defined(CONFIG_CPU_SUBTYPE_SH7780) | 30 | defined(CONFIG_CPU_SUBTYPE_SH7780) |
27 | #define FRQCR 0xffc80000 | 31 | #define FRQCR 0xffc80000 |
diff --git a/arch/sh/include/cpu-sh4/cpu/sh7757.h b/arch/sh/include/cpu-sh4/cpu/sh7757.h new file mode 100644 index 000000000000..f4d267efad71 --- /dev/null +++ b/arch/sh/include/cpu-sh4/cpu/sh7757.h | |||
@@ -0,0 +1,243 @@ | |||
1 | #ifndef __ASM_SH7757_H__ | ||
2 | #define __ASM_SH7757_H__ | ||
3 | |||
4 | enum { | ||
5 | /* PTA */ | ||
6 | GPIO_PTA7, GPIO_PTA6, GPIO_PTA5, GPIO_PTA4, | ||
7 | GPIO_PTA3, GPIO_PTA2, GPIO_PTA1, GPIO_PTA0, | ||
8 | |||
9 | /* PTB */ | ||
10 | GPIO_PTB7, GPIO_PTB6, GPIO_PTB5, GPIO_PTB4, | ||
11 | GPIO_PTB3, GPIO_PTB2, GPIO_PTB1, GPIO_PTB0, | ||
12 | |||
13 | /* PTC */ | ||
14 | GPIO_PTC7, GPIO_PTC6, GPIO_PTC5, GPIO_PTC4, | ||
15 | GPIO_PTC3, GPIO_PTC2, GPIO_PTC1, GPIO_PTC0, | ||
16 | |||
17 | /* PTD */ | ||
18 | GPIO_PTD7, GPIO_PTD6, GPIO_PTD5, GPIO_PTD4, | ||
19 | GPIO_PTD3, GPIO_PTD2, GPIO_PTD1, GPIO_PTD0, | ||
20 | |||
21 | /* PTE */ | ||
22 | GPIO_PTE7, GPIO_PTE6, GPIO_PTE5, GPIO_PTE4, | ||
23 | GPIO_PTE3, GPIO_PTE2, GPIO_PTE1, GPIO_PTE0, | ||
24 | |||
25 | /* PTF */ | ||
26 | GPIO_PTF7, GPIO_PTF6, GPIO_PTF5, GPIO_PTF4, | ||
27 | GPIO_PTF3, GPIO_PTF2, GPIO_PTF1, GPIO_PTF0, | ||
28 | |||
29 | /* PTG */ | ||
30 | GPIO_PTG7, GPIO_PTG6, GPIO_PTG5, GPIO_PTG4, | ||
31 | GPIO_PTG3, GPIO_PTG2, GPIO_PTG1, GPIO_PTG0, | ||
32 | |||
33 | /* PTH */ | ||
34 | GPIO_PTH7, GPIO_PTH6, GPIO_PTH5, GPIO_PTH4, | ||
35 | GPIO_PTH3, GPIO_PTH2, GPIO_PTH1, GPIO_PTH0, | ||
36 | |||
37 | /* PTI */ | ||
38 | GPIO_PTI7, GPIO_PTI6, GPIO_PTI5, GPIO_PTI4, | ||
39 | GPIO_PTI3, GPIO_PTI2, GPIO_PTI1, GPIO_PTI0, | ||
40 | |||
41 | /* PTJ */ | ||
42 | GPIO_PTJ7, GPIO_PTJ6, GPIO_PTJ5, GPIO_PTJ4, | ||
43 | GPIO_PTJ3, GPIO_PTJ2, GPIO_PTJ1, GPIO_PTJ0, | ||
44 | |||
45 | /* PTK */ | ||
46 | GPIO_PTK7, GPIO_PTK6, GPIO_PTK5, GPIO_PTK4, | ||
47 | GPIO_PTK3, GPIO_PTK2, GPIO_PTK1, GPIO_PTK0, | ||
48 | |||
49 | /* PTL */ | ||
50 | GPIO_PTL7, GPIO_PTL6, GPIO_PTL5, GPIO_PTL4, | ||
51 | GPIO_PTL3, GPIO_PTL2, GPIO_PTL1, GPIO_PTL0, | ||
52 | |||
53 | /* PTM */ | ||
54 | GPIO_PTM6, GPIO_PTM5, GPIO_PTM4, | ||
55 | GPIO_PTM3, GPIO_PTM2, GPIO_PTM1, GPIO_PTM0, | ||
56 | |||
57 | /* PTN */ | ||
58 | GPIO_PTN7, GPIO_PTN6, GPIO_PTN5, GPIO_PTN4, | ||
59 | GPIO_PTN3, GPIO_PTN2, GPIO_PTN1, GPIO_PTN0, | ||
60 | |||
61 | /* PTO */ | ||
62 | GPIO_PTO7, GPIO_PTO6, GPIO_PTO5, GPIO_PTO4, | ||
63 | GPIO_PTO3, GPIO_PTO2, GPIO_PTO1, GPIO_PTO0, | ||
64 | |||
65 | /* PTP */ | ||
66 | GPIO_PTP6, GPIO_PTP5, GPIO_PTP4, | ||
67 | GPIO_PTP3, GPIO_PTP2, GPIO_PTP1, GPIO_PTP0, | ||
68 | |||
69 | /* PTQ */ | ||
70 | GPIO_PTQ6, GPIO_PTQ5, GPIO_PTQ4, | ||
71 | GPIO_PTQ3, GPIO_PTQ2, GPIO_PTQ1, GPIO_PTQ0, | ||
72 | |||
73 | /* PTR */ | ||
74 | GPIO_PTR7, GPIO_PTR6, GPIO_PTR5, GPIO_PTR4, | ||
75 | GPIO_PTR3, GPIO_PTR2, GPIO_PTR1, GPIO_PTR0, | ||
76 | |||
77 | /* PTS */ | ||
78 | GPIO_PTS7, GPIO_PTS6, GPIO_PTS5, GPIO_PTS4, | ||
79 | GPIO_PTS3, GPIO_PTS2, GPIO_PTS1, GPIO_PTS0, | ||
80 | |||
81 | /* PTT */ | ||
82 | GPIO_PTT5, GPIO_PTT4, | ||
83 | GPIO_PTT3, GPIO_PTT2, GPIO_PTT1, GPIO_PTT0, | ||
84 | |||
85 | /* PTU */ | ||
86 | GPIO_PTU7, GPIO_PTU6, GPIO_PTU5, GPIO_PTU4, | ||
87 | GPIO_PTU3, GPIO_PTU2, GPIO_PTU1, GPIO_PTU0, | ||
88 | |||
89 | /* PTV */ | ||
90 | GPIO_PTV7, GPIO_PTV6, GPIO_PTV5, GPIO_PTV4, | ||
91 | GPIO_PTV3, GPIO_PTV2, GPIO_PTV1, GPIO_PTV0, | ||
92 | |||
93 | /* PTW */ | ||
94 | GPIO_PTW7, GPIO_PTW6, GPIO_PTW5, GPIO_PTW4, | ||
95 | GPIO_PTW3, GPIO_PTW2, GPIO_PTW1, GPIO_PTW0, | ||
96 | |||
97 | /* PTX */ | ||
98 | GPIO_PTX7, GPIO_PTX6, GPIO_PTX5, GPIO_PTX4, | ||
99 | GPIO_PTX3, GPIO_PTX2, GPIO_PTX1, GPIO_PTX0, | ||
100 | |||
101 | /* PTY */ | ||
102 | GPIO_PTY7, GPIO_PTY6, GPIO_PTY5, GPIO_PTY4, | ||
103 | GPIO_PTY3, GPIO_PTY2, GPIO_PTY1, GPIO_PTY0, | ||
104 | |||
105 | /* PTZ */ | ||
106 | GPIO_PTZ7, GPIO_PTZ6, GPIO_PTZ5, GPIO_PTZ4, | ||
107 | GPIO_PTZ3, GPIO_PTZ2, GPIO_PTZ1, GPIO_PTZ0, | ||
108 | |||
109 | |||
110 | /* PTA (mobule: LBSC, CPG, LPC) */ | ||
111 | GPIO_FN_BS, GPIO_FN_RDWR, GPIO_FN_WE1, GPIO_FN_RDY, | ||
112 | GPIO_FN_MD10, GPIO_FN_MD9, GPIO_FN_MD8, | ||
113 | GPIO_FN_LGPIO7, GPIO_FN_LGPIO6, GPIO_FN_LGPIO5, GPIO_FN_LGPIO4, | ||
114 | GPIO_FN_LGPIO3, GPIO_FN_LGPIO2, GPIO_FN_LGPIO1, GPIO_FN_LGPIO0, | ||
115 | |||
116 | /* PTB (mobule: LBSC, EtherC, SIM, LPC) */ | ||
117 | GPIO_FN_D15, GPIO_FN_D14, GPIO_FN_D13, GPIO_FN_D12, | ||
118 | GPIO_FN_D11, GPIO_FN_D10, GPIO_FN_D9, GPIO_FN_D8, | ||
119 | GPIO_FN_ET0_MDC, GPIO_FN_ET0_MDIO, | ||
120 | GPIO_FN_ET1_MDC, GPIO_FN_ET1_MDIO, | ||
121 | GPIO_FN_SIM_D, GPIO_FN_SIM_CLK, GPIO_FN_SIM_RST, | ||
122 | GPIO_FN_WPSZ1, GPIO_FN_WPSZ0, GPIO_FN_FWID, GPIO_FN_FLSHSZ, | ||
123 | GPIO_FN_LPC_SPIEN, GPIO_FN_BASEL, | ||
124 | |||
125 | /* PTC (mobule: SD) */ | ||
126 | GPIO_FN_SD_WP, GPIO_FN_SD_CD, GPIO_FN_SD_CLK, GPIO_FN_SD_CMD, | ||
127 | GPIO_FN_SD_D3, GPIO_FN_SD_D2, GPIO_FN_SD_D1, GPIO_FN_SD_D0, | ||
128 | |||
129 | /* PTD (mobule: INTC, SPI0, LBSC, CPG, ADC) */ | ||
130 | GPIO_FN_IRQ7, GPIO_FN_IRQ6, GPIO_FN_IRQ5, GPIO_FN_IRQ4, | ||
131 | GPIO_FN_IRQ3, GPIO_FN_IRQ2, GPIO_FN_IRQ1, GPIO_FN_IRQ0, | ||
132 | GPIO_FN_MD6, GPIO_FN_MD5, GPIO_FN_MD3, GPIO_FN_MD2, | ||
133 | GPIO_FN_MD1, GPIO_FN_MD0, GPIO_FN_ADTRG1, GPIO_FN_ADTRG0, | ||
134 | |||
135 | /* PTE (mobule: EtherC) */ | ||
136 | GPIO_FN_ET0_CRS_DV, GPIO_FN_ET0_TXD1, | ||
137 | GPIO_FN_ET0_TXD0, GPIO_FN_ET0_TX_EN, | ||
138 | GPIO_FN_ET0_REF_CLK, GPIO_FN_ET0_RXD1, | ||
139 | GPIO_FN_ET0_RXD0, GPIO_FN_ET0_RX_ER, | ||
140 | |||
141 | /* PTF (mobule: EtherC) */ | ||
142 | GPIO_FN_ET1_CRS_DV, GPIO_FN_ET1_TXD1, | ||
143 | GPIO_FN_ET1_TXD0, GPIO_FN_ET1_TX_EN, | ||
144 | GPIO_FN_ET1_REF_CLK, GPIO_FN_ET1_RXD1, | ||
145 | GPIO_FN_ET1_RXD0, GPIO_FN_ET1_RX_ER, | ||
146 | |||
147 | /* PTG (mobule: SYSTEM, PWMX, LPC) */ | ||
148 | GPIO_FN_STATUS0, GPIO_FN_STATUS1, | ||
149 | GPIO_FN_PWX0, GPIO_FN_PWX1, GPIO_FN_PWX2, GPIO_FN_PWX3, | ||
150 | GPIO_FN_SERIRQ, GPIO_FN_CLKRUN, GPIO_FN_LPCPD, GPIO_FN_LDRQ, | ||
151 | |||
152 | /* PTH (mobule: TMU, SCIF234, SPI1, SPI0) */ | ||
153 | GPIO_FN_TCLK, GPIO_FN_RXD4, GPIO_FN_TXD4, | ||
154 | GPIO_FN_SP1_MOSI, GPIO_FN_SP1_MISO, | ||
155 | GPIO_FN_SP1_SCK, GPIO_FN_SP1_SCK_FB, | ||
156 | GPIO_FN_SP1_SS0, GPIO_FN_SP1_SS1, | ||
157 | GPIO_FN_SP0_SS1, | ||
158 | |||
159 | /* PTI (mobule: INTC) */ | ||
160 | GPIO_FN_IRQ15, GPIO_FN_IRQ14, GPIO_FN_IRQ13, GPIO_FN_IRQ12, | ||
161 | GPIO_FN_IRQ11, GPIO_FN_IRQ10, GPIO_FN_IRQ9, GPIO_FN_IRQ8, | ||
162 | |||
163 | /* PTJ (mobule: SCIF234, SERMUX) */ | ||
164 | GPIO_FN_RXD3, GPIO_FN_TXD3, GPIO_FN_RXD2, GPIO_FN_TXD2, | ||
165 | GPIO_FN_COM1_TXD, GPIO_FN_COM1_RXD, | ||
166 | GPIO_FN_COM1_RTS, GPIO_FN_COM1_CTS, | ||
167 | |||
168 | /* PTK (mobule: SERMUX) */ | ||
169 | GPIO_FN_COM2_TXD, GPIO_FN_COM2_RXD, | ||
170 | GPIO_FN_COM2_RTS, GPIO_FN_COM2_CTS, | ||
171 | GPIO_FN_COM2_DTR, GPIO_FN_COM2_DSR, | ||
172 | GPIO_FN_COM2_DCD, GPIO_FN_COM2_RI, | ||
173 | |||
174 | /* PTL (mobule: SERMUX) */ | ||
175 | GPIO_FN_RAC_TXD, GPIO_FN_RAC_RXD, | ||
176 | GPIO_FN_RAC_RTS, GPIO_FN_RAC_CTS, | ||
177 | GPIO_FN_RAC_DTR, GPIO_FN_RAC_DSR, | ||
178 | GPIO_FN_RAC_DCD, GPIO_FN_RAC_RI, | ||
179 | |||
180 | /* PTM (mobule: IIC, LPC) */ | ||
181 | GPIO_FN_SDA6, GPIO_FN_SCL6, GPIO_FN_SDA7, GPIO_FN_SCL7, | ||
182 | GPIO_FN_WP, GPIO_FN_FMS0, GPIO_FN_FMS1, | ||
183 | |||
184 | /* PTN (mobule: SCIF234, EVC) */ | ||
185 | GPIO_FN_SCK2, GPIO_FN_RTS4, GPIO_FN_RTS3, GPIO_FN_RTS2, | ||
186 | GPIO_FN_CTS4, GPIO_FN_CTS3, GPIO_FN_CTS2, | ||
187 | GPIO_FN_EVENT7, GPIO_FN_EVENT6, GPIO_FN_EVENT5, GPIO_FN_EVENT4, | ||
188 | GPIO_FN_EVENT3, GPIO_FN_EVENT2, GPIO_FN_EVENT1, GPIO_FN_EVENT0, | ||
189 | |||
190 | /* PTO (mobule: SGPIO) */ | ||
191 | GPIO_FN_SGPIO0_CLK, GPIO_FN_SGPIO0_LOAD, | ||
192 | GPIO_FN_SGPIO0_DI, GPIO_FN_SGPIO0_DO, | ||
193 | GPIO_FN_SGPIO1_CLK, GPIO_FN_SGPIO1_LOAD, | ||
194 | GPIO_FN_SGPIO1_DI, GPIO_FN_SGPIO1_DO, | ||
195 | |||
196 | /* PTP (mobule: JMC, SCIF234) */ | ||
197 | GPIO_FN_JMCTCK, GPIO_FN_JMCTMS, GPIO_FN_JMCTDO, GPIO_FN_JMCTDI, | ||
198 | GPIO_FN_JMCRST, GPIO_FN_SCK4, GPIO_FN_SCK3, | ||
199 | |||
200 | /* PTQ (mobule: LPC) */ | ||
201 | GPIO_FN_LAD3, GPIO_FN_LAD2, GPIO_FN_LAD1, GPIO_FN_LAD0, | ||
202 | GPIO_FN_LFRAME, GPIO_FN_LRESET, GPIO_FN_LCLK, | ||
203 | |||
204 | /* PTR (mobule: GRA, IIC) */ | ||
205 | GPIO_FN_DDC3, GPIO_FN_DDC2, | ||
206 | GPIO_FN_SDA8, GPIO_FN_SCL8, GPIO_FN_SDA2, GPIO_FN_SCL2, | ||
207 | GPIO_FN_SDA1, GPIO_FN_SCL1, GPIO_FN_SDA0, GPIO_FN_SCL0, | ||
208 | |||
209 | /* PTS (mobule: GRA, IIC) */ | ||
210 | GPIO_FN_DDC1, GPIO_FN_DDC0, | ||
211 | GPIO_FN_SDA9, GPIO_FN_SCL9, GPIO_FN_SDA5, GPIO_FN_SCL5, | ||
212 | GPIO_FN_SDA4, GPIO_FN_SCL4, GPIO_FN_SDA3, GPIO_FN_SCL3, | ||
213 | |||
214 | /* PTT (mobule: SYSTEM, PWMX) */ | ||
215 | GPIO_FN_AUDSYNC, GPIO_FN_AUDCK, | ||
216 | GPIO_FN_AUDATA3, GPIO_FN_AUDATA2, | ||
217 | GPIO_FN_AUDATA1, GPIO_FN_AUDATA0, | ||
218 | GPIO_FN_PWX7, GPIO_FN_PWX6, GPIO_FN_PWX5, GPIO_FN_PWX4, | ||
219 | |||
220 | /* PTU (mobule: LBSC, DMAC) */ | ||
221 | GPIO_FN_CS6, GPIO_FN_CS5, GPIO_FN_CS4, GPIO_FN_CS0, | ||
222 | GPIO_FN_RD, GPIO_FN_WE0, GPIO_FN_A25, GPIO_FN_A24, | ||
223 | GPIO_FN_DREQ0, GPIO_FN_DACK0, | ||
224 | |||
225 | /* PTV (mobule: LBSC, DMAC) */ | ||
226 | GPIO_FN_A23, GPIO_FN_A22, GPIO_FN_A21, GPIO_FN_A20, | ||
227 | GPIO_FN_A19, GPIO_FN_A18, GPIO_FN_A17, GPIO_FN_A16, | ||
228 | GPIO_FN_TEND0, GPIO_FN_DREQ1, GPIO_FN_DACK1, GPIO_FN_TEND1, | ||
229 | |||
230 | /* PTW (mobule: LBSC) */ | ||
231 | GPIO_FN_A15, GPIO_FN_A14, GPIO_FN_A13, GPIO_FN_A12, | ||
232 | GPIO_FN_A11, GPIO_FN_A10, GPIO_FN_A9, GPIO_FN_A8, | ||
233 | |||
234 | /* PTX (mobule: LBSC) */ | ||
235 | GPIO_FN_A7, GPIO_FN_A6, GPIO_FN_A5, GPIO_FN_A4, | ||
236 | GPIO_FN_A3, GPIO_FN_A2, GPIO_FN_A1, GPIO_FN_A0, | ||
237 | |||
238 | /* PTY (mobule: LBSC) */ | ||
239 | GPIO_FN_D7, GPIO_FN_D6, GPIO_FN_D5, GPIO_FN_D4, | ||
240 | GPIO_FN_D3, GPIO_FN_D2, GPIO_FN_D1, GPIO_FN_D0, | ||
241 | }; | ||
242 | |||
243 | #endif /* __ASM_SH7757_H__ */ | ||
diff --git a/arch/sh/include/mach-common/mach/sh7785lcr.h b/arch/sh/include/mach-common/mach/sh7785lcr.h index 90011d435f30..1292ae5c21b3 100644 --- a/arch/sh/include/mach-common/mach/sh7785lcr.h +++ b/arch/sh/include/mach-common/mach/sh7785lcr.h | |||
@@ -35,6 +35,8 @@ | |||
35 | #define PCA9564_ADDR 0x06000000 /* I2C */ | 35 | #define PCA9564_ADDR 0x06000000 /* I2C */ |
36 | #define PCA9564_SIZE 0x00000100 | 36 | #define PCA9564_SIZE 0x00000100 |
37 | 37 | ||
38 | #define PCA9564_PROTO_32BIT_ADDR 0x14000000 | ||
39 | |||
38 | #define SM107_MEM_ADDR 0x10000000 | 40 | #define SM107_MEM_ADDR 0x10000000 |
39 | #define SM107_MEM_SIZE 0x00e00000 | 41 | #define SM107_MEM_SIZE 0x00e00000 |
40 | #define SM107_REG_ADDR 0x13e00000 | 42 | #define SM107_REG_ADDR 0x13e00000 |
diff --git a/arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt b/arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt index 25801d495c5f..a19ac31c8cde 100644 --- a/arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt +++ b/arch/sh/include/mach-kfr2r09/mach/partner-jet-setup.txt | |||
@@ -16,6 +16,12 @@ LIST "--------------------------------" | |||
16 | LIST "disable watchdog" | 16 | LIST "disable watchdog" |
17 | EW 0xa4520004, 0xa507 | 17 | EW 0xa4520004, 0xa507 |
18 | 18 | ||
19 | LIST "invalidate instruction cache" | ||
20 | ED 0xff00001c, 0x00000800 | ||
21 | |||
22 | LIST "invalidate TLBs" | ||
23 | ED 0xff000010, 0x00000004 | ||
24 | |||
19 | LIST "select mode for cs5 + cs6" | 25 | LIST "select mode for cs5 + cs6" |
20 | ED 0xff800020, 0xa5a50001 | 26 | ED 0xff800020, 0xa5a50001 |
21 | ED 0xfec10000, 0x0000001b | 27 | ED 0xfec10000, 0x0000001b |
diff --git a/arch/sh/include/mach-kfr2r09/mach/romimage.h b/arch/sh/include/mach-kfr2r09/mach/romimage.h index f5aa8e16770c..39ee79443569 100644 --- a/arch/sh/include/mach-kfr2r09/mach/romimage.h +++ b/arch/sh/include/mach-kfr2r09/mach/romimage.h | |||
@@ -73,3 +73,16 @@ | |||
73 | .endm | 73 | .endm |
74 | 74 | ||
75 | #include "partner-jet-setup.txt" | 75 | #include "partner-jet-setup.txt" |
76 | |||
77 | /* execute icbi after enabling cache */ | ||
78 | mov.l 1f, r0 | ||
79 | icbi @r0 | ||
80 | |||
81 | /* jump to cached area */ | ||
82 | mova 2f, r0 | ||
83 | jmp @r0 | ||
84 | nop | ||
85 | |||
86 | .align 2 | ||
87 | 1: .long 0xa8000000 | ||
88 | 2: | ||