diff options
author | David Woodhouse <dwmw2@infradead.org> | 2007-10-13 09:58:23 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2007-10-13 09:58:23 -0400 |
commit | ebf8889bd1fe3615991ff4494635d237280652a2 (patch) | |
tree | 10fb735717122bbb86474339eac07f26e7ccdf40 /include/asm-blackfin | |
parent | b160292cc216a50fd0cd386b0bda2cd48352c73b (diff) | |
parent | 752097cec53eea111d087c545179b421e2bde98a (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/asm-blackfin')
57 files changed, 1752 insertions, 2131 deletions
diff --git a/include/asm-blackfin/bfin5xx_spi.h b/include/asm-blackfin/bfin5xx_spi.h index 95c1c952e7c1..f617d8765451 100644 --- a/include/asm-blackfin/bfin5xx_spi.h +++ b/include/asm-blackfin/bfin5xx_spi.h | |||
@@ -21,8 +21,6 @@ | |||
21 | #ifndef _SPI_CHANNEL_H_ | 21 | #ifndef _SPI_CHANNEL_H_ |
22 | #define _SPI_CHANNEL_H_ | 22 | #define _SPI_CHANNEL_H_ |
23 | 23 | ||
24 | #define SPI0_REGBASE 0xffc00500 | ||
25 | |||
26 | #define SPI_READ 0 | 24 | #define SPI_READ 0 |
27 | #define SPI_WRITE 1 | 25 | #define SPI_WRITE 1 |
28 | 26 | ||
diff --git a/include/asm-blackfin/blackfin.h b/include/asm-blackfin/blackfin.h index 25b934b7f829..984b74f0a2ec 100644 --- a/include/asm-blackfin/blackfin.h +++ b/include/asm-blackfin/blackfin.h | |||
@@ -11,78 +11,57 @@ | |||
11 | #define HI(con32) (((con32) >> 16) & 0xFFFF) | 11 | #define HI(con32) (((con32) >> 16) & 0xFFFF) |
12 | #define hi(con32) (((con32) >> 16) & 0xFFFF) | 12 | #define hi(con32) (((con32) >> 16) & 0xFFFF) |
13 | 13 | ||
14 | #include <asm/mach/blackfin.h> | 14 | #include <asm/mach/anomaly.h> |
15 | #include <asm/bfin-global.h> | ||
16 | 15 | ||
17 | #ifndef __ASSEMBLY__ | 16 | #ifndef __ASSEMBLY__ |
18 | 17 | ||
19 | /* SSYNC implementation for C file */ | 18 | /* SSYNC implementation for C file */ |
20 | #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | 19 | static inline void SSYNC(void) |
21 | static inline void SSYNC (void) | ||
22 | { | ||
23 | int _tmp; | ||
24 | __asm__ __volatile__ ("cli %0;\n\t" | ||
25 | "nop;nop;\n\t" | ||
26 | "ssync;\n\t" | ||
27 | "sti %0;\n\t" | ||
28 | :"=d"(_tmp):); | ||
29 | } | ||
30 | #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | ||
31 | static inline void SSYNC (void) | ||
32 | { | 20 | { |
33 | int _tmp; | 21 | int _tmp; |
34 | __asm__ __volatile__ ("cli %0;\n\t" | 22 | if (ANOMALY_05000312) |
35 | "ssync;\n\t" | 23 | __asm__ __volatile__( |
36 | "sti %0;\n\t" | 24 | "cli %0;" |
37 | :"=d"(_tmp):); | 25 | "nop;" |
26 | "nop;" | ||
27 | "ssync;" | ||
28 | "sti %0;" | ||
29 | : "=d" (_tmp) | ||
30 | ); | ||
31 | else if (ANOMALY_05000244) | ||
32 | __asm__ __volatile__( | ||
33 | "nop;" | ||
34 | "nop;" | ||
35 | "nop;" | ||
36 | "ssync;" | ||
37 | ); | ||
38 | else | ||
39 | __asm__ __volatile__("ssync;"); | ||
38 | } | 40 | } |
39 | #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | ||
40 | static inline void SSYNC (void) | ||
41 | { | ||
42 | __asm__ __volatile__ ("nop; nop; nop;\n\t" | ||
43 | "ssync;\n\t" | ||
44 | ::); | ||
45 | } | ||
46 | #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | ||
47 | static inline void SSYNC (void) | ||
48 | { | ||
49 | __asm__ __volatile__ ("ssync;\n\t"); | ||
50 | } | ||
51 | #endif | ||
52 | 41 | ||
53 | /* CSYNC implementation for C file */ | 42 | /* CSYNC implementation for C file */ |
54 | #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | 43 | static inline void CSYNC(void) |
55 | static inline void CSYNC (void) | ||
56 | { | ||
57 | int _tmp; | ||
58 | __asm__ __volatile__ ("cli %0;\n\t" | ||
59 | "nop;nop;\n\t" | ||
60 | "csync;\n\t" | ||
61 | "sti %0;\n\t" | ||
62 | :"=d"(_tmp):); | ||
63 | } | ||
64 | #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | ||
65 | static inline void CSYNC (void) | ||
66 | { | 44 | { |
67 | int _tmp; | 45 | int _tmp; |
68 | __asm__ __volatile__ ("cli %0;\n\t" | 46 | if (ANOMALY_05000312) |
69 | "csync;\n\t" | 47 | __asm__ __volatile__( |
70 | "sti %0;\n\t" | 48 | "cli %0;" |
71 | :"=d"(_tmp):); | 49 | "nop;" |
72 | } | 50 | "nop;" |
73 | #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | 51 | "csync;" |
74 | static inline void CSYNC (void) | 52 | "sti %0;" |
75 | { | 53 | : "=d" (_tmp) |
76 | __asm__ __volatile__ ("nop; nop; nop;\n\t" | 54 | ); |
77 | "ssync;\n\t" | 55 | else if (ANOMALY_05000244) |
78 | ::); | 56 | __asm__ __volatile__( |
57 | "nop;" | ||
58 | "nop;" | ||
59 | "nop;" | ||
60 | "csync;" | ||
61 | ); | ||
62 | else | ||
63 | __asm__ __volatile__("csync;"); | ||
79 | } | 64 | } |
80 | #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | ||
81 | static inline void CSYNC (void) | ||
82 | { | ||
83 | __asm__ __volatile__ ("csync;\n\t"); | ||
84 | } | ||
85 | #endif | ||
86 | 65 | ||
87 | #else /* __ASSEMBLY__ */ | 66 | #else /* __ASSEMBLY__ */ |
88 | 67 | ||
@@ -91,19 +70,15 @@ static inline void CSYNC (void) | |||
91 | #define ssync(x) SSYNC(x) | 70 | #define ssync(x) SSYNC(x) |
92 | #define csync(x) CSYNC(x) | 71 | #define csync(x) CSYNC(x) |
93 | 72 | ||
94 | #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | 73 | #if ANOMALY_05000312 |
95 | #define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch; | 74 | #define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch; |
96 | #define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch; | 75 | #define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch; |
97 | 76 | ||
98 | #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | 77 | #elif ANOMALY_05000244 |
99 | #define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch; | ||
100 | #define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch; | ||
101 | |||
102 | #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) | ||
103 | #define SSYNC(scratch) nop; nop; nop; SSYNC; | 78 | #define SSYNC(scratch) nop; nop; nop; SSYNC; |
104 | #define CSYNC(scratch) nop; nop; nop; CSYNC; | 79 | #define CSYNC(scratch) nop; nop; nop; CSYNC; |
105 | 80 | ||
106 | #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) | 81 | #else |
107 | #define SSYNC(scratch) SSYNC; | 82 | #define SSYNC(scratch) SSYNC; |
108 | #define CSYNC(scratch) CSYNC; | 83 | #define CSYNC(scratch) CSYNC; |
109 | 84 | ||
@@ -111,4 +86,7 @@ static inline void CSYNC (void) | |||
111 | 86 | ||
112 | #endif /* __ASSEMBLY__ */ | 87 | #endif /* __ASSEMBLY__ */ |
113 | 88 | ||
89 | #include <asm/mach/blackfin.h> | ||
90 | #include <asm/bfin-global.h> | ||
91 | |||
114 | #endif /* _BLACKFIN_H_ */ | 92 | #endif /* _BLACKFIN_H_ */ |
diff --git a/include/asm-blackfin/cacheflush.h b/include/asm-blackfin/cacheflush.h index e5e000de3c36..d81a77545a04 100644 --- a/include/asm-blackfin/cacheflush.h +++ b/include/asm-blackfin/cacheflush.h | |||
@@ -48,9 +48,9 @@ extern void blackfin_dflush_page(void *); | |||
48 | 48 | ||
49 | static inline void flush_icache_range(unsigned start, unsigned end) | 49 | static inline void flush_icache_range(unsigned start, unsigned end) |
50 | { | 50 | { |
51 | #if defined(CONFIG_BLKFIN_DCACHE) && defined(CONFIG_BLKFIN_CACHE) | 51 | #if defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_ICACHE) |
52 | 52 | ||
53 | # if defined(CONFIG_BLKFIN_WT) | 53 | # if defined(CONFIG_BFIN_WT) |
54 | blackfin_icache_flush_range((start), (end)); | 54 | blackfin_icache_flush_range((start), (end)); |
55 | # else | 55 | # else |
56 | blackfin_icache_dcache_flush_range((start), (end)); | 56 | blackfin_icache_dcache_flush_range((start), (end)); |
@@ -58,10 +58,10 @@ static inline void flush_icache_range(unsigned start, unsigned end) | |||
58 | 58 | ||
59 | #else | 59 | #else |
60 | 60 | ||
61 | # if defined(CONFIG_BLKFIN_CACHE) | 61 | # if defined(CONFIG_BFIN_ICACHE) |
62 | blackfin_icache_flush_range((start), (end)); | 62 | blackfin_icache_flush_range((start), (end)); |
63 | # endif | 63 | # endif |
64 | # if defined(CONFIG_BLKFIN_DCACHE) | 64 | # if defined(CONFIG_BFIN_DCACHE) |
65 | blackfin_dcache_flush_range((start), (end)); | 65 | blackfin_dcache_flush_range((start), (end)); |
66 | # endif | 66 | # endif |
67 | 67 | ||
@@ -74,12 +74,12 @@ do { memcpy(dst, src, len); \ | |||
74 | } while (0) | 74 | } while (0) |
75 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) memcpy(dst, src, len) | 75 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) memcpy(dst, src, len) |
76 | 76 | ||
77 | #if defined(CONFIG_BLKFIN_DCACHE) | 77 | #if defined(CONFIG_BFIN_DCACHE) |
78 | # define invalidate_dcache_range(start,end) blackfin_dcache_invalidate_range((start), (end)) | 78 | # define invalidate_dcache_range(start,end) blackfin_dcache_invalidate_range((start), (end)) |
79 | #else | 79 | #else |
80 | # define invalidate_dcache_range(start,end) do { } while (0) | 80 | # define invalidate_dcache_range(start,end) do { } while (0) |
81 | #endif | 81 | #endif |
82 | #if defined(CONFIG_BLKFIN_DCACHE) && defined(CONFIG_BLKFIN_WB) | 82 | #if defined(CONFIG_BFIN_DCACHE) && defined(CONFIG_BFIN_WB) |
83 | # define flush_dcache_range(start,end) blackfin_dcache_flush_range((start), (end)) | 83 | # define flush_dcache_range(start,end) blackfin_dcache_flush_range((start), (end)) |
84 | # define flush_dcache_page(page) blackfin_dflush_page(page_address(page)) | 84 | # define flush_dcache_page(page) blackfin_dflush_page(page_address(page)) |
85 | #else | 85 | #else |
@@ -87,4 +87,4 @@ do { memcpy(dst, src, len); \ | |||
87 | # define flush_dcache_page(page) do { } while (0) | 87 | # define flush_dcache_page(page) do { } while (0) |
88 | #endif | 88 | #endif |
89 | 89 | ||
90 | #endif /* _BLACKFIN_CACHEFLUSH_H */ | 90 | #endif /* _BLACKFIN_ICACHEFLUSH_H */ |
diff --git a/include/asm-blackfin/cplb.h b/include/asm-blackfin/cplb.h index e0dd56bfa4c7..06828d77a58f 100644 --- a/include/asm-blackfin/cplb.h +++ b/include/asm-blackfin/cplb.h | |||
@@ -1,17 +1,100 @@ | |||
1 | /************************************************************************ | 1 | /* |
2 | * File: include/asm-blackfin/cplb.h | ||
3 | * Based on: include/asm-blackfin/mach-bf537/bf537.h | ||
4 | * Author: Robin Getz <rgetz@blackfin.uclinux.org> | ||
2 | * | 5 | * |
3 | * cplb.h | 6 | * Created: 2000 |
7 | * Description: Common CPLB definitions for CPLB init | ||
4 | * | 8 | * |
5 | * (c) Copyright 2002-2003 Analog Devices, Inc. All rights reserved. | 9 | * Modified: |
10 | * Copyright 2004-2007 Analog Devices Inc. | ||
6 | * | 11 | * |
7 | ************************************************************************/ | 12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
8 | 13 | * | |
9 | /* Defines necessary for cplb initialisation routines. */ | 14 | * This program is free software; you can redistribute it and/or modify |
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
10 | 29 | ||
11 | #ifndef _CPLB_H | 30 | #ifndef _CPLB_H |
12 | #define _CPLB_H | 31 | #define _CPLB_H |
13 | 32 | ||
14 | # include <asm/blackfin.h> | 33 | #include <asm/blackfin.h> |
34 | #include <asm/mach/anomaly.h> | ||
35 | |||
36 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
37 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
38 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
39 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
40 | |||
41 | /*Use the menuconfig cache policy here - CONFIG_BFIN_WT/CONFIG_BFIN_WB*/ | ||
42 | |||
43 | #if ANOMALY_05000158 | ||
44 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
45 | #else | ||
46 | #define ANOMALY_05000158_WORKAROUND 0x0 | ||
47 | #endif | ||
48 | |||
49 | #define CPLB_COMMON (CPLB_DIRTY | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
50 | |||
51 | #ifdef CONFIG_BFIN_WB /*Write Back Policy */ | ||
52 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_COMMON) | ||
53 | #else /*Write Through */ | ||
54 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_COMMON) | ||
55 | #endif | ||
56 | |||
57 | #define L1_DMEMORY (CPLB_LOCK | CPLB_COMMON) | ||
58 | #define L2_MEMORY (CPLB_COMMON) | ||
59 | #define SDRAM_DNON_CHBL (CPLB_COMMON) | ||
60 | #define SDRAM_EBIU (CPLB_COMMON) | ||
61 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
62 | |||
63 | #define SIZE_1K 0x00000400 /* 1K */ | ||
64 | #define SIZE_4K 0x00001000 /* 4K */ | ||
65 | #define SIZE_1M 0x00100000 /* 1M */ | ||
66 | #define SIZE_4M 0x00400000 /* 4M */ | ||
67 | |||
68 | #define MAX_CPLBS (16 * 2) | ||
69 | |||
70 | #define ASYNC_MEMORY_CPLB_COVERAGE ((ASYNC_BANK0_SIZE + ASYNC_BANK1_SIZE + \ | ||
71 | ASYNC_BANK2_SIZE + ASYNC_BANK3_SIZE) / SIZE_4M) | ||
72 | |||
73 | /* | ||
74 | * Number of required data CPLB switchtable entries | ||
75 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
76 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
77 | * 1 for L1 Data Memory | ||
78 | * possibly 1 for L2 Data Memory | ||
79 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
80 | * 1 for ASYNC Memory | ||
81 | */ | ||
82 | |||
83 | |||
84 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1 \ | ||
85 | + ASYNC_MEMORY_CPLB_COVERAGE) * 2) | ||
86 | |||
87 | /* | ||
88 | * Number of required instruction CPLB switchtable entries | ||
89 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
90 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
91 | * 1 for L1 Instruction Memory | ||
92 | * possibly 1 for L2 Instruction Memory | ||
93 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
94 | */ | ||
95 | |||
96 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1 + 1) * 2) | ||
97 | |||
15 | 98 | ||
16 | #define CPLB_ENABLE_ICACHE_P 0 | 99 | #define CPLB_ENABLE_ICACHE_P 0 |
17 | #define CPLB_ENABLE_DCACHE_P 1 | 100 | #define CPLB_ENABLE_DCACHE_P 1 |
@@ -39,8 +122,6 @@ | |||
39 | #define CPLB_DEF_CACHE CPLB_L1_CHBL | CPLB_WT | 122 | #define CPLB_DEF_CACHE CPLB_L1_CHBL | CPLB_WT |
40 | #define CPLB_CACHE_ENABLED CPLB_L1_CHBL | CPLB_DIRTY | 123 | #define CPLB_CACHE_ENABLED CPLB_L1_CHBL | CPLB_DIRTY |
41 | 124 | ||
42 | #define CPLB_ALL_ACCESS CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR | ||
43 | |||
44 | #define CPLB_I_PAGE_MGMT CPLB_LOCK | CPLB_VALID | 125 | #define CPLB_I_PAGE_MGMT CPLB_LOCK | CPLB_VALID |
45 | #define CPLB_D_PAGE_MGMT CPLB_LOCK | CPLB_ALL_ACCESS | CPLB_VALID | 126 | #define CPLB_D_PAGE_MGMT CPLB_LOCK | CPLB_ALL_ACCESS | CPLB_VALID |
46 | #define CPLB_DNOCACHE CPLB_ALL_ACCESS | CPLB_VALID | 127 | #define CPLB_DNOCACHE CPLB_ALL_ACCESS | CPLB_VALID |
diff --git a/include/asm-blackfin/dma.h b/include/asm-blackfin/dma.h index be0d913e5516..b42a531e7a1b 100644 --- a/include/asm-blackfin/dma.h +++ b/include/asm-blackfin/dma.h | |||
@@ -152,6 +152,7 @@ struct dma_channel { | |||
152 | /* functions to set register mode */ | 152 | /* functions to set register mode */ |
153 | void set_dma_start_addr(unsigned int channel, unsigned long addr); | 153 | void set_dma_start_addr(unsigned int channel, unsigned long addr); |
154 | void set_dma_next_desc_addr(unsigned int channel, unsigned long addr); | 154 | void set_dma_next_desc_addr(unsigned int channel, unsigned long addr); |
155 | void set_dma_curr_desc_addr(unsigned int channel, unsigned long addr); | ||
155 | void set_dma_x_count(unsigned int channel, unsigned short x_count); | 156 | void set_dma_x_count(unsigned int channel, unsigned short x_count); |
156 | void set_dma_x_modify(unsigned int channel, short x_modify); | 157 | void set_dma_x_modify(unsigned int channel, short x_modify); |
157 | void set_dma_y_count(unsigned int channel, unsigned short y_count); | 158 | void set_dma_y_count(unsigned int channel, unsigned short y_count); |
@@ -159,6 +160,7 @@ void set_dma_y_modify(unsigned int channel, short y_modify); | |||
159 | void set_dma_config(unsigned int channel, unsigned short config); | 160 | void set_dma_config(unsigned int channel, unsigned short config); |
160 | unsigned short set_bfin_dma_config(char direction, char flow_mode, | 161 | unsigned short set_bfin_dma_config(char direction, char flow_mode, |
161 | char intr_mode, char dma_mode, char width); | 162 | char intr_mode, char dma_mode, char width); |
163 | void set_dma_curr_addr(unsigned int channel, unsigned long addr); | ||
162 | 164 | ||
163 | /* get curr status for polling */ | 165 | /* get curr status for polling */ |
164 | unsigned short get_dma_curr_irqstat(unsigned int channel); | 166 | unsigned short get_dma_curr_irqstat(unsigned int channel); |
diff --git a/include/asm-blackfin/early_printk.h b/include/asm-blackfin/early_printk.h new file mode 100644 index 000000000000..110f1c1f845c --- /dev/null +++ b/include/asm-blackfin/early_printk.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/early_printk.h | ||
3 | * Author: Robin Getz <rgetz@blackfin.uclinux.org | ||
4 | * | ||
5 | * Created: 14Aug2007 | ||
6 | * Description: function prototpyes for early printk | ||
7 | * | ||
8 | * Modified: | ||
9 | * Copyright 2004-2007 Analog Devices Inc. | ||
10 | * | ||
11 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or modify | ||
14 | * it under the terms of the GNU General Public License as published by | ||
15 | * the Free Software Foundation; either version 2 of the License, or | ||
16 | * (at your option) any later version. | ||
17 | * | ||
18 | * This program is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | */ | ||
23 | |||
24 | #ifdef CONFIG_EARLY_PRINTK | ||
25 | extern int setup_early_printk(char *); | ||
26 | #else | ||
27 | #define setup_early_printk(fmt) do { } while (0) | ||
28 | #endif /* CONFIG_EARLY_PRINTK */ | ||
diff --git a/include/asm-blackfin/gpio.h b/include/asm-blackfin/gpio.h index 7480cfa7e2d6..dd203cd93796 100644 --- a/include/asm-blackfin/gpio.h +++ b/include/asm-blackfin/gpio.h | |||
@@ -144,6 +144,24 @@ | |||
144 | 144 | ||
145 | #ifdef BF533_FAMILY | 145 | #ifdef BF533_FAMILY |
146 | #define MAX_BLACKFIN_GPIOS 16 | 146 | #define MAX_BLACKFIN_GPIOS 16 |
147 | |||
148 | #define GPIO_PF0 0 | ||
149 | #define GPIO_PF1 1 | ||
150 | #define GPIO_PF2 2 | ||
151 | #define GPIO_PF3 3 | ||
152 | #define GPIO_PF4 4 | ||
153 | #define GPIO_PF5 5 | ||
154 | #define GPIO_PF6 6 | ||
155 | #define GPIO_PF7 7 | ||
156 | #define GPIO_PF8 8 | ||
157 | #define GPIO_PF9 9 | ||
158 | #define GPIO_PF10 10 | ||
159 | #define GPIO_PF11 11 | ||
160 | #define GPIO_PF12 12 | ||
161 | #define GPIO_PF13 13 | ||
162 | #define GPIO_PF14 14 | ||
163 | #define GPIO_PF15 15 | ||
164 | |||
147 | #endif | 165 | #endif |
148 | 166 | ||
149 | #ifdef BF537_FAMILY | 167 | #ifdef BF537_FAMILY |
@@ -421,6 +439,19 @@ unsigned short gpio_get_value(unsigned short gpio); | |||
421 | void gpio_direction_input(unsigned short gpio); | 439 | void gpio_direction_input(unsigned short gpio); |
422 | void gpio_direction_output(unsigned short gpio); | 440 | void gpio_direction_output(unsigned short gpio); |
423 | 441 | ||
442 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
443 | #include <asm/irq.h> | ||
444 | |||
445 | static inline int gpio_to_irq(unsigned gpio) | ||
446 | { | ||
447 | return (gpio + GPIO_IRQ_BASE); | ||
448 | } | ||
449 | |||
450 | static inline int irq_to_gpio(unsigned irq) | ||
451 | { | ||
452 | return (irq - GPIO_IRQ_BASE); | ||
453 | } | ||
454 | |||
424 | #endif /* __ASSEMBLY__ */ | 455 | #endif /* __ASSEMBLY__ */ |
425 | 456 | ||
426 | #endif /* __ARCH_BLACKFIN_GPIO_H__ */ | 457 | #endif /* __ARCH_BLACKFIN_GPIO_H__ */ |
diff --git a/include/asm-blackfin/io.h b/include/asm-blackfin/io.h index 142cb333db29..525179bf43d7 100644 --- a/include/asm-blackfin/io.h +++ b/include/asm-blackfin/io.h | |||
@@ -115,21 +115,21 @@ static inline unsigned int readl(const volatile void __iomem *addr) | |||
115 | 115 | ||
116 | #ifndef __ASSEMBLY__ | 116 | #ifndef __ASSEMBLY__ |
117 | 117 | ||
118 | extern void outsb(void __iomem *port, const void *addr, unsigned short count); | 118 | extern void outsb(unsigned long port, const void *addr, unsigned long count); |
119 | extern void outsw(void __iomem *port, const void *addr, unsigned short count); | 119 | extern void outsw(unsigned long port, const void *addr, unsigned long count); |
120 | extern void outsl(void __iomem *port, const void *addr, unsigned short count); | 120 | extern void outsl(unsigned long port, const void *addr, unsigned long count); |
121 | 121 | ||
122 | extern void insb(const void __iomem *port, void *addr, unsigned short count); | 122 | extern void insb(unsigned long port, void *addr, unsigned long count); |
123 | extern void insw(const void __iomem *port, void *addr, unsigned short count); | 123 | extern void insw(unsigned long port, void *addr, unsigned long count); |
124 | extern void insl(const void __iomem *port, void *addr, unsigned short count); | 124 | extern void insl(unsigned long port, void *addr, unsigned long count); |
125 | 125 | ||
126 | extern void dma_outsb(void __iomem *port, const void *addr, unsigned short count); | 126 | extern void dma_outsb(unsigned long port, const void *addr, unsigned short count); |
127 | extern void dma_outsw(void __iomem *port, const void *addr, unsigned short count); | 127 | extern void dma_outsw(unsigned long port, const void *addr, unsigned short count); |
128 | extern void dma_outsl(void __iomem *port, const void *addr, unsigned short count); | 128 | extern void dma_outsl(unsigned long port, const void *addr, unsigned short count); |
129 | 129 | ||
130 | extern void dma_insb(const void __iomem *port, void *addr, unsigned short count); | 130 | extern void dma_insb(unsigned long port, void *addr, unsigned short count); |
131 | extern void dma_insw(const void __iomem *port, void *addr, unsigned short count); | 131 | extern void dma_insw(unsigned long port, void *addr, unsigned short count); |
132 | extern void dma_insl(const void __iomem *port, void *addr, unsigned short count); | 132 | extern void dma_insl(unsigned long port, void *addr, unsigned short count); |
133 | 133 | ||
134 | /* | 134 | /* |
135 | * Map some physical address range into the kernel address space. | 135 | * Map some physical address range into the kernel address space. |
diff --git a/include/asm-blackfin/ioctls.h b/include/asm-blackfin/ioctls.h index 8356204151db..895e3173165d 100644 --- a/include/asm-blackfin/ioctls.h +++ b/include/asm-blackfin/ioctls.h | |||
@@ -47,8 +47,13 @@ | |||
47 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | 47 | #define TIOCSBRK 0x5427 /* BSD compatibility */ |
48 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | 48 | #define TIOCCBRK 0x5428 /* BSD compatibility */ |
49 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | 49 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ |
50 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | 50 | #define TCGETS2 _IOR('T', 0x2A, struct termios2) |
51 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | 51 | #define TCSETS2 _IOW('T', 0x2B, struct termios2) |
52 | #define TCSETSW2 _IOW('T', 0x2C, struct termios2) | ||
53 | #define TCSETSF2 _IOW('T', 0x2D, struct termios2) | ||
54 | /* Get Pty Number (of pty-mux device) */ | ||
55 | #define TIOCGPTN _IOR('T', 0x30, unsigned int) | ||
56 | #define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */ | ||
52 | 57 | ||
53 | #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ | 58 | #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */ |
54 | #define FIOCLEX 0x5451 | 59 | #define FIOCLEX 0x5451 |
diff --git a/include/asm-blackfin/irq_handler.h b/include/asm-blackfin/irq_handler.h index d830f0a49a1c..139b5208f9d8 100644 --- a/include/asm-blackfin/irq_handler.h +++ b/include/asm-blackfin/irq_handler.h | |||
@@ -1,13 +1,15 @@ | |||
1 | #ifndef _IRQ_HANDLER_H | 1 | #ifndef _IRQ_HANDLER_H |
2 | #define _IRQ_HANDLER_H | 2 | #define _IRQ_HANDLER_H |
3 | 3 | ||
4 | #include <linux/types.h> | ||
5 | #include <linux/linkage.h> | ||
6 | |||
4 | /* BASE LEVEL interrupt handler routines */ | 7 | /* BASE LEVEL interrupt handler routines */ |
5 | asmlinkage void evt_emulation(void); | ||
6 | asmlinkage void evt_exception(void); | 8 | asmlinkage void evt_exception(void); |
7 | asmlinkage void trap(void); | 9 | asmlinkage void trap(void); |
8 | asmlinkage void evt_ivhw(void); | 10 | asmlinkage void evt_ivhw(void); |
9 | asmlinkage void evt_timer(void); | 11 | asmlinkage void evt_timer(void); |
10 | asmlinkage void evt_evt2(void); | 12 | asmlinkage void evt_nmi(void); |
11 | asmlinkage void evt_evt7(void); | 13 | asmlinkage void evt_evt7(void); |
12 | asmlinkage void evt_evt8(void); | 14 | asmlinkage void evt_evt8(void); |
13 | asmlinkage void evt_evt9(void); | 15 | asmlinkage void evt_evt9(void); |
@@ -18,5 +20,14 @@ asmlinkage void evt_evt13(void); | |||
18 | asmlinkage void evt_soft_int1(void); | 20 | asmlinkage void evt_soft_int1(void); |
19 | asmlinkage void evt_system_call(void); | 21 | asmlinkage void evt_system_call(void); |
20 | asmlinkage void init_exception_buff(void); | 22 | asmlinkage void init_exception_buff(void); |
23 | asmlinkage void trap_c(struct pt_regs *fp); | ||
24 | asmlinkage void ex_replaceable(void); | ||
25 | asmlinkage void early_trap(void); | ||
26 | |||
27 | extern void *ex_table[]; | ||
28 | extern void return_from_exception(void); | ||
29 | |||
30 | extern int bfin_request_exception(unsigned int exception, void (*handler)(void)); | ||
31 | extern int bfin_free_exception(unsigned int exception, void (*handler)(void)); | ||
21 | 32 | ||
22 | #endif | 33 | #endif |
diff --git a/include/asm-blackfin/kgdb.h b/include/asm-blackfin/kgdb.h index 532bd9052004..0f73847fd6bc 100644 --- a/include/asm-blackfin/kgdb.h +++ b/include/asm-blackfin/kgdb.h | |||
@@ -179,5 +179,6 @@ enum regnames { | |||
179 | #define STATDA1 0x80 | 179 | #define STATDA1 0x80 |
180 | 180 | ||
181 | extern void kgdb_print(const char *fmt, ...); | 181 | extern void kgdb_print(const char *fmt, ...); |
182 | extern void init_kgdb_uart(void); | ||
182 | 183 | ||
183 | #endif | 184 | #endif |
diff --git a/include/asm-blackfin/mach-bf527/anomaly.h b/include/asm-blackfin/mach-bf527/anomaly.h new file mode 100644 index 000000000000..991db986cd4b --- /dev/null +++ b/include/asm-blackfin/mach-bf527/anomaly.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/mach-bf527/anomaly.h | ||
3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
4 | * | ||
5 | * Copyright (C) 2004-2007 Analog Devices Inc. | ||
6 | * Licensed under the GPL-2 or later. | ||
7 | */ | ||
8 | |||
9 | /* This file shoule be up to date with: | ||
10 | * - Revision A, May 30, 2007; ADSP-BF527 Blackfin Processor Anomaly List | ||
11 | */ | ||
12 | |||
13 | #ifndef _MACH_ANOMALY_H_ | ||
14 | #define _MACH_ANOMALY_H_ | ||
15 | |||
16 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ | ||
17 | #define ANOMALY_05000074 (1) | ||
18 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ | ||
19 | #define ANOMALY_05000119 (1) | ||
20 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ | ||
21 | #define ANOMALY_05000122 (1) | ||
22 | /* Spurious Hardware Error from an Access in the Shadow of a Conditional Branch */ | ||
23 | #define ANOMALY_05000245 (1) | ||
24 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | ||
25 | #define ANOMALY_05000265 (1) | ||
26 | /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ | ||
27 | #define ANOMALY_05000301 (1) | ||
28 | /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | ||
29 | #define ANOMALY_05000312 (1) | ||
30 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ | ||
31 | #define ANOMALY_05000328 (1) | ||
32 | /* Disallowed Configuration Prevents Subsequent Allowed Configuration on Host DMA Port */ | ||
33 | #define ANOMALY_05000337 (1) | ||
34 | /* TWI Does Not Operate Correctly Under Certain Signal Termination Conditions */ | ||
35 | #define ANOMALY_05000342 (1) | ||
36 | /* Boot ROM Kernel Incorrectly Alters Reset Value of USB Register */ | ||
37 | #define ANOMALY_05000347 (1) | ||
38 | |||
39 | /* Anomalies that don't exist on this proc */ | ||
40 | #define ANOMALY_05000323 (0) | ||
41 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf527/defBF52x_base.h b/include/asm-blackfin/mach-bf527/defBF52x_base.h index 0b2fb5036ed0..b1ff67db01f8 100644 --- a/include/asm-blackfin/mach-bf527/defBF52x_base.h +++ b/include/asm-blackfin/mach-bf527/defBF52x_base.h | |||
@@ -102,6 +102,7 @@ | |||
102 | 102 | ||
103 | 103 | ||
104 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ | 104 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ |
105 | #define SPI0_REGBASE 0xFFC00500 | ||
105 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ | 106 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ |
106 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ | 107 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ |
107 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ | 108 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ |
@@ -480,6 +481,7 @@ | |||
480 | 481 | ||
481 | 482 | ||
482 | /* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */ | 483 | /* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */ |
484 | #define TWI0_REGBASE 0xFFC01400 | ||
483 | #define TWI_CLKDIV 0xFFC01400 /* Serial Clock Divider Register */ | 485 | #define TWI_CLKDIV 0xFFC01400 /* Serial Clock Divider Register */ |
484 | #define TWI_CONTROL 0xFFC01404 /* TWI Control Register */ | 486 | #define TWI_CONTROL 0xFFC01404 /* TWI Control Register */ |
485 | #define TWI_SLAVE_CTL 0xFFC01408 /* Slave Mode Control Register */ | 487 | #define TWI_SLAVE_CTL 0xFFC01408 /* Slave Mode Control Register */ |
diff --git a/include/asm-blackfin/mach-bf533/anomaly.h b/include/asm-blackfin/mach-bf533/anomaly.h index 7302f290b93d..f36ff5af1b91 100644 --- a/include/asm-blackfin/mach-bf533/anomaly.h +++ b/include/asm-blackfin/mach-bf533/anomaly.h | |||
@@ -1,247 +1,259 @@ | |||
1 | /* | 1 | /* |
2 | * File: include/asm-blackfin/mach-bf533/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf533/anomaly.h |
3 | * Based on: | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
4 | * Author: | ||
5 | * | 4 | * |
6 | * Created: | 5 | * Copyright (C) 2004-2007 Analog Devices Inc. |
7 | * Description: | 6 | * Licensed under the GPL-2 or later. |
8 | * | ||
9 | * Rev: | ||
10 | * | ||
11 | * Modified: | ||
12 | * | ||
13 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2, or (at your option) | ||
18 | * any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; see the file COPYING. | ||
27 | * If not, write to the Free Software Foundation, | ||
28 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
29 | */ | 7 | */ |
30 | 8 | ||
31 | /* This file shoule be up to date with: | 9 | /* This file shoule be up to date with: |
32 | * - Revision U, May 17, 2006; ADSP-BF533 Blackfin Processor Anomaly List | 10 | * - Revision X, March 23, 2007; ADSP-BF533 Blackfin Processor Anomaly List |
33 | * - Revision Y, May 17, 2006; ADSP-BF532 Blackfin Processor Anomaly List | 11 | * - Revision AB, March 23, 2007; ADSP-BF532 Blackfin Processor Anomaly List |
34 | * - Revision T, May 17, 2006; ADSP-BF531 Blackfin Processor Anomaly List | 12 | * - Revision W, March 23, 2007; ADSP-BF531 Blackfin Processor Anomaly List |
35 | */ | 13 | */ |
36 | 14 | ||
37 | #ifndef _MACH_ANOMALY_H_ | 15 | #ifndef _MACH_ANOMALY_H_ |
38 | #define _MACH_ANOMALY_H_ | 16 | #define _MACH_ANOMALY_H_ |
39 | 17 | ||
40 | /* We do not support 0.1 or 0.2 silicon - sorry */ | 18 | /* We do not support 0.1 or 0.2 silicon - sorry */ |
41 | #if (defined(CONFIG_BF_REV_0_1) || defined(CONFIG_BF_REV_0_2)) | 19 | #if __SILICON_REVISION__ < 3 |
42 | #error Kernel will not work on BF533 Version 0.1 or 0.2 | 20 | # error Kernel will not work on BF533 silicon version 0.0, 0.1, or 0.2 |
43 | #endif | 21 | #endif |
44 | 22 | ||
45 | /* Issues that are common to 0.5, 0.4, and 0.3 silicon */ | 23 | #if defined(__ADSPBF531__) |
46 | #if (defined(CONFIG_BF_REV_0_5) || defined(CONFIG_BF_REV_0_4) \ | 24 | # define ANOMALY_BF531 1 |
47 | || defined(CONFIG_BF_REV_0_3)) | 25 | #else |
48 | #define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in | 26 | # define ANOMALY_BF531 0 |
49 | slot1 and store of a P register in slot 2 is not | 27 | #endif |
50 | supported */ | 28 | #if defined(__ADSPBF532__) |
51 | #define ANOMALY_05000105 /* Watchpoint Status Register (WPSTAT) bits are set on | 29 | # define ANOMALY_BF532 1 |
52 | every corresponding match */ | 30 | #else |
53 | #define ANOMALY_05000119 /* DMA_RUN bit is not valid after a Peripheral Receive | 31 | # define ANOMALY_BF532 0 |
54 | Channel DMA stops */ | 32 | #endif |
55 | #define ANOMALY_05000122 /* Rx.H can not be used to access 16-bit System MMR | 33 | #if defined(__ADSPBF533__) |
56 | registers. */ | 34 | # define ANOMALY_BF533 1 |
57 | #define ANOMALY_05000166 /* PPI Data Lengths Between 8 and 16 do not zero out | 35 | #else |
58 | upper bits*/ | 36 | # define ANOMALY_BF533 0 |
59 | #define ANOMALY_05000167 /* Turning Serial Ports on With External Frame Syncs */ | 37 | #endif |
60 | #define ANOMALY_05000180 /* PPI_DELAY not functional in PPI modes with 0 frame | ||
61 | syncs */ | ||
62 | #define ANOMALY_05000208 /* VSTAT status bit in PLL_STAT register is not | ||
63 | functional */ | ||
64 | #define ANOMALY_05000219 /* NMI event at boot time results in unpredictable | ||
65 | state */ | ||
66 | #define ANOMALY_05000229 /* SPI Slave Boot Mode modifies registers */ | ||
67 | #define ANOMALY_05000272 /* Certain data cache write through modes fail for | ||
68 | VDDint <=0.9V */ | ||
69 | #define ANOMALY_05000273 /* Writes to Synchronous SDRAM memory may be lost */ | ||
70 | #define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after | ||
71 | an edge is detected may clear interrupt */ | ||
72 | #define ANOMALY_05000278 /* Disabling Peripherals with DMA running may cause | ||
73 | DMA system instability */ | ||
74 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is | ||
75 | not restored */ | ||
76 | #define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic | ||
77 | control */ | ||
78 | #define ANOMALY_05000283 /* A system MMR write is stalled indefinitely when | ||
79 | killed in a particular stage*/ | ||
80 | #define ANOMALY_05000311 /* Erroneous flag pin operations under specific | ||
81 | sequences */ | ||
82 | #define ANOMALY_05000312 /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC | ||
83 | registers are interrupted */ | ||
84 | #define ANOMALY_05000313 /* PPI Is Level-Sensitive on First Transfer */ | ||
85 | #define ANOMALY_05000315 /* Killed System MMR Write Completes Erroneously On | ||
86 | * Next System MMR Access */ | ||
87 | #define ANOMALY_05000319 /* Internal Voltage Regulator Values of 1.05V, 1.10V | ||
88 | * and 1.15V Not Allowed for LQFP Packages */ | ||
89 | #endif /* Issues that are common to 0.5, 0.4, and 0.3 silicon */ | ||
90 | 38 | ||
91 | /* These issues only occur on 0.3 or 0.4 BF533 */ | 39 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot 2 Not Supported */ |
92 | #if (defined(CONFIG_BF_REV_0_4) || defined(CONFIG_BF_REV_0_3)) | 40 | #define ANOMALY_05000074 (1) |
93 | #define ANOMALY_05000099 /* UART Line Status Register (UART_LSR) bits are not | 41 | /* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ |
94 | updated at the same time. */ | 42 | #define ANOMALY_05000099 (__SILICON_REVISION__ < 5) |
95 | #define ANOMALY_05000158 /* Boot fails when data cache enabled: Data from a Data | 43 | /* Watchpoint Status Register (WPSTAT) Bits Are Set on Every Corresponding Match */ |
96 | Cache Fill can be corrupted after or during | 44 | #define ANOMALY_05000105 (1) |
97 | Instruction DMA if certain core stalls exist */ | 45 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ |
98 | #define ANOMALY_05000179 /* PPI_COUNT cannot be programmed to 0 in General | 46 | #define ANOMALY_05000119 (1) |
99 | Purpose TX or RX modes */ | 47 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ |
100 | #define ANOMALY_05000198 /* Failing SYSTEM MMR accesses when stalled by | 48 | #define ANOMALY_05000122 (1) |
101 | preceding memory read */ | 49 | /* Instruction DMA Can Cause Data Cache Fills to Fail (Boot Implications) */ |
102 | #define ANOMALY_05000200 /* SPORT TFS and DT are incorrectly driven during | 50 | #define ANOMALY_05000158 (__SILICON_REVISION__ < 5) |
103 | inactive channels in certain conditions */ | 51 | /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ |
104 | #define ANOMALY_05000202 /* Possible infinite stall with specific dual dag | 52 | #define ANOMALY_05000166 (1) |
105 | situation */ | 53 | /* Turning Serial Ports on with External Frame Syncs */ |
106 | #define ANOMALY_05000215 /* UART TX Interrupt masked erroneously */ | 54 | #define ANOMALY_05000167 (1) |
107 | #define ANOMALY_05000225 /* Incorrect pulse-width of UART start-bit */ | 55 | /* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ |
108 | #define ANOMALY_05000227 /* Scratchpad memory bank reads may return incorrect | 56 | #define ANOMALY_05000179 (__SILICON_REVISION__ < 5) |
109 | data*/ | 57 | /* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ |
110 | #define ANOMALY_05000230 /* UART Receiver is less robust against Baudrate | 58 | #define ANOMALY_05000180 (1) |
111 | Differences in certain Conditions */ | 59 | /* Timer Pin Limitations for PPI TX Modes with External Frame Syncs */ |
112 | #define ANOMALY_05000231 /* UART STB bit incorrectly affects receiver setting */ | 60 | #define ANOMALY_05000183 (__SILICON_REVISION__ < 4) |
113 | #define ANOMALY_05000242 /* DF bit in PLL_CTL register does not respond to | 61 | /* False Protection Exceptions */ |
114 | hardware reset */ | 62 | #define ANOMALY_05000189 (__SILICON_REVISION__ < 4) |
115 | #define ANOMALY_05000244 /* With instruction cache enabled, a CSYNC or SSYNC or | 63 | /* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */ |
116 | IDLE around a Change of Control causes | 64 | #define ANOMALY_05000193 (__SILICON_REVISION__ < 4) |
117 | unpredictable results */ | 65 | /* Restarting SPORT in Specific Modes May Cause Data Corruption */ |
118 | #define ANOMALY_05000245 /* Spurious Hardware Error from an access in the | 66 | #define ANOMALY_05000194 (__SILICON_REVISION__ < 4) |
119 | shadow of a conditional branch */ | 67 | /* Failing MMR Accesses When Stalled by Preceding Memory Read */ |
120 | #define ANOMALY_05000246 /* Data CPLB's should prevent spurious hardware | 68 | #define ANOMALY_05000198 (__SILICON_REVISION__ < 5) |
121 | errors */ | 69 | /* Current DMA Address Shows Wrong Value During Carry Fix */ |
122 | #define ANOMALY_05000253 /* Maximum external clock speed for Timers */ | 70 | #define ANOMALY_05000199 (__SILICON_REVISION__ < 4) |
123 | #define ANOMALY_05000255 /* Entering Hibernate Mode with RTC Seconds event | 71 | /* SPORT TFS and DT Are Incorrectly Driven During Inactive Channels in Certain Conditions */ |
124 | interrupt not functional */ | 72 | #define ANOMALY_05000200 (__SILICON_REVISION__ < 5) |
125 | #define ANOMALY_05000257 /* An interrupt or exception during short Hardware | 73 | /* Receive Frame Sync Not Ignored During Active Frames in SPORT Multi-Channel Mode */ |
126 | loops may cause the instruction fetch unit to | 74 | #define ANOMALY_05000201 (__SILICON_REVISION__ < 4) |
127 | malfunction */ | 75 | /* Possible Infinite Stall with Specific Dual-DAG Situation */ |
128 | #define ANOMALY_05000258 /* Instruction Cache is corrupted when bit 9 and 12 of | 76 | #define ANOMALY_05000202 (__SILICON_REVISION__ < 5) |
129 | the ICPLB Data registers differ */ | 77 | /* Specific Sequence That Can Cause DMA Error or DMA Stopping */ |
130 | #define ANOMALY_05000260 /* ICPLB_STATUS MMR register may be corrupted */ | 78 | #define ANOMALY_05000203 (__SILICON_REVISION__ < 4) |
131 | #define ANOMALY_05000261 /* DCPLB_FAULT_ADDR MMR register may be corrupted */ | 79 | /* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ |
132 | #define ANOMALY_05000262 /* Stores to data cache may be lost */ | 80 | #define ANOMALY_05000204 (__SILICON_REVISION__ < 4 && ANOMALY_BF533) |
133 | #define ANOMALY_05000263 /* Hardware loop corrupted when taking an ICPLB exception */ | 81 | /* Recovery from "Brown-Out" Condition */ |
134 | #define ANOMALY_05000264 /* A Sync instruction (CSYNC, SSYNC) or an IDLE | 82 | #define ANOMALY_05000207 (__SILICON_REVISION__ < 4) |
135 | instruction will cause an infinite stall in the | 83 | /* VSTAT Status Bit in PLL_STAT Register Is Not Functional */ |
136 | second to last instruction in a hardware loop */ | 84 | #define ANOMALY_05000208 (1) |
137 | #define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on | 85 | /* Speed Path in Computational Unit Affects Certain Instructions */ |
138 | SPORT external receive and transmit clocks. */ | 86 | #define ANOMALY_05000209 (__SILICON_REVISION__ < 4) |
139 | #define ANOMALY_05000269 /* High I/O activity causes the output voltage of the | 87 | /* UART TX Interrupt Masked Erroneously */ |
140 | internal voltage regulator (VDDint) to increase. */ | 88 | #define ANOMALY_05000215 (__SILICON_REVISION__ < 5) |
141 | #define ANOMALY_05000270 /* High I/O activity causes the output voltage of the | 89 | /* NMI Event at Boot Time Results in Unpredictable State */ |
142 | internal voltage regulator (VDDint) to decrease */ | 90 | #define ANOMALY_05000219 (1) |
143 | #endif /* issues only occur on 0.3 or 0.4 BF533 */ | 91 | /* Incorrect Pulse-Width of UART Start Bit */ |
92 | #define ANOMALY_05000225 (__SILICON_REVISION__ < 5) | ||
93 | /* Scratchpad Memory Bank Reads May Return Incorrect Data */ | ||
94 | #define ANOMALY_05000227 (__SILICON_REVISION__ < 5) | ||
95 | /* SPI Slave Boot Mode Modifies Registers from Reset Value */ | ||
96 | #define ANOMALY_05000229 (1) | ||
97 | /* UART Receiver is Less Robust Against Baudrate Differences in Certain Conditions */ | ||
98 | #define ANOMALY_05000230 (__SILICON_REVISION__ < 5) | ||
99 | /* UART STB Bit Incorrectly Affects Receiver Setting */ | ||
100 | #define ANOMALY_05000231 (__SILICON_REVISION__ < 5) | ||
101 | /* PPI_FS3 Is Not Driven in 2 or 3 Internal Frame Sync Transmit Modes */ | ||
102 | #define ANOMALY_05000233 (__SILICON_REVISION__ < 4) | ||
103 | /* Incorrect Revision Number in DSPID Register */ | ||
104 | #define ANOMALY_05000234 (__SILICON_REVISION__ == 4) | ||
105 | /* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */ | ||
106 | #define ANOMALY_05000242 (__SILICON_REVISION__ < 4) | ||
107 | /* If I-Cache Is On, CSYNC/SSYNC/IDLE Around Change of Control Causes Failures */ | ||
108 | #define ANOMALY_05000244 (__SILICON_REVISION__ < 5) | ||
109 | /* Spurious Hardware Error from an Access in the Shadow of a Conditional Branch */ | ||
110 | #define ANOMALY_05000245 (1) | ||
111 | /* Data CPLBs Should Prevent Spurious Hardware Errors */ | ||
112 | #define ANOMALY_05000246 (__SILICON_REVISION__ < 5) | ||
113 | /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ | ||
114 | #define ANOMALY_05000250 (__SILICON_REVISION__ == 4) | ||
115 | /* Maximum External Clock Speed for Timers */ | ||
116 | #define ANOMALY_05000253 (__SILICON_REVISION__ < 5) | ||
117 | /* Incorrect Timer Pulse Width in Single-Shot PWM_OUT Mode with External Clock */ | ||
118 | #define ANOMALY_05000254 (__SILICON_REVISION__ > 4) | ||
119 | /* Entering Hibernate State with RTC Seconds Interrupt Not Functional */ | ||
120 | #define ANOMALY_05000255 (__SILICON_REVISION__ < 5) | ||
121 | /* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */ | ||
122 | #define ANOMALY_05000257 (__SILICON_REVISION__ < 5) | ||
123 | /* Instruction Cache Is Corrupted When Bits 9 and 12 of the ICPLB Data Registers Differ */ | ||
124 | #define ANOMALY_05000258 (__SILICON_REVISION__ < 5) | ||
125 | /* ICPLB_STATUS MMR Register May Be Corrupted */ | ||
126 | #define ANOMALY_05000260 (__SILICON_REVISION__ < 5) | ||
127 | /* DCPLB_FAULT_ADDR MMR Register May Be Corrupted */ | ||
128 | #define ANOMALY_05000261 (__SILICON_REVISION__ < 5) | ||
129 | /* Stores To Data Cache May Be Lost */ | ||
130 | #define ANOMALY_05000262 (__SILICON_REVISION__ < 5) | ||
131 | /* Hardware Loop Corrupted When Taking an ICPLB Exception */ | ||
132 | #define ANOMALY_05000263 (__SILICON_REVISION__ < 5) | ||
133 | /* CSYNC/SSYNC/IDLE Causes Infinite Stall in Penultimate Instruction in Hardware Loop */ | ||
134 | #define ANOMALY_05000264 (__SILICON_REVISION__ < 5) | ||
135 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | ||
136 | #define ANOMALY_05000265 (__SILICON_REVISION__ < 5) | ||
137 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */ | ||
138 | #define ANOMALY_05000269 (__SILICON_REVISION__ < 5) | ||
139 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */ | ||
140 | #define ANOMALY_05000270 (__SILICON_REVISION__ < 5) | ||
141 | /* Spontaneous Reset of Internal Voltage Regulator */ | ||
142 | #define ANOMALY_05000271 (__SILICON_REVISION__ < 4) | ||
143 | /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ | ||
144 | #define ANOMALY_05000272 (1) | ||
145 | /* Writes to Synchronous SDRAM Memory May Be Lost */ | ||
146 | #define ANOMALY_05000273 (1) | ||
147 | /* Timing Requirements Change for External Frame Sync PPI Modes with Non-Zero PPI_DELAY */ | ||
148 | #define ANOMALY_05000276 (1) | ||
149 | /* Writes to an I/O Data Register One SCLK Cycle after an Edge Is Detected May Clear Interrupt */ | ||
150 | #define ANOMALY_05000277 (1) | ||
151 | /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ | ||
152 | #define ANOMALY_05000278 (1) | ||
153 | /* False Hardware Error Exception When ISR Context Is Not Restored */ | ||
154 | #define ANOMALY_05000281 (1) | ||
155 | /* Memory DMA Corruption with 32-Bit Data and Traffic Control */ | ||
156 | #define ANOMALY_05000282 (1) | ||
157 | /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ | ||
158 | #define ANOMALY_05000283 (1) | ||
159 | /* SPORTs May Receive Bad Data If FIFOs Fill Up */ | ||
160 | #define ANOMALY_05000288 (1) | ||
161 | /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ | ||
162 | #define ANOMALY_05000301 (1) | ||
163 | /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ | ||
164 | #define ANOMALY_05000302 (__SILICON_REVISION__ < 5) | ||
165 | /* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ | ||
166 | #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) | ||
167 | /* New Feature: Additional PPI Frame Sync Sampling Options (Not Available On Older Silicon) */ | ||
168 | #define ANOMALY_05000306 (__SILICON_REVISION__ < 5) | ||
169 | /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ | ||
170 | #define ANOMALY_05000310 (1) | ||
171 | /* Erroneous Flag (GPIO) Pin Operations under Specific Sequences */ | ||
172 | #define ANOMALY_05000311 (1) | ||
173 | /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | ||
174 | #define ANOMALY_05000312 (1) | ||
175 | /* PPI Is Level-Sensitive on First Transfer */ | ||
176 | #define ANOMALY_05000313 (1) | ||
177 | /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ | ||
178 | #define ANOMALY_05000315 (1) | ||
179 | /* Internal Voltage Regulator Values of 1.05V, 1.10V and 1.15V Not Allowed for LQFP Packages */ | ||
180 | #define ANOMALY_05000319 (ANOMALY_BF531 || ANOMALY_BF532) | ||
144 | 181 | ||
145 | /* These issues are only on 0.4 silicon */ | 182 | /* These anomalies have been "phased" out of analog.com anomaly sheets and are |
146 | #if (defined(CONFIG_BF_REV_0_4)) | 183 | * here to show running on older silicon just isn't feasible. |
147 | #define ANOMALY_05000234 /* Incorrect Revision Number in DSPID Register */ | 184 | */ |
148 | #define ANOMALY_05000250 /* Incorrect Bit-Shift of Data Word in Multichannel | ||
149 | (TDM) */ | ||
150 | #endif /* issues are only on 0.4 silicon */ | ||
151 | 185 | ||
152 | /* These issues are only on 0.3 silicon */ | 186 | /* Watchpoints (Hardware Breakpoints) are not supported */ |
153 | #if defined(CONFIG_BF_REV_0_3) | 187 | #define ANOMALY_05000067 (__SILICON_REVISION__ < 3) |
154 | #define ANOMALY_05000183 /* Timer Pin limitations for PPI TX Modes with | 188 | /* Reserved bits in SYSCFG register not set at power on */ |
155 | External Frame Syncs */ | 189 | #define ANOMALY_05000109 (__SILICON_REVISION__ < 3) |
156 | #define ANOMALY_05000189 /* False Protection Exceptions caused by Speculative | 190 | /* Trace Buffers may record discontinuities into emulation mode and/or exception, NMI, reset handlers */ |
157 | Instruction or Data Fetches, or by Fetches at the | 191 | #define ANOMALY_05000116 (__SILICON_REVISION__ < 3) |
158 | boundary of reserved memory space */ | 192 | /* DTEST_COMMAND initiated memory access may be incorrect if data cache or DMA is active */ |
159 | #define ANOMALY_05000193 /* False Flag Pin Interrupts on Edge Sensitive Inputs | 193 | #define ANOMALY_05000123 (__SILICON_REVISION__ < 3) |
160 | when polarity setting is changed */ | 194 | /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ |
161 | #define ANOMALY_05000194 /* Sport Restarting in specific modes may cause data | 195 | #define ANOMALY_05000124 (__SILICON_REVISION__ < 3) |
162 | corruption */ | 196 | /* Erroneous exception when enabling cache */ |
163 | #define ANOMALY_05000199 /* DMA current address shows wrong value during carry | 197 | #define ANOMALY_05000125 (__SILICON_REVISION__ < 3) |
164 | fix */ | 198 | /* SPI clock polarity and phase bits incorrect during booting */ |
165 | #define ANOMALY_05000201 /* Receive frame sync not ignored during active | 199 | #define ANOMALY_05000126 (__SILICON_REVISION__ < 3) |
166 | frames in sport MCM */ | 200 | /* DMEM_CONTROL is not set on Reset */ |
167 | #define ANOMALY_05000203 /* Specific sequence that can cause DMA error or DMA | 201 | #define ANOMALY_05000137 (__SILICON_REVISION__ < 3) |
168 | stopping */ | 202 | /* SPI boot will not complete if there is a zero fill block in the loader file */ |
169 | #if defined(CONFIG_BF533) | 203 | #define ANOMALY_05000138 (__SILICON_REVISION__ < 3) |
170 | #define ANOMALY_05000204 /* Incorrect data read with write-through cache and | 204 | /* Allowing the SPORT RX FIFO to fill will cause an overflow */ |
171 | allocate cache lines on reads only mode */ | 205 | #define ANOMALY_05000140 (__SILICON_REVISION__ < 3) |
172 | #endif /* CONFIG_BF533 */ | 206 | /* An Infinite Stall occurs with a particular sequence of consecutive dual dag events */ |
173 | #define ANOMALY_05000207 /* Recovery from "brown-out" condition */ | 207 | #define ANOMALY_05000141 (__SILICON_REVISION__ < 3) |
174 | #define ANOMALY_05000209 /* Speed-Path in computational unit affects certain | 208 | /* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ |
175 | instructions */ | 209 | #define ANOMALY_05000142 (__SILICON_REVISION__ < 3) |
176 | #define ANOMALY_05000233 /* PPI_FS3 is not driven in 2 or 3 internal Frame | 210 | /* A read from external memory may return a wrong value with data cache enabled */ |
177 | Sync Transmit Mode */ | 211 | #define ANOMALY_05000143 (__SILICON_REVISION__ < 3) |
178 | #define ANOMALY_05000271 /* Spontaneous reset of Internal Voltage Regulator */ | 212 | /* DMA and TESTSET conflict when both are accessing external memory */ |
179 | #endif /* only on 0.3 silicon */ | 213 | #define ANOMALY_05000144 (__SILICON_REVISION__ < 3) |
214 | /* In PWM_OUT mode, you must enable the PPI block to generate a waveform from PPI_CLK */ | ||
215 | #define ANOMALY_05000145 (__SILICON_REVISION__ < 3) | ||
216 | /* MDMA may lose the first few words of a descriptor chain */ | ||
217 | #define ANOMALY_05000146 (__SILICON_REVISION__ < 3) | ||
218 | /* The source MDMA descriptor may stop with a DMA Error */ | ||
219 | #define ANOMALY_05000147 (__SILICON_REVISION__ < 3) | ||
220 | /* When booting from a 16-bit asynchronous memory device, the upper 8-bits of each word must be 0x00 */ | ||
221 | #define ANOMALY_05000148 (__SILICON_REVISION__ < 3) | ||
222 | /* Frame Delay in SPORT Multichannel Mode */ | ||
223 | #define ANOMALY_05000153 (__SILICON_REVISION__ < 3) | ||
224 | /* SPORT TFS signal is active in Multi-channel mode outside of valid channels */ | ||
225 | #define ANOMALY_05000154 (__SILICON_REVISION__ < 3) | ||
226 | /* Timer1 can not be used for PWMOUT mode when a certain PPI mode is in use */ | ||
227 | #define ANOMALY_05000155 (__SILICON_REVISION__ < 3) | ||
228 | /* A killed 32-bit System MMR write will lead to the next system MMR access thinking it should be 32-bit. */ | ||
229 | #define ANOMALY_05000157 (__SILICON_REVISION__ < 3) | ||
230 | /* SPORT transmit data is not gated by external frame sync in certain conditions */ | ||
231 | #define ANOMALY_05000163 (__SILICON_REVISION__ < 3) | ||
232 | /* SDRAM auto-refresh and subsequent Power Ups */ | ||
233 | #define ANOMALY_05000168 (__SILICON_REVISION__ < 3) | ||
234 | /* DATA CPLB page miss can result in lost write-through cache data writes */ | ||
235 | #define ANOMALY_05000169 (__SILICON_REVISION__ < 3) | ||
236 | /* DMA vs Core accesses to external memory */ | ||
237 | #define ANOMALY_05000173 (__SILICON_REVISION__ < 3) | ||
238 | /* Cache Fill Buffer Data lost */ | ||
239 | #define ANOMALY_05000174 (__SILICON_REVISION__ < 3) | ||
240 | /* Overlapping Sequencer and Memory Stalls */ | ||
241 | #define ANOMALY_05000175 (__SILICON_REVISION__ < 3) | ||
242 | /* Multiplication of (-1) by (-1) followed by an accumulator saturation */ | ||
243 | #define ANOMALY_05000176 (__SILICON_REVISION__ < 3) | ||
244 | /* Disabling the PPI resets the PPI configuration registers */ | ||
245 | #define ANOMALY_05000181 (__SILICON_REVISION__ < 3) | ||
246 | /* PPI TX Mode with 2 External Frame Syncs */ | ||
247 | #define ANOMALY_05000185 (__SILICON_REVISION__ < 3) | ||
248 | /* PPI does not invert the Driving PPICLK edge in Transmit Modes */ | ||
249 | #define ANOMALY_05000191 (__SILICON_REVISION__ < 3) | ||
250 | /* In PPI Transmit Modes with External Frame Syncs POLC */ | ||
251 | #define ANOMALY_05000192 (__SILICON_REVISION__ < 3) | ||
252 | /* Internal Voltage Regulator may not start up */ | ||
253 | #define ANOMALY_05000206 (__SILICON_REVISION__ < 3) | ||
180 | 254 | ||
181 | #if defined(CONFIG_BF_REV_0_2) | 255 | /* Anomalies that don't exist on this proc */ |
182 | #define ANOMALY_05000067 /* Watchpoints (Hardware Breakpoints) are not | 256 | #define ANOMALY_05000266 (0) |
183 | * supported */ | 257 | #define ANOMALY_05000323 (0) |
184 | #define ANOMALY_05000109 /* Reserved bits in SYSCFG register not set at | ||
185 | * power on */ | ||
186 | #define ANOMALY_05000116 /* Trace Buffers may record discontinuities into | ||
187 | * emulation mode and/or exception, NMI, reset | ||
188 | * handlers */ | ||
189 | #define ANOMALY_05000123 /* DTEST_COMMAND initiated memory access may be | ||
190 | * incorrect if data cache or DMA is active */ | ||
191 | #define ANOMALY_05000124 /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, | ||
192 | * or 1:1 */ | ||
193 | #define ANOMALY_05000125 /* Erroneous exception when enabling cache */ | ||
194 | #define ANOMALY_05000126 /* SPI clock polarity and phase bits incorrect | ||
195 | * during booting */ | ||
196 | #define ANOMALY_05000137 /* DMEM_CONTROL is not set on Reset */ | ||
197 | #define ANOMALY_05000138 /* SPI boot will not complete if there is a zero fill | ||
198 | * block in the loader file */ | ||
199 | #define ANOMALY_05000140 /* Allowing the SPORT RX FIFO to fill will cause an | ||
200 | * overflow */ | ||
201 | #define ANOMALY_05000141 /* An Infinite Stall occurs with a particular sequence | ||
202 | * of consecutive dual dag events */ | ||
203 | #define ANOMALY_05000142 /* Interrupts may be lost when a programmable input | ||
204 | * flag is configured to be edge sensitive */ | ||
205 | #define ANOMALY_05000143 /* A read from external memory may return a wrong | ||
206 | * value with data cache enabled */ | ||
207 | #define ANOMALY_05000144 /* DMA and TESTSET conflict when both are accessing | ||
208 | * external memory */ | ||
209 | #define ANOMALY_05000145 /* In PWM_OUT mode, you must enable the PPI block to | ||
210 | * generate a waveform from PPI_CLK */ | ||
211 | #define ANOMALY_05000146 /* MDMA may lose the first few words of a descriptor | ||
212 | * chain */ | ||
213 | #define ANOMALY_05000147 /* The source MDMA descriptor may stop with a DMA | ||
214 | * Error */ | ||
215 | #define ANOMALY_05000148 /* When booting from a 16-bit asynchronous memory | ||
216 | * device, the upper 8-bits of each word must be | ||
217 | * 0x00 */ | ||
218 | #define ANOMALY_05000153 /* Frame Delay in SPORT Multichannel Mode */ | ||
219 | #define ANOMALY_05000154 /* SPORT TFS signal is active in Multi-channel mode | ||
220 | * outside of valid channels */ | ||
221 | #define ANOMALY_05000155 /* Timer1 can not be used for PWMOUT mode when a | ||
222 | * certain PPI mode is in use */ | ||
223 | #define ANOMALY_05000157 /* A killed 32-bit System MMR write will lead to | ||
224 | * the next system MMR access thinking it should be | ||
225 | * 32-bit. */ | ||
226 | #define ANOMALY_05000163 /* SPORT transmit data is not gated by external frame | ||
227 | * sync in certain conditions */ | ||
228 | #define ANOMALY_05000168 /* SDRAM auto-refresh and subsequent Power Ups */ | ||
229 | #define ANOMALY_05000169 /* DATA CPLB page miss can result in lost | ||
230 | * write-through cache data writes */ | ||
231 | #define ANOMALY_05000173 /* DMA vs Core accesses to external memory */ | ||
232 | #define ANOMALY_05000174 /* Cache Fill Buffer Data lost */ | ||
233 | #define ANOMALY_05000175 /* Overlapping Sequencer and Memory Stalls */ | ||
234 | #define ANOMALY_05000176 /* Multiplication of (-1) by (-1) followed by an | ||
235 | * accumulator saturation */ | ||
236 | #define ANOMALY_05000181 /* Disabling the PPI resets the PPI configuration | ||
237 | * registers */ | ||
238 | #define ANOMALY_05000185 /* PPI TX Mode with 2 External Frame Syncs */ | ||
239 | #define ANOMALY_05000191 /* PPI does not invert the Driving PPICLK edge in | ||
240 | * Transmit Modes */ | ||
241 | #define ANOMALY_05000192 /* In PPI Transmit Modes with External Frame Syncs | ||
242 | * POLC */ | ||
243 | #define ANOMALY_05000206 /* Internal Voltage Regulator may not start up */ | ||
244 | 258 | ||
245 | #endif | 259 | #endif |
246 | |||
247 | #endif /* _MACH_ANOMALY_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf533/bf533.h b/include/asm-blackfin/mach-bf533/bf533.h index 185fc1284858..12a416931991 100644 --- a/include/asm-blackfin/mach-bf533/bf533.h +++ b/include/asm-blackfin/mach-bf533/bf533.h | |||
@@ -52,12 +52,12 @@ | |||
52 | /***************************/ | 52 | /***************************/ |
53 | 53 | ||
54 | 54 | ||
55 | #define BLKFIN_DSUBBANKS 4 | 55 | #define BFIN_DSUBBANKS 4 |
56 | #define BLKFIN_DWAYS 2 | 56 | #define BFIN_DWAYS 2 |
57 | #define BLKFIN_DLINES 64 | 57 | #define BFIN_DLINES 64 |
58 | #define BLKFIN_ISUBBANKS 4 | 58 | #define BFIN_ISUBBANKS 4 |
59 | #define BLKFIN_IWAYS 4 | 59 | #define BFIN_IWAYS 4 |
60 | #define BLKFIN_ILINES 32 | 60 | #define BFIN_ILINES 32 |
61 | 61 | ||
62 | #define WAY0_L 0x1 | 62 | #define WAY0_L 0x1 |
63 | #define WAY1_L 0x2 | 63 | #define WAY1_L 0x2 |
@@ -141,97 +141,6 @@ | |||
141 | 141 | ||
142 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) | 142 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) |
143 | 143 | ||
144 | #define MAX_VC 650000000 | ||
145 | #define MIN_VC 50000000 | ||
146 | |||
147 | #ifdef CONFIG_BFIN_KERNEL_CLOCK | ||
148 | /********************************PLL Settings **************************************/ | ||
149 | #if (CONFIG_VCO_MULT < 0) | ||
150 | #error "VCO Multiplier is less than 0. Please select a different value" | ||
151 | #endif | ||
152 | |||
153 | #if (CONFIG_VCO_MULT == 0) | ||
154 | #error "VCO Multiplier should be greater than 0. Please select a different value" | ||
155 | #endif | ||
156 | |||
157 | #if (CONFIG_VCO_MULT > 64) | ||
158 | #error "VCO Multiplier is more than 64. Please select a different value" | ||
159 | #endif | ||
160 | |||
161 | #ifndef CONFIG_CLKIN_HALF | ||
162 | #define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
163 | #else | ||
164 | #define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
165 | #endif | ||
166 | |||
167 | #ifndef CONFIG_PLL_BYPASS | ||
168 | #define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
169 | #define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
170 | #else | ||
171 | #define CONFIG_CCLK_HZ CONFIG_CLKIN_HZ | ||
172 | #define CONFIG_SCLK_HZ CONFIG_CLKIN_HZ | ||
173 | #endif | ||
174 | |||
175 | #if (CONFIG_SCLK_DIV < 1) | ||
176 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
177 | #endif | ||
178 | |||
179 | #if (CONFIG_SCLK_DIV > 15) | ||
180 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
181 | #endif | ||
182 | |||
183 | #if (CONFIG_CCLK_DIV != 1) | ||
184 | #if (CONFIG_CCLK_DIV != 2) | ||
185 | #if (CONFIG_CCLK_DIV != 4) | ||
186 | #if (CONFIG_CCLK_DIV != 8) | ||
187 | #error "CCLK DIV can be 1,2,4 or 8 only. Please select a proper value" | ||
188 | #endif | ||
189 | #endif | ||
190 | #endif | ||
191 | #endif | ||
192 | |||
193 | #if (CONFIG_VCO_HZ > MAX_VC) | ||
194 | #error "VCO selected is more than maximum value. Please change the VCO multipler" | ||
195 | #endif | ||
196 | |||
197 | #if (CONFIG_SCLK_HZ > 133000000) | ||
198 | #error "Sclk value selected is more than maximum. Please select a proper value for SCLK multiplier" | ||
199 | #endif | ||
200 | |||
201 | #if (CONFIG_SCLK_HZ < 27000000) | ||
202 | #error "Sclk value selected is less than minimum. Please select a proper value for SCLK multiplier" | ||
203 | #endif | ||
204 | |||
205 | #if (CONFIG_SCLK_HZ > CONFIG_CCLK_HZ) | ||
206 | #if (CONFIG_SCLK_HZ != CONFIG_CLKIN_HZ) | ||
207 | #if (CONFIG_CCLK_HZ != CONFIG_CLKIN_HZ) | ||
208 | #error "Please select sclk less than cclk" | ||
209 | #endif | ||
210 | #endif | ||
211 | #endif | ||
212 | |||
213 | #if (CONFIG_CCLK_DIV == 1) | ||
214 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
215 | #endif | ||
216 | #if (CONFIG_CCLK_DIV == 2) | ||
217 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
218 | #endif | ||
219 | #if (CONFIG_CCLK_DIV == 4) | ||
220 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
221 | #endif | ||
222 | #if (CONFIG_CCLK_DIV == 8) | ||
223 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
224 | #endif | ||
225 | #ifndef CONFIG_CCLK_ACT_DIV | ||
226 | #define CONFIG_CCLK_ACT_DIV CONFIG_CCLK_DIV_not_defined_properly | ||
227 | #endif | ||
228 | |||
229 | #if defined(ANOMALY_05000273) && (CONFIG_CCLK_DIV == 1) | ||
230 | #error ANOMALY 05000273, please make sure CCLK is at least 2x SCLK | ||
231 | #endif | ||
232 | |||
233 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | ||
234 | |||
235 | #ifdef CONFIG_BF533 | 144 | #ifdef CONFIG_BF533 |
236 | #define CPU "BF533" | 145 | #define CPU "BF533" |
237 | #define CPUID 0x027a5000 | 146 | #define CPUID 0x027a5000 |
@@ -249,58 +158,4 @@ | |||
249 | #define CPUID 0x0 | 158 | #define CPUID 0x0 |
250 | #endif | 159 | #endif |
251 | 160 | ||
252 | #if (CONFIG_MEM_SIZE % 4) | ||
253 | #error "SDRAM mem size must be multible of 4MB" | ||
254 | #endif | ||
255 | |||
256 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
257 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
258 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
259 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
260 | |||
261 | /*Use the menuconfig cache policy here - CONFIG_BLKFIN_WT/CONFIG_BLKFIN_WB*/ | ||
262 | |||
263 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
264 | #ifdef CONFIG_BLKFIN_WB /*Write Back Policy */ | ||
265 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_DIRTY \ | ||
266 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
267 | #else /*Write Through */ | ||
268 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_DIRTY \ | ||
269 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
270 | #endif | ||
271 | |||
272 | #define L1_DMEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
273 | #define SDRAM_DNON_CHBL (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
274 | #define SDRAM_EBIU (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
275 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
276 | |||
277 | #define SIZE_1K 0x00000400 /* 1K */ | ||
278 | #define SIZE_4K 0x00001000 /* 4K */ | ||
279 | #define SIZE_1M 0x00100000 /* 1M */ | ||
280 | #define SIZE_4M 0x00400000 /* 4M */ | ||
281 | |||
282 | #define MAX_CPLBS (16 * 2) | ||
283 | |||
284 | /* | ||
285 | * Number of required data CPLB switchtable entries | ||
286 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
287 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
288 | * 1 for L1 Data Memory | ||
289 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
290 | * 1 for ASYNC Memory | ||
291 | */ | ||
292 | |||
293 | |||
294 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1) * 2) | ||
295 | |||
296 | /* | ||
297 | * Number of required instruction CPLB switchtable entries | ||
298 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
299 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
300 | * 1 for L1 Instruction Memory | ||
301 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
302 | */ | ||
303 | |||
304 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1) * 2) | ||
305 | |||
306 | #endif /* __MACH_BF533_H__ */ | 161 | #endif /* __MACH_BF533_H__ */ |
diff --git a/include/asm-blackfin/mach-bf533/blackfin.h b/include/asm-blackfin/mach-bf533/blackfin.h index e4384491e972..f3b240abf170 100644 --- a/include/asm-blackfin/mach-bf533/blackfin.h +++ b/include/asm-blackfin/mach-bf533/blackfin.h | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "defBF532.h" | 38 | #include "defBF532.h" |
39 | #include "anomaly.h" | 39 | #include "anomaly.h" |
40 | 40 | ||
41 | #if !(defined(__ASSEMBLY__) || defined(ASSEMBLY)) | 41 | #if !defined(__ASSEMBLY__) |
42 | #include "cdefBF532.h" | 42 | #include "cdefBF532.h" |
43 | #endif | 43 | #endif |
44 | 44 | ||
diff --git a/include/asm-blackfin/mach-bf533/cdefBF532.h b/include/asm-blackfin/mach-bf533/cdefBF532.h index 74f967b235e2..c803e14b529c 100644 --- a/include/asm-blackfin/mach-bf533/cdefBF532.h +++ b/include/asm-blackfin/mach-bf533/cdefBF532.h | |||
@@ -30,11 +30,9 @@ | |||
30 | 30 | ||
31 | #ifndef _CDEF_BF532_H | 31 | #ifndef _CDEF_BF532_H |
32 | #define _CDEF_BF532_H | 32 | #define _CDEF_BF532_H |
33 | /* | 33 | |
34 | #if !defined(__ADSPLPBLACKFIN__) | 34 | #include <asm/blackfin.h> |
35 | #warning cdefBF532.h should only be included for 532 compatible chips. | 35 | |
36 | #endif | ||
37 | */ | ||
38 | /*include all Core registers and bit definitions*/ | 36 | /*include all Core registers and bit definitions*/ |
39 | #include "defBF532.h" | 37 | #include "defBF532.h" |
40 | 38 | ||
@@ -65,7 +63,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
65 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | 63 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); |
66 | 64 | ||
67 | bfin_write16(VR_CTL, val); | 65 | bfin_write16(VR_CTL, val); |
68 | __builtin_bfin_ssync(); | 66 | SSYNC(); |
69 | 67 | ||
70 | local_irq_save(flags); | 68 | local_irq_save(flags); |
71 | asm("IDLE;"); | 69 | asm("IDLE;"); |
@@ -132,10 +130,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
132 | /* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */ | 130 | /* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */ |
133 | #define bfin_read_FIO_DIR() bfin_read16(FIO_DIR) | 131 | #define bfin_read_FIO_DIR() bfin_read16(FIO_DIR) |
134 | #define bfin_write_FIO_DIR(val) bfin_write16(FIO_DIR,val) | 132 | #define bfin_write_FIO_DIR(val) bfin_write16(FIO_DIR,val) |
135 | #define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C) | ||
136 | #define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val) | ||
137 | #define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S) | ||
138 | #define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val) | ||
139 | #define bfin_read_FIO_MASKA_C() bfin_read16(FIO_MASKA_C) | 133 | #define bfin_read_FIO_MASKA_C() bfin_read16(FIO_MASKA_C) |
140 | #define bfin_write_FIO_MASKA_C(val) bfin_write16(FIO_MASKA_C,val) | 134 | #define bfin_write_FIO_MASKA_C(val) bfin_write16(FIO_MASKA_C,val) |
141 | #define bfin_read_FIO_MASKA_S() bfin_read16(FIO_MASKA_S) | 135 | #define bfin_read_FIO_MASKA_S() bfin_read16(FIO_MASKA_S) |
@@ -152,10 +146,6 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
152 | #define bfin_write_FIO_BOTH(val) bfin_write16(FIO_BOTH,val) | 146 | #define bfin_write_FIO_BOTH(val) bfin_write16(FIO_BOTH,val) |
153 | #define bfin_read_FIO_INEN() bfin_read16(FIO_INEN) | 147 | #define bfin_read_FIO_INEN() bfin_read16(FIO_INEN) |
154 | #define bfin_write_FIO_INEN(val) bfin_write16(FIO_INEN,val) | 148 | #define bfin_write_FIO_INEN(val) bfin_write16(FIO_INEN,val) |
155 | #define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D) | ||
156 | #define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val) | ||
157 | #define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T) | ||
158 | #define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val) | ||
159 | #define bfin_read_FIO_MASKA_D() bfin_read16(FIO_MASKA_D) | 149 | #define bfin_read_FIO_MASKA_D() bfin_read16(FIO_MASKA_D) |
160 | #define bfin_write_FIO_MASKA_D(val) bfin_write16(FIO_MASKA_D,val) | 150 | #define bfin_write_FIO_MASKA_D(val) bfin_write16(FIO_MASKA_D,val) |
161 | #define bfin_read_FIO_MASKA_T() bfin_read16(FIO_MASKA_T) | 151 | #define bfin_read_FIO_MASKA_T() bfin_read16(FIO_MASKA_T) |
@@ -165,6 +155,50 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
165 | #define bfin_read_FIO_MASKB_T() bfin_read16(FIO_MASKB_T) | 155 | #define bfin_read_FIO_MASKB_T() bfin_read16(FIO_MASKB_T) |
166 | #define bfin_write_FIO_MASKB_T(val) bfin_write16(FIO_MASKB_T,val) | 156 | #define bfin_write_FIO_MASKB_T(val) bfin_write16(FIO_MASKB_T,val) |
167 | 157 | ||
158 | |||
159 | #if ANOMALY_05000311 | ||
160 | #define BFIN_WRITE_FIO_FLAG(name) \ | ||
161 | static __inline__ void bfin_write_FIO_FLAG_ ## name (unsigned short val)\ | ||
162 | {\ | ||
163 | unsigned long flags;\ | ||
164 | local_irq_save(flags);\ | ||
165 | bfin_write16(FIO_FLAG_ ## name,val);\ | ||
166 | bfin_read_CHIPID();\ | ||
167 | local_irq_restore(flags);\ | ||
168 | } | ||
169 | BFIN_WRITE_FIO_FLAG(D) | ||
170 | BFIN_WRITE_FIO_FLAG(C) | ||
171 | BFIN_WRITE_FIO_FLAG(S) | ||
172 | BFIN_WRITE_FIO_FLAG(T) | ||
173 | |||
174 | #define BFIN_READ_FIO_FLAG(name) \ | ||
175 | static __inline__ unsigned short bfin_read_FIO_FLAG_ ## name (void)\ | ||
176 | {\ | ||
177 | unsigned long flags;\ | ||
178 | unsigned short ret;\ | ||
179 | local_irq_save(flags);\ | ||
180 | ret = bfin_read16(FIO_FLAG_ ## name);\ | ||
181 | bfin_read_CHIPID();\ | ||
182 | local_irq_restore(flags);\ | ||
183 | return ret;\ | ||
184 | } | ||
185 | BFIN_READ_FIO_FLAG(D) | ||
186 | BFIN_READ_FIO_FLAG(C) | ||
187 | BFIN_READ_FIO_FLAG(S) | ||
188 | BFIN_READ_FIO_FLAG(T) | ||
189 | |||
190 | #else | ||
191 | #define bfin_write_FIO_FLAG_D(val) bfin_write16(FIO_FLAG_D,val) | ||
192 | #define bfin_write_FIO_FLAG_C(val) bfin_write16(FIO_FLAG_C,val) | ||
193 | #define bfin_write_FIO_FLAG_S(val) bfin_write16(FIO_FLAG_S,val) | ||
194 | #define bfin_write_FIO_FLAG_T(val) bfin_write16(FIO_FLAG_T,val) | ||
195 | #define bfin_read_FIO_FLAG_T() bfin_read16(FIO_FLAG_T) | ||
196 | #define bfin_read_FIO_FLAG_C() bfin_read16(FIO_FLAG_C) | ||
197 | #define bfin_read_FIO_FLAG_S() bfin_read16(FIO_FLAG_S) | ||
198 | #define bfin_read_FIO_FLAG_D() bfin_read16(FIO_FLAG_D) | ||
199 | #endif | ||
200 | |||
201 | |||
168 | /* DMA Controller */ | 202 | /* DMA Controller */ |
169 | #define bfin_read_DMA0_CONFIG() bfin_read16(DMA0_CONFIG) | 203 | #define bfin_read_DMA0_CONFIG() bfin_read16(DMA0_CONFIG) |
170 | #define bfin_write_DMA0_CONFIG(val) bfin_write16(DMA0_CONFIG,val) | 204 | #define bfin_write_DMA0_CONFIG(val) bfin_write16(DMA0_CONFIG,val) |
diff --git a/include/asm-blackfin/mach-bf533/defBF532.h b/include/asm-blackfin/mach-bf533/defBF532.h index 6a3cf93f8b57..37134aaf9954 100644 --- a/include/asm-blackfin/mach-bf533/defBF532.h +++ b/include/asm-blackfin/mach-bf533/defBF532.h | |||
@@ -104,6 +104,7 @@ | |||
104 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ | 104 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ |
105 | 105 | ||
106 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ | 106 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ |
107 | #define SPI0_REGBASE 0xFFC00500 | ||
107 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ | 108 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ |
108 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ | 109 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ |
109 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ | 110 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ |
@@ -928,7 +929,7 @@ | |||
928 | #define GM 0x00000008 /* When RDBR full, get more (=1) data or discard (=0) incoming Data */ | 929 | #define GM 0x00000008 /* When RDBR full, get more (=1) data or discard (=0) incoming Data */ |
929 | #define PSSE 0x00000010 /* Enable (=1) Slave-Select input for Master. */ | 930 | #define PSSE 0x00000010 /* Enable (=1) Slave-Select input for Master. */ |
930 | #define EMISO 0x00000020 /* Enable (=1) MISO pin as an output. */ | 931 | #define EMISO 0x00000020 /* Enable (=1) MISO pin as an output. */ |
931 | #define SPI_LEN 0x00000100 /* Word length (0 => 8 bits, 1 => 16 bits) */ | 932 | #define SIZE 0x00000100 /* Word length (0 => 8 bits, 1 => 16 bits) */ |
932 | #define LSBF 0x00000200 /* Data format (0 => MSB sent/received first 1 => LSB sent/received first) */ | 933 | #define LSBF 0x00000200 /* Data format (0 => MSB sent/received first 1 => LSB sent/received first) */ |
933 | #define CPHA 0x00000400 /* Clock phase (0 => SPICLK starts toggling in middle of xfer, 1 => SPICLK toggles at the beginning of xfer. */ | 934 | #define CPHA 0x00000400 /* Clock phase (0 => SPICLK starts toggling in middle of xfer, 1 => SPICLK toggles at the beginning of xfer. */ |
934 | #define CPOL 0x00000800 /* Clock polarity (0 => active-high, 1 => active-low) */ | 935 | #define CPOL 0x00000800 /* Clock polarity (0 => active-high, 1 => active-low) */ |
diff --git a/include/asm-blackfin/mach-bf533/irq.h b/include/asm-blackfin/mach-bf533/irq.h index 9879e68e315c..452fb825d891 100644 --- a/include/asm-blackfin/mach-bf533/irq.h +++ b/include/asm-blackfin/mach-bf533/irq.h | |||
@@ -128,6 +128,8 @@ Core Emulation ** | |||
128 | #define IRQ_PF14 47 | 128 | #define IRQ_PF14 47 |
129 | #define IRQ_PF15 48 | 129 | #define IRQ_PF15 48 |
130 | 130 | ||
131 | #define GPIO_IRQ_BASE IRQ_PF0 | ||
132 | |||
131 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | 133 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO |
132 | #define NR_IRQS (IRQ_PF15+1) | 134 | #define NR_IRQS (IRQ_PF15+1) |
133 | #else | 135 | #else |
diff --git a/include/asm-blackfin/mach-bf533/mem_map.h b/include/asm-blackfin/mach-bf533/mem_map.h index e84baa3e939d..94d8c4062eb7 100644 --- a/include/asm-blackfin/mach-bf533/mem_map.h +++ b/include/asm-blackfin/mach-bf533/mem_map.h | |||
@@ -51,10 +51,10 @@ | |||
51 | 51 | ||
52 | /* Level 1 Memory */ | 52 | /* Level 1 Memory */ |
53 | 53 | ||
54 | #ifdef CONFIG_BLKFIN_CACHE | 54 | #ifdef CONFIG_BFIN_ICACHE |
55 | #define BLKFIN_ICACHESIZE (16*1024) | 55 | #define BFIN_ICACHESIZE (16*1024) |
56 | #else | 56 | #else |
57 | #define BLKFIN_ICACHESIZE (0*1024) | 57 | #define BFIN_ICACHESIZE (0*1024) |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | /* Memory Map for ADSP-BF533 processors */ | 60 | /* Memory Map for ADSP-BF533 processors */ |
@@ -64,35 +64,35 @@ | |||
64 | #define L1_DATA_A_START 0xFF800000 | 64 | #define L1_DATA_A_START 0xFF800000 |
65 | #define L1_DATA_B_START 0xFF900000 | 65 | #define L1_DATA_B_START 0xFF900000 |
66 | 66 | ||
67 | #ifdef CONFIG_BLKFIN_CACHE | 67 | #ifdef CONFIG_BFIN_ICACHE |
68 | #define L1_CODE_LENGTH (0x14000 - 0x4000) | 68 | #define L1_CODE_LENGTH (0x14000 - 0x4000) |
69 | #else | 69 | #else |
70 | #define L1_CODE_LENGTH 0x14000 | 70 | #define L1_CODE_LENGTH 0x14000 |
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | #ifdef CONFIG_BLKFIN_DCACHE | 73 | #ifdef CONFIG_BFIN_DCACHE |
74 | 74 | ||
75 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 75 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
76 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 76 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
77 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 77 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
78 | #define L1_DATA_B_LENGTH 0x8000 | 78 | #define L1_DATA_B_LENGTH 0x8000 |
79 | #define BLKFIN_DCACHESIZE (16*1024) | 79 | #define BFIN_DCACHESIZE (16*1024) |
80 | #define BLKFIN_DSUPBANKS 1 | 80 | #define BFIN_DSUPBANKS 1 |
81 | #else | 81 | #else |
82 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 82 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
83 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 83 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
84 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 84 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
85 | #define BLKFIN_DCACHESIZE (32*1024) | 85 | #define BFIN_DCACHESIZE (32*1024) |
86 | #define BLKFIN_DSUPBANKS 2 | 86 | #define BFIN_DSUPBANKS 2 |
87 | #endif | 87 | #endif |
88 | 88 | ||
89 | #else | 89 | #else |
90 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 90 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
91 | #define L1_DATA_A_LENGTH 0x8000 | 91 | #define L1_DATA_A_LENGTH 0x8000 |
92 | #define L1_DATA_B_LENGTH 0x8000 | 92 | #define L1_DATA_B_LENGTH 0x8000 |
93 | #define BLKFIN_DCACHESIZE (0*1024) | 93 | #define BFIN_DCACHESIZE (0*1024) |
94 | #define BLKFIN_DSUPBANKS 0 | 94 | #define BFIN_DSUPBANKS 0 |
95 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 95 | #endif /*CONFIG_BFIN_DCACHE*/ |
96 | #endif | 96 | #endif |
97 | 97 | ||
98 | /* Memory Map for ADSP-BF532 processors */ | 98 | /* Memory Map for ADSP-BF532 processors */ |
@@ -102,36 +102,36 @@ | |||
102 | #define L1_DATA_A_START 0xFF804000 | 102 | #define L1_DATA_A_START 0xFF804000 |
103 | #define L1_DATA_B_START 0xFF904000 | 103 | #define L1_DATA_B_START 0xFF904000 |
104 | 104 | ||
105 | #ifdef CONFIG_BLKFIN_CACHE | 105 | #ifdef CONFIG_BFIN_ICACHE |
106 | #define L1_CODE_LENGTH (0xC000 - 0x4000) | 106 | #define L1_CODE_LENGTH (0xC000 - 0x4000) |
107 | #else | 107 | #else |
108 | #define L1_CODE_LENGTH 0xC000 | 108 | #define L1_CODE_LENGTH 0xC000 |
109 | #endif | 109 | #endif |
110 | 110 | ||
111 | #ifdef CONFIG_BLKFIN_DCACHE | 111 | #ifdef CONFIG_BFIN_DCACHE |
112 | 112 | ||
113 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 113 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
114 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 114 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
115 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 115 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
116 | #define L1_DATA_B_LENGTH 0x4000 | 116 | #define L1_DATA_B_LENGTH 0x4000 |
117 | #define BLKFIN_DCACHESIZE (16*1024) | 117 | #define BFIN_DCACHESIZE (16*1024) |
118 | #define BLKFIN_DSUPBANKS 1 | 118 | #define BFIN_DSUPBANKS 1 |
119 | 119 | ||
120 | #else | 120 | #else |
121 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 121 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
122 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 122 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
123 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) | 123 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) |
124 | #define BLKFIN_DCACHESIZE (32*1024) | 124 | #define BFIN_DCACHESIZE (32*1024) |
125 | #define BLKFIN_DSUPBANKS 2 | 125 | #define BFIN_DSUPBANKS 2 |
126 | #endif | 126 | #endif |
127 | 127 | ||
128 | #else | 128 | #else |
129 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 129 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
130 | #define L1_DATA_A_LENGTH 0x4000 | 130 | #define L1_DATA_A_LENGTH 0x4000 |
131 | #define L1_DATA_B_LENGTH 0x4000 | 131 | #define L1_DATA_B_LENGTH 0x4000 |
132 | #define BLKFIN_DCACHESIZE (0*1024) | 132 | #define BFIN_DCACHESIZE (0*1024) |
133 | #define BLKFIN_DSUPBANKS 0 | 133 | #define BFIN_DSUPBANKS 0 |
134 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 134 | #endif /*CONFIG_BFIN_DCACHE*/ |
135 | #endif | 135 | #endif |
136 | 136 | ||
137 | /* Memory Map for ADSP-BF531 processors */ | 137 | /* Memory Map for ADSP-BF531 processors */ |
@@ -144,16 +144,16 @@ | |||
144 | #define L1_DATA_B_LENGTH 0x0000 | 144 | #define L1_DATA_B_LENGTH 0x0000 |
145 | 145 | ||
146 | 146 | ||
147 | #ifdef CONFIG_BLKFIN_DCACHE | 147 | #ifdef CONFIG_BFIN_DCACHE |
148 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 148 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
149 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 149 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
150 | #define BLKFIN_DCACHESIZE (16*1024) | 150 | #define BFIN_DCACHESIZE (16*1024) |
151 | #define BLKFIN_DSUPBANKS 1 | 151 | #define BFIN_DSUPBANKS 1 |
152 | #else | 152 | #else |
153 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 153 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
154 | #define L1_DATA_A_LENGTH 0x4000 | 154 | #define L1_DATA_A_LENGTH 0x4000 |
155 | #define BLKFIN_DCACHESIZE (0*1024) | 155 | #define BFIN_DCACHESIZE (0*1024) |
156 | #define BLKFIN_DSUPBANKS 0 | 156 | #define BFIN_DSUPBANKS 0 |
157 | #endif | 157 | #endif |
158 | 158 | ||
159 | #endif | 159 | #endif |
diff --git a/include/asm-blackfin/mach-bf537/anomaly.h b/include/asm-blackfin/mach-bf537/anomaly.h index 4453e614c3b1..2b66ecf489f7 100644 --- a/include/asm-blackfin/mach-bf537/anomaly.h +++ b/include/asm-blackfin/mach-bf537/anomaly.h | |||
@@ -1,139 +1,144 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | * File: include/asm-blackfin/mach-bf537/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf537/anomaly.h |
4 | * Based on: | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
5 | * Author: | ||
6 | * | ||
7 | * Created: | ||
8 | * Description: | ||
9 | * | ||
10 | * Rev: | ||
11 | * | ||
12 | * Modified: | ||
13 | * | ||
14 | * | ||
15 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
16 | * | ||
17 | * This program is free software; you can redistribute it and/or modify | ||
18 | * it under the terms of the GNU General Public License as published by | ||
19 | * the Free Software Foundation; either version 2, or (at your option) | ||
20 | * any later version. | ||
21 | * | 4 | * |
22 | * This program is distributed in the hope that it will be useful, | 5 | * Copyright (C) 2004-2007 Analog Devices Inc. |
23 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 6 | * Licensed under the GPL-2 or later. |
24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
25 | * GNU General Public License for more details. | ||
26 | * | ||
27 | * You should have received a copy of the GNU General Public License | ||
28 | * along with this program; see the file COPYING. | ||
29 | * If not, write to the Free Software Foundation, | ||
30 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
31 | */ | 7 | */ |
32 | 8 | ||
33 | /* This file shoule be up to date with: | 9 | /* This file shoule be up to date with: |
34 | * - Revision J, June 1, 2006; ADSP-BF537 Blackfin Processor Anomaly List | 10 | * - Revision M, March 13, 2007; ADSP-BF537 Blackfin Processor Anomaly List |
35 | * - Revision I, June 1, 2006; ADSP-BF536 Blackfin Processor Anomaly List | 11 | * - Revision L, March 13, 2007; ADSP-BF536 Blackfin Processor Anomaly List |
36 | * - Revision J, June 1, 2006; ADSP-BF534 Blackfin Processor Anomaly List | 12 | * - Revision M, March 13, 2007; ADSP-BF534 Blackfin Processor Anomaly List |
37 | */ | 13 | */ |
38 | 14 | ||
39 | #ifndef _MACH_ANOMALY_H_ | 15 | #ifndef _MACH_ANOMALY_H_ |
40 | #define _MACH_ANOMALY_H_ | 16 | #define _MACH_ANOMALY_H_ |
41 | 17 | ||
42 | /* We do not support 0.1 silicon - sorry */ | 18 | /* We do not support 0.1 silicon - sorry */ |
43 | #if (defined(CONFIG_BF_REV_0_1)) | 19 | #if __SILICON_REVISION__ < 2 |
44 | #error Kernel will not work on BF537/6/4 Version 0.1 | 20 | # error Kernel will not work on BF537 silicon version 0.0 or 0.1 |
45 | #endif | 21 | #endif |
46 | 22 | ||
47 | #if (defined(CONFIG_BF_REV_0_3) || defined(CONFIG_BF_REV_0_2)) | 23 | #if defined(__ADSPBF534__) |
48 | #define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in | 24 | # define ANOMALY_BF534 1 |
49 | slot1 and store of a P register in slot 2 is not | 25 | #else |
50 | supported */ | 26 | # define ANOMALY_BF534 0 |
51 | #define ANOMALY_05000119 /* DMA_RUN bit is not valid after a Peripheral Receive | ||
52 | Channel DMA stops */ | ||
53 | #define ANOMALY_05000122 /* Rx.H can not be used to access 16-bit System MMR | ||
54 | registers. */ | ||
55 | #define ANOMALY_05000166 /* PPI Data Lengths Between 8 and 16 do not zero out | ||
56 | upper bits*/ | ||
57 | #define ANOMALY_05000180 /* PPI_DELAY not functional in PPI modes with 0 frame | ||
58 | syncs */ | ||
59 | #if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) | ||
60 | #define ANOMALY_05000247 /* CLKIN Buffer Output Enable Reset Behavior Is | ||
61 | Changed */ | ||
62 | #endif | ||
63 | #define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on | ||
64 | SPORT external receive and transmit clocks. */ | ||
65 | #define ANOMALY_05000272 /* Certain data cache write through modes fail for | ||
66 | VDDint <=0.9V */ | ||
67 | #define ANOMALY_05000273 /* Writes to Synchronous SDRAM memory may be lost */ | ||
68 | #define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after | ||
69 | an edge is detected may clear interrupt */ | ||
70 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is | ||
71 | not restored */ | ||
72 | #define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic | ||
73 | control */ | ||
74 | #define ANOMALY_05000283 /* A system MMR write is stalled indefinitely when | ||
75 | killed in a particular stage*/ | ||
76 | #define ANOMALY_05000310 /* False hardware errors caused by fetches at the | ||
77 | * boundary of reserved memory */ | ||
78 | #define ANOMALY_05000312 /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC | ||
79 | registers are interrupted */ | ||
80 | #define ANOMALY_05000313 /* PPI is level sensitive on first transfer */ | ||
81 | #define ANOMALY_05000322 /* EMAC RMII mode at 10-Base-T speed: RX frames not | ||
82 | * received properly */ | ||
83 | #endif | 27 | #endif |
84 | 28 | #if defined(__ADSPBF536__) | |
85 | #if defined(CONFIG_BF_REV_0_2) | 29 | # define ANOMALY_BF536 1 |
86 | #define ANOMALY_05000244 /* With instruction cache enabled, a CSYNC or SSYNC or | 30 | #else |
87 | IDLE around a Change of Control causes | 31 | # define ANOMALY_BF536 0 |
88 | unpredictable results */ | ||
89 | #define ANOMALY_05000250 /* Incorrect Bit-Shift of Data Word in Multichannel | ||
90 | (TDM) */ | ||
91 | #if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) | ||
92 | #define ANOMALY_05000252 /* EMAC Tx DMA error after an early frame abort */ | ||
93 | #endif | 32 | #endif |
94 | #define ANOMALY_05000253 /* Maximum external clock speed for Timers */ | 33 | #if defined(__ADSPBF537__) |
95 | #define ANOMALY_05000255 /* Entering Hibernate Mode with RTC Seconds event | 34 | # define ANOMALY_BF537 1 |
96 | interrupt not functional */ | 35 | #else |
97 | #if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) | 36 | # define ANOMALY_BF537 0 |
98 | #define ANOMALY_05000256 /* EMAC MDIO input latched on wrong MDC edge */ | ||
99 | #endif | 37 | #endif |
100 | #define ANOMALY_05000257 /* An interrupt or exception during short Hardware | ||
101 | loops may cause the instruction fetch unit to | ||
102 | malfunction */ | ||
103 | #define ANOMALY_05000258 /* Instruction Cache is corrupted when bit 9 and 12 of | ||
104 | the ICPLB Data registers differ */ | ||
105 | #define ANOMALY_05000260 /* ICPLB_STATUS MMR register may be corrupted */ | ||
106 | #define ANOMALY_05000261 /* DCPLB_FAULT_ADDR MMR register may be corrupted */ | ||
107 | #define ANOMALY_05000262 /* Stores to data cache may be lost */ | ||
108 | #define ANOMALY_05000263 /* Hardware loop corrupted when taking an ICPLB exception */ | ||
109 | #define ANOMALY_05000264 /* A Sync instruction (CSYNC, SSYNC) or an IDLE | ||
110 | instruction will cause an infinite stall in the | ||
111 | second to last instruction in a hardware loop */ | ||
112 | #define ANOMALY_05000268 /* Memory DMA error when peripheral DMA is running | ||
113 | and non-zero DEB_TRAFFIC_PERIOD value */ | ||
114 | #define ANOMALY_05000270 /* High I/O activity causes the output voltage of the | ||
115 | internal voltage regulator (VDDint) to decrease */ | ||
116 | #define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after | ||
117 | an edge is detected may clear interrupt */ | ||
118 | #define ANOMALY_05000278 /* Disabling Peripherals with DMA running may cause | ||
119 | DMA system instability */ | ||
120 | #define ANOMALY_05000280 /* SPI Master boot mode does not work well with | ||
121 | Atmel Dataflash devices */ | ||
122 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context | ||
123 | * is not restored */ | ||
124 | #define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic | ||
125 | * control */ | ||
126 | #define ANOMALY_05000283 /* System MMR Write Is Stalled Indefinitely When | ||
127 | * Killed in a Particular Stage */ | ||
128 | #define ANOMALY_05000285 /* New Feature: EMAC TX DMA Word Alignment | ||
129 | * (Not Available On Older Silicon) */ | ||
130 | #define ANOMALY_05000288 /* SPORTs may receive bad data if FIFOs fill up */ | ||
131 | #define ANOMALY_05000315 /* Killed System MMR Write Completes Erroneously | ||
132 | * On Next System MMR Access */ | ||
133 | #define ANOMALY_05000316 /* EMAC RMII mode: collisions occur in Full Duplex | ||
134 | * mode */ | ||
135 | #define ANOMALY_05000321 /* EMAC RMII mode: TX frames in half duplex fail with | ||
136 | * status No Carrier */ | ||
137 | #endif /* CONFIG_BF_REV_0_2 */ | ||
138 | 38 | ||
139 | #endif /* _MACH_ANOMALY_H_ */ | 39 | /* Multi-issue instruction with dsp32shiftimm in slot1 and P-reg store in slot 2 not supported */ |
40 | #define ANOMALY_05000074 (1) | ||
41 | /* DMA_RUN bit is not valid after a Peripheral Receive Channel DMA stops */ | ||
42 | #define ANOMALY_05000119 (1) | ||
43 | /* Rx.H cannot be used to access 16-bit System MMR registers */ | ||
44 | #define ANOMALY_05000122 (1) | ||
45 | /* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ | ||
46 | #define ANOMALY_05000157 (__SILICON_REVISION__ < 2) | ||
47 | /* PPI_DELAY not functional in PPI modes with 0 frame syncs */ | ||
48 | #define ANOMALY_05000180 (1) | ||
49 | /* Instruction Cache Is Not Functional */ | ||
50 | #define ANOMALY_05000237 (__SILICON_REVISION__ < 2) | ||
51 | /* If i-cache is on, CSYNC/SSYNC/IDLE around Change of Control causes failures */ | ||
52 | #define ANOMALY_05000244 (__SILICON_REVISION__ < 3) | ||
53 | /* Spurious Hardware Error from an access in the shadow of a conditional branch */ | ||
54 | #define ANOMALY_05000245 (1) | ||
55 | /* CLKIN Buffer Output Enable Reset Behavior Is Changed */ | ||
56 | #define ANOMALY_05000247 (1) | ||
57 | /* Incorrect Bit-Shift of Data Word in Multichannel (TDM) mode in certain conditions */ | ||
58 | #define ANOMALY_05000250 (__SILICON_REVISION__ < 3) | ||
59 | /* EMAC Tx DMA error after an early frame abort */ | ||
60 | #define ANOMALY_05000252 (__SILICON_REVISION__ < 3) | ||
61 | /* Maximum external clock speed for Timers */ | ||
62 | #define ANOMALY_05000253 (__SILICON_REVISION__ < 3) | ||
63 | /* Incorrect Timer Pulse Width in Single-Shot PWM_OUT mode with external clock */ | ||
64 | #define ANOMALY_05000254 (__SILICON_REVISION__ > 2) | ||
65 | /* Entering Hibernate Mode with RTC Seconds event interrupt not functional */ | ||
66 | #define ANOMALY_05000255 (__SILICON_REVISION__ < 3) | ||
67 | /* EMAC MDIO input latched on wrong MDC edge */ | ||
68 | #define ANOMALY_05000256 (__SILICON_REVISION__ < 3) | ||
69 | /* Interrupt/Exception during short hardware loop may cause bad instruction fetches */ | ||
70 | #define ANOMALY_05000257 (__SILICON_REVISION__ < 3) | ||
71 | /* Instruction Cache is corrupted when bits 9 and 12 of the ICPLB Data registers differ */ | ||
72 | #define ANOMALY_05000258 (((ANOMALY_BF536 || ANOMALY_BF537) && __SILICON_REVISION__ == 1) || __SILICON_REVISION__ == 2) | ||
73 | /* ICPLB_STATUS MMR register may be corrupted */ | ||
74 | #define ANOMALY_05000260 (__SILICON_REVISION__ == 2) | ||
75 | /* DCPLB_FAULT_ADDR MMR register may be corrupted */ | ||
76 | #define ANOMALY_05000261 (__SILICON_REVISION__ < 3) | ||
77 | /* Stores to data cache may be lost */ | ||
78 | #define ANOMALY_05000262 (__SILICON_REVISION__ < 3) | ||
79 | /* Hardware loop corrupted when taking an ICPLB exception */ | ||
80 | #define ANOMALY_05000263 (__SILICON_REVISION__ == 2) | ||
81 | /* CSYNC/SSYNC/IDLE causes infinite stall in second to last instruction in hardware loop */ | ||
82 | #define ANOMALY_05000264 (__SILICON_REVISION__ < 3) | ||
83 | /* Sensitivity to noise with slow input edge rates on external SPORT TX and RX clocks */ | ||
84 | #define ANOMALY_05000265 (1) | ||
85 | /* Memory DMA error when peripheral DMA is running with non-zero DEB_TRAFFIC_PERIOD */ | ||
86 | #define ANOMALY_05000268 (__SILICON_REVISION__ < 3) | ||
87 | /* High I/O activity causes output voltage of internal voltage regulator (VDDint) to decrease */ | ||
88 | #define ANOMALY_05000270 (__SILICON_REVISION__ < 3) | ||
89 | /* Certain data cache write through modes fail for VDDint <=0.9V */ | ||
90 | #define ANOMALY_05000272 (1) | ||
91 | /* Writes to Synchronous SDRAM memory may be lost */ | ||
92 | #define ANOMALY_05000273 (__SILICON_REVISION__ < 3) | ||
93 | /* Writes to an I/O data register one SCLK cycle after an edge is detected may clear interrupt */ | ||
94 | #define ANOMALY_05000277 (__SILICON_REVISION__ < 3) | ||
95 | /* Disabling Peripherals with DMA running may cause DMA system instability */ | ||
96 | #define ANOMALY_05000278 (((ANOMALY_BF536 || ANOMALY_BF537) && __SILICON_REVISION__ < 3) || (ANOMALY_BF534 && __SILICON_REVISION__ < 2)) | ||
97 | /* SPI Master boot mode does not work well with Atmel Data flash devices */ | ||
98 | #define ANOMALY_05000280 (1) | ||
99 | /* False Hardware Error Exception when ISR context is not restored */ | ||
100 | #define ANOMALY_05000281 (__SILICON_REVISION__ < 3) | ||
101 | /* Memory DMA corruption with 32-bit data and traffic control */ | ||
102 | #define ANOMALY_05000282 (__SILICON_REVISION__ < 3) | ||
103 | /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ | ||
104 | #define ANOMALY_05000283 (__SILICON_REVISION__ < 3) | ||
105 | /* New Feature: EMAC TX DMA Word Alignment (Not Available On Older Silicon) */ | ||
106 | #define ANOMALY_05000285 (__SILICON_REVISION__ < 3) | ||
107 | /* SPORTs may receive bad data if FIFOs fill up */ | ||
108 | #define ANOMALY_05000288 (__SILICON_REVISION__ < 3) | ||
109 | /* Memory to memory DMA source/destination descriptors must be in same memory space */ | ||
110 | #define ANOMALY_05000301 (1) | ||
111 | /* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ | ||
112 | #define ANOMALY_05000304 (__SILICON_REVISION__ < 3) | ||
113 | /* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ | ||
114 | #define ANOMALY_05000305 (__SILICON_REVISION__ < 3) | ||
115 | /* SCKELOW Bit Does Not Maintain State Through Hibernate */ | ||
116 | #define ANOMALY_05000307 (__SILICON_REVISION__ < 3) | ||
117 | /* Writing UART_THR while UART clock is disabled sends erroneous start bit */ | ||
118 | #define ANOMALY_05000309 (__SILICON_REVISION__ < 3) | ||
119 | /* False hardware errors caused by fetches at the boundary of reserved memory */ | ||
120 | #define ANOMALY_05000310 (1) | ||
121 | /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC registers are interrupted */ | ||
122 | #define ANOMALY_05000312 (1) | ||
123 | /* PPI is level sensitive on first transfer */ | ||
124 | #define ANOMALY_05000313 (1) | ||
125 | /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ | ||
126 | #define ANOMALY_05000315 (__SILICON_REVISION__ < 3) | ||
127 | /* EMAC RMII mode: collisions occur in Full Duplex mode */ | ||
128 | #define ANOMALY_05000316 (__SILICON_REVISION__ < 3) | ||
129 | /* EMAC RMII mode: TX frames in half duplex fail with status No Carrier */ | ||
130 | #define ANOMALY_05000321 (__SILICON_REVISION__ < 3) | ||
131 | /* EMAC RMII mode at 10-Base-T speed: RX frames not received properly */ | ||
132 | #define ANOMALY_05000322 (1) | ||
133 | |||
134 | /* Anomalies that don't exist on this proc */ | ||
135 | #define ANOMALY_05000125 (0) | ||
136 | #define ANOMALY_05000158 (0) | ||
137 | #define ANOMALY_05000183 (0) | ||
138 | #define ANOMALY_05000198 (0) | ||
139 | #define ANOMALY_05000230 (0) | ||
140 | #define ANOMALY_05000266 (0) | ||
141 | #define ANOMALY_05000311 (0) | ||
142 | #define ANOMALY_05000323 (0) | ||
143 | |||
144 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf537/bf537.h b/include/asm-blackfin/mach-bf537/bf537.h index b8924cd7730c..cfe2a221112e 100644 --- a/include/asm-blackfin/mach-bf537/bf537.h +++ b/include/asm-blackfin/mach-bf537/bf537.h | |||
@@ -62,12 +62,12 @@ | |||
62 | /***************************/ | 62 | /***************************/ |
63 | 63 | ||
64 | 64 | ||
65 | #define BLKFIN_DSUBBANKS 4 | 65 | #define BFIN_DSUBBANKS 4 |
66 | #define BLKFIN_DWAYS 2 | 66 | #define BFIN_DWAYS 2 |
67 | #define BLKFIN_DLINES 64 | 67 | #define BFIN_DLINES 64 |
68 | #define BLKFIN_ISUBBANKS 4 | 68 | #define BFIN_ISUBBANKS 4 |
69 | #define BLKFIN_IWAYS 4 | 69 | #define BFIN_IWAYS 4 |
70 | #define BLKFIN_ILINES 32 | 70 | #define BFIN_ILINES 32 |
71 | 71 | ||
72 | #define WAY0_L 0x1 | 72 | #define WAY0_L 0x1 |
73 | #define WAY1_L 0x2 | 73 | #define WAY1_L 0x2 |
@@ -121,97 +121,6 @@ | |||
121 | 121 | ||
122 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) | 122 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) |
123 | 123 | ||
124 | #define MAX_VC 650000000 | ||
125 | #define MIN_VC 50000000 | ||
126 | |||
127 | /********************************PLL Settings **************************************/ | ||
128 | #ifdef CONFIG_BFIN_KERNEL_CLOCK | ||
129 | #if (CONFIG_VCO_MULT < 0) | ||
130 | #error "VCO Multiplier is less than 0. Please select a different value" | ||
131 | #endif | ||
132 | |||
133 | #if (CONFIG_VCO_MULT == 0) | ||
134 | #error "VCO Multiplier should be greater than 0. Please select a different value" | ||
135 | #endif | ||
136 | |||
137 | #if (CONFIG_VCO_MULT > 64) | ||
138 | #error "VCO Multiplier is more than 64. Please select a different value" | ||
139 | #endif | ||
140 | |||
141 | #ifndef CONFIG_CLKIN_HALF | ||
142 | #define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
143 | #else | ||
144 | #define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
145 | #endif | ||
146 | |||
147 | #ifndef CONFIG_PLL_BYPASS | ||
148 | #define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
149 | #define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
150 | #else | ||
151 | #define CONFIG_CCLK_HZ CONFIG_CLKIN_HZ | ||
152 | #define CONFIG_SCLK_HZ CONFIG_CLKIN_HZ | ||
153 | #endif | ||
154 | |||
155 | #if (CONFIG_SCLK_DIV < 1) | ||
156 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
157 | #endif | ||
158 | |||
159 | #if (CONFIG_SCLK_DIV > 15) | ||
160 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
161 | #endif | ||
162 | |||
163 | #if (CONFIG_CCLK_DIV != 1) | ||
164 | #if (CONFIG_CCLK_DIV != 2) | ||
165 | #if (CONFIG_CCLK_DIV != 4) | ||
166 | #if (CONFIG_CCLK_DIV != 8) | ||
167 | #error "CCLK DIV can be 1,2,4 or 8 only. Please select a proper value" | ||
168 | #endif | ||
169 | #endif | ||
170 | #endif | ||
171 | #endif | ||
172 | |||
173 | #if (CONFIG_VCO_HZ > MAX_VC) | ||
174 | #error "VCO selected is more than maximum value. Please change the VCO multipler" | ||
175 | #endif | ||
176 | |||
177 | #if (CONFIG_SCLK_HZ > 133000000) | ||
178 | #error "Sclk value selected is more than maximum. Please select a proper value for SCLK multiplier" | ||
179 | #endif | ||
180 | |||
181 | #if (CONFIG_SCLK_HZ < 27000000) | ||
182 | #error "Sclk value selected is less than minimum. Please select a proper value for SCLK multiplier" | ||
183 | #endif | ||
184 | |||
185 | #if (CONFIG_SCLK_HZ >= CONFIG_CCLK_HZ) | ||
186 | #if (CONFIG_SCLK_HZ != CONFIG_CLKIN_HZ) | ||
187 | #if (CONFIG_CCLK_HZ != CONFIG_CLKIN_HZ) | ||
188 | #error "Please select sclk less than cclk" | ||
189 | #endif | ||
190 | #endif | ||
191 | #endif | ||
192 | |||
193 | #if (CONFIG_CCLK_DIV == 1) | ||
194 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
195 | #endif | ||
196 | #if (CONFIG_CCLK_DIV == 2) | ||
197 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
198 | #endif | ||
199 | #if (CONFIG_CCLK_DIV == 4) | ||
200 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
201 | #endif | ||
202 | #if (CONFIG_CCLK_DIV == 8) | ||
203 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
204 | #endif | ||
205 | #ifndef CONFIG_CCLK_ACT_DIV | ||
206 | #define CONFIG_CCLK_ACT_DIV CONFIG_CCLK_DIV_not_defined_properly | ||
207 | #endif | ||
208 | |||
209 | #if defined(ANOMALY_05000273) && (CONFIG_CCLK_DIV == 1) | ||
210 | #error ANOMALY 05000273, please make sure CCLK is at least 2x SCLK | ||
211 | #endif | ||
212 | |||
213 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | ||
214 | |||
215 | #ifdef CONFIG_BF537 | 124 | #ifdef CONFIG_BF537 |
216 | #define CPU "BF537" | 125 | #define CPU "BF537" |
217 | #define CPUID 0x027c8000 | 126 | #define CPUID 0x027c8000 |
@@ -229,59 +138,4 @@ | |||
229 | #define CPUID 0x0 | 138 | #define CPUID 0x0 |
230 | #endif | 139 | #endif |
231 | 140 | ||
232 | #if (CONFIG_MEM_SIZE % 4) | ||
233 | #error "SDRAM mem size must be multible of 4MB" | ||
234 | #endif | ||
235 | |||
236 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
237 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
238 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
239 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
240 | |||
241 | /*Use the menuconfig cache policy here - CONFIG_BLKFIN_WT/CONFIG_BLKFIN_WB*/ | ||
242 | |||
243 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
244 | #ifdef CONFIG_BLKFIN_WB /*Write Back Policy */ | ||
245 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_DIRTY \ | ||
246 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
247 | #else /*Write Through */ | ||
248 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW \ | ||
249 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
250 | #endif | ||
251 | |||
252 | |||
253 | #define L1_DMEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY ) | ||
254 | #define SDRAM_DNON_CHBL (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
255 | #define SDRAM_EBIU (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
256 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY ) | ||
257 | |||
258 | #define SIZE_1K 0x00000400 /* 1K */ | ||
259 | #define SIZE_4K 0x00001000 /* 4K */ | ||
260 | #define SIZE_1M 0x00100000 /* 1M */ | ||
261 | #define SIZE_4M 0x00400000 /* 4M */ | ||
262 | |||
263 | #define MAX_CPLBS (16 * 2) | ||
264 | |||
265 | /* | ||
266 | * Number of required data CPLB switchtable entries | ||
267 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
268 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
269 | * 1 for L1 Data Memory | ||
270 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
271 | * 1 for ASYNC Memory | ||
272 | */ | ||
273 | |||
274 | |||
275 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1) * 2) | ||
276 | |||
277 | /* | ||
278 | * Number of required instruction CPLB switchtable entries | ||
279 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
280 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
281 | * 1 for L1 Instruction Memory | ||
282 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
283 | */ | ||
284 | |||
285 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1) * 2) | ||
286 | |||
287 | #endif /* __MACH_BF537_H__ */ | 141 | #endif /* __MACH_BF537_H__ */ |
diff --git a/include/asm-blackfin/mach-bf537/blackfin.h b/include/asm-blackfin/mach-bf537/blackfin.h index bbd97051ec9c..53fcfa3408d0 100644 --- a/include/asm-blackfin/mach-bf537/blackfin.h +++ b/include/asm-blackfin/mach-bf537/blackfin.h | |||
@@ -43,7 +43,7 @@ | |||
43 | #include "defBF537.h" | 43 | #include "defBF537.h" |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | #if !(defined(__ASSEMBLY__) || defined(ASSEMBLY)) | 46 | #if !defined(__ASSEMBLY__) |
47 | #include "cdefBF534.h" | 47 | #include "cdefBF534.h" |
48 | 48 | ||
49 | /* UART 0*/ | 49 | /* UART 0*/ |
@@ -143,284 +143,6 @@ | |||
143 | #define bfin_write_STOPCK_OFF(val) bfin_write_STOPCK(val) | 143 | #define bfin_write_STOPCK_OFF(val) bfin_write_STOPCK(val) |
144 | #define STOPCK_OFF STOPCK | 144 | #define STOPCK_OFF STOPCK |
145 | 145 | ||
146 | /* FIO USE PORT F*/ | ||
147 | #ifdef CONFIG_BF537_PORT_F | ||
148 | #define bfin_read_PORT_FER() bfin_read_PORTF_FER() | ||
149 | #define bfin_write_PORT_FER(val) bfin_write_PORTF_FER(val) | ||
150 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTFIO() | ||
151 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTFIO(val) | ||
152 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTFIO_CLEAR() | ||
153 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTFIO_CLEAR(val) | ||
154 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTFIO_SET() | ||
155 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTFIO_SET(val) | ||
156 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTFIO_TOGGLE() | ||
157 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTFIO_TOGGLE(val) | ||
158 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTFIO_MASKA() | ||
159 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTFIO_MASKA(val) | ||
160 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTFIO_MASKA_CLEAR() | ||
161 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTFIO_MASKA_CLEAR(val) | ||
162 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTFIO_MASKA_SET() | ||
163 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTFIO_MASKA_SET(val) | ||
164 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTFIO_MASKA_TOGGLE() | ||
165 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTFIO_MASKA_TOGGLE(val) | ||
166 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTFIO_MASKB() | ||
167 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTFIO_MASKB(val) | ||
168 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTFIO_MASKB_CLEAR() | ||
169 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTFIO_MASKB_CLEAR(val) | ||
170 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTFIO_MASKB_SET() | ||
171 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTFIO_MASKB_SET(val) | ||
172 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTFIO_MASKB_TOGGLE() | ||
173 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTFIO_MASKB_TOGGLE(val) | ||
174 | #define bfin_read_FIO_DIR() bfin_read_PORTFIO_DIR() | ||
175 | #define bfin_write_FIO_DIR(val) bfin_write_PORTFIO_DIR(val) | ||
176 | #define bfin_read_FIO_POLAR() bfin_read_PORTFIO_POLAR() | ||
177 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTFIO_POLAR(val) | ||
178 | #define bfin_read_FIO_EDGE() bfin_read_PORTFIO_EDGE() | ||
179 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTFIO_EDGE(val) | ||
180 | #define bfin_read_FIO_BOTH() bfin_read_PORTFIO_BOTH() | ||
181 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTFIO_BOTH(val) | ||
182 | #define bfin_read_FIO_INEN() bfin_read_PORTFIO_INEN() | ||
183 | #define bfin_write_FIO_INEN(val) bfin_write_PORTFIO_INEN(val) | ||
184 | |||
185 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTFIO() | ||
186 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTFIO(val) | ||
187 | #define FIO_FLAG_D PORTFIO | ||
188 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTFIO_CLEAR() | ||
189 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTFIO_CLEAR(val) | ||
190 | #define FIO_FLAG_C PORTFIO_CLEAR | ||
191 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTFIO_SET() | ||
192 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTFIO_SET(val) | ||
193 | #define FIO_FLAG_S PORTFIO_SET | ||
194 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTFIO_TOGGLE() | ||
195 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTFIO_TOGGLE(val) | ||
196 | #define FIO_FLAG_T PORTFIO_TOGGLE | ||
197 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTFIO_MASKA() | ||
198 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTFIO_MASKA(val) | ||
199 | #define FIO_MASKA_D PORTFIO_MASKA | ||
200 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTFIO_MASKA_CLEAR() | ||
201 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTFIO_MASKA_CLEAR(val) | ||
202 | #define FIO_MASKA_C PORTFIO_MASKA_CLEAR | ||
203 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTFIO_MASKA_SET() | ||
204 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTFIO_MASKA_SET(val) | ||
205 | #define FIO_MASKA_S PORTFIO_MASKA_SET | ||
206 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTFIO_MASKA_TOGGLE() | ||
207 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTFIO_MASKA_TOGGLE(val) | ||
208 | #define FIO_MASKA_T PORTFIO_MASKA_TOGGLE | ||
209 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTFIO_MASKB() | ||
210 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTFIO_MASKB(val) | ||
211 | #define FIO_MASKB_D PORTFIO_MASKB | ||
212 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTFIO_MASKB_CLEAR() | ||
213 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTFIO_MASKB_CLEAR(val) | ||
214 | #define FIO_MASKB_C PORTFIO_MASKB_CLEAR | ||
215 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTFIO_MASKB_SET() | ||
216 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTFIO_MASKB_SET(val) | ||
217 | #define FIO_MASKB_S PORTFIO_MASKB_SET | ||
218 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTFIO_MASKB_TOGGLE() | ||
219 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTFIO_MASKB_TOGGLE(val) | ||
220 | #define FIO_MASKB_T PORTFIO_MASKB_TOGGLE | ||
221 | #define bfin_read_FIO_DIR() bfin_read_PORTFIO_DIR() | ||
222 | #define bfin_write_FIO_DIR(val) bfin_write_PORTFIO_DIR(val) | ||
223 | #define FIO_DIR PORTFIO_DIR | ||
224 | #define bfin_read_FIO_POLAR() bfin_read_PORTFIO_POLAR() | ||
225 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTFIO_POLAR(val) | ||
226 | #define FIO_POLAR PORTFIO_POLAR | ||
227 | #define bfin_read_FIO_EDGE() bfin_read_PORTFIO_EDGE() | ||
228 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTFIO_EDGE(val) | ||
229 | #define FIO_EDGE PORTFIO_EDGE | ||
230 | #define bfin_read_FIO_BOTH() bfin_read_PORTFIO_BOTH() | ||
231 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTFIO_BOTH(val) | ||
232 | #define FIO_BOTH PORTFIO_BOTH | ||
233 | #define bfin_read_FIO_INEN() bfin_read_PORTFIO_INEN() | ||
234 | #define bfin_write_FIO_INEN(val) bfin_write_PORTFIO_INEN(val) | ||
235 | #define FIO_INEN PORTFIO_INEN | ||
236 | #endif | ||
237 | |||
238 | /* FIO USE PORT G*/ | ||
239 | #ifdef CONFIG_BF537_PORT_G | ||
240 | #define bfin_read_PORT_FER() bfin_read_PORTG_FER() | ||
241 | #define bfin_write_PORT_FER(val) bfin_write_PORTG_FER(val) | ||
242 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTGIO() | ||
243 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTGIO(val) | ||
244 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTGIO_CLEAR() | ||
245 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTGIO_CLEAR(val) | ||
246 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTGIO_SET() | ||
247 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTGIO_SET(val) | ||
248 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTGIO_TOGGLE() | ||
249 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTGIO_TOGGLE(val) | ||
250 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTGIO_MASKA() | ||
251 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTGIO_MASKA(val) | ||
252 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTGIO_MASKA_CLEAR() | ||
253 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTGIO_MASKA_CLEAR(val) | ||
254 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTGIO_MASKA_SET() | ||
255 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTGIO_MASKA_SET(val) | ||
256 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTGIO_MASKA_TOGGLE() | ||
257 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTGIO_MASKA_TOGGLE(val) | ||
258 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTGIO_MASKB() | ||
259 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTGIO_MASKB(val) | ||
260 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTGIO_MASKB_CLEAR() | ||
261 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTGIO_MASKB_CLEAR(val) | ||
262 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTGIO_MASKB_SET() | ||
263 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTGIO_MASKB_SET(val) | ||
264 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTGIO_MASKB_TOGGLE() | ||
265 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTGIO_MASKB_TOGGLE(val) | ||
266 | #define bfin_read_FIO_DIR() bfin_read_PORTGIO_DIR() | ||
267 | #define bfin_write_FIO_DIR(val) bfin_write_PORTGIO_DIR(val) | ||
268 | #define bfin_read_FIO_POLAR() bfin_read_PORTGIO_POLAR() | ||
269 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTGIO_POLAR(val) | ||
270 | #define bfin_read_FIO_EDGE() bfin_read_PORTGIO_EDGE() | ||
271 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTGIO_EDGE(val) | ||
272 | #define bfin_read_FIO_BOTH() bfin_read_PORTGIO_BOTH() | ||
273 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTGIO_BOTH(val) | ||
274 | #define bfin_read_FIO_INEN() bfin_read_PORTGIO_INEN() | ||
275 | #define bfin_write_FIO_INEN(val) bfin_write_PORTGIO_INEN(val) | ||
276 | |||
277 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTGIO() | ||
278 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTGIO(val) | ||
279 | #define FIO_FLAG_D PORTGIO | ||
280 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTGIO_CLEAR() | ||
281 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTGIO_CLEAR(val) | ||
282 | #define FIO_FLAG_C PORTGIO_CLEAR | ||
283 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTGIO_SET() | ||
284 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTGIO_SET(val) | ||
285 | #define FIO_FLAG_S PORTGIO_SET | ||
286 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTGIO_TOGGLE() | ||
287 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTGIO_TOGGLE(val) | ||
288 | #define FIO_FLAG_T PORTGIO_TOGGLE | ||
289 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTGIO_MASKA() | ||
290 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTGIO_MASKA(val) | ||
291 | #define FIO_MASKA_D PORTGIO_MASKA | ||
292 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTGIO_MASKA_CLEAR() | ||
293 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTGIO_MASKA_CLEAR(val) | ||
294 | #define FIO_MASKA_C PORTGIO_MASKA_CLEAR | ||
295 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTGIO_MASKA_SET() | ||
296 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTGIO_MASKA_SET(val) | ||
297 | #define FIO_MASKA_S PORTGIO_MASKA_SET | ||
298 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTGIO_MASKA_TOGGLE() | ||
299 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTGIO_MASKA_TOGGLE(val) | ||
300 | #define FIO_MASKA_T PORTGIO_MASKA_TOGGLE | ||
301 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTGIO_MASKB() | ||
302 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTGIO_MASKB(val) | ||
303 | #define FIO_MASKB_D PORTGIO_MASKB | ||
304 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTGIO_MASKB_CLEAR() | ||
305 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTGIO_MASKB_CLEAR(val) | ||
306 | #define FIO_MASKB_C PORTGIO_MASKB_CLEAR | ||
307 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTGIO_MASKB_SET() | ||
308 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTGIO_MASKB_SET(val) | ||
309 | #define FIO_MASKB_S PORTGIO_MASKB_SET | ||
310 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTGIO_MASKB_TOGGLE() | ||
311 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTGIO_MASKB_TOGGLE(val) | ||
312 | #define FIO_MASKB_T PORTGIO_MASKB_TOGGLE | ||
313 | #define bfin_read_FIO_DIR() bfin_read_PORTGIO_DIR() | ||
314 | #define bfin_write_FIO_DIR(val) bfin_write_PORTGIO_DIR(val) | ||
315 | #define FIO_DIR PORTGIO_DIR | ||
316 | #define bfin_read_FIO_POLAR() bfin_read_PORTGIO_POLAR() | ||
317 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTGIO_POLAR(val) | ||
318 | #define FIO_POLAR PORTGIO_POLAR | ||
319 | #define bfin_read_FIO_EDGE() bfin_read_PORTGIO_EDGE() | ||
320 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTGIO_EDGE(val) | ||
321 | #define FIO_EDGE PORTGIO_EDGE | ||
322 | #define bfin_read_FIO_BOTH() bfin_read_PORTGIO_BOTH() | ||
323 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTGIO_BOTH(val) | ||
324 | #define FIO_BOTH PORTGIO_BOTH | ||
325 | #define bfin_read_FIO_INEN() bfin_read_PORTGIO_INEN() | ||
326 | #define bfin_write_FIO_INEN(val) bfin_write_PORTGIO_INEN(val) | ||
327 | #define FIO_INEN PORTGIO_INEN | ||
328 | |||
329 | #endif | ||
330 | |||
331 | /* FIO USE PORT H*/ | ||
332 | #ifdef CONFIG_BF537_PORT_H | ||
333 | #define bfin_read_PORT_FER() bfin_read_PORTH_FER() | ||
334 | #define bfin_write_PORT_FER(val) bfin_write_PORTH_FER(val) | ||
335 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTHIO() | ||
336 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTHIO(val) | ||
337 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTHIO_CLEAR() | ||
338 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTHIO_CLEAR(val) | ||
339 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTHIO_SET() | ||
340 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTHIO_SET(val) | ||
341 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTHIO_TOGGLE() | ||
342 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTHIO_TOGGLE(val) | ||
343 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTHIO_MASKA() | ||
344 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTHIO_MASKA(val) | ||
345 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTHIO_MASKA_CLEAR() | ||
346 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTHIO_MASKA_CLEAR(val) | ||
347 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTHIO_MASKA_SET() | ||
348 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTHIO_MASKA_SET(val) | ||
349 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTHIO_MASKA_TOGGLE() | ||
350 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTHIO_MASKA_TOGGLE(val) | ||
351 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTHIO_MASKB() | ||
352 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTHIO_MASKB(val) | ||
353 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTHIO_MASKB_CLEAR() | ||
354 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTHIO_MASKB_CLEAR(val) | ||
355 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTHIO_MASKB_SET() | ||
356 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTHIO_MASKB_SET(val) | ||
357 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTHIO_MASKB_TOGGLE() | ||
358 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTHIO_MASKB_TOGGLE(val) | ||
359 | #define bfin_read_FIO_DIR() bfin_read_PORTHIO_DIR() | ||
360 | #define bfin_write_FIO_DIR(val) bfin_write_PORTHIO_DIR(val) | ||
361 | #define bfin_read_FIO_POLAR() bfin_read_PORTHIO_POLAR() | ||
362 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTHIO_POLAR(val) | ||
363 | #define bfin_read_FIO_EDGE() bfin_read_PORTHIO_EDGE() | ||
364 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTHIO_EDGE(val) | ||
365 | #define bfin_read_FIO_BOTH() bfin_read_PORTHIO_BOTH() | ||
366 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTHIO_BOTH(val) | ||
367 | #define bfin_read_FIO_INEN() bfin_read_PORTHIO_INEN() | ||
368 | #define bfin_write_FIO_INEN(val) bfin_write_PORTHIO_INEN(val) | ||
369 | |||
370 | #define bfin_read_FIO_FLAG_D() bfin_read_PORTHIO() | ||
371 | #define bfin_write_FIO_FLAG_D(val) bfin_write_PORTHIO(val) | ||
372 | #define FIO_FLAG_D PORTHIO | ||
373 | #define bfin_read_FIO_FLAG_C() bfin_read_PORTHIO_CLEAR() | ||
374 | #define bfin_write_FIO_FLAG_C(val) bfin_write_PORTHIO_CLEAR(val) | ||
375 | #define FIO_FLAG_C PORTHIO_CLEAR | ||
376 | #define bfin_read_FIO_FLAG_S() bfin_read_PORTHIO_SET() | ||
377 | #define bfin_write_FIO_FLAG_S(val) bfin_write_PORTHIO_SET(val) | ||
378 | #define FIO_FLAG_S PORTHIO_SET | ||
379 | #define bfin_read_FIO_FLAG_T() bfin_read_PORTHIO_TOGGLE() | ||
380 | #define bfin_write_FIO_FLAG_T(val) bfin_write_PORTHIO_TOGGLE(val) | ||
381 | #define FIO_FLAG_T PORTHIO_TOGGLE | ||
382 | #define bfin_read_FIO_MASKA_D() bfin_read_PORTHIO_MASKA() | ||
383 | #define bfin_write_FIO_MASKA_D(val) bfin_write_PORTHIO_MASKA(val) | ||
384 | #define FIO_MASKA_D PORTHIO_MASKA | ||
385 | #define bfin_read_FIO_MASKA_C() bfin_read_PORTHIO_MASKA_CLEAR() | ||
386 | #define bfin_write_FIO_MASKA_C(val) bfin_write_PORTHIO_MASKA_CLEAR(val) | ||
387 | #define FIO_MASKA_C PORTHIO_MASKA_CLEAR | ||
388 | #define bfin_read_FIO_MASKA_S() bfin_read_PORTHIO_MASKA_SET() | ||
389 | #define bfin_write_FIO_MASKA_S(val) bfin_write_PORTHIO_MASKA_SET(val) | ||
390 | #define FIO_MASKA_S PORTHIO_MASKA_SET | ||
391 | #define bfin_read_FIO_MASKA_T() bfin_read_PORTHIO_MASKA_TOGGLE() | ||
392 | #define bfin_write_FIO_MASKA_T(val) bfin_write_PORTHIO_MASKA_TOGGLE(val) | ||
393 | #define FIO_MASKA_T PORTHIO_MASKA_TOGGLE | ||
394 | #define bfin_read_FIO_MASKB_D() bfin_read_PORTHIO_MASKB() | ||
395 | #define bfin_write_FIO_MASKB_D(val) bfin_write_PORTHIO_MASKB(val) | ||
396 | #define FIO_MASKB_D PORTHIO_MASKB | ||
397 | #define bfin_read_FIO_MASKB_C() bfin_read_PORTHIO_MASKB_CLEAR() | ||
398 | #define bfin_write_FIO_MASKB_C(val) bfin_write_PORTHIO_MASKB_CLEAR(val) | ||
399 | #define FIO_MASKB_C PORTHIO_MASKB_CLEAR | ||
400 | #define bfin_read_FIO_MASKB_S() bfin_read_PORTHIO_MASKB_SET() | ||
401 | #define bfin_write_FIO_MASKB_S(val) bfin_write_PORTHIO_MASKB_SET(val) | ||
402 | #define FIO_MASKB_S PORTHIO_MASKB_SET | ||
403 | #define bfin_read_FIO_MASKB_T() bfin_read_PORTHIO_MASKB_TOGGLE() | ||
404 | #define bfin_write_FIO_MASKB_T(val) bfin_write_PORTHIO_MASKB_TOGGLE(val) | ||
405 | #define FIO_MASKB_T PORTHIO_MASKB_TOGGLE | ||
406 | #define bfin_read_FIO_DIR() bfin_read_PORTHIO_DIR() | ||
407 | #define bfin_write_FIO_DIR(val) bfin_write_PORTHIO_DIR(val) | ||
408 | #define FIO_DIR PORTHIO_DIR | ||
409 | #define bfin_read_FIO_POLAR() bfin_read_PORTHIO_POLAR() | ||
410 | #define bfin_write_FIO_POLAR(val) bfin_write_PORTHIO_POLAR(val) | ||
411 | #define FIO_POLAR PORTHIO_POLAR | ||
412 | #define bfin_read_FIO_EDGE() bfin_read_PORTHIO_EDGE() | ||
413 | #define bfin_write_FIO_EDGE(val) bfin_write_PORTHIO_EDGE(val) | ||
414 | #define FIO_EDGE PORTHIO_EDGE | ||
415 | #define bfin_read_FIO_BOTH() bfin_read_PORTHIO_BOTH() | ||
416 | #define bfin_write_FIO_BOTH(val) bfin_write_PORTHIO_BOTH(val) | ||
417 | #define FIO_BOTH PORTHIO_BOTH | ||
418 | #define bfin_read_FIO_INEN() bfin_read_PORTHIO_INEN() | ||
419 | #define bfin_write_FIO_INEN(val) bfin_write_PORTHIO_INEN(val) | ||
420 | #define FIO_INEN PORTHIO_INEN | ||
421 | |||
422 | #endif | ||
423 | |||
424 | /* PLL_DIV Masks */ | 146 | /* PLL_DIV Masks */ |
425 | #define CCLK_DIV1 CSEL_DIV1 /* CCLK = VCO / 1 */ | 147 | #define CCLK_DIV1 CSEL_DIV1 /* CCLK = VCO / 1 */ |
426 | #define CCLK_DIV2 CSEL_DIV2 /* CCLK = VCO / 2 */ | 148 | #define CCLK_DIV2 CSEL_DIV2 /* CCLK = VCO / 2 */ |
diff --git a/include/asm-blackfin/mach-bf537/cdefBF534.h b/include/asm-blackfin/mach-bf537/cdefBF534.h index 84e58fa73dce..78227bc855df 100644 --- a/include/asm-blackfin/mach-bf537/cdefBF534.h +++ b/include/asm-blackfin/mach-bf537/cdefBF534.h | |||
@@ -32,6 +32,8 @@ | |||
32 | #ifndef _CDEF_BF534_H | 32 | #ifndef _CDEF_BF534_H |
33 | #define _CDEF_BF534_H | 33 | #define _CDEF_BF534_H |
34 | 34 | ||
35 | #include <asm/blackfin.h> | ||
36 | |||
35 | /* Include all Core registers and bit definitions */ | 37 | /* Include all Core registers and bit definitions */ |
36 | #include "defBF534.h" | 38 | #include "defBF534.h" |
37 | 39 | ||
@@ -57,7 +59,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
57 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | 59 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); |
58 | 60 | ||
59 | bfin_write16(VR_CTL, val); | 61 | bfin_write16(VR_CTL, val); |
60 | __builtin_bfin_ssync(); | 62 | SSYNC(); |
61 | 63 | ||
62 | local_irq_save(flags); | 64 | local_irq_save(flags); |
63 | asm("IDLE;"); | 65 | asm("IDLE;"); |
diff --git a/include/asm-blackfin/mach-bf537/defBF534.h b/include/asm-blackfin/mach-bf537/defBF534.h index 1859f2fee5a7..d0d80d3152ba 100644 --- a/include/asm-blackfin/mach-bf537/defBF534.h +++ b/include/asm-blackfin/mach-bf537/defBF534.h | |||
@@ -86,6 +86,7 @@ | |||
86 | #define UART0_GCTL 0xFFC00424 /* Global Control Register */ | 86 | #define UART0_GCTL 0xFFC00424 /* Global Control Register */ |
87 | 87 | ||
88 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ | 88 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ |
89 | #define SPI0_REGBASE 0xFFC00500 | ||
89 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ | 90 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ |
90 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ | 91 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ |
91 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ | 92 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ |
@@ -456,6 +457,7 @@ | |||
456 | #define PPI_FRAME 0xFFC01010 /* PPI Frame Length Register */ | 457 | #define PPI_FRAME 0xFFC01010 /* PPI Frame Length Register */ |
457 | 458 | ||
458 | /* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */ | 459 | /* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */ |
460 | #define TWI0_REGBASE 0xFFC01400 | ||
459 | #define TWI_CLKDIV 0xFFC01400 /* Serial Clock Divider Register */ | 461 | #define TWI_CLKDIV 0xFFC01400 /* Serial Clock Divider Register */ |
460 | #define TWI_CONTROL 0xFFC01404 /* TWI Control Register */ | 462 | #define TWI_CONTROL 0xFFC01404 /* TWI Control Register */ |
461 | #define TWI_SLAVE_CTL 0xFFC01408 /* Slave Mode Control Register */ | 463 | #define TWI_SLAVE_CTL 0xFFC01408 /* Slave Mode Control Register */ |
@@ -1165,7 +1167,7 @@ | |||
1165 | #define GM 0x0008 /* Get More (When RDBR Full, Overwrite/Discard*) */ | 1167 | #define GM 0x0008 /* Get More (When RDBR Full, Overwrite/Discard*) */ |
1166 | #define PSSE 0x0010 /* Slave-Select Input Enable */ | 1168 | #define PSSE 0x0010 /* Slave-Select Input Enable */ |
1167 | #define EMISO 0x0020 /* Enable MISO As Output */ | 1169 | #define EMISO 0x0020 /* Enable MISO As Output */ |
1168 | #define SPI_SIZE 0x0100 /* Size of Words (16/8* Bits) */ | 1170 | #define SIZE 0x0100 /* Size of Words (16/8* Bits) */ |
1169 | #define LSBF 0x0200 /* LSB First */ | 1171 | #define LSBF 0x0200 /* LSB First */ |
1170 | #define CPHA 0x0400 /* Clock Phase */ | 1172 | #define CPHA 0x0400 /* Clock Phase */ |
1171 | #define CPOL 0x0800 /* Clock Polarity */ | 1173 | #define CPOL 0x0800 /* Clock Polarity */ |
diff --git a/include/asm-blackfin/mach-bf537/irq.h b/include/asm-blackfin/mach-bf537/irq.h index 8af2a832ef6b..36c44bc1a917 100644 --- a/include/asm-blackfin/mach-bf537/irq.h +++ b/include/asm-blackfin/mach-bf537/irq.h | |||
@@ -160,6 +160,8 @@ Core Emulation ** | |||
160 | #define IRQ_PH14 96 | 160 | #define IRQ_PH14 96 |
161 | #define IRQ_PH15 97 | 161 | #define IRQ_PH15 97 |
162 | 162 | ||
163 | #define GPIO_IRQ_BASE IRQ_PF0 | ||
164 | |||
163 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | 165 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO |
164 | #define NR_IRQS (IRQ_PH15+1) | 166 | #define NR_IRQS (IRQ_PH15+1) |
165 | #else | 167 | #else |
diff --git a/include/asm-blackfin/mach-bf537/mem_map.h b/include/asm-blackfin/mach-bf537/mem_map.h index 2a808c1202bf..18759e38eaae 100644 --- a/include/asm-blackfin/mach-bf537/mem_map.h +++ b/include/asm-blackfin/mach-bf537/mem_map.h | |||
@@ -52,10 +52,10 @@ | |||
52 | 52 | ||
53 | /* Memory Map for ADSP-BF537 processors */ | 53 | /* Memory Map for ADSP-BF537 processors */ |
54 | 54 | ||
55 | #ifdef CONFIG_BLKFIN_CACHE | 55 | #ifdef CONFIG_BFIN_ICACHE |
56 | #define BLKFIN_ICACHESIZE (16*1024) | 56 | #define BFIN_ICACHESIZE (16*1024) |
57 | #else | 57 | #else |
58 | #define BLKFIN_ICACHESIZE (0*1024) | 58 | #define BFIN_ICACHESIZE (0*1024) |
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | 61 | ||
@@ -66,29 +66,29 @@ | |||
66 | 66 | ||
67 | #define L1_CODE_LENGTH 0xC000 | 67 | #define L1_CODE_LENGTH 0xC000 |
68 | 68 | ||
69 | #ifdef CONFIG_BLKFIN_DCACHE | 69 | #ifdef CONFIG_BFIN_DCACHE |
70 | 70 | ||
71 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 71 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
72 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 72 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
73 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 73 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
74 | #define L1_DATA_B_LENGTH 0x8000 | 74 | #define L1_DATA_B_LENGTH 0x8000 |
75 | #define BLKFIN_DCACHESIZE (16*1024) | 75 | #define BFIN_DCACHESIZE (16*1024) |
76 | #define BLKFIN_DSUPBANKS 1 | 76 | #define BFIN_DSUPBANKS 1 |
77 | #else | 77 | #else |
78 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 78 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
79 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 79 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
80 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 80 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
81 | #define BLKFIN_DCACHESIZE (32*1024) | 81 | #define BFIN_DCACHESIZE (32*1024) |
82 | #define BLKFIN_DSUPBANKS 2 | 82 | #define BFIN_DSUPBANKS 2 |
83 | #endif | 83 | #endif |
84 | 84 | ||
85 | #else | 85 | #else |
86 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 86 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
87 | #define L1_DATA_A_LENGTH 0x8000 | 87 | #define L1_DATA_A_LENGTH 0x8000 |
88 | #define L1_DATA_B_LENGTH 0x8000 | 88 | #define L1_DATA_B_LENGTH 0x8000 |
89 | #define BLKFIN_DCACHESIZE (0*1024) | 89 | #define BFIN_DCACHESIZE (0*1024) |
90 | #define BLKFIN_DSUPBANKS 0 | 90 | #define BFIN_DSUPBANKS 0 |
91 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 91 | #endif /*CONFIG_BFIN_DCACHE*/ |
92 | 92 | ||
93 | #endif /*CONFIG_BF537*/ | 93 | #endif /*CONFIG_BF537*/ |
94 | 94 | ||
@@ -102,30 +102,30 @@ | |||
102 | #define L1_CODE_LENGTH 0xC000 | 102 | #define L1_CODE_LENGTH 0xC000 |
103 | 103 | ||
104 | 104 | ||
105 | #ifdef CONFIG_BLKFIN_DCACHE | 105 | #ifdef CONFIG_BFIN_DCACHE |
106 | 106 | ||
107 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 107 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
108 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 108 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
109 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 109 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
110 | #define L1_DATA_B_LENGTH 0x4000 | 110 | #define L1_DATA_B_LENGTH 0x4000 |
111 | #define BLKFIN_DCACHESIZE (16*1024) | 111 | #define BFIN_DCACHESIZE (16*1024) |
112 | #define BLKFIN_DSUPBANKS 1 | 112 | #define BFIN_DSUPBANKS 1 |
113 | 113 | ||
114 | #else | 114 | #else |
115 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 115 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
116 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) | 116 | #define L1_DATA_A_LENGTH (0x4000 - 0x4000) |
117 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) | 117 | #define L1_DATA_B_LENGTH (0x4000 - 0x4000) |
118 | #define BLKFIN_DCACHESIZE (32*1024) | 118 | #define BFIN_DCACHESIZE (32*1024) |
119 | #define BLKFIN_DSUPBANKS 2 | 119 | #define BFIN_DSUPBANKS 2 |
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | #else | 122 | #else |
123 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 123 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
124 | #define L1_DATA_A_LENGTH 0x4000 | 124 | #define L1_DATA_A_LENGTH 0x4000 |
125 | #define L1_DATA_B_LENGTH 0x4000 | 125 | #define L1_DATA_B_LENGTH 0x4000 |
126 | #define BLKFIN_DCACHESIZE (0*1024) | 126 | #define BFIN_DCACHESIZE (0*1024) |
127 | #define BLKFIN_DSUPBANKS 0 | 127 | #define BFIN_DSUPBANKS 0 |
128 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 128 | #endif /*CONFIG_BFIN_DCACHE*/ |
129 | 129 | ||
130 | #endif | 130 | #endif |
131 | 131 | ||
@@ -138,30 +138,30 @@ | |||
138 | 138 | ||
139 | #define L1_CODE_LENGTH 0xC000 | 139 | #define L1_CODE_LENGTH 0xC000 |
140 | 140 | ||
141 | #ifdef CONFIG_BLKFIN_DCACHE | 141 | #ifdef CONFIG_BFIN_DCACHE |
142 | 142 | ||
143 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 143 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
144 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 144 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
145 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 145 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
146 | #define L1_DATA_B_LENGTH 0x8000 | 146 | #define L1_DATA_B_LENGTH 0x8000 |
147 | #define BLKFIN_DCACHESIZE (16*1024) | 147 | #define BFIN_DCACHESIZE (16*1024) |
148 | #define BLKFIN_DSUPBANKS 1 | 148 | #define BFIN_DSUPBANKS 1 |
149 | 149 | ||
150 | #else | 150 | #else |
151 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 151 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
152 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 152 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
153 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 153 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
154 | #define BLKFIN_DCACHESIZE (32*1024) | 154 | #define BFIN_DCACHESIZE (32*1024) |
155 | #define BLKFIN_DSUPBANKS 2 | 155 | #define BFIN_DSUPBANKS 2 |
156 | #endif | 156 | #endif |
157 | 157 | ||
158 | #else | 158 | #else |
159 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 159 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
160 | #define L1_DATA_A_LENGTH 0x8000 | 160 | #define L1_DATA_A_LENGTH 0x8000 |
161 | #define L1_DATA_B_LENGTH 0x8000 | 161 | #define L1_DATA_B_LENGTH 0x8000 |
162 | #define BLKFIN_DCACHESIZE (0*1024) | 162 | #define BFIN_DCACHESIZE (0*1024) |
163 | #define BLKFIN_DSUPBANKS 0 | 163 | #define BFIN_DSUPBANKS 0 |
164 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 164 | #endif /*CONFIG_BFIN_DCACHE*/ |
165 | 165 | ||
166 | #endif | 166 | #endif |
167 | 167 | ||
diff --git a/include/asm-blackfin/mach-bf537/portmux.h b/include/asm-blackfin/mach-bf537/portmux.h index ae6c53b28452..5a3f7d3bf73d 100644 --- a/include/asm-blackfin/mach-bf537/portmux.h +++ b/include/asm-blackfin/mach-bf537/portmux.h | |||
@@ -99,7 +99,7 @@ | |||
99 | #define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(PORT_PJ8) | P_FUNCT(0)) | 99 | #define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(PORT_PJ8) | P_FUNCT(0)) |
100 | #define P_SPORT0_TSCLK (P_DEFINED | P_IDENT(PORT_PJ9) | P_FUNCT(0)) | 100 | #define P_SPORT0_TSCLK (P_DEFINED | P_IDENT(PORT_PJ9) | P_FUNCT(0)) |
101 | #define P_SPORT0_TFS (P_DEFINED | P_IDENT(PORT_PJ10) | P_FUNCT(0)) | 101 | #define P_SPORT0_TFS (P_DEFINED | P_IDENT(PORT_PJ10) | P_FUNCT(0)) |
102 | #define P_SPORT0_DTPRI (P_DEFINED | P_IDENT(PORT_PJ11) | P_FUNCT(1)) | 102 | #define P_SPORT0_DTPRI (P_DEFINED | P_IDENT(PORT_PJ11) | P_FUNCT(0)) |
103 | #define P_CAN0_RX (P_DEFINED | P_IDENT(PORT_PJ4) | P_FUNCT(1)) | 103 | #define P_CAN0_RX (P_DEFINED | P_IDENT(PORT_PJ4) | P_FUNCT(1)) |
104 | #define P_CAN0_TX (P_DEFINED | P_IDENT(PORT_PJ5) | P_FUNCT(1)) | 104 | #define P_CAN0_TX (P_DEFINED | P_IDENT(PORT_PJ5) | P_FUNCT(1)) |
105 | #define P_SPI0_SSEL3 (P_DEFINED | P_IDENT(PORT_PJ10) | P_FUNCT(1)) | 105 | #define P_SPI0_SSEL3 (P_DEFINED | P_IDENT(PORT_PJ10) | P_FUNCT(1)) |
diff --git a/include/asm-blackfin/mach-bf548/anomaly.h b/include/asm-blackfin/mach-bf548/anomaly.h index aca1d4ba145c..c5b63759cdee 100644 --- a/include/asm-blackfin/mach-bf548/anomaly.h +++ b/include/asm-blackfin/mach-bf548/anomaly.h | |||
@@ -1,74 +1,85 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | * File: include/asm-blackfin/mach-bf548/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf548/anomaly.h |
4 | * Based on: | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
5 | * Author: | ||
6 | * | ||
7 | * Created: | ||
8 | * Description: | ||
9 | * | ||
10 | * Rev: | ||
11 | * | ||
12 | * Modified: | ||
13 | * | ||
14 | * | ||
15 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
16 | * | 4 | * |
17 | * This program is free software; you can redistribute it and/or modify | 5 | * Copyright (C) 2004-2007 Analog Devices Inc. |
18 | * it under the terms of the GNU General Public License as published by | 6 | * Licensed under the GPL-2 or later. |
19 | * the Free Software Foundation; either version 2, or (at your option) | 7 | */ |
20 | * any later version. | 8 | |
21 | * | 9 | /* This file shoule be up to date with: |
22 | * This program is distributed in the hope that it will be useful, | 10 | * - Revision C, July 16, 2007; ADSP-BF549 Silicon Anomaly List |
23 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
25 | * GNU General Public License for more details. | ||
26 | * | ||
27 | * You should have received a copy of the GNU General Public License | ||
28 | * along with this program; see the file COPYING. | ||
29 | * If not, write to the Free Software Foundation, | ||
30 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
31 | */ | 11 | */ |
32 | 12 | ||
33 | #ifndef _MACH_ANOMALY_H_ | 13 | #ifndef _MACH_ANOMALY_H_ |
34 | #define _MACH_ANOMALY_H_ | 14 | #define _MACH_ANOMALY_H_ |
35 | #define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in | ||
36 | slot1 and store of a P register in slot 2 is not | ||
37 | supported */ | ||
38 | #define ANOMALY_05000119 /* DMA_RUN bit is not valid after a Peripheral Receive | ||
39 | Channel DMA stops */ | ||
40 | #define ANOMALY_05000122 /* Rx.H can not be used to access 16-bit System MMR | ||
41 | registers. */ | ||
42 | #define ANOMALY_05000245 /* Spurious Hardware Error from an Access in the | ||
43 | Shadow of a Conditional Branch */ | ||
44 | #define ANOMALY_05000255 /* Entering Hibernate Mode with RTC Seconds event | ||
45 | interrupt not functional */ | ||
46 | #define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on | ||
47 | SPORT external receive and transmit clocks. */ | ||
48 | #define ANOMALY_05000272 /* Certain data cache write through modes fail for | ||
49 | VDDint <=0.9V */ | ||
50 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is | ||
51 | not restored */ | ||
52 | #define ANOMALY_05000310 /* False Hardware Errors Caused by Fetches at the | ||
53 | Boundary of Reserved Memory */ | ||
54 | #define ANOMALY_05000312 /* Errors When SSYNC, CSYNC, or Loads to LT, LB and | ||
55 | LC Registers Are Interrupted */ | ||
56 | #define ANOMALY_05000324 /* TWI Slave Boot Mode Is Not Functional */ | ||
57 | #define ANOMALY_05000325 /* External FIFO Boot Mode Is Not Functional */ | ||
58 | #define ANOMALY_05000327 /* Data Lost When Core and DMA Accesses Are Made to | ||
59 | the USB FIFO Simultaneously */ | ||
60 | #define ANOMALY_05000328 /* Incorrect Access of OTP_STATUS During otp_write() | ||
61 | function */ | ||
62 | #define ANOMALY_05000329 /* Synchronous Burst Flash Boot Mode Is Not Functional | ||
63 | */ | ||
64 | #define ANOMALY_05000330 /* Host DMA Boot Mode Is Not Functional */ | ||
65 | #define ANOMALY_05000334 /* Inadequate Timing Margins on DDR DQS to DQ and DQM | ||
66 | Skew */ | ||
67 | #define ANOMALY_05000335 /* Inadequate Rotary Debounce Logic Duration */ | ||
68 | #define ANOMALY_05000336 /* Phantom Interrupt Occurs After First Configuration | ||
69 | of Host DMA Port */ | ||
70 | #define ANOMALY_05000337 /* Disallowed Configuration Prevents Subsequent | ||
71 | Allowed Configuration on Host DMA Port */ | ||
72 | #define ANOMALY_05000338 /* Slave-Mode SPI0 MISO Failure With CPHA = 0 */ | ||
73 | 15 | ||
74 | #endif /* _MACH_ANOMALY_H_ */ | 16 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot 2 Not Supported */ |
17 | #define ANOMALY_05000074 (1) | ||
18 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ | ||
19 | #define ANOMALY_05000119 (1) | ||
20 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ | ||
21 | #define ANOMALY_05000122 (1) | ||
22 | /* Spurious Hardware Error from an Access in the Shadow of a Conditional Branch */ | ||
23 | #define ANOMALY_05000245 (1) | ||
24 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | ||
25 | #define ANOMALY_05000265 (1) | ||
26 | /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ | ||
27 | #define ANOMALY_05000272 (1) | ||
28 | /* False Hardware Error Exception when ISR context is not restored */ | ||
29 | #define ANOMALY_05000281 (1) | ||
30 | /* SSYNCs After Writes To CAN/DMA MMR Registers Are Not Always Handled Correctly */ | ||
31 | #define ANOMALY_05000304 (1) | ||
32 | /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ | ||
33 | #define ANOMALY_05000310 (1) | ||
34 | /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | ||
35 | #define ANOMALY_05000312 (1) | ||
36 | /* TWI Slave Boot Mode Is Not Functional */ | ||
37 | #define ANOMALY_05000324 (1) | ||
38 | /* External FIFO Boot Mode Is Not Functional */ | ||
39 | #define ANOMALY_05000325 (1) | ||
40 | /* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */ | ||
41 | #define ANOMALY_05000327 (1) | ||
42 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ | ||
43 | #define ANOMALY_05000328 (1) | ||
44 | /* Synchronous Burst Flash Boot Mode Is Not Functional */ | ||
45 | #define ANOMALY_05000329 (1) | ||
46 | /* Host DMA Boot Mode Is Not Functional */ | ||
47 | #define ANOMALY_05000330 (1) | ||
48 | /* Inadequate Timing Margins on DDR DQS to DQ and DQM Skew */ | ||
49 | #define ANOMALY_05000334 (1) | ||
50 | /* Inadequate Rotary Debounce Logic Duration */ | ||
51 | #define ANOMALY_05000335 (1) | ||
52 | /* Phantom Interrupt Occurs After First Configuration of Host DMA Port */ | ||
53 | #define ANOMALY_05000336 (1) | ||
54 | /* Disallowed Configuration Prevents Subsequent Allowed Configuration on Host DMA Port */ | ||
55 | #define ANOMALY_05000337 (1) | ||
56 | /* Slave-Mode SPI0 MISO Failure With CPHA = 0 */ | ||
57 | #define ANOMALY_05000338 (1) | ||
58 | /* If Memory Reads Are Enabled on SDH or HOSTDP, Other DMAC1 Peripherals Cannot Read */ | ||
59 | #define ANOMALY_05000340 (1) | ||
60 | /* Boot Host Wait (HWAIT) and Boot Host Wait Alternate (HWAITA) Signals Are Swapped */ | ||
61 | #define ANOMALY_05000344 (1) | ||
62 | /* USB Calibration Value Is Not Intialized */ | ||
63 | #define ANOMALY_05000346 (1) | ||
64 | /* Boot ROM Kernel Incorrectly Alters Reset Value of USB Register */ | ||
65 | #define ANOMALY_05000347 (1) | ||
66 | /* Data Lost when Core Reads SDH Data FIFO */ | ||
67 | #define ANOMALY_05000349 (1) | ||
68 | /* PLL Status Register Is Inaccurate */ | ||
69 | #define ANOMALY_05000351 (1) | ||
70 | |||
71 | /* Anomalies that don't exist on this proc */ | ||
72 | #define ANOMALY_05000125 (0) | ||
73 | #define ANOMALY_05000158 (0) | ||
74 | #define ANOMALY_05000183 (0) | ||
75 | #define ANOMALY_05000198 (0) | ||
76 | #define ANOMALY_05000230 (0) | ||
77 | #define ANOMALY_05000244 (0) | ||
78 | #define ANOMALY_05000261 (0) | ||
79 | #define ANOMALY_05000263 (0) | ||
80 | #define ANOMALY_05000266 (0) | ||
81 | #define ANOMALY_05000273 (0) | ||
82 | #define ANOMALY_05000311 (0) | ||
83 | #define ANOMALY_05000323 (0) | ||
84 | |||
85 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf548/bf548.h b/include/asm-blackfin/mach-bf548/bf548.h index 9498313a2cb7..7e6d349beb08 100644 --- a/include/asm-blackfin/mach-bf548/bf548.h +++ b/include/asm-blackfin/mach-bf548/bf548.h | |||
@@ -52,12 +52,12 @@ | |||
52 | /***************************/ | 52 | /***************************/ |
53 | 53 | ||
54 | 54 | ||
55 | #define BLKFIN_DSUBBANKS 4 | 55 | #define BFIN_DSUBBANKS 4 |
56 | #define BLKFIN_DWAYS 2 | 56 | #define BFIN_DWAYS 2 |
57 | #define BLKFIN_DLINES 64 | 57 | #define BFIN_DLINES 64 |
58 | #define BLKFIN_ISUBBANKS 4 | 58 | #define BFIN_ISUBBANKS 4 |
59 | #define BLKFIN_IWAYS 4 | 59 | #define BFIN_IWAYS 4 |
60 | #define BLKFIN_ILINES 32 | 60 | #define BFIN_ILINES 32 |
61 | 61 | ||
62 | #define WAY0_L 0x1 | 62 | #define WAY0_L 0x1 |
63 | #define WAY1_L 0x2 | 63 | #define WAY1_L 0x2 |
@@ -106,93 +106,6 @@ | |||
106 | 106 | ||
107 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN) | 107 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN) |
108 | 108 | ||
109 | #define MAX_VC 650000000 | ||
110 | #define MIN_VC 50000000 | ||
111 | |||
112 | /********************************PLL Settings **************************************/ | ||
113 | #ifdef CONFIG_BFIN_KERNEL_CLOCK | ||
114 | #if (CONFIG_VCO_MULT < 0) | ||
115 | #error "VCO Multiplier is less than 0. Please select a different value" | ||
116 | #endif | ||
117 | |||
118 | #if (CONFIG_VCO_MULT == 0) | ||
119 | #error "VCO Multiplier should be greater than 0. Please select a different value" | ||
120 | #endif | ||
121 | |||
122 | #if (CONFIG_VCO_MULT > 64) | ||
123 | #error "VCO Multiplier is more than 64. Please select a different value" | ||
124 | #endif | ||
125 | |||
126 | #ifndef CONFIG_CLKIN_HALF | ||
127 | #define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
128 | #else | ||
129 | #define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
130 | #endif | ||
131 | |||
132 | #ifndef CONFIG_PLL_BYPASS | ||
133 | #define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
134 | #define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
135 | #else | ||
136 | #define CONFIG_CCLK_HZ CONFIG_CLKIN_HZ | ||
137 | #define CONFIG_SCLK_HZ CONFIG_CLKIN_HZ | ||
138 | #endif | ||
139 | |||
140 | #if (CONFIG_SCLK_DIV < 1) | ||
141 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
142 | #endif | ||
143 | |||
144 | #if (CONFIG_SCLK_DIV > 15) | ||
145 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
146 | #endif | ||
147 | |||
148 | #if (CONFIG_CCLK_DIV != 1) | ||
149 | #if (CONFIG_CCLK_DIV != 2) | ||
150 | #if (CONFIG_CCLK_DIV != 4) | ||
151 | #if (CONFIG_CCLK_DIV != 8) | ||
152 | #error "CCLK DIV can be 1,2,4 or 8 only. Please select a proper value" | ||
153 | #endif | ||
154 | #endif | ||
155 | #endif | ||
156 | #endif | ||
157 | |||
158 | #if (CONFIG_VCO_HZ > MAX_VC) | ||
159 | #error "VCO selected is more than maximum value. Please change the VCO multipler" | ||
160 | #endif | ||
161 | |||
162 | #if (CONFIG_SCLK_HZ > 133000000) | ||
163 | #error "Sclk value selected is more than maximum. Please select a proper value for SCLK multiplier" | ||
164 | #endif | ||
165 | |||
166 | #if (CONFIG_SCLK_HZ < 27000000) | ||
167 | #error "Sclk value selected is less than minimum. Please select a proper value for SCLK multiplier" | ||
168 | #endif | ||
169 | |||
170 | #if (CONFIG_SCLK_HZ >= CONFIG_CCLK_HZ) | ||
171 | #if (CONFIG_SCLK_HZ != CONFIG_CLKIN_HZ) | ||
172 | #if (CONFIG_CCLK_HZ != CONFIG_CLKIN_HZ) | ||
173 | #error "Please select sclk less than cclk" | ||
174 | #endif | ||
175 | #endif | ||
176 | #endif | ||
177 | |||
178 | #if (CONFIG_CCLK_DIV == 1) | ||
179 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
180 | #endif | ||
181 | #if (CONFIG_CCLK_DIV == 2) | ||
182 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
183 | #endif | ||
184 | #if (CONFIG_CCLK_DIV == 4) | ||
185 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
186 | #endif | ||
187 | #if (CONFIG_CCLK_DIV == 8) | ||
188 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
189 | #endif | ||
190 | #ifndef CONFIG_CCLK_ACT_DIV | ||
191 | #define CONFIG_CCLK_ACT_DIV CONFIG_CCLK_DIV_not_defined_properly | ||
192 | #endif | ||
193 | |||
194 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | ||
195 | |||
196 | #ifdef CONFIG_BF542 | 109 | #ifdef CONFIG_BF542 |
197 | #define CPU "BF542" | 110 | #define CPU "BF542" |
198 | #define CPUID 0x027c8000 | 111 | #define CPUID 0x027c8000 |
@@ -213,59 +126,4 @@ | |||
213 | #define CPUID 0x0 | 126 | #define CPUID 0x0 |
214 | #endif | 127 | #endif |
215 | 128 | ||
216 | #if (CONFIG_MEM_SIZE % 4) | ||
217 | #error "SDRAM mem size must be multible of 4MB" | ||
218 | #endif | ||
219 | |||
220 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
221 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
222 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
223 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
224 | |||
225 | /*Use the menuconfig cache policy here - CONFIG_BLKFIN_WT/CONFIG_BLKFIN_WB*/ | ||
226 | |||
227 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
228 | #ifdef CONFIG_BLKFIN_WB /*Write Back Policy */ | ||
229 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_DIRTY \ | ||
230 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
231 | #else /*Write Through */ | ||
232 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW \ | ||
233 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
234 | #endif | ||
235 | |||
236 | |||
237 | #define L1_DMEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY ) | ||
238 | #define SDRAM_DNON_CHBL (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
239 | #define SDRAM_EBIU (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY ) | ||
240 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY ) | ||
241 | |||
242 | #define SIZE_1K 0x00000400 /* 1K */ | ||
243 | #define SIZE_4K 0x00001000 /* 4K */ | ||
244 | #define SIZE_1M 0x00100000 /* 1M */ | ||
245 | #define SIZE_4M 0x00400000 /* 4M */ | ||
246 | |||
247 | #define MAX_CPLBS (16 * 2) | ||
248 | |||
249 | /* | ||
250 | * Number of required data CPLB switchtable entries | ||
251 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
252 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
253 | * 1 for L1 Data Memory | ||
254 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
255 | * 1 for ASYNC Memory | ||
256 | */ | ||
257 | |||
258 | |||
259 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1) * 2) | ||
260 | |||
261 | /* | ||
262 | * Number of required instruction CPLB switchtable entries | ||
263 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
264 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
265 | * 1 for L1 Instruction Memory | ||
266 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
267 | */ | ||
268 | |||
269 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1) * 2) | ||
270 | |||
271 | #endif /* __MACH_BF48_H__ */ | 129 | #endif /* __MACH_BF48_H__ */ |
diff --git a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h index 2f4afc90db11..f21a1620e6bd 100644 --- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h | |||
@@ -1,5 +1,6 @@ | |||
1 | #include <linux/serial.h> | 1 | #include <linux/serial.h> |
2 | #include <asm/dma.h> | 2 | #include <asm/dma.h> |
3 | #include <asm/portmux.h> | ||
3 | 4 | ||
4 | #define NR_PORTS 4 | 5 | #define NR_PORTS 4 |
5 | 6 | ||
@@ -143,50 +144,48 @@ struct bfin_serial_res bfin_serial_resource[] = { | |||
143 | 144 | ||
144 | int nr_ports = ARRAY_SIZE(bfin_serial_resource); | 145 | int nr_ports = ARRAY_SIZE(bfin_serial_resource); |
145 | 146 | ||
147 | #define DRIVER_NAME "bfin-uart" | ||
148 | |||
146 | static void bfin_serial_hw_init(struct bfin_serial_port *uart) | 149 | static void bfin_serial_hw_init(struct bfin_serial_port *uart) |
147 | { | 150 | { |
148 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 151 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
149 | /* Enable UART0 RX and TX on pin 7 & 8 of PORT E */ | 152 | peripheral_request(P_UART0_TX, DRIVER_NAME); |
150 | bfin_write_PORTE_FER(0x180 | bfin_read_PORTE_FER()); | 153 | peripheral_request(P_UART0_RX, DRIVER_NAME); |
151 | bfin_write_PORTE_MUX(0x3C000 | bfin_read_PORTE_MUX()); | ||
152 | #endif | 154 | #endif |
153 | 155 | ||
154 | #ifdef CONFIG_SERIAL_BFIN_UART1 | 156 | #ifdef CONFIG_SERIAL_BFIN_UART1 |
155 | /* Enable UART1 RX and TX on pin 0 & 1 of PORT H */ | 157 | peripheral_request(P_UART1_TX, DRIVER_NAME); |
156 | bfin_write_PORTH_FER(0x3 | bfin_read_PORTH_FER()); | 158 | peripheral_request(P_UART1_RX, DRIVER_NAME); |
157 | bfin_write_PORTH_MUX(~0xF & bfin_read_PORTH_MUX()); | 159 | |
158 | #ifdef CONFIG_BFIN_UART1_CTSRTS | 160 | #ifdef CONFIG_BFIN_UART1_CTSRTS |
159 | /* Enable UART1 RTS and CTS on pin 9 & 10 of PORT E */ | 161 | peripheral_request(P_UART1_RTS, DRIVER_NAME); |
160 | bfin_write_PORTE_FER(0x600 | bfin_read_PORTE_FER()); | 162 | peripheral_request(P_UART1_CTS DRIVER_NAME); |
161 | bfin_write_PORTE_MUX(~0x3C0000 & bfin_read_PORTE_MUX()); | ||
162 | #endif | 163 | #endif |
163 | #endif | 164 | #endif |
164 | 165 | ||
165 | #ifdef CONFIG_SERIAL_BFIN_UART2 | 166 | #ifdef CONFIG_SERIAL_BFIN_UART2 |
166 | /* Enable UART2 RX and TX on pin 4 & 5 of PORT B */ | 167 | peripheral_request(P_UART2_TX, DRIVER_NAME); |
167 | bfin_write_PORTB_FER(0x30 | bfin_read_PORTB_FER()); | 168 | peripheral_request(P_UART2_RX, DRIVER_NAME); |
168 | bfin_write_PORTB_MUX(~0xF00 & bfin_read_PORTB_MUX()); | ||
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | #ifdef CONFIG_SERIAL_BFIN_UART3 | 171 | #ifdef CONFIG_SERIAL_BFIN_UART3 |
172 | /* Enable UART3 RX and TX on pin 6 & 7 of PORT B */ | 172 | peripheral_request(P_UART3_TX, DRIVER_NAME); |
173 | bfin_write_PORTB_FER(0xC0 | bfin_read_PORTB_FER()); | 173 | peripheral_request(P_UART3_RX, DRIVER_NAME); |
174 | bfin_write_PORTB_MUX(~0xF000 | bfin_read_PORTB_MUX()); | 174 | |
175 | #ifdef CONFIG_BFIN_UART3_CTSRTS | 175 | #ifdef CONFIG_BFIN_UART3_CTSRTS |
176 | /* Enable UART3 RTS and CTS on pin 2 & 3 of PORT B */ | 176 | peripheral_request(P_UART3_RTS, DRIVER_NAME); |
177 | bfin_write_PORTB_FER(0xC | bfin_read_PORTB_FER()); | 177 | peripheral_request(P_UART3_CTS DRIVER_NAME); |
178 | bfin_write_PORTB_MUX(~0xF0 | bfin_read_PORTB_MUX()); | ||
179 | #endif | 178 | #endif |
180 | #endif | 179 | #endif |
181 | SSYNC(); | 180 | SSYNC(); |
182 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 181 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
183 | if (uart->cts_pin >= 0) { | 182 | if (uart->cts_pin >= 0) { |
184 | gpio_request(uart->cts_pin, NULL); | 183 | gpio_request(uart->cts_pin, DRIVER_NAME); |
185 | gpio_direction_input(uart->cts_pin); | 184 | gpio_direction_input(uart->cts_pin); |
186 | } | 185 | } |
187 | 186 | ||
188 | if (uart->rts_pin >= 0) { | 187 | if (uart->rts_pin >= 0) { |
189 | gpio_request(uart->rts_pin, NULL); | 188 | gpio_request(uart->rts_pin, DRIVER_NAME); |
190 | gpio_direction_output(uart->rts_pin); | 189 | gpio_direction_output(uart->rts_pin); |
191 | } | 190 | } |
192 | #endif | 191 | #endif |
diff --git a/include/asm-blackfin/mach-bf548/blackfin.h b/include/asm-blackfin/mach-bf548/blackfin.h index 791218fe7d94..19e84dd4c99c 100644 --- a/include/asm-blackfin/mach-bf548/blackfin.h +++ b/include/asm-blackfin/mach-bf548/blackfin.h | |||
@@ -54,7 +54,7 @@ | |||
54 | #include "defBF549.h" | 54 | #include "defBF549.h" |
55 | #endif | 55 | #endif |
56 | 56 | ||
57 | #if !(defined(__ASSEMBLY__) || defined(ASSEMBLY)) | 57 | #if !defined(__ASSEMBLY__) |
58 | #ifdef CONFIG_BF542 | 58 | #ifdef CONFIG_BF542 |
59 | #include "cdefBF542.h" | 59 | #include "cdefBF542.h" |
60 | #endif | 60 | #endif |
diff --git a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h b/include/asm-blackfin/mach-bf548/cdefBF54x_base.h index cdf29e75ea59..aefab3f618c1 100644 --- a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h +++ b/include/asm-blackfin/mach-bf548/cdefBF54x_base.h | |||
@@ -31,6 +31,8 @@ | |||
31 | #ifndef _CDEF_BF54X_H | 31 | #ifndef _CDEF_BF54X_H |
32 | #define _CDEF_BF54X_H | 32 | #define _CDEF_BF54X_H |
33 | 33 | ||
34 | #include <asm/blackfin.h> | ||
35 | |||
34 | #include "defBF54x_base.h" | 36 | #include "defBF54x_base.h" |
35 | #include <asm/system.h> | 37 | #include <asm/system.h> |
36 | 38 | ||
@@ -60,7 +62,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
60 | bfin_write32(SIC_IWR2, 0); | 62 | bfin_write32(SIC_IWR2, 0); |
61 | 63 | ||
62 | bfin_write16(VR_CTL, val); | 64 | bfin_write16(VR_CTL, val); |
63 | __builtin_bfin_ssync(); | 65 | SSYNC(); |
64 | 66 | ||
65 | local_irq_save(flags); | 67 | local_irq_save(flags); |
66 | asm("IDLE;"); | 68 | asm("IDLE;"); |
diff --git a/include/asm-blackfin/mach-bf548/defBF544.h b/include/asm-blackfin/mach-bf548/defBF544.h index dd955dcd39b8..760307e34b9e 100644 --- a/include/asm-blackfin/mach-bf548/defBF544.h +++ b/include/asm-blackfin/mach-bf548/defBF544.h | |||
@@ -81,6 +81,7 @@ | |||
81 | 81 | ||
82 | /* Two Wire Interface Registers (TWI1) */ | 82 | /* Two Wire Interface Registers (TWI1) */ |
83 | 83 | ||
84 | #define TWI1_REGBASE 0xffc02200 | ||
84 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ | 85 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ |
85 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ | 86 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ |
86 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ | 87 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF548.h b/include/asm-blackfin/mach-bf548/defBF548.h index 8d4214e0807c..70af33c963b0 100644 --- a/include/asm-blackfin/mach-bf548/defBF548.h +++ b/include/asm-blackfin/mach-bf548/defBF548.h | |||
@@ -120,6 +120,7 @@ | |||
120 | 120 | ||
121 | /* Two Wire Interface Registers (TWI1) */ | 121 | /* Two Wire Interface Registers (TWI1) */ |
122 | 122 | ||
123 | #define TWI1_REGBASE 0xffc02200 | ||
123 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ | 124 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ |
124 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ | 125 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ |
125 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ | 126 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ |
@@ -139,6 +140,7 @@ | |||
139 | 140 | ||
140 | /* SPI2 Registers */ | 141 | /* SPI2 Registers */ |
141 | 142 | ||
143 | #define SPI2_REGBASE 0xffc02400 | ||
142 | #define SPI2_CTL 0xffc02400 /* SPI2 Control Register */ | 144 | #define SPI2_CTL 0xffc02400 /* SPI2 Control Register */ |
143 | #define SPI2_FLG 0xffc02404 /* SPI2 Flag Register */ | 145 | #define SPI2_FLG 0xffc02404 /* SPI2 Flag Register */ |
144 | #define SPI2_STAT 0xffc02408 /* SPI2 Status Register */ | 146 | #define SPI2_STAT 0xffc02408 /* SPI2 Status Register */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF549.h b/include/asm-blackfin/mach-bf548/defBF549.h index c2f4734da48d..50b3fe55ef0c 100644 --- a/include/asm-blackfin/mach-bf548/defBF549.h +++ b/include/asm-blackfin/mach-bf548/defBF549.h | |||
@@ -121,6 +121,7 @@ | |||
121 | 121 | ||
122 | /* Two Wire Interface Registers (TWI1) */ | 122 | /* Two Wire Interface Registers (TWI1) */ |
123 | 123 | ||
124 | #define TWI1_REGBASE 0xffc02200 | ||
124 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ | 125 | #define TWI1_CLKDIV 0xffc02200 /* Clock Divider Register */ |
125 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ | 126 | #define TWI1_CONTROL 0xffc02204 /* TWI Control Register */ |
126 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ | 127 | #define TWI1_SLAVE_CTRL 0xffc02208 /* TWI Slave Mode Control Register */ |
@@ -140,6 +141,7 @@ | |||
140 | 141 | ||
141 | /* SPI2 Registers */ | 142 | /* SPI2 Registers */ |
142 | 143 | ||
144 | #define SPI2_REGBASE 0xffc02400 | ||
143 | #define SPI2_CTL 0xffc02400 /* SPI2 Control Register */ | 145 | #define SPI2_CTL 0xffc02400 /* SPI2 Control Register */ |
144 | #define SPI2_FLG 0xffc02404 /* SPI2 Flag Register */ | 146 | #define SPI2_FLG 0xffc02404 /* SPI2 Flag Register */ |
145 | #define SPI2_STAT 0xffc02408 /* SPI2 Status Register */ | 147 | #define SPI2_STAT 0xffc02408 /* SPI2 Status Register */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF54x_base.h b/include/asm-blackfin/mach-bf548/defBF54x_base.h index 895ddd40a838..e2632db74baa 100644 --- a/include/asm-blackfin/mach-bf548/defBF54x_base.h +++ b/include/asm-blackfin/mach-bf548/defBF54x_base.h | |||
@@ -109,6 +109,7 @@ | |||
109 | 109 | ||
110 | /* SPI0 Registers */ | 110 | /* SPI0 Registers */ |
111 | 111 | ||
112 | #define SPI0_REGBASE 0xffc00500 | ||
112 | #define SPI0_CTL 0xffc00500 /* SPI0 Control Register */ | 113 | #define SPI0_CTL 0xffc00500 /* SPI0 Control Register */ |
113 | #define SPI0_FLG 0xffc00504 /* SPI0 Flag Register */ | 114 | #define SPI0_FLG 0xffc00504 /* SPI0 Flag Register */ |
114 | #define SPI0_STAT 0xffc00508 /* SPI0 Status Register */ | 115 | #define SPI0_STAT 0xffc00508 /* SPI0 Status Register */ |
@@ -121,6 +122,7 @@ | |||
121 | 122 | ||
122 | /* Two Wire Interface Registers (TWI0) */ | 123 | /* Two Wire Interface Registers (TWI0) */ |
123 | 124 | ||
125 | #define TWI0_REGBASE 0xffc00700 | ||
124 | #define TWI0_CLKDIV 0xffc00700 /* Clock Divider Register */ | 126 | #define TWI0_CLKDIV 0xffc00700 /* Clock Divider Register */ |
125 | #define TWI0_CONTROL 0xffc00704 /* TWI Control Register */ | 127 | #define TWI0_CONTROL 0xffc00704 /* TWI Control Register */ |
126 | #define TWI0_SLAVE_CTRL 0xffc00708 /* TWI Slave Mode Control Register */ | 128 | #define TWI0_SLAVE_CTRL 0xffc00708 /* TWI Slave Mode Control Register */ |
@@ -978,6 +980,7 @@ | |||
978 | 980 | ||
979 | /* SPI1 Registers */ | 981 | /* SPI1 Registers */ |
980 | 982 | ||
983 | #define SPI1_REGBASE 0xffc02300 | ||
981 | #define SPI1_CTL 0xffc02300 /* SPI1 Control Register */ | 984 | #define SPI1_CTL 0xffc02300 /* SPI1 Control Register */ |
982 | #define SPI1_FLG 0xffc02304 /* SPI1 Flag Register */ | 985 | #define SPI1_FLG 0xffc02304 /* SPI1 Flag Register */ |
983 | #define SPI1_STAT 0xffc02308 /* SPI1 Status Register */ | 986 | #define SPI1_STAT 0xffc02308 /* SPI1 Status Register */ |
diff --git a/include/asm-blackfin/mach-bf548/gpio.h b/include/asm-blackfin/mach-bf548/gpio.h index dbf66bcabe35..cb8b0f15c9a6 100644 --- a/include/asm-blackfin/mach-bf548/gpio.h +++ b/include/asm-blackfin/mach-bf548/gpio.h | |||
@@ -209,8 +209,3 @@ struct gpio_port_t { | |||
209 | unsigned short dummy7; | 209 | unsigned short dummy7; |
210 | unsigned int port_mux; | 210 | unsigned int port_mux; |
211 | }; | 211 | }; |
212 | |||
213 | int gpio_request(unsigned short gpio, const char *label); | ||
214 | void peripheral_free(unsigned short per); | ||
215 | int peripheral_request_list(unsigned short per[], const char *label); | ||
216 | void peripheral_free_list(unsigned short per[]); | ||
diff --git a/include/asm-blackfin/mach-bf548/irq.h b/include/asm-blackfin/mach-bf548/irq.h index e548d3cd81e3..3b08cf9bd6f3 100644 --- a/include/asm-blackfin/mach-bf548/irq.h +++ b/include/asm-blackfin/mach-bf548/irq.h | |||
@@ -55,287 +55,288 @@ Events (highest priority) EMU 0 | |||
55 | 55 | ||
56 | /* The ABSTRACT IRQ definitions */ | 56 | /* The ABSTRACT IRQ definitions */ |
57 | /** the first seven of the following are fixed, the rest you change if you need to **/ | 57 | /** the first seven of the following are fixed, the rest you change if you need to **/ |
58 | #define IRQ_EMU 0 /* Emulation */ | 58 | #define IRQ_EMU 0 /* Emulation */ |
59 | #define IRQ_RST 1 /* reset */ | 59 | #define IRQ_RST 1 /* reset */ |
60 | #define IRQ_NMI 2 /* Non Maskable */ | 60 | #define IRQ_NMI 2 /* Non Maskable */ |
61 | #define IRQ_EVX 3 /* Exception */ | 61 | #define IRQ_EVX 3 /* Exception */ |
62 | #define IRQ_UNUSED 4 /* - unused interrupt*/ | 62 | #define IRQ_UNUSED 4 /* - unused interrupt*/ |
63 | #define IRQ_HWERR 5 /* Hardware Error */ | 63 | #define IRQ_HWERR 5 /* Hardware Error */ |
64 | #define IRQ_CORETMR 6 /* Core timer */ | 64 | #define IRQ_CORETMR 6 /* Core timer */ |
65 | 65 | ||
66 | #define BFIN_IRQ(x) ((x) + 7) | 66 | #define BFIN_IRQ(x) ((x) + 7) |
67 | 67 | ||
68 | #define IRQ_PLL_WAKEUP BFIN_IRQ(0) /* PLL Wakeup Interrupt */ | 68 | #define IRQ_PLL_WAKEUP BFIN_IRQ(0) /* PLL Wakeup Interrupt */ |
69 | #define IRQ_DMAC0_ERR BFIN_IRQ(1) /* DMAC0 Status Interrupt */ | 69 | #define IRQ_DMAC0_ERROR BFIN_IRQ(1) /* DMAC0 Status Interrupt */ |
70 | #define IRQ_EPPI0_ERR BFIN_IRQ(2) /* EPPI0 Error Interrupt */ | 70 | #define IRQ_EPPI0_ERROR BFIN_IRQ(2) /* EPPI0 Error Interrupt */ |
71 | #define IRQ_SPORT0_ERR BFIN_IRQ(3) /* SPORT0 Error Interrupt */ | 71 | #define IRQ_SPORT0_ERROR BFIN_IRQ(3) /* SPORT0 Error Interrupt */ |
72 | #define IRQ_SPORT1_ERR BFIN_IRQ(4) /* SPORT1 Error Interrupt */ | 72 | #define IRQ_SPORT1_ERROR BFIN_IRQ(4) /* SPORT1 Error Interrupt */ |
73 | #define IRQ_SPI0_ERR BFIN_IRQ(5) /* SPI0 Status(Error) Interrupt */ | 73 | #define IRQ_SPI0_ERROR BFIN_IRQ(5) /* SPI0 Status(Error) Interrupt */ |
74 | #define IRQ_UART0_ERR BFIN_IRQ(6) /* UART0 Status(Error) Interrupt */ | 74 | #define IRQ_UART0_ERROR BFIN_IRQ(6) /* UART0 Status(Error) Interrupt */ |
75 | #define IRQ_RTC BFIN_IRQ(7) /* RTC Interrupt */ | 75 | #define IRQ_RTC BFIN_IRQ(7) /* RTC Interrupt */ |
76 | #define IRQ_EPPI0 BFIN_IRQ(8) /* EPPI0 Interrupt (DMA12) */ | 76 | #define IRQ_EPPI0 BFIN_IRQ(8) /* EPPI0 Interrupt (DMA12) */ |
77 | #define IRQ_SPORT0_RX BFIN_IRQ(9) /* SPORT0 RX Interrupt (DMA0) */ | 77 | #define IRQ_SPORT0_RX BFIN_IRQ(9) /* SPORT0 RX Interrupt (DMA0) */ |
78 | #define IRQ_SPORT0_TX BFIN_IRQ(10) /* SPORT0 TX Interrupt (DMA1) */ | 78 | #define IRQ_SPORT0_TX BFIN_IRQ(10) /* SPORT0 TX Interrupt (DMA1) */ |
79 | #define IRQ_SPORT1_RX BFIN_IRQ(11) /* SPORT1 RX Interrupt (DMA2) */ | 79 | #define IRQ_SPORT1_RX BFIN_IRQ(11) /* SPORT1 RX Interrupt (DMA2) */ |
80 | #define IRQ_SPORT1_TX BFIN_IRQ(12) /* SPORT1 TX Interrupt (DMA3) */ | 80 | #define IRQ_SPORT1_TX BFIN_IRQ(12) /* SPORT1 TX Interrupt (DMA3) */ |
81 | #define IRQ_SPI0 BFIN_IRQ(13) /* SPI0 Interrupt (DMA4) */ | 81 | #define IRQ_SPI0 BFIN_IRQ(13) /* SPI0 Interrupt (DMA4) */ |
82 | #define IRQ_UART0_RX BFIN_IRQ(14) /* UART0 RX Interrupt (DMA6) */ | 82 | #define IRQ_UART0_RX BFIN_IRQ(14) /* UART0 RX Interrupt (DMA6) */ |
83 | #define IRQ_UART0_TX BFIN_IRQ(15) /* UART0 TX Interrupt (DMA7) */ | 83 | #define IRQ_UART0_TX BFIN_IRQ(15) /* UART0 TX Interrupt (DMA7) */ |
84 | #define IRQ_TIMER8 BFIN_IRQ(16) /* TIMER 8 Interrupt */ | 84 | #define IRQ_TIMER8 BFIN_IRQ(16) /* TIMER 8 Interrupt */ |
85 | #define IRQ_TIMER9 BFIN_IRQ(17) /* TIMER 9 Interrupt */ | 85 | #define IRQ_TIMER9 BFIN_IRQ(17) /* TIMER 9 Interrupt */ |
86 | #define IRQ_TIMER10 BFIN_IRQ(18) /* TIMER 10 Interrupt */ | 86 | #define IRQ_TIMER10 BFIN_IRQ(18) /* TIMER 10 Interrupt */ |
87 | #define IRQ_PINT0 BFIN_IRQ(19) /* PINT0 Interrupt */ | 87 | #define IRQ_PINT0 BFIN_IRQ(19) /* PINT0 Interrupt */ |
88 | #define IRQ_PINT1 BFIN_IRQ(20) /* PINT1 Interrupt */ | 88 | #define IRQ_PINT1 BFIN_IRQ(20) /* PINT1 Interrupt */ |
89 | #define IRQ_MDMAS0 BFIN_IRQ(21) /* MDMA Stream 0 Interrupt */ | 89 | #define IRQ_MDMAS0 BFIN_IRQ(21) /* MDMA Stream 0 Interrupt */ |
90 | #define IRQ_MDMAS1 BFIN_IRQ(22) /* MDMA Stream 1 Interrupt */ | 90 | #define IRQ_MDMAS1 BFIN_IRQ(22) /* MDMA Stream 1 Interrupt */ |
91 | #define IRQ_WATCHDOG BFIN_IRQ(23) /* Watchdog Interrupt */ | 91 | #define IRQ_WATCHDOG BFIN_IRQ(23) /* Watchdog Interrupt */ |
92 | #define IRQ_DMAC1_ERR BFIN_IRQ(24) /* DMAC1 Status (Error) Interrupt */ | 92 | #define IRQ_DMAC1_ERROR BFIN_IRQ(24) /* DMAC1 Status (Error) Interrupt */ |
93 | #define IRQ_SPORT2_ERR BFIN_IRQ(25) /* SPORT2 Error Interrupt */ | 93 | #define IRQ_SPORT2_ERROR BFIN_IRQ(25) /* SPORT2 Error Interrupt */ |
94 | #define IRQ_SPORT3_ERR BFIN_IRQ(26) /* SPORT3 Error Interrupt */ | 94 | #define IRQ_SPORT3_ERROR BFIN_IRQ(26) /* SPORT3 Error Interrupt */ |
95 | #define IRQ_MXVR_DATA BFIN_IRQ(27) /* MXVR Data Interrupt */ | 95 | #define IRQ_MXVR_DATA BFIN_IRQ(27) /* MXVR Data Interrupt */ |
96 | #define IRQ_SPI1_ERR BFIN_IRQ(28) /* SPI1 Status (Error) Interrupt */ | 96 | #define IRQ_SPI1_ERROR BFIN_IRQ(28) /* SPI1 Status (Error) Interrupt */ |
97 | #define IRQ_SPI2_ERR BFIN_IRQ(29) /* SPI2 Status (Error) Interrupt */ | 97 | #define IRQ_SPI2_ERROR BFIN_IRQ(29) /* SPI2 Status (Error) Interrupt */ |
98 | #define IRQ_UART1_ERR BFIN_IRQ(30) /* UART1 Status (Error) Interrupt */ | 98 | #define IRQ_UART1_ERROR BFIN_IRQ(30) /* UART1 Status (Error) Interrupt */ |
99 | #define IRQ_UART2_ERR BFIN_IRQ(31) /* UART2 Status (Error) Interrupt */ | 99 | #define IRQ_UART2_ERROR BFIN_IRQ(31) /* UART2 Status (Error) Interrupt */ |
100 | #define IRQ_CAN0_ERR BFIN_IRQ(32) /* CAN0 Status (Error) Interrupt */ | 100 | #define IRQ_CAN0_ERROR BFIN_IRQ(32) /* CAN0 Status (Error) Interrupt */ |
101 | #define IRQ_SPORT2_RX BFIN_IRQ(33) /* SPORT2 RX (DMA18) Interrupt */ | 101 | #define IRQ_SPORT2_RX BFIN_IRQ(33) /* SPORT2 RX (DMA18) Interrupt */ |
102 | #define IRQ_SPORT2_TX BFIN_IRQ(34) /* SPORT2 TX (DMA19) Interrupt */ | 102 | #define IRQ_SPORT2_TX BFIN_IRQ(34) /* SPORT2 TX (DMA19) Interrupt */ |
103 | #define IRQ_SPORT3_RX BFIN_IRQ(35) /* SPORT3 RX (DMA20) Interrupt */ | 103 | #define IRQ_SPORT3_RX BFIN_IRQ(35) /* SPORT3 RX (DMA20) Interrupt */ |
104 | #define IRQ_SPORT3_TX BFIN_IRQ(36) /* SPORT3 TX (DMA21) Interrupt */ | 104 | #define IRQ_SPORT3_TX BFIN_IRQ(36) /* SPORT3 TX (DMA21) Interrupt */ |
105 | #define IRQ_EPPI1 BFIN_IRQ(37) /* EPP1 (DMA13) Interrupt */ | 105 | #define IRQ_EPPI1 BFIN_IRQ(37) /* EPP1 (DMA13) Interrupt */ |
106 | #define IRQ_EPPI2 BFIN_IRQ(38) /* EPP2 (DMA14) Interrupt */ | 106 | #define IRQ_EPPI2 BFIN_IRQ(38) /* EPP2 (DMA14) Interrupt */ |
107 | #define IRQ_SPI1 BFIN_IRQ(39) /* SPI1 (DMA5) Interrupt */ | 107 | #define IRQ_SPI1 BFIN_IRQ(39) /* SPI1 (DMA5) Interrupt */ |
108 | #define IRQ_SPI2 BFIN_IRQ(40) /* SPI2 (DMA23) Interrupt */ | 108 | #define IRQ_SPI2 BFIN_IRQ(40) /* SPI2 (DMA23) Interrupt */ |
109 | #define IRQ_UART1_RX BFIN_IRQ(41) /* UART1 RX (DMA8) Interrupt */ | 109 | #define IRQ_UART1_RX BFIN_IRQ(41) /* UART1 RX (DMA8) Interrupt */ |
110 | #define IRQ_UART1_TX BFIN_IRQ(42) /* UART1 TX (DMA9) Interrupt */ | 110 | #define IRQ_UART1_TX BFIN_IRQ(42) /* UART1 TX (DMA9) Interrupt */ |
111 | #define IRQ_ATAPI_RX BFIN_IRQ(43) /* ATAPI RX (DMA10) Interrupt */ | 111 | #define IRQ_ATAPI_RX BFIN_IRQ(43) /* ATAPI RX (DMA10) Interrupt */ |
112 | #define IRQ_ATAPI_TX BFIN_IRQ(44) /* ATAPI TX (DMA11) Interrupt */ | 112 | #define IRQ_ATAPI_TX BFIN_IRQ(44) /* ATAPI TX (DMA11) Interrupt */ |
113 | #define IRQ_TWI0 BFIN_IRQ(45) /* TWI0 Interrupt */ | 113 | #define IRQ_TWI0 BFIN_IRQ(45) /* TWI0 Interrupt */ |
114 | #define IRQ_TWI1 BFIN_IRQ(46) /* TWI1 Interrupt */ | 114 | #define IRQ_TWI1 BFIN_IRQ(46) /* TWI1 Interrupt */ |
115 | #define IRQ_TWI IRQ_TWI0 /* TWI Interrupt */ | 115 | #define IRQ_CAN0_RX BFIN_IRQ(47) /* CAN0 Receive Interrupt */ |
116 | #define IRQ_CAN0_RX BFIN_IRQ(47) /* CAN0 Receive Interrupt */ | 116 | #define IRQ_CAN0_TX BFIN_IRQ(48) /* CAN0 Transmit Interrupt */ |
117 | #define IRQ_CAN0_TX BFIN_IRQ(48) /* CAN0 Transmit Interrupt */ | 117 | #define IRQ_MDMAS2 BFIN_IRQ(49) /* MDMA Stream 2 Interrupt */ |
118 | #define IRQ_MDMAS2 BFIN_IRQ(49) /* MDMA Stream 2 Interrupt */ | 118 | #define IRQ_MDMAS3 BFIN_IRQ(50) /* MDMA Stream 3 Interrupt */ |
119 | #define IRQ_MDMAS3 BFIN_IRQ(50) /* MDMA Stream 3 Interrupt */ | 119 | #define IRQ_MXVR_ERROR BFIN_IRQ(51) /* MXVR Status (Error) Interrupt */ |
120 | #define IRQ_MXVR_ERR BFIN_IRQ(51) /* MXVR Status (Error) Interrupt */ | 120 | #define IRQ_MXVR_MSG BFIN_IRQ(52) /* MXVR Message Interrupt */ |
121 | #define IRQ_MXVR_MSG BFIN_IRQ(52) /* MXVR Message Interrupt */ | 121 | #define IRQ_MXVR_PKT BFIN_IRQ(53) /* MXVR Packet Interrupt */ |
122 | #define IRQ_MXVR_PKT BFIN_IRQ(53) /* MXVR Packet Interrupt */ | 122 | #define IRQ_EPP1_ERROR BFIN_IRQ(54) /* EPPI1 Error Interrupt */ |
123 | #define IRQ_EPP1_ERR BFIN_IRQ(54) /* EPPI1 Error Interrupt */ | 123 | #define IRQ_EPP2_ERROR BFIN_IRQ(55) /* EPPI2 Error Interrupt */ |
124 | #define IRQ_EPP2_ERR BFIN_IRQ(55) /* EPPI2 Error Interrupt */ | 124 | #define IRQ_UART3_ERROR BFIN_IRQ(56) /* UART3 Status (Error) Interrupt */ |
125 | #define IRQ_UART3_ERR BFIN_IRQ(56) /* UART3 Status (Error) Interrupt */ | 125 | #define IRQ_HOST_ERROR BFIN_IRQ(57) /* HOST Status (Error) Interrupt */ |
126 | #define IRQ_HOST_ERR BFIN_IRQ(57) /* HOST Status (Error) Interrupt */ | 126 | #define IRQ_PIXC_ERROR BFIN_IRQ(59) /* PIXC Status (Error) Interrupt */ |
127 | #define IRQ_PIXC_ERR BFIN_IRQ(59) /* PIXC Status (Error) Interrupt */ | 127 | #define IRQ_NFC_ERROR BFIN_IRQ(60) /* NFC Error Interrupt */ |
128 | #define IRQ_NFC_ERR BFIN_IRQ(60) /* NFC Error Interrupt */ | 128 | #define IRQ_ATAPI_ERROR BFIN_IRQ(61) /* ATAPI Error Interrupt */ |
129 | #define IRQ_ATAPI_ERR BFIN_IRQ(61) /* ATAPI Error Interrupt */ | 129 | #define IRQ_CAN1_ERROR BFIN_IRQ(62) /* CAN1 Status (Error) Interrupt */ |
130 | #define IRQ_CAN1_ERR BFIN_IRQ(62) /* CAN1 Status (Error) Interrupt */ | 130 | #define IRQ_HS_DMA_ERROR BFIN_IRQ(63) /* Handshake DMA Status Interrupt */ |
131 | #define IRQ_HS_DMA_ERR BFIN_IRQ(63) /* Handshake DMA Status Interrupt */ | 131 | #define IRQ_PIXC_IN0 BFIN_IRQ(64) /* PIXC IN0 (DMA15) Interrupt */ |
132 | #define IRQ_PIXC_IN0 BFIN_IRQ(64) /* PIXC IN0 (DMA15) Interrupt */ | 132 | #define IRQ_PIXC_IN1 BFIN_IRQ(65) /* PIXC IN1 (DMA16) Interrupt */ |
133 | #define IRQ_PIXC_IN1 BFIN_IRQ(65) /* PIXC IN1 (DMA16) Interrupt */ | 133 | #define IRQ_PIXC_OUT BFIN_IRQ(66) /* PIXC OUT (DMA17) Interrupt */ |
134 | #define IRQ_PIXC_OUT BFIN_IRQ(66) /* PIXC OUT (DMA17) Interrupt */ | 134 | #define IRQ_SDH BFIN_IRQ(67) /* SDH/NFC (DMA22) Interrupt */ |
135 | #define IRQ_SDH BFIN_IRQ(67) /* SDH/NFC (DMA22) Interrupt */ | 135 | #define IRQ_CNT BFIN_IRQ(68) /* CNT Interrupt */ |
136 | #define IRQ_CNT BFIN_IRQ(68) /* CNT Interrupt */ | 136 | #define IRQ_KEY BFIN_IRQ(69) /* KEY Interrupt */ |
137 | #define IRQ_KEY BFIN_IRQ(69) /* KEY Interrupt */ | 137 | #define IRQ_CAN1_RX BFIN_IRQ(70) /* CAN1 RX Interrupt */ |
138 | #define IRQ_CAN1_RX BFIN_IRQ(70) /* CAN1 RX Interrupt */ | 138 | #define IRQ_CAN1_TX BFIN_IRQ(71) /* CAN1 TX Interrupt */ |
139 | #define IRQ_CAN1_TX BFIN_IRQ(71) /* CAN1 TX Interrupt */ | 139 | #define IRQ_SDH_MASK0 BFIN_IRQ(72) /* SDH Mask 0 Interrupt */ |
140 | #define IRQ_SDH_MASK0 BFIN_IRQ(72) /* SDH Mask 0 Interrupt */ | 140 | #define IRQ_SDH_MASK1 BFIN_IRQ(73) /* SDH Mask 1 Interrupt */ |
141 | #define IRQ_SDH_MASK1 BFIN_IRQ(73) /* SDH Mask 1 Interrupt */ | 141 | #define IRQ_USB_INT0 BFIN_IRQ(75) /* USB INT0 Interrupt */ |
142 | #define IRQ_USB_INT0 BFIN_IRQ(75) /* USB INT0 Interrupt */ | 142 | #define IRQ_USB_INT1 BFIN_IRQ(76) /* USB INT1 Interrupt */ |
143 | #define IRQ_USB_INT1 BFIN_IRQ(76) /* USB INT1 Interrupt */ | 143 | #define IRQ_USB_INT2 BFIN_IRQ(77) /* USB INT2 Interrupt */ |
144 | #define IRQ_USB_INT2 BFIN_IRQ(77) /* USB INT2 Interrupt */ | 144 | #define IRQ_USB_DMA BFIN_IRQ(78) /* USB DMA Interrupt */ |
145 | #define IRQ_USB_DMA BFIN_IRQ(78) /* USB DMA Interrupt */ | 145 | #define IRQ_OPTSEC BFIN_IRQ(79) /* OTPSEC Interrupt */ |
146 | #define IRQ_OPTSEC BFIN_IRQ(79) /* OTPSEC Interrupt */ | 146 | #define IRQ_TIMER0 BFIN_IRQ(86) /* Timer 0 Interrupt */ |
147 | #define IRQ_TIMER0 BFIN_IRQ(86) /* Timer 0 Interrupt */ | 147 | #define IRQ_TIMER1 BFIN_IRQ(87) /* Timer 1 Interrupt */ |
148 | #define IRQ_TIMER1 BFIN_IRQ(87) /* Timer 1 Interrupt */ | 148 | #define IRQ_TIMER2 BFIN_IRQ(88) /* Timer 2 Interrupt */ |
149 | #define IRQ_TIMER2 BFIN_IRQ(88) /* Timer 2 Interrupt */ | 149 | #define IRQ_TIMER3 BFIN_IRQ(89) /* Timer 3 Interrupt */ |
150 | #define IRQ_TIMER3 BFIN_IRQ(89) /* Timer 3 Interrupt */ | 150 | #define IRQ_TIMER4 BFIN_IRQ(90) /* Timer 4 Interrupt */ |
151 | #define IRQ_TIMER4 BFIN_IRQ(90) /* Timer 4 Interrupt */ | 151 | #define IRQ_TIMER5 BFIN_IRQ(91) /* Timer 5 Interrupt */ |
152 | #define IRQ_TIMER5 BFIN_IRQ(91) /* Timer 5 Interrupt */ | 152 | #define IRQ_TIMER6 BFIN_IRQ(92) /* Timer 6 Interrupt */ |
153 | #define IRQ_TIMER6 BFIN_IRQ(92) /* Timer 6 Interrupt */ | 153 | #define IRQ_TIMER7 BFIN_IRQ(93) /* Timer 7 Interrupt */ |
154 | #define IRQ_TIMER7 BFIN_IRQ(93) /* Timer 7 Interrupt */ | 154 | #define IRQ_PINT2 BFIN_IRQ(94) /* PINT2 Interrupt */ |
155 | #define IRQ_PINT2 BFIN_IRQ(94) /* PINT2 Interrupt */ | 155 | #define IRQ_PINT3 BFIN_IRQ(95) /* PINT3 Interrupt */ |
156 | #define IRQ_PINT3 BFIN_IRQ(95) /* PINT3 Interrupt */ | 156 | |
157 | 157 | #define SYS_IRQS IRQ_PINT3 | |
158 | #define SYS_IRQS IRQ_PINT3 | 158 | |
159 | 159 | #define BFIN_PA_IRQ(x) ((x) + SYS_IRQS + 1) | |
160 | #define BFIN_PA_IRQ(x) ((x) + SYS_IRQS + 1) | 160 | #define IRQ_PA0 BFIN_PA_IRQ(0) |
161 | #define IRQ_PA0 BFIN_PA_IRQ(0) | 161 | #define IRQ_PA1 BFIN_PA_IRQ(1) |
162 | #define IRQ_PA1 BFIN_PA_IRQ(1) | 162 | #define IRQ_PA2 BFIN_PA_IRQ(2) |
163 | #define IRQ_PA2 BFIN_PA_IRQ(2) | 163 | #define IRQ_PA3 BFIN_PA_IRQ(3) |
164 | #define IRQ_PA3 BFIN_PA_IRQ(3) | 164 | #define IRQ_PA4 BFIN_PA_IRQ(4) |
165 | #define IRQ_PA4 BFIN_PA_IRQ(4) | 165 | #define IRQ_PA5 BFIN_PA_IRQ(5) |
166 | #define IRQ_PA5 BFIN_PA_IRQ(5) | 166 | #define IRQ_PA6 BFIN_PA_IRQ(6) |
167 | #define IRQ_PA6 BFIN_PA_IRQ(6) | 167 | #define IRQ_PA7 BFIN_PA_IRQ(7) |
168 | #define IRQ_PA7 BFIN_PA_IRQ(7) | 168 | #define IRQ_PA8 BFIN_PA_IRQ(8) |
169 | #define IRQ_PA8 BFIN_PA_IRQ(8) | 169 | #define IRQ_PA9 BFIN_PA_IRQ(9) |
170 | #define IRQ_PA9 BFIN_PA_IRQ(9) | 170 | #define IRQ_PA10 BFIN_PA_IRQ(10) |
171 | #define IRQ_PA10 BFIN_PA_IRQ(10) | 171 | #define IRQ_PA11 BFIN_PA_IRQ(11) |
172 | #define IRQ_PA11 BFIN_PA_IRQ(11) | 172 | #define IRQ_PA12 BFIN_PA_IRQ(12) |
173 | #define IRQ_PA12 BFIN_PA_IRQ(12) | 173 | #define IRQ_PA13 BFIN_PA_IRQ(13) |
174 | #define IRQ_PA13 BFIN_PA_IRQ(13) | 174 | #define IRQ_PA14 BFIN_PA_IRQ(14) |
175 | #define IRQ_PA14 BFIN_PA_IRQ(14) | 175 | #define IRQ_PA15 BFIN_PA_IRQ(15) |
176 | #define IRQ_PA15 BFIN_PA_IRQ(15) | 176 | |
177 | 177 | #define BFIN_PB_IRQ(x) ((x) + IRQ_PA15 + 1) | |
178 | #define BFIN_PB_IRQ(x) ((x) + IRQ_PA15 + 1) | 178 | #define IRQ_PB0 BFIN_PB_IRQ(0) |
179 | #define IRQ_PB0 BFIN_PB_IRQ(0) | 179 | #define IRQ_PB1 BFIN_PB_IRQ(1) |
180 | #define IRQ_PB1 BFIN_PB_IRQ(1) | 180 | #define IRQ_PB2 BFIN_PB_IRQ(2) |
181 | #define IRQ_PB2 BFIN_PB_IRQ(2) | 181 | #define IRQ_PB3 BFIN_PB_IRQ(3) |
182 | #define IRQ_PB3 BFIN_PB_IRQ(3) | 182 | #define IRQ_PB4 BFIN_PB_IRQ(4) |
183 | #define IRQ_PB4 BFIN_PB_IRQ(4) | 183 | #define IRQ_PB5 BFIN_PB_IRQ(5) |
184 | #define IRQ_PB5 BFIN_PB_IRQ(5) | 184 | #define IRQ_PB6 BFIN_PB_IRQ(6) |
185 | #define IRQ_PB6 BFIN_PB_IRQ(6) | 185 | #define IRQ_PB7 BFIN_PB_IRQ(7) |
186 | #define IRQ_PB7 BFIN_PB_IRQ(7) | 186 | #define IRQ_PB8 BFIN_PB_IRQ(8) |
187 | #define IRQ_PB8 BFIN_PB_IRQ(8) | 187 | #define IRQ_PB9 BFIN_PB_IRQ(9) |
188 | #define IRQ_PB9 BFIN_PB_IRQ(9) | 188 | #define IRQ_PB10 BFIN_PB_IRQ(10) |
189 | #define IRQ_PB10 BFIN_PB_IRQ(10) | 189 | #define IRQ_PB11 BFIN_PB_IRQ(11) |
190 | #define IRQ_PB11 BFIN_PB_IRQ(11) | 190 | #define IRQ_PB12 BFIN_PB_IRQ(12) |
191 | #define IRQ_PB12 BFIN_PB_IRQ(12) | 191 | #define IRQ_PB13 BFIN_PB_IRQ(13) |
192 | #define IRQ_PB13 BFIN_PB_IRQ(13) | 192 | #define IRQ_PB14 BFIN_PB_IRQ(14) |
193 | #define IRQ_PB14 BFIN_PB_IRQ(14) | 193 | #define IRQ_PB15 BFIN_PB_IRQ(15) /* N/A */ |
194 | #define IRQ_PB15 BFIN_PB_IRQ(15) /* N/A */ | 194 | |
195 | 195 | #define BFIN_PC_IRQ(x) ((x) + IRQ_PB15 + 1) | |
196 | #define BFIN_PC_IRQ(x) ((x) + IRQ_PB15 + 1) | 196 | #define IRQ_PC0 BFIN_PC_IRQ(0) |
197 | #define IRQ_PC0 BFIN_PC_IRQ(0) | 197 | #define IRQ_PC1 BFIN_PC_IRQ(1) |
198 | #define IRQ_PC1 BFIN_PC_IRQ(1) | 198 | #define IRQ_PC2 BFIN_PC_IRQ(2) |
199 | #define IRQ_PC2 BFIN_PC_IRQ(2) | 199 | #define IRQ_PC3 BFIN_PC_IRQ(3) |
200 | #define IRQ_PC3 BFIN_PC_IRQ(3) | 200 | #define IRQ_PC4 BFIN_PC_IRQ(4) |
201 | #define IRQ_PC4 BFIN_PC_IRQ(4) | 201 | #define IRQ_PC5 BFIN_PC_IRQ(5) |
202 | #define IRQ_PC5 BFIN_PC_IRQ(5) | 202 | #define IRQ_PC6 BFIN_PC_IRQ(6) |
203 | #define IRQ_PC6 BFIN_PC_IRQ(6) | 203 | #define IRQ_PC7 BFIN_PC_IRQ(7) |
204 | #define IRQ_PC7 BFIN_PC_IRQ(7) | 204 | #define IRQ_PC8 BFIN_PC_IRQ(8) |
205 | #define IRQ_PC8 BFIN_PC_IRQ(8) | 205 | #define IRQ_PC9 BFIN_PC_IRQ(9) |
206 | #define IRQ_PC9 BFIN_PC_IRQ(9) | 206 | #define IRQ_PC10 BFIN_PC_IRQ(10) |
207 | #define IRQ_PC10 BFIN_PC_IRQ(10) | 207 | #define IRQ_PC11 BFIN_PC_IRQ(11) |
208 | #define IRQ_PC11 BFIN_PC_IRQ(11) | 208 | #define IRQ_PC12 BFIN_PC_IRQ(12) |
209 | #define IRQ_PC12 BFIN_PC_IRQ(12) | 209 | #define IRQ_PC13 BFIN_PC_IRQ(13) |
210 | #define IRQ_PC13 BFIN_PC_IRQ(13) | 210 | #define IRQ_PC14 BFIN_PC_IRQ(14) /* N/A */ |
211 | #define IRQ_PC14 BFIN_PC_IRQ(14) /* N/A */ | 211 | #define IRQ_PC15 BFIN_PC_IRQ(15) /* N/A */ |
212 | #define IRQ_PC15 BFIN_PC_IRQ(15) /* N/A */ | 212 | |
213 | 213 | #define BFIN_PD_IRQ(x) ((x) + IRQ_PC15 + 1) | |
214 | #define BFIN_PD_IRQ(x) ((x) + IRQ_PC15 + 1) | 214 | #define IRQ_PD0 BFIN_PD_IRQ(0) |
215 | #define IRQ_PD0 BFIN_PD_IRQ(0) | 215 | #define IRQ_PD1 BFIN_PD_IRQ(1) |
216 | #define IRQ_PD1 BFIN_PD_IRQ(1) | 216 | #define IRQ_PD2 BFIN_PD_IRQ(2) |
217 | #define IRQ_PD2 BFIN_PD_IRQ(2) | 217 | #define IRQ_PD3 BFIN_PD_IRQ(3) |
218 | #define IRQ_PD3 BFIN_PD_IRQ(3) | 218 | #define IRQ_PD4 BFIN_PD_IRQ(4) |
219 | #define IRQ_PD4 BFIN_PD_IRQ(4) | 219 | #define IRQ_PD5 BFIN_PD_IRQ(5) |
220 | #define IRQ_PD5 BFIN_PD_IRQ(5) | 220 | #define IRQ_PD6 BFIN_PD_IRQ(6) |
221 | #define IRQ_PD6 BFIN_PD_IRQ(6) | 221 | #define IRQ_PD7 BFIN_PD_IRQ(7) |
222 | #define IRQ_PD7 BFIN_PD_IRQ(7) | 222 | #define IRQ_PD8 BFIN_PD_IRQ(8) |
223 | #define IRQ_PD8 BFIN_PD_IRQ(8) | 223 | #define IRQ_PD9 BFIN_PD_IRQ(9) |
224 | #define IRQ_PD9 BFIN_PD_IRQ(9) | 224 | #define IRQ_PD10 BFIN_PD_IRQ(10) |
225 | #define IRQ_PD10 BFIN_PD_IRQ(10) | 225 | #define IRQ_PD11 BFIN_PD_IRQ(11) |
226 | #define IRQ_PD11 BFIN_PD_IRQ(11) | 226 | #define IRQ_PD12 BFIN_PD_IRQ(12) |
227 | #define IRQ_PD12 BFIN_PD_IRQ(12) | 227 | #define IRQ_PD13 BFIN_PD_IRQ(13) |
228 | #define IRQ_PD13 BFIN_PD_IRQ(13) | 228 | #define IRQ_PD14 BFIN_PD_IRQ(14) |
229 | #define IRQ_PD14 BFIN_PD_IRQ(14) | 229 | #define IRQ_PD15 BFIN_PD_IRQ(15) |
230 | #define IRQ_PD15 BFIN_PD_IRQ(15) | 230 | |
231 | 231 | #define BFIN_PE_IRQ(x) ((x) + IRQ_PD15 + 1) | |
232 | #define BFIN_PE_IRQ(x) ((x) + IRQ_PD15 + 1) | 232 | #define IRQ_PE0 BFIN_PE_IRQ(0) |
233 | #define IRQ_PE0 BFIN_PE_IRQ(0) | 233 | #define IRQ_PE1 BFIN_PE_IRQ(1) |
234 | #define IRQ_PE1 BFIN_PE_IRQ(1) | 234 | #define IRQ_PE2 BFIN_PE_IRQ(2) |
235 | #define IRQ_PE2 BFIN_PE_IRQ(2) | 235 | #define IRQ_PE3 BFIN_PE_IRQ(3) |
236 | #define IRQ_PE3 BFIN_PE_IRQ(3) | 236 | #define IRQ_PE4 BFIN_PE_IRQ(4) |
237 | #define IRQ_PE4 BFIN_PE_IRQ(4) | 237 | #define IRQ_PE5 BFIN_PE_IRQ(5) |
238 | #define IRQ_PE5 BFIN_PE_IRQ(5) | 238 | #define IRQ_PE6 BFIN_PE_IRQ(6) |
239 | #define IRQ_PE6 BFIN_PE_IRQ(6) | 239 | #define IRQ_PE7 BFIN_PE_IRQ(7) |
240 | #define IRQ_PE7 BFIN_PE_IRQ(7) | 240 | #define IRQ_PE8 BFIN_PE_IRQ(8) |
241 | #define IRQ_PE8 BFIN_PE_IRQ(8) | 241 | #define IRQ_PE9 BFIN_PE_IRQ(9) |
242 | #define IRQ_PE9 BFIN_PE_IRQ(9) | 242 | #define IRQ_PE10 BFIN_PE_IRQ(10) |
243 | #define IRQ_PE10 BFIN_PE_IRQ(10) | 243 | #define IRQ_PE11 BFIN_PE_IRQ(11) |
244 | #define IRQ_PE11 BFIN_PE_IRQ(11) | 244 | #define IRQ_PE12 BFIN_PE_IRQ(12) |
245 | #define IRQ_PE12 BFIN_PE_IRQ(12) | 245 | #define IRQ_PE13 BFIN_PE_IRQ(13) |
246 | #define IRQ_PE13 BFIN_PE_IRQ(13) | 246 | #define IRQ_PE14 BFIN_PE_IRQ(14) |
247 | #define IRQ_PE14 BFIN_PE_IRQ(14) | 247 | #define IRQ_PE15 BFIN_PE_IRQ(15) |
248 | #define IRQ_PE15 BFIN_PE_IRQ(15) | 248 | |
249 | 249 | #define BFIN_PF_IRQ(x) ((x) + IRQ_PE15 + 1) | |
250 | #define BFIN_PF_IRQ(x) ((x) + IRQ_PE15 + 1) | 250 | #define IRQ_PF0 BFIN_PF_IRQ(0) |
251 | #define IRQ_PF0 BFIN_PF_IRQ(0) | 251 | #define IRQ_PF1 BFIN_PF_IRQ(1) |
252 | #define IRQ_PF1 BFIN_PF_IRQ(1) | 252 | #define IRQ_PF2 BFIN_PF_IRQ(2) |
253 | #define IRQ_PF2 BFIN_PF_IRQ(2) | 253 | #define IRQ_PF3 BFIN_PF_IRQ(3) |
254 | #define IRQ_PF3 BFIN_PF_IRQ(3) | 254 | #define IRQ_PF4 BFIN_PF_IRQ(4) |
255 | #define IRQ_PF4 BFIN_PF_IRQ(4) | 255 | #define IRQ_PF5 BFIN_PF_IRQ(5) |
256 | #define IRQ_PF5 BFIN_PF_IRQ(5) | 256 | #define IRQ_PF6 BFIN_PF_IRQ(6) |
257 | #define IRQ_PF6 BFIN_PF_IRQ(6) | 257 | #define IRQ_PF7 BFIN_PF_IRQ(7) |
258 | #define IRQ_PF7 BFIN_PF_IRQ(7) | 258 | #define IRQ_PF8 BFIN_PF_IRQ(8) |
259 | #define IRQ_PF8 BFIN_PF_IRQ(8) | 259 | #define IRQ_PF9 BFIN_PF_IRQ(9) |
260 | #define IRQ_PF9 BFIN_PF_IRQ(9) | 260 | #define IRQ_PF10 BFIN_PF_IRQ(10) |
261 | #define IRQ_PF10 BFIN_PF_IRQ(10) | 261 | #define IRQ_PF11 BFIN_PF_IRQ(11) |
262 | #define IRQ_PF11 BFIN_PF_IRQ(11) | 262 | #define IRQ_PF12 BFIN_PF_IRQ(12) |
263 | #define IRQ_PF12 BFIN_PF_IRQ(12) | 263 | #define IRQ_PF13 BFIN_PF_IRQ(13) |
264 | #define IRQ_PF13 BFIN_PF_IRQ(13) | 264 | #define IRQ_PF14 BFIN_PF_IRQ(14) |
265 | #define IRQ_PF14 BFIN_PF_IRQ(14) | 265 | #define IRQ_PF15 BFIN_PF_IRQ(15) |
266 | #define IRQ_PF15 BFIN_PF_IRQ(15) | 266 | |
267 | 267 | #define BFIN_PG_IRQ(x) ((x) + IRQ_PF15 + 1) | |
268 | #define BFIN_PG_IRQ(x) ((x) + IRQ_PF15 + 1) | 268 | #define IRQ_PG0 BFIN_PG_IRQ(0) |
269 | #define IRQ_PG0 BFIN_PG_IRQ(0) | 269 | #define IRQ_PG1 BFIN_PG_IRQ(1) |
270 | #define IRQ_PG1 BFIN_PG_IRQ(1) | 270 | #define IRQ_PG2 BFIN_PG_IRQ(2) |
271 | #define IRQ_PG2 BFIN_PG_IRQ(2) | 271 | #define IRQ_PG3 BFIN_PG_IRQ(3) |
272 | #define IRQ_PG3 BFIN_PG_IRQ(3) | 272 | #define IRQ_PG4 BFIN_PG_IRQ(4) |
273 | #define IRQ_PG4 BFIN_PG_IRQ(4) | 273 | #define IRQ_PG5 BFIN_PG_IRQ(5) |
274 | #define IRQ_PG5 BFIN_PG_IRQ(5) | 274 | #define IRQ_PG6 BFIN_PG_IRQ(6) |
275 | #define IRQ_PG6 BFIN_PG_IRQ(6) | 275 | #define IRQ_PG7 BFIN_PG_IRQ(7) |
276 | #define IRQ_PG7 BFIN_PG_IRQ(7) | 276 | #define IRQ_PG8 BFIN_PG_IRQ(8) |
277 | #define IRQ_PG8 BFIN_PG_IRQ(8) | 277 | #define IRQ_PG9 BFIN_PG_IRQ(9) |
278 | #define IRQ_PG9 BFIN_PG_IRQ(9) | 278 | #define IRQ_PG10 BFIN_PG_IRQ(10) |
279 | #define IRQ_PG10 BFIN_PG_IRQ(10) | 279 | #define IRQ_PG11 BFIN_PG_IRQ(11) |
280 | #define IRQ_PG11 BFIN_PG_IRQ(11) | 280 | #define IRQ_PG12 BFIN_PG_IRQ(12) |
281 | #define IRQ_PG12 BFIN_PG_IRQ(12) | 281 | #define IRQ_PG13 BFIN_PG_IRQ(13) |
282 | #define IRQ_PG13 BFIN_PG_IRQ(13) | 282 | #define IRQ_PG14 BFIN_PG_IRQ(14) |
283 | #define IRQ_PG14 BFIN_PG_IRQ(14) | 283 | #define IRQ_PG15 BFIN_PG_IRQ(15) |
284 | #define IRQ_PG15 BFIN_PG_IRQ(15) | 284 | |
285 | 285 | #define BFIN_PH_IRQ(x) ((x) + IRQ_PG15 + 1) | |
286 | #define BFIN_PH_IRQ(x) ((x) + IRQ_PG15 + 1) | 286 | #define IRQ_PH0 BFIN_PH_IRQ(0) |
287 | #define IRQ_PH0 BFIN_PH_IRQ(0) | 287 | #define IRQ_PH1 BFIN_PH_IRQ(1) |
288 | #define IRQ_PH1 BFIN_PH_IRQ(1) | 288 | #define IRQ_PH2 BFIN_PH_IRQ(2) |
289 | #define IRQ_PH2 BFIN_PH_IRQ(2) | 289 | #define IRQ_PH3 BFIN_PH_IRQ(3) |
290 | #define IRQ_PH3 BFIN_PH_IRQ(3) | 290 | #define IRQ_PH4 BFIN_PH_IRQ(4) |
291 | #define IRQ_PH4 BFIN_PH_IRQ(4) | 291 | #define IRQ_PH5 BFIN_PH_IRQ(5) |
292 | #define IRQ_PH5 BFIN_PH_IRQ(5) | 292 | #define IRQ_PH6 BFIN_PH_IRQ(6) |
293 | #define IRQ_PH6 BFIN_PH_IRQ(6) | 293 | #define IRQ_PH7 BFIN_PH_IRQ(7) |
294 | #define IRQ_PH7 BFIN_PH_IRQ(7) | 294 | #define IRQ_PH8 BFIN_PH_IRQ(8) |
295 | #define IRQ_PH8 BFIN_PH_IRQ(8) | 295 | #define IRQ_PH9 BFIN_PH_IRQ(9) |
296 | #define IRQ_PH9 BFIN_PH_IRQ(9) | 296 | #define IRQ_PH10 BFIN_PH_IRQ(10) |
297 | #define IRQ_PH10 BFIN_PH_IRQ(10) | 297 | #define IRQ_PH11 BFIN_PH_IRQ(11) |
298 | #define IRQ_PH11 BFIN_PH_IRQ(11) | 298 | #define IRQ_PH12 BFIN_PH_IRQ(12) |
299 | #define IRQ_PH12 BFIN_PH_IRQ(12) | 299 | #define IRQ_PH13 BFIN_PH_IRQ(13) |
300 | #define IRQ_PH13 BFIN_PH_IRQ(13) | 300 | #define IRQ_PH14 BFIN_PH_IRQ(14) /* N/A */ |
301 | #define IRQ_PH14 BFIN_PH_IRQ(14) /* N/A */ | 301 | #define IRQ_PH15 BFIN_PH_IRQ(15) /* N/A */ |
302 | #define IRQ_PH15 BFIN_PH_IRQ(15) /* N/A */ | 302 | |
303 | 303 | #define BFIN_PI_IRQ(x) ((x) + IRQ_PH15 + 1) | |
304 | #define BFIN_PI_IRQ(x) ((x) + IRQ_PH15 + 1) | 304 | #define IRQ_PI0 BFIN_PI_IRQ(0) |
305 | #define IRQ_PI0 BFIN_PI_IRQ(0) | 305 | #define IRQ_PI1 BFIN_PI_IRQ(1) |
306 | #define IRQ_PI1 BFIN_PI_IRQ(1) | 306 | #define IRQ_PI2 BFIN_PI_IRQ(2) |
307 | #define IRQ_PI2 BFIN_PI_IRQ(2) | 307 | #define IRQ_PI3 BFIN_PI_IRQ(3) |
308 | #define IRQ_PI3 BFIN_PI_IRQ(3) | 308 | #define IRQ_PI4 BFIN_PI_IRQ(4) |
309 | #define IRQ_PI4 BFIN_PI_IRQ(4) | 309 | #define IRQ_PI5 BFIN_PI_IRQ(5) |
310 | #define IRQ_PI5 BFIN_PI_IRQ(5) | 310 | #define IRQ_PI6 BFIN_PI_IRQ(6) |
311 | #define IRQ_PI6 BFIN_PI_IRQ(6) | 311 | #define IRQ_PI7 BFIN_PI_IRQ(7) |
312 | #define IRQ_PI7 BFIN_PI_IRQ(7) | 312 | #define IRQ_PI8 BFIN_PI_IRQ(8) |
313 | #define IRQ_PI8 BFIN_PI_IRQ(8) | 313 | #define IRQ_PI9 BFIN_PI_IRQ(9) |
314 | #define IRQ_PI9 BFIN_PI_IRQ(9) | 314 | #define IRQ_PI10 BFIN_PI_IRQ(10) |
315 | #define IRQ_PI10 BFIN_PI_IRQ(10) | 315 | #define IRQ_PI11 BFIN_PI_IRQ(11) |
316 | #define IRQ_PI11 BFIN_PI_IRQ(11) | 316 | #define IRQ_PI12 BFIN_PI_IRQ(12) |
317 | #define IRQ_PI12 BFIN_PI_IRQ(12) | 317 | #define IRQ_PI13 BFIN_PI_IRQ(13) |
318 | #define IRQ_PI13 BFIN_PI_IRQ(13) | 318 | #define IRQ_PI14 BFIN_PI_IRQ(14) |
319 | #define IRQ_PI14 BFIN_PI_IRQ(14) | 319 | #define IRQ_PI15 BFIN_PI_IRQ(15) |
320 | #define IRQ_PI15 BFIN_PI_IRQ(15) | 320 | |
321 | 321 | #define BFIN_PJ_IRQ(x) ((x) + IRQ_PI15 + 1) | |
322 | #define BFIN_PJ_IRQ(x) ((x) + IRQ_PI15 + 1) | 322 | #define IRQ_PJ0 BFIN_PJ_IRQ(0) |
323 | #define IRQ_PJ0 BFIN_PJ_IRQ(0) | 323 | #define IRQ_PJ1 BFIN_PJ_IRQ(1) |
324 | #define IRQ_PJ1 BFIN_PJ_IRQ(1) | 324 | #define IRQ_PJ2 BFIN_PJ_IRQ(2) |
325 | #define IRQ_PJ2 BFIN_PJ_IRQ(2) | 325 | #define IRQ_PJ3 BFIN_PJ_IRQ(3) |
326 | #define IRQ_PJ3 BFIN_PJ_IRQ(3) | 326 | #define IRQ_PJ4 BFIN_PJ_IRQ(4) |
327 | #define IRQ_PJ4 BFIN_PJ_IRQ(4) | 327 | #define IRQ_PJ5 BFIN_PJ_IRQ(5) |
328 | #define IRQ_PJ5 BFIN_PJ_IRQ(5) | 328 | #define IRQ_PJ6 BFIN_PJ_IRQ(6) |
329 | #define IRQ_PJ6 BFIN_PJ_IRQ(6) | 329 | #define IRQ_PJ7 BFIN_PJ_IRQ(7) |
330 | #define IRQ_PJ7 BFIN_PJ_IRQ(7) | 330 | #define IRQ_PJ8 BFIN_PJ_IRQ(8) |
331 | #define IRQ_PJ8 BFIN_PJ_IRQ(8) | 331 | #define IRQ_PJ9 BFIN_PJ_IRQ(9) |
332 | #define IRQ_PJ9 BFIN_PJ_IRQ(9) | 332 | #define IRQ_PJ10 BFIN_PJ_IRQ(10) |
333 | #define IRQ_PJ10 BFIN_PJ_IRQ(10) | 333 | #define IRQ_PJ11 BFIN_PJ_IRQ(11) |
334 | #define IRQ_PJ11 BFIN_PJ_IRQ(11) | 334 | #define IRQ_PJ12 BFIN_PJ_IRQ(12) |
335 | #define IRQ_PJ12 BFIN_PJ_IRQ(12) | 335 | #define IRQ_PJ13 BFIN_PJ_IRQ(13) |
336 | #define IRQ_PJ13 BFIN_PJ_IRQ(13) | 336 | #define IRQ_PJ14 BFIN_PJ_IRQ(14) /* N/A */ |
337 | #define IRQ_PJ14 BFIN_PJ_IRQ(14) /* N/A */ | 337 | #define IRQ_PJ15 BFIN_PJ_IRQ(15) /* N/A */ |
338 | #define IRQ_PJ15 BFIN_PJ_IRQ(15) /* N/A */ | 338 | |
339 | #define GPIO_IRQ_BASE IRQ_PA0 | ||
339 | 340 | ||
340 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | 341 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO |
341 | #define NR_IRQS (IRQ_PJ15+1) | 342 | #define NR_IRQS (IRQ_PJ15+1) |
@@ -343,6 +344,34 @@ Events (highest priority) EMU 0 | |||
343 | #define NR_IRQS (SYS_IRQS+1) | 344 | #define NR_IRQS (SYS_IRQS+1) |
344 | #endif | 345 | #endif |
345 | 346 | ||
347 | /* For compatibility reasons with existing code */ | ||
348 | |||
349 | #define IRQ_DMAC0_ERR IRQ_DMAC0_ERROR | ||
350 | #define IRQ_EPPI0_ERR IRQ_EPPI0_ERROR | ||
351 | #define IRQ_SPORT0_ERR IRQ_SPORT0_ERROR | ||
352 | #define IRQ_SPORT1_ERR IRQ_SPORT1_ERROR | ||
353 | #define IRQ_SPI0_ERR IRQ_SPI0_ERROR | ||
354 | #define IRQ_UART0_ERR IRQ_UART0_ERROR | ||
355 | #define IRQ_DMAC1_ERR IRQ_DMAC1_ERROR | ||
356 | #define IRQ_SPORT2_ERR IRQ_SPORT2_ERROR | ||
357 | #define IRQ_SPORT3_ERR IRQ_SPORT3_ERROR | ||
358 | #define IRQ_SPI1_ERR IRQ_SPI1_ERROR | ||
359 | #define IRQ_SPI2_ERR IRQ_SPI2_ERROR | ||
360 | #define IRQ_UART1_ERR IRQ_UART1_ERROR | ||
361 | #define IRQ_UART2_ERR IRQ_UART2_ERROR | ||
362 | #define IRQ_CAN0_ERR IRQ_CAN0_ERROR | ||
363 | #define IRQ_MXVR_ERR IRQ_MXVR_ERROR | ||
364 | #define IRQ_EPP1_ERR IRQ_EPP1_ERROR | ||
365 | #define IRQ_EPP2_ERR IRQ_EPP2_ERROR | ||
366 | #define IRQ_UART3_ERR IRQ_UART3_ERROR | ||
367 | #define IRQ_HOST_ERR IRQ_HOST_ERROR | ||
368 | #define IRQ_PIXC_ERR IRQ_PIXC_ERROR | ||
369 | #define IRQ_NFC_ERR IRQ_NFC_ERROR | ||
370 | #define IRQ_ATAPI_ERR IRQ_ATAPI_ERROR | ||
371 | #define IRQ_CAN1_ERR IRQ_CAN1_ERROR | ||
372 | #define IRQ_HS_DMA_ERR IRQ_HS_DMA_ERROR | ||
373 | |||
374 | |||
346 | #define IVG7 7 | 375 | #define IVG7 7 |
347 | #define IVG8 8 | 376 | #define IVG8 8 |
348 | #define IVG9 9 | 377 | #define IVG9 9 |
diff --git a/include/asm-blackfin/mach-bf548/mem_map.h b/include/asm-blackfin/mach-bf548/mem_map.h index 72d80e8a6e81..ec1597e31831 100644 --- a/include/asm-blackfin/mach-bf548/mem_map.h +++ b/include/asm-blackfin/mach-bf548/mem_map.h | |||
@@ -51,10 +51,10 @@ | |||
51 | /* Level 1 Memory */ | 51 | /* Level 1 Memory */ |
52 | 52 | ||
53 | /* Memory Map for ADSP-BF548 processors */ | 53 | /* Memory Map for ADSP-BF548 processors */ |
54 | #ifdef CONFIG_BLKFIN_ICACHE | 54 | #ifdef CONFIG_BFIN_ICACHE |
55 | #define BLKFIN_ICACHESIZE (16*1024) | 55 | #define BFIN_ICACHESIZE (16*1024) |
56 | #else | 56 | #else |
57 | #define BLKFIN_ICACHESIZE (0*1024) | 57 | #define BFIN_ICACHESIZE (0*1024) |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | #define L1_CODE_START 0xFFA00000 | 60 | #define L1_CODE_START 0xFFA00000 |
@@ -63,29 +63,29 @@ | |||
63 | 63 | ||
64 | #define L1_CODE_LENGTH 0xC000 | 64 | #define L1_CODE_LENGTH 0xC000 |
65 | 65 | ||
66 | #ifdef CONFIG_BLKFIN_DCACHE | 66 | #ifdef CONFIG_BFIN_DCACHE |
67 | 67 | ||
68 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 68 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
69 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 69 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
70 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 70 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
71 | #define L1_DATA_B_LENGTH 0x8000 | 71 | #define L1_DATA_B_LENGTH 0x8000 |
72 | #define BLKFIN_DCACHESIZE (16*1024) | 72 | #define BFIN_DCACHESIZE (16*1024) |
73 | #define BLKFIN_DSUPBANKS 1 | 73 | #define BFIN_DSUPBANKS 1 |
74 | #else | 74 | #else |
75 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 75 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
76 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 76 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
77 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 77 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
78 | #define BLKFIN_DCACHESIZE (32*1024) | 78 | #define BFIN_DCACHESIZE (32*1024) |
79 | #define BLKFIN_DSUPBANKS 2 | 79 | #define BFIN_DSUPBANKS 2 |
80 | #endif | 80 | #endif |
81 | 81 | ||
82 | #else | 82 | #else |
83 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 83 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
84 | #define L1_DATA_A_LENGTH 0x8000 | 84 | #define L1_DATA_A_LENGTH 0x8000 |
85 | #define L1_DATA_B_LENGTH 0x8000 | 85 | #define L1_DATA_B_LENGTH 0x8000 |
86 | #define BLKFIN_DCACHESIZE (0*1024) | 86 | #define BFIN_DCACHESIZE (0*1024) |
87 | #define BLKFIN_DSUPBANKS 0 | 87 | #define BFIN_DSUPBANKS 0 |
88 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 88 | #endif /*CONFIG_BFIN_DCACHE*/ |
89 | 89 | ||
90 | /* Scratch Pad Memory */ | 90 | /* Scratch Pad Memory */ |
91 | 91 | ||
diff --git a/include/asm-blackfin/mach-bf561/anomaly.h b/include/asm-blackfin/mach-bf561/anomaly.h index f5b32d66517d..bed956456884 100644 --- a/include/asm-blackfin/mach-bf561/anomaly.h +++ b/include/asm-blackfin/mach-bf561/anomaly.h | |||
@@ -1,184 +1,256 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | * File: include/asm-blackfin/mach-bf561/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf561/anomaly.h |
4 | * Based on: | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
5 | * Author: | ||
6 | * | ||
7 | * Created: | ||
8 | * Description: | ||
9 | * | ||
10 | * Rev: | ||
11 | * | ||
12 | * Modified: | ||
13 | * | ||
14 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
15 | * | 4 | * |
16 | * This program is free software; you can redistribute it and/or modify | 5 | * Copyright (C) 2004-2007 Analog Devices Inc. |
17 | * it under the terms of the GNU General Public License as published by | 6 | * Licensed under the GPL-2 or later. |
18 | * the Free Software Foundation; either version 2, or (at your option) | ||
19 | * any later version. | ||
20 | * | ||
21 | * This program is distributed in the hope that it will be useful, | ||
22 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
23 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
24 | * GNU General Public License for more details. | ||
25 | * | ||
26 | * You should have received a copy of the GNU General Public License | ||
27 | * along with this program; see the file COPYING. | ||
28 | * If not, write to the Free Software Foundation, | ||
29 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
30 | */ | 7 | */ |
31 | 8 | ||
32 | /* This file shoule be up to date with: | 9 | /* This file shoule be up to date with: |
33 | * - Revision L, 10Aug2006; ADSP-BF561 Silicon Anomaly List | 10 | * - Revision N, March 28, 2007; ADSP-BF561 Silicon Anomaly List |
34 | */ | 11 | */ |
35 | 12 | ||
36 | #ifndef _MACH_ANOMALY_H_ | 13 | #ifndef _MACH_ANOMALY_H_ |
37 | #define _MACH_ANOMALY_H_ | 14 | #define _MACH_ANOMALY_H_ |
38 | 15 | ||
39 | /* We do not support 0.1 or 0.4 silicon - sorry */ | 16 | /* We do not support 0.1, 0.2, or 0.4 silicon - sorry */ |
40 | #if (defined(CONFIG_BF_REV_0_1) || defined(CONFIG_BF_REV_0_2) || defined(CONFIG_BF_REV_0_4)) | 17 | #if __SILICON_REVISION__ < 3 || __SILICON_REVISION__ == 4 |
41 | #error Kernel will not work on BF561 Version 0.1, 0.2, or 0.4 | 18 | # error Kernel will not work on BF561 silicon version 0.0, 0.1, 0.2, or 0.4 |
42 | #endif | 19 | #endif |
43 | 20 | ||
44 | /* Issues that are common to 0.5 and 0.3 silicon */ | 21 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot 2 Not Supported */ |
45 | #if (defined(CONFIG_BF_REV_0_5) || defined(CONFIG_BF_REV_0_3)) | 22 | #define ANOMALY_05000074 (1) |
46 | #define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in | 23 | /* UART Line Status Register (UART_LSR) Bits Are Not Updated at the Same Time */ |
47 | slot1 and store of a P register in slot 2 is not | 24 | #define ANOMALY_05000099 (__SILICON_REVISION__ < 5) |
48 | supported */ | 25 | /* Trace Buffers may contain errors in emulation mode and/or exception, NMI, reset handlers */ |
49 | #define ANOMALY_05000099 /* UART Line Status Register (UART_LSR) bits are not | 26 | #define ANOMALY_05000116 (__SILICON_REVISION__ < 3) |
50 | updated at the same time. */ | 27 | /* Testset instructions restricted to 32-bit aligned memory locations */ |
51 | #define ANOMALY_05000120 /* Testset instructions restricted to 32-bit aligned | 28 | #define ANOMALY_05000120 (1) |
52 | memory locations */ | 29 | /* Rx.H Cannot Be Used to Access 16-bit System MMR Registers */ |
53 | #define ANOMALY_05000122 /* Rx.H cannot be used to access 16-bit System MMR | 30 | #define ANOMALY_05000122 (1) |
54 | registers */ | 31 | /* Erroneous exception when enabling cache */ |
55 | #define ANOMALY_05000127 /* Signbits instruction not functional under certain | 32 | #define ANOMALY_05000125 (__SILICON_REVISION__ < 3) |
56 | conditions */ | 33 | /* Signbits instruction not functional under certain conditions */ |
57 | #define ANOMALY_05000149 /* IMDMA S1/D1 channel may stall */ | 34 | #define ANOMALY_05000127 (1) |
58 | #define ANOMALY_05000166 /* PPI Data Lengths Between 8 and 16 do not zero out | 35 | /* Two bits in the Watchpoint Status Register (WPSTAT) are swapped */ |
59 | upper bits */ | 36 | #define ANOMALY_05000134 (__SILICON_REVISION__ < 3) |
60 | #define ANOMALY_05000167 /* Turning Serial Ports on With External Frame Syncs */ | 37 | /* Enable wires from the Data Watchpoint Address Control Register (WPDACTL) are swapped */ |
61 | #define ANOMALY_05000180 /* PPI_DELAY not functional in PPI modes with 0 frame | 38 | #define ANOMALY_05000135 (__SILICON_REVISION__ < 3) |
62 | syncs */ | 39 | /* Stall in multi-unit DMA operations */ |
63 | #define ANOMALY_05000182 /* IMDMA does not operate to full speed for 600MHz | 40 | #define ANOMALY_05000136 (__SILICON_REVISION__ < 3) |
64 | and higher devices */ | 41 | /* Allowing the SPORT RX FIFO to fill will cause an overflow */ |
65 | #define ANOMALY_05000187 /* IMDMA Corrupted Data after a Halt */ | 42 | #define ANOMALY_05000140 (__SILICON_REVISION__ < 3) |
66 | #define ANOMALY_05000190 /* PPI not functional at core voltage < 1Volt */ | 43 | /* Infinite Stall may occur with a particular sequence of consecutive dual dag events */ |
67 | #define ANOMALY_05000208 /* VSTAT status bit in PLL_STAT register is not | 44 | #define ANOMALY_05000141 (__SILICON_REVISION__ < 3) |
68 | functional */ | 45 | /* Interrupts may be lost when a programmable input flag is configured to be edge sensitive */ |
69 | #define ANOMALY_05000245 /* Spurious Hardware Error from an access in the | 46 | #define ANOMALY_05000142 (__SILICON_REVISION__ < 3) |
70 | shadow of a conditional branch */ | 47 | /* DMA and TESTSET conflict when both are accessing external memory */ |
71 | #define ANOMALY_05000257 /* Interrupt/Exception during short hardware loop | 48 | #define ANOMALY_05000144 (__SILICON_REVISION__ < 3) |
72 | may cause bad instruction fetches */ | 49 | /* In PWM_OUT mode, you must enable the PPI block to generate a waveform from PPI_CLK */ |
73 | #define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on | 50 | #define ANOMALY_05000145 (__SILICON_REVISION__ < 3) |
74 | external SPORT TX and RX clocks */ | 51 | /* MDMA may lose the first few words of a descriptor chain */ |
75 | #define ANOMALY_05000267 /* IMDMA may corrupt data under certain conditions */ | 52 | #define ANOMALY_05000146 (__SILICON_REVISION__ < 3) |
76 | #define ANOMALY_05000269 /* High I/O activity causes output voltage of internal | 53 | /* Source MDMA descriptor may stop with a DMA Error near beginning of descriptor fetch */ |
77 | voltage regulator (VDDint) to increase */ | 54 | #define ANOMALY_05000147 (__SILICON_REVISION__ < 3) |
78 | #define ANOMALY_05000270 /* High I/O activity causes output voltage of internal | 55 | /* IMDMA S1/D1 channel may stall */ |
79 | voltage regulator (VDDint) to decrease */ | 56 | #define ANOMALY_05000149 (1) |
80 | #define ANOMALY_05000272 /* Certain data cache write through modes fail for | 57 | /* DMA engine may lose data due to incorrect handshaking */ |
81 | VDDint <=0.9V */ | 58 | #define ANOMALY_05000150 (__SILICON_REVISION__ < 3) |
82 | #define ANOMALY_05000274 /* Data cache write back to external synchronous memory | 59 | /* DMA stalls when all three controllers read data from the same source */ |
83 | may be lost */ | 60 | #define ANOMALY_05000151 (__SILICON_REVISION__ < 3) |
84 | #define ANOMALY_05000275 /* PPI Timing and sampling informaton updates */ | 61 | /* Execution stall when executing in L2 and doing external accesses */ |
85 | #define ANOMALY_05000312 /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC | 62 | #define ANOMALY_05000152 (__SILICON_REVISION__ < 3) |
86 | registers are interrupted */ | 63 | /* Frame Delay in SPORT Multichannel Mode */ |
64 | #define ANOMALY_05000153 (__SILICON_REVISION__ < 3) | ||
65 | /* SPORT TFS signal stays active in multichannel mode outside of valid channels */ | ||
66 | #define ANOMALY_05000154 (__SILICON_REVISION__ < 3) | ||
67 | /* Timers in PWM-Out Mode with PPI GP Receive (Input) Mode with 0 Frame Syncs */ | ||
68 | #define ANOMALY_05000156 (__SILICON_REVISION__ < 4) | ||
69 | /* Killed 32-bit MMR write leads to next system MMR access thinking it should be 32-bit */ | ||
70 | #define ANOMALY_05000157 (__SILICON_REVISION__ < 3) | ||
71 | /* DMA Lock-up at CCLK to SCLK ratios of 4:1, 2:1, or 1:1 */ | ||
72 | #define ANOMALY_05000159 (__SILICON_REVISION__ < 3) | ||
73 | /* A read from external memory may return a wrong value with data cache enabled */ | ||
74 | #define ANOMALY_05000160 (__SILICON_REVISION__ < 3) | ||
75 | /* Data Cache Fill data can be corrupted after/during Instruction DMA if certain core stalls exist */ | ||
76 | #define ANOMALY_05000161 (__SILICON_REVISION__ < 3) | ||
77 | /* DMEM_CONTROL<12> is not set on Reset */ | ||
78 | #define ANOMALY_05000162 (__SILICON_REVISION__ < 3) | ||
79 | /* SPORT transmit data is not gated by external frame sync in certain conditions */ | ||
80 | #define ANOMALY_05000163 (__SILICON_REVISION__ < 3) | ||
81 | /* PPI Data Lengths Between 8 and 16 Do Not Zero Out Upper Bits */ | ||
82 | #define ANOMALY_05000166 (1) | ||
83 | /* Turning Serial Ports on with External Frame Syncs */ | ||
84 | #define ANOMALY_05000167 (1) | ||
85 | /* SDRAM auto-refresh and subsequent Power Ups */ | ||
86 | #define ANOMALY_05000168 (__SILICON_REVISION__ < 5) | ||
87 | /* DATA CPLB page miss can result in lost write-through cache data writes */ | ||
88 | #define ANOMALY_05000169 (__SILICON_REVISION__ < 5) | ||
89 | /* Boot-ROM code modifies SICA_IWRx wakeup registers */ | ||
90 | #define ANOMALY_05000171 (__SILICON_REVISION__ < 5) | ||
91 | /* DSPID register values incorrect */ | ||
92 | #define ANOMALY_05000172 (__SILICON_REVISION__ < 3) | ||
93 | /* DMA vs Core accesses to external memory */ | ||
94 | #define ANOMALY_05000173 (__SILICON_REVISION__ < 3) | ||
95 | /* Cache Fill Buffer Data lost */ | ||
96 | #define ANOMALY_05000174 (__SILICON_REVISION__ < 5) | ||
97 | /* Overlapping Sequencer and Memory Stalls */ | ||
98 | #define ANOMALY_05000175 (__SILICON_REVISION__ < 5) | ||
99 | /* Multiplication of (-1) by (-1) followed by an accumulator saturation */ | ||
100 | #define ANOMALY_05000176 (__SILICON_REVISION__ < 5) | ||
101 | /* PPI_COUNT Cannot Be Programmed to 0 in General Purpose TX or RX Modes */ | ||
102 | #define ANOMALY_05000179 (__SILICON_REVISION__ < 5) | ||
103 | /* PPI_DELAY Not Functional in PPI Modes with 0 Frame Syncs */ | ||
104 | #define ANOMALY_05000180 (1) | ||
105 | /* Disabling the PPI resets the PPI configuration registers */ | ||
106 | #define ANOMALY_05000181 (__SILICON_REVISION__ < 5) | ||
107 | /* IMDMA does not operate to full speed for 600MHz and higher devices */ | ||
108 | #define ANOMALY_05000182 (1) | ||
109 | /* Timer Pin limitations for PPI TX Modes with External Frame Syncs */ | ||
110 | #define ANOMALY_05000184 (__SILICON_REVISION__ < 5) | ||
111 | /* PPI TX Mode with 2 External Frame Syncs */ | ||
112 | #define ANOMALY_05000185 (__SILICON_REVISION__ < 5) | ||
113 | /* PPI packing with Data Length greater than 8 bits (not a meaningful mode) */ | ||
114 | #define ANOMALY_05000186 (__SILICON_REVISION__ < 5) | ||
115 | /* IMDMA Corrupted Data after a Halt */ | ||
116 | #define ANOMALY_05000187 (1) | ||
117 | /* IMDMA Restrictions on Descriptor and Buffer Placement in Memory */ | ||
118 | #define ANOMALY_05000188 (__SILICON_REVISION__ < 5) | ||
119 | /* False Protection Exceptions */ | ||
120 | #define ANOMALY_05000189 (__SILICON_REVISION__ < 5) | ||
121 | /* PPI not functional at core voltage < 1Volt */ | ||
122 | #define ANOMALY_05000190 (1) | ||
123 | /* PPI does not invert the Driving PPICLK edge in Transmit Modes */ | ||
124 | #define ANOMALY_05000191 (__SILICON_REVISION__ < 3) | ||
125 | /* False I/O Pin Interrupts on Edge-Sensitive Inputs When Polarity Setting Is Changed */ | ||
126 | #define ANOMALY_05000193 (__SILICON_REVISION__ < 5) | ||
127 | /* Restarting SPORT in Specific Modes May Cause Data Corruption */ | ||
128 | #define ANOMALY_05000194 (__SILICON_REVISION__ < 5) | ||
129 | /* Failing MMR Accesses When Stalled by Preceding Memory Read */ | ||
130 | #define ANOMALY_05000198 (__SILICON_REVISION__ < 5) | ||
131 | /* Current DMA Address Shows Wrong Value During Carry Fix */ | ||
132 | #define ANOMALY_05000199 (__SILICON_REVISION__ < 5) | ||
133 | /* SPORT TFS and DT Are Incorrectly Driven During Inactive Channels in Certain Conditions */ | ||
134 | #define ANOMALY_05000200 (__SILICON_REVISION__ < 5) | ||
135 | /* Possible Infinite Stall with Specific Dual-DAG Situation */ | ||
136 | #define ANOMALY_05000202 (__SILICON_REVISION__ < 5) | ||
137 | /* Incorrect data read with write-through cache and allocate cache lines on reads only mode */ | ||
138 | #define ANOMALY_05000204 (__SILICON_REVISION__ < 5) | ||
139 | /* Specific sequence that can cause DMA error or DMA stopping */ | ||
140 | #define ANOMALY_05000205 (__SILICON_REVISION__ < 5) | ||
141 | /* Recovery from "Brown-Out" Condition */ | ||
142 | #define ANOMALY_05000207 (__SILICON_REVISION__ < 5) | ||
143 | /* VSTAT Status Bit in PLL_STAT Register Is Not Functional */ | ||
144 | #define ANOMALY_05000208 (1) | ||
145 | /* Speed Path in Computational Unit Affects Certain Instructions */ | ||
146 | #define ANOMALY_05000209 (__SILICON_REVISION__ < 5) | ||
147 | /* UART TX Interrupt Masked Erroneously */ | ||
148 | #define ANOMALY_05000215 (__SILICON_REVISION__ < 5) | ||
149 | /* NMI Event at Boot Time Results in Unpredictable State */ | ||
150 | #define ANOMALY_05000219 (__SILICON_REVISION__ < 5) | ||
151 | /* Data Corruption with Cached External Memory and Non-Cached On-Chip L2 Memory */ | ||
152 | #define ANOMALY_05000220 (__SILICON_REVISION__ < 5) | ||
153 | /* Incorrect Pulse-Width of UART Start Bit */ | ||
154 | #define ANOMALY_05000225 (__SILICON_REVISION__ < 5) | ||
155 | /* Scratchpad Memory Bank Reads May Return Incorrect Data */ | ||
156 | #define ANOMALY_05000227 (__SILICON_REVISION__ < 5) | ||
157 | /* UART Receiver is Less Robust Against Baudrate Differences in Certain Conditions */ | ||
158 | #define ANOMALY_05000230 (__SILICON_REVISION__ < 5) | ||
159 | /* UART STB Bit Incorrectly Affects Receiver Setting */ | ||
160 | #define ANOMALY_05000231 (__SILICON_REVISION__ < 5) | ||
161 | /* SPORT data transmit lines are incorrectly driven in multichannel mode */ | ||
162 | #define ANOMALY_05000232 (__SILICON_REVISION__ < 5) | ||
163 | /* DF Bit in PLL_CTL Register Does Not Respond to Hardware Reset */ | ||
164 | #define ANOMALY_05000242 (__SILICON_REVISION__ < 5) | ||
165 | /* If I-Cache Is On, CSYNC/SSYNC/IDLE Around Change of Control Causes Failures */ | ||
166 | #define ANOMALY_05000244 (__SILICON_REVISION__ < 5) | ||
167 | /* Spurious Hardware Error from an Access in the Shadow of a Conditional Branch */ | ||
168 | #define ANOMALY_05000245 (__SILICON_REVISION__ < 5) | ||
169 | /* TESTSET operation forces stall on the other core */ | ||
170 | #define ANOMALY_05000248 (__SILICON_REVISION__ < 5) | ||
171 | /* Incorrect Bit Shift of Data Word in Multichannel (TDM) Mode in Certain Conditions */ | ||
172 | #define ANOMALY_05000250 (__SILICON_REVISION__ > 2 && __SILICON_REVISION__ < 5) | ||
173 | /* Exception Not Generated for MMR Accesses in Reserved Region */ | ||
174 | #define ANOMALY_05000251 (__SILICON_REVISION__ < 5) | ||
175 | /* Maximum External Clock Speed for Timers */ | ||
176 | #define ANOMALY_05000253 (__SILICON_REVISION__ < 5) | ||
177 | /* Incorrect Timer Pulse Width in Single-Shot PWM_OUT Mode with External Clock */ | ||
178 | #define ANOMALY_05000254 (__SILICON_REVISION__ > 3) | ||
179 | /* Interrupt/Exception During Short Hardware Loop May Cause Bad Instruction Fetches */ | ||
180 | #define ANOMALY_05000257 (__SILICON_REVISION__ < 5) | ||
181 | /* Instruction Cache Is Corrupted When Bits 9 and 12 of the ICPLB Data Registers Differ */ | ||
182 | #define ANOMALY_05000258 (__SILICON_REVISION__ < 5) | ||
183 | /* ICPLB_STATUS MMR Register May Be Corrupted */ | ||
184 | #define ANOMALY_05000260 (__SILICON_REVISION__ < 5) | ||
185 | /* DCPLB_FAULT_ADDR MMR Register May Be Corrupted */ | ||
186 | #define ANOMALY_05000261 (__SILICON_REVISION__ < 5) | ||
187 | /* Stores To Data Cache May Be Lost */ | ||
188 | #define ANOMALY_05000262 (__SILICON_REVISION__ < 5) | ||
189 | /* Hardware Loop Corrupted When Taking an ICPLB Exception */ | ||
190 | #define ANOMALY_05000263 (__SILICON_REVISION__ < 5) | ||
191 | /* CSYNC/SSYNC/IDLE Causes Infinite Stall in Penultimate Instruction in Hardware Loop */ | ||
192 | #define ANOMALY_05000264 (__SILICON_REVISION__ < 5) | ||
193 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | ||
194 | #define ANOMALY_05000265 (__SILICON_REVISION__ < 5) | ||
195 | /* IMDMA destination IRQ status must be read prior to using IMDMA */ | ||
196 | #define ANOMALY_05000266 (__SILICON_REVISION__ > 3) | ||
197 | /* IMDMA may corrupt data under certain conditions */ | ||
198 | #define ANOMALY_05000267 (1) | ||
199 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Increase */ | ||
200 | #define ANOMALY_05000269 (1) | ||
201 | /* High I/O Activity Causes Output Voltage of Internal Voltage Regulator (Vddint) to Decrease */ | ||
202 | #define ANOMALY_05000270 (1) | ||
203 | /* Certain Data Cache Writethrough Modes Fail for Vddint <= 0.9V */ | ||
204 | #define ANOMALY_05000272 (1) | ||
205 | /* Data cache write back to external synchronous memory may be lost */ | ||
206 | #define ANOMALY_05000274 (1) | ||
207 | /* PPI Timing and Sampling Information Updates */ | ||
208 | #define ANOMALY_05000275 (__SILICON_REVISION__ > 2) | ||
209 | /* Timing Requirements Change for External Frame Sync PPI Modes with Non-Zero PPI_DELAY */ | ||
210 | #define ANOMALY_05000276 (__SILICON_REVISION__ < 5) | ||
211 | /* Disabling Peripherals with DMA Running May Cause DMA System Instability */ | ||
212 | #define ANOMALY_05000278 (__SILICON_REVISION__ < 5) | ||
213 | /* False Hardware Error Exception When ISR Context Is Not Restored */ | ||
214 | #define ANOMALY_05000281 (__SILICON_REVISION__ < 5) | ||
215 | /* System MMR Write Is Stalled Indefinitely When Killed in a Particular Stage */ | ||
216 | #define ANOMALY_05000283 (1) | ||
217 | /* A read will receive incorrect data under certain conditions */ | ||
218 | #define ANOMALY_05000287 (__SILICON_REVISION__ < 5) | ||
219 | /* SPORTs May Receive Bad Data If FIFOs Fill Up */ | ||
220 | #define ANOMALY_05000288 (__SILICON_REVISION__ < 5) | ||
221 | /* Memory-To-Memory DMA Source/Destination Descriptors Must Be in Same Memory Space */ | ||
222 | #define ANOMALY_05000301 (1) | ||
223 | /* SSYNCs After Writes To DMA MMR Registers May Not Be Handled Correctly */ | ||
224 | #define ANOMALY_05000302 (1) | ||
225 | /* New Feature: Additional Hysteresis on SPORT Input Pins (Not Available On Older Silicon) */ | ||
226 | #define ANOMALY_05000305 (__SILICON_REVISION__ < 5) | ||
227 | /* SCKELOW Bit Does Not Maintain State Through Hibernate */ | ||
228 | #define ANOMALY_05000307 (__SILICON_REVISION__ < 5) | ||
229 | /* False Hardware Errors Caused by Fetches at the Boundary of Reserved Memory */ | ||
230 | #define ANOMALY_05000310 (1) | ||
231 | /* Errors When SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | ||
232 | #define ANOMALY_05000312 (1) | ||
233 | /* PPI Is Level-Sensitive on First Transfer */ | ||
234 | #define ANOMALY_05000313 (1) | ||
235 | /* Killed System MMR Write Completes Erroneously On Next System MMR Access */ | ||
236 | #define ANOMALY_05000315 (1) | ||
237 | /* PF2 Output Remains Asserted After SPI Master Boot */ | ||
238 | #define ANOMALY_05000320 (__SILICON_REVISION__ > 3) | ||
239 | /* Erroneous GPIO Flag Pin Operations Under Specific Sequences */ | ||
240 | #define ANOMALY_05000323 (1) | ||
241 | /* SPORT Secondary Receive Channel Not Functional When Word Length Exceeds 16 Bits */ | ||
242 | #define ANOMALY_05000326 (__SILICON_REVISION__ > 3) | ||
243 | /* New Feature: 24-Bit SPI Boot Mode Support (Not Available On Older Silicon) */ | ||
244 | #define ANOMALY_05000331 (__SILICON_REVISION__ < 5) | ||
245 | /* New Feature: Slave SPI Boot Mode Supported (Not Available On Older Silicon) */ | ||
246 | #define ANOMALY_05000332 (__SILICON_REVISION__ < 5) | ||
247 | /* Flag Data Register Writes One SCLK Cycle After Edge Is Detected May Clear Interrupt Status */ | ||
248 | #define ANOMALY_05000333 (__SILICON_REVISION__ < 5) | ||
87 | 249 | ||
88 | #endif /* (defined(CONFIG_BF_REV_0_5) || defined(CONFIG_BF_REV_0_3)) */ | 250 | /* Anomalies that don't exist on this proc */ |
251 | #define ANOMALY_05000158 (0) | ||
252 | #define ANOMALY_05000183 (0) | ||
253 | #define ANOMALY_05000273 (0) | ||
254 | #define ANOMALY_05000311 (0) | ||
89 | 255 | ||
90 | #if (defined(CONFIG_BF_REV_0_5)) | ||
91 | #define ANOMALY_05000254 /* Incorrect Timer Pulse Width in Single-Shot PWM_OUT | ||
92 | mode with external clock */ | ||
93 | #define ANOMALY_05000266 /* IMDMA destination IRQ status must be read prior to | ||
94 | using IMDMA */ | ||
95 | #endif | 256 | #endif |
96 | |||
97 | #if (defined(CONFIG_BF_REV_0_3)) | ||
98 | #define ANOMALY_05000156 /* Timers in PWM-Out Mode with PPI GP Receive (Input) | ||
99 | Mode with 0 Frame Syncs */ | ||
100 | #define ANOMALY_05000168 /* SDRAM auto-refresh and subsequent Power Ups */ | ||
101 | #define ANOMALY_05000169 /* DATA CPLB page miss can result in lost write-through | ||
102 | cache data writes */ | ||
103 | #define ANOMALY_05000171 /* Boot-ROM code modifies SICA_IWRx wakeup registers */ | ||
104 | #define ANOMALY_05000174 /* Cache Fill Buffer Data lost */ | ||
105 | #define ANOMALY_05000175 /* Overlapping Sequencer and Memory Stalls */ | ||
106 | #define ANOMALY_05000176 /* Multiplication of (-1) by (-1) followed by an | ||
107 | accumulator saturation */ | ||
108 | #define ANOMALY_05000179 /* PPI_COUNT cannot be programmed to 0 in General | ||
109 | Purpose TX or RX modes */ | ||
110 | #define ANOMALY_05000181 /* Disabling the PPI resets the PPI configuration | ||
111 | registers */ | ||
112 | #define ANOMALY_05000184 /* Timer Pin limitations for PPI TX Modes with | ||
113 | External Frame Syncs */ | ||
114 | #define ANOMALY_05000185 /* PPI TX Mode with 2 External Frame Syncs */ | ||
115 | #define ANOMALY_05000186 /* PPI packing with Data Length greater than 8 bits | ||
116 | (not a meaningful mode) */ | ||
117 | #define ANOMALY_05000188 /* IMDMA Restrictions on Descriptor and Buffer | ||
118 | Placement in Memory */ | ||
119 | #define ANOMALY_05000189 /* False Protection Exception */ | ||
120 | #define ANOMALY_05000193 /* False Flag Pin Interrupts on Edge Sensitive Inputs | ||
121 | when polarity setting is changed */ | ||
122 | #define ANOMALY_05000194 /* Restarting SPORT in specific modes may cause data | ||
123 | corruption */ | ||
124 | #define ANOMALY_05000198 /* Failing MMR accesses when stalled by preceding | ||
125 | memory read */ | ||
126 | #define ANOMALY_05000199 /* DMA current address shows wrong value during carry | ||
127 | fix */ | ||
128 | #define ANOMALY_05000200 /* SPORT TFS and DT are incorrectly driven during | ||
129 | inactive channels in certain conditions */ | ||
130 | #define ANOMALY_05000202 /* Possible infinite stall with specific dual-DAG | ||
131 | situation */ | ||
132 | #define ANOMALY_05000204 /* Incorrect data read with write-through cache and | ||
133 | allocate cache lines on reads only mode */ | ||
134 | #define ANOMALY_05000205 /* Specific sequence that can cause DMA error or DMA | ||
135 | stopping */ | ||
136 | #define ANOMALY_05000207 /* Recovery from "brown-out" condition */ | ||
137 | #define ANOMALY_05000209 /* Speed-Path in computational unit affects certain | ||
138 | instructions */ | ||
139 | #define ANOMALY_05000215 /* UART TX Interrupt masked erroneously */ | ||
140 | #define ANOMALY_05000219 /* NMI event at boot time results in unpredictable | ||
141 | state */ | ||
142 | #define ANOMALY_05000220 /* Data Corruption with Cached External Memory and | ||
143 | Non-Cached On-Chip L2 Memory */ | ||
144 | #define ANOMALY_05000225 /* Incorrect pulse-width of UART start-bit */ | ||
145 | #define ANOMALY_05000227 /* Scratchpad memory bank reads may return incorrect | ||
146 | data */ | ||
147 | #define ANOMALY_05000230 /* UART Receiver is less robust against Baudrate | ||
148 | Differences in certain Conditions */ | ||
149 | #define ANOMALY_05000231 /* UART STB bit incorrectly affects receiver setting */ | ||
150 | #define ANOMALY_05000232 /* SPORT data transmit lines are incorrectly driven in | ||
151 | multichannel mode */ | ||
152 | #define ANOMALY_05000242 /* DF bit in PLL_CTL register does not respond to | ||
153 | hardware reset */ | ||
154 | #define ANOMALY_05000244 /* If i-cache is on, CSYNC/SSYNC/IDLE around Change of | ||
155 | Control causes failures */ | ||
156 | #define ANOMALY_05000248 /* TESTSET operation forces stall on the other core */ | ||
157 | #define ANOMALY_05000250 /* Incorrect Bit-Shift of Data Word in Multichannel | ||
158 | (TDM) mode in certain conditions */ | ||
159 | #define ANOMALY_05000251 /* Exception not generated for MMR accesses in | ||
160 | reserved region */ | ||
161 | #define ANOMALY_05000253 /* Maximum external clock speed for Timers */ | ||
162 | #define ANOMALY_05000258 /* Instruction Cache is corrupted when bits 9 and 12 | ||
163 | of the ICPLB Data registers differ */ | ||
164 | #define ANOMALY_05000260 /* ICPLB_STATUS MMR register may be corrupted */ | ||
165 | #define ANOMALY_05000261 /* DCPLB_FAULT_ADDR MMR register may be corrupted */ | ||
166 | #define ANOMALY_05000262 /* Stores to data cache may be lost */ | ||
167 | #define ANOMALY_05000263 /* Hardware loop corrupted when taking an ICPLB | ||
168 | exception */ | ||
169 | #define ANOMALY_05000264 /* CSYNC/SSYNC/IDLE causes infinite stall in second | ||
170 | to last instruction in hardware loop */ | ||
171 | #define ANOMALY_05000276 /* Timing requirements change for External Frame | ||
172 | Sync PPI Modes with non-zero PPI_DELAY */ | ||
173 | #define ANOMALY_05000278 /* Disabling Peripherals with DMA running may cause | ||
174 | DMA system instability */ | ||
175 | #define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is | ||
176 | not restored */ | ||
177 | #define ANOMALY_05000283 /* An MMR write is stalled indefinitely when killed | ||
178 | in a particular stage */ | ||
179 | #define ANOMALY_05000287 /* A read will receive incorrect data under certain | ||
180 | conditions */ | ||
181 | #define ANOMALY_05000288 /* SPORTs may receive bad data if FIFOs fill up */ | ||
182 | #endif | ||
183 | |||
184 | #endif /* _MACH_ANOMALY_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf561/bf561.h b/include/asm-blackfin/mach-bf561/bf561.h index 96a5d3a47e45..17e1d5dcef02 100644 --- a/include/asm-blackfin/mach-bf561/bf561.h +++ b/include/asm-blackfin/mach-bf561/bf561.h | |||
@@ -73,13 +73,13 @@ | |||
73 | */ | 73 | */ |
74 | 74 | ||
75 | 75 | ||
76 | #define BLKFIN_ISUBBANKS 4 | 76 | #define BFIN_ISUBBANKS 4 |
77 | #define BLKFIN_IWAYS 4 | 77 | #define BFIN_IWAYS 4 |
78 | #define BLKFIN_ILINES 32 | 78 | #define BFIN_ILINES 32 |
79 | 79 | ||
80 | #define BLKFIN_DSUBBANKS 4 | 80 | #define BFIN_DSUBBANKS 4 |
81 | #define BLKFIN_DWAYS 2 | 81 | #define BFIN_DWAYS 2 |
82 | #define BLKFIN_DLINES 64 | 82 | #define BFIN_DLINES 64 |
83 | 83 | ||
84 | #define WAY0_L 0x1 | 84 | #define WAY0_L 0x1 |
85 | #define WAY1_L 0x2 | 85 | #define WAY1_L 0x2 |
@@ -230,93 +230,6 @@ | |||
230 | 230 | ||
231 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO | V_B0PEN | V_B1PEN | V_B2PEN | V_B3PEN | 0x0002) | 231 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO | V_B0PEN | V_B1PEN | V_B2PEN | V_B3PEN | 0x0002) |
232 | 232 | ||
233 | #define MAX_VC 600000000 | ||
234 | #define MIN_VC 50000000 | ||
235 | |||
236 | /******************************* PLL Settings ********************************/ | ||
237 | #ifdef CONFIG_BFIN_KERNEL_CLOCK | ||
238 | #if (CONFIG_VCO_MULT < 0) | ||
239 | #error "VCO Multiplier is less than 0. Please select a different value" | ||
240 | #endif | ||
241 | |||
242 | #if (CONFIG_VCO_MULT == 0) | ||
243 | #error "VCO Multiplier should be greater than 0. Please select a different value" | ||
244 | #endif | ||
245 | |||
246 | #ifndef CONFIG_CLKIN_HALF | ||
247 | #define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
248 | #else | ||
249 | #define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
250 | #endif | ||
251 | |||
252 | #ifndef CONFIG_PLL_BYPASS | ||
253 | #define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
254 | #define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
255 | #else | ||
256 | #define CONFIG_CCLK_HZ CONFIG_CLKIN_HZ | ||
257 | #define CONFIG_SCLK_HZ CONFIG_CLKIN_HZ | ||
258 | #endif | ||
259 | |||
260 | #if (CONFIG_SCLK_DIV < 1) | ||
261 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
262 | #endif | ||
263 | |||
264 | #if (CONFIG_SCLK_DIV > 15) | ||
265 | #error "SCLK DIV cannot be less than 1 or more than 15. Please select a proper value" | ||
266 | #endif | ||
267 | |||
268 | #if (CONFIG_CCLK_DIV != 1) | ||
269 | #if (CONFIG_CCLK_DIV != 2) | ||
270 | #if (CONFIG_CCLK_DIV != 4) | ||
271 | #if (CONFIG_CCLK_DIV != 8) | ||
272 | #error "CCLK DIV can be 1,2,4 or 8 only. Please select a proper value" | ||
273 | #endif | ||
274 | #endif | ||
275 | #endif | ||
276 | #endif | ||
277 | |||
278 | #if (CONFIG_VCO_HZ > MAX_VC) | ||
279 | #error "VCO selected is more than maximum value. Please change the VCO multipler" | ||
280 | #endif | ||
281 | |||
282 | #if (CONFIG_SCLK_HZ > 133000000) | ||
283 | #error "Sclk value selected is more than maximum. Please select a proper value for SCLK multiplier" | ||
284 | #endif | ||
285 | |||
286 | #if (CONFIG_SCLK_HZ < 27000000) | ||
287 | #error "Sclk value selected is less than minimum. Please select a proper value for SCLK multiplier" | ||
288 | #endif | ||
289 | |||
290 | #if (CONFIG_SCLK_HZ >= CONFIG_CCLK_HZ) | ||
291 | #if (CONFIG_SCLK_HZ != CONFIG_CLKIN_HZ) | ||
292 | #if (CONFIG_CCLK_HZ != CONFIG_CLKIN_HZ) | ||
293 | #error "Please select sclk less than cclk" | ||
294 | #endif | ||
295 | #endif | ||
296 | #endif | ||
297 | |||
298 | #if (CONFIG_CCLK_DIV == 1) | ||
299 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
300 | #endif | ||
301 | #if (CONFIG_CCLK_DIV == 2) | ||
302 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
303 | #endif | ||
304 | #if (CONFIG_CCLK_DIV == 4) | ||
305 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
306 | #endif | ||
307 | #if (CONFIG_CCLK_DIV == 8) | ||
308 | #define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
309 | #endif | ||
310 | #ifndef CONFIG_CCLK_ACT_DIV | ||
311 | #define CONFIG_CCLK_ACT_DIV CONFIG_CCLK_DIV_not_defined_properly | ||
312 | #endif | ||
313 | |||
314 | #if defined(ANOMALY_05000273) && (CONFIG_CCLK_DIV == 1) | ||
315 | #error ANOMALY 05000273, please make sure CCLK is at least 2x SCLK | ||
316 | #endif | ||
317 | |||
318 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | ||
319 | |||
320 | #ifdef CONFIG_BF561 | 233 | #ifdef CONFIG_BF561 |
321 | #define CPU "BF561" | 234 | #define CPU "BF561" |
322 | #define CPUID 0x027bb000 | 235 | #define CPUID 0x027bb000 |
@@ -326,83 +239,4 @@ | |||
326 | #define CPUID 0x0 | 239 | #define CPUID 0x0 |
327 | #endif | 240 | #endif |
328 | 241 | ||
329 | #if (CONFIG_MEM_SIZE % 4) | ||
330 | #error "SDRAM memory size must be a multiple of 4MB!" | ||
331 | #endif | ||
332 | #define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) | ||
333 | #define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) | ||
334 | #define L1_IMEMORY ( CPLB_USER_RD | CPLB_VALID | CPLB_LOCK) | ||
335 | #define SDRAM_INON_CHBL ( CPLB_USER_RD | CPLB_VALID) | ||
336 | |||
337 | /*Use the menuconfig cache policy here - CONFIG_BLKFIN_WT/CONFIG_BLKFIN_WB*/ | ||
338 | |||
339 | #define ANOMALY_05000158_WORKAROUND 0x200 | ||
340 | #ifdef CONFIG_BLKFIN_WB /*Write Back Policy */ | ||
341 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_DIRTY \ | ||
342 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
343 | #else /*Write Through */ | ||
344 | #define SDRAM_DGENERIC (CPLB_L1_CHBL | CPLB_WT | CPLB_L1_AOW | CPLB_DIRTY \ | ||
345 | | CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND) | ||
346 | #endif | ||
347 | |||
348 | |||
349 | #define L1_DMEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
350 | #define SDRAM_DNON_CHBL (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
351 | #define SDRAM_EBIU (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
352 | #define SDRAM_OOPS (CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_LOCK | CPLB_DIRTY) | ||
353 | |||
354 | #define L2_MEMORY (CPLB_SUPV_WR | CPLB_USER_WR | CPLB_USER_RD | CPLB_VALID | ANOMALY_05000158_WORKAROUND | CPLB_DIRTY) | ||
355 | |||
356 | #define SIZE_1K 0x00000400 /* 1K */ | ||
357 | #define SIZE_4K 0x00001000 /* 4K */ | ||
358 | #define SIZE_1M 0x00100000 /* 1M */ | ||
359 | #define SIZE_4M 0x00400000 /* 4M */ | ||
360 | |||
361 | #define MAX_CPLBS (16 * 2) | ||
362 | |||
363 | /* | ||
364 | * Number of required data CPLB switchtable entries | ||
365 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
366 | * approx 16 for smaller 1MB page size CPLBs for allignment purposes | ||
367 | * 1 for L1 Data Memory | ||
368 | * 1 for L2 Data Memory | ||
369 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
370 | * 64 for ASYNC Memory | ||
371 | */ | ||
372 | |||
373 | |||
374 | #define MAX_SWITCH_D_CPLBS (((CONFIG_MEM_SIZE / 4) + 16 + 1 + 1 + 1 + 64) * 2) | ||
375 | |||
376 | /* | ||
377 | * Number of required instruction CPLB switchtable entries | ||
378 | * MEMSIZE / 4 (we mostly install 4M page size CPLBs | ||
379 | * approx 12 for smaller 1MB page size CPLBs for allignment purposes | ||
380 | * 1 for L1 Instruction Memory | ||
381 | * 1 for L2 Instruction Memory | ||
382 | * 1 for CONFIG_DEBUG_HUNT_FOR_ZERO | ||
383 | */ | ||
384 | |||
385 | #define MAX_SWITCH_I_CPLBS (((CONFIG_MEM_SIZE / 4) + 12 + 1 + 1 + 1) * 2) | ||
386 | |||
387 | #if 0 /* comment by mhfan */ | ||
388 | /* Event Vector Table Address */ | ||
389 | #define EVT_EMULATION_ADDR 0xffe02000 | ||
390 | #define EVT_RESET_ADDR 0xffe02004 | ||
391 | #define EVT_NMI_ADDR 0xffe02008 | ||
392 | #define EVT_EXCEPTION_ADDR 0xffe0200c | ||
393 | #define EVT_GLOBAL_INT_ENB_ADDR 0xffe02010 | ||
394 | #define EVT_HARDWARE_ERROR_ADDR 0xffe02014 | ||
395 | #define EVT_TIMER_ADDR 0xffe02018 | ||
396 | #define EVT_IVG7_ADDR 0xffe0201c | ||
397 | #define EVT_IVG8_ADDR 0xffe02020 | ||
398 | #define EVT_IVG9_ADDR 0xffe02024 | ||
399 | #define EVT_IVG10_ADDR 0xffe02028 | ||
400 | #define EVT_IVG11_ADDR 0xffe0202c | ||
401 | #define EVT_IVG12_ADDR 0xffe02030 | ||
402 | #define EVT_IVG13_ADDR 0xffe02034 | ||
403 | #define EVT_IVG14_ADDR 0xffe02038 | ||
404 | #define EVT_IVG15_ADDR 0xffe0203c | ||
405 | #define EVT_OVERRIDE_ADDR 0xffe02100 | ||
406 | #endif /* comment by mhfan */ | ||
407 | |||
408 | #endif /* __MACH_BF561_H__ */ | 242 | #endif /* __MACH_BF561_H__ */ |
diff --git a/include/asm-blackfin/mach-bf561/blackfin.h b/include/asm-blackfin/mach-bf561/blackfin.h index 2537c845e8b0..562aee39895c 100644 --- a/include/asm-blackfin/mach-bf561/blackfin.h +++ b/include/asm-blackfin/mach-bf561/blackfin.h | |||
@@ -38,7 +38,7 @@ | |||
38 | #include "defBF561.h" | 38 | #include "defBF561.h" |
39 | #include "anomaly.h" | 39 | #include "anomaly.h" |
40 | 40 | ||
41 | #if !(defined(__ASSEMBLY__) || defined(ASSEMBLY)) | 41 | #if !defined(__ASSEMBLY__) |
42 | #include "cdefBF561.h" | 42 | #include "cdefBF561.h" |
43 | #endif | 43 | #endif |
44 | 44 | ||
diff --git a/include/asm-blackfin/mach-bf561/cdefBF561.h b/include/asm-blackfin/mach-bf561/cdefBF561.h index 73d4d65249cd..d667816486c0 100644 --- a/include/asm-blackfin/mach-bf561/cdefBF561.h +++ b/include/asm-blackfin/mach-bf561/cdefBF561.h | |||
@@ -31,11 +31,8 @@ | |||
31 | #ifndef _CDEF_BF561_H | 31 | #ifndef _CDEF_BF561_H |
32 | #define _CDEF_BF561_H | 32 | #define _CDEF_BF561_H |
33 | 33 | ||
34 | /* | 34 | #include <asm/blackfin.h> |
35 | #if !defined(__ADSPBF561__) | 35 | |
36 | #warning cdefBF561.h should only be included for BF561 chip. | ||
37 | #endif | ||
38 | */ | ||
39 | /* include all Core registers and bit definitions */ | 36 | /* include all Core registers and bit definitions */ |
40 | #include "defBF561.h" | 37 | #include "defBF561.h" |
41 | 38 | ||
@@ -67,7 +64,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
67 | bfin_write32(SICA_IWR1, 0); | 64 | bfin_write32(SICA_IWR1, 0); |
68 | 65 | ||
69 | bfin_write16(VR_CTL, val); | 66 | bfin_write16(VR_CTL, val); |
70 | __builtin_bfin_ssync(); | 67 | SSYNC(); |
71 | 68 | ||
72 | local_irq_save(flags); | 69 | local_irq_save(flags); |
73 | asm("IDLE;"); | 70 | asm("IDLE;"); |
diff --git a/include/asm-blackfin/mach-bf561/defBF561.h b/include/asm-blackfin/mach-bf561/defBF561.h index 0f2dc6e6335b..bf7dc4e00065 100644 --- a/include/asm-blackfin/mach-bf561/defBF561.h +++ b/include/asm-blackfin/mach-bf561/defBF561.h | |||
@@ -120,6 +120,7 @@ | |||
120 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ | 120 | #define UART_GCTL 0xFFC00424 /* Global Control Register */ |
121 | 121 | ||
122 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ | 122 | /* SPI Controller (0xFFC00500 - 0xFFC005FF) */ |
123 | #define SPI0_REGBASE 0xFFC00500 | ||
123 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ | 124 | #define SPI_CTL 0xFFC00500 /* SPI Control Register */ |
124 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ | 125 | #define SPI_FLG 0xFFC00504 /* SPI Flag register */ |
125 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ | 126 | #define SPI_STAT 0xFFC00508 /* SPI Status register */ |
diff --git a/include/asm-blackfin/mach-bf561/irq.h b/include/asm-blackfin/mach-bf561/irq.h index a753ce720d74..12789927db3d 100644 --- a/include/asm-blackfin/mach-bf561/irq.h +++ b/include/asm-blackfin/mach-bf561/irq.h | |||
@@ -289,6 +289,8 @@ | |||
289 | #define IRQ_PF46 119 | 289 | #define IRQ_PF46 119 |
290 | #define IRQ_PF47 120 | 290 | #define IRQ_PF47 120 |
291 | 291 | ||
292 | #define GPIO_IRQ_BASE IRQ_PF0 | ||
293 | |||
292 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | 294 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO |
293 | #define NR_IRQS (IRQ_PF47 + 1) | 295 | #define NR_IRQS (IRQ_PF47 + 1) |
294 | #else | 296 | #else |
diff --git a/include/asm-blackfin/mach-bf561/mem_map.h b/include/asm-blackfin/mach-bf561/mem_map.h index ebac9a8d838d..f7ac09cf2c3d 100644 --- a/include/asm-blackfin/mach-bf561/mem_map.h +++ b/include/asm-blackfin/mach-bf561/mem_map.h | |||
@@ -21,10 +21,10 @@ | |||
21 | 21 | ||
22 | /* Level 1 Memory */ | 22 | /* Level 1 Memory */ |
23 | 23 | ||
24 | #ifdef CONFIG_BLKFIN_CACHE | 24 | #ifdef CONFIG_BFIN_ICACHE |
25 | #define BLKFIN_ICACHESIZE (16*1024) | 25 | #define BFIN_ICACHESIZE (16*1024) |
26 | #else | 26 | #else |
27 | #define BLKFIN_ICACHESIZE (0*1024) | 27 | #define BFIN_ICACHESIZE (0*1024) |
28 | #endif | 28 | #endif |
29 | 29 | ||
30 | /* Memory Map for ADSP-BF561 processors */ | 30 | /* Memory Map for ADSP-BF561 processors */ |
@@ -36,29 +36,29 @@ | |||
36 | 36 | ||
37 | #define L1_CODE_LENGTH 0x4000 | 37 | #define L1_CODE_LENGTH 0x4000 |
38 | 38 | ||
39 | #ifdef CONFIG_BLKFIN_DCACHE | 39 | #ifdef CONFIG_BFIN_DCACHE |
40 | 40 | ||
41 | #ifdef CONFIG_BLKFIN_DCACHE_BANKA | 41 | #ifdef CONFIG_BFIN_DCACHE_BANKA |
42 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | 42 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) |
43 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 43 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
44 | #define L1_DATA_B_LENGTH 0x8000 | 44 | #define L1_DATA_B_LENGTH 0x8000 |
45 | #define BLKFIN_DCACHESIZE (16*1024) | 45 | #define BFIN_DCACHESIZE (16*1024) |
46 | #define BLKFIN_DSUPBANKS 1 | 46 | #define BFIN_DSUPBANKS 1 |
47 | #else | 47 | #else |
48 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | 48 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) |
49 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | 49 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) |
50 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | 50 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) |
51 | #define BLKFIN_DCACHESIZE (32*1024) | 51 | #define BFIN_DCACHESIZE (32*1024) |
52 | #define BLKFIN_DSUPBANKS 2 | 52 | #define BFIN_DSUPBANKS 2 |
53 | #endif | 53 | #endif |
54 | 54 | ||
55 | #else | 55 | #else |
56 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | 56 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) |
57 | #define L1_DATA_A_LENGTH 0x8000 | 57 | #define L1_DATA_A_LENGTH 0x8000 |
58 | #define L1_DATA_B_LENGTH 0x8000 | 58 | #define L1_DATA_B_LENGTH 0x8000 |
59 | #define BLKFIN_DCACHESIZE (0*1024) | 59 | #define BFIN_DCACHESIZE (0*1024) |
60 | #define BLKFIN_DSUPBANKS 0 | 60 | #define BFIN_DSUPBANKS 0 |
61 | #endif /*CONFIG_BLKFIN_DCACHE*/ | 61 | #endif /*CONFIG_BFIN_DCACHE*/ |
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | /* Level 2 Memory */ | 64 | /* Level 2 Memory */ |
diff --git a/include/asm-blackfin/mach-bf561/portmux.h b/include/asm-blackfin/mach-bf561/portmux.h index 10d11d5ffe23..132ad31665e3 100644 --- a/include/asm-blackfin/mach-bf561/portmux.h +++ b/include/asm-blackfin/mach-bf561/portmux.h | |||
@@ -81,7 +81,7 @@ | |||
81 | #define P_TMR1 (P_DEFINED | P_IDENT(GPIO_PF1)) | 81 | #define P_TMR1 (P_DEFINED | P_IDENT(GPIO_PF1)) |
82 | #define P_TMR0 (P_DEFINED | P_IDENT(GPIO_PF0)) | 82 | #define P_TMR0 (P_DEFINED | P_IDENT(GPIO_PF0)) |
83 | #define P_SPI0_MOSI (P_DONTCARE) | 83 | #define P_SPI0_MOSI (P_DONTCARE) |
84 | #define P_SPI0_MIS0 (P_DONTCARE) | 84 | #define P_SPI0_MISO (P_DONTCARE) |
85 | #define P_SPI0_SCK (P_DONTCARE) | 85 | #define P_SPI0_SCK (P_DONTCARE) |
86 | 86 | ||
87 | #endif /* _MACH_PORTMUX_H_ */ | 87 | #endif /* _MACH_PORTMUX_H_ */ |
diff --git a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h b/include/asm-blackfin/mach-common/cdef_LPBlackfin.h index 94ed381e5606..ede210eca4ec 100644 --- a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h +++ b/include/asm-blackfin/mach-common/cdef_LPBlackfin.h | |||
@@ -39,7 +39,7 @@ | |||
39 | #define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS) | 39 | #define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS) |
40 | #define bfin_write_SRAM_BASE_ADDRESS(val) bfin_write32(SRAM_BASE_ADDRESS,val) | 40 | #define bfin_write_SRAM_BASE_ADDRESS(val) bfin_write32(SRAM_BASE_ADDRESS,val) |
41 | #define bfin_read_DMEM_CONTROL() bfin_read32(DMEM_CONTROL) | 41 | #define bfin_read_DMEM_CONTROL() bfin_read32(DMEM_CONTROL) |
42 | #ifdef ANOMALY_05000125 | 42 | #if ANOMALY_05000125 |
43 | extern void bfin_write_DMEM_CONTROL(unsigned int val); | 43 | extern void bfin_write_DMEM_CONTROL(unsigned int val); |
44 | #else | 44 | #else |
45 | #define bfin_write_DMEM_CONTROL(val) bfin_write32(DMEM_CONTROL,val) | 45 | #define bfin_write_DMEM_CONTROL(val) bfin_write32(DMEM_CONTROL,val) |
@@ -129,7 +129,7 @@ extern void bfin_write_DMEM_CONTROL(unsigned int val); | |||
129 | #define DTEST_DATA3 0xFFE0040C | 129 | #define DTEST_DATA3 0xFFE0040C |
130 | */ | 130 | */ |
131 | #define bfin_read_IMEM_CONTROL() bfin_read32(IMEM_CONTROL) | 131 | #define bfin_read_IMEM_CONTROL() bfin_read32(IMEM_CONTROL) |
132 | #ifdef ANOMALY_05000125 | 132 | #if ANOMALY_05000125 |
133 | extern void bfin_write_IMEM_CONTROL(unsigned int val); | 133 | extern void bfin_write_IMEM_CONTROL(unsigned int val); |
134 | #else | 134 | #else |
135 | #define bfin_write_IMEM_CONTROL(val) bfin_write32(IMEM_CONTROL,val) | 135 | #define bfin_write_IMEM_CONTROL(val) bfin_write32(IMEM_CONTROL,val) |
diff --git a/include/asm-blackfin/mach-common/clocks.h b/include/asm-blackfin/mach-common/clocks.h new file mode 100644 index 000000000000..033bba92d61c --- /dev/null +++ b/include/asm-blackfin/mach-common/clocks.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/mach-common/clocks.h | ||
3 | * Based on: include/asm-blackfin/mach-bf537/bf537.h | ||
4 | * Author: Robin Getz <rgetz@blackfin.uclinux.org> | ||
5 | * | ||
6 | * Created: 25Jul07 | ||
7 | * Description: Common Clock definitions for various kernel files | ||
8 | * | ||
9 | * Modified: | ||
10 | * Copyright 2004-2007 Analog Devices Inc. | ||
11 | * | ||
12 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License as published by | ||
16 | * the Free Software Foundation; either version 2 of the License, or | ||
17 | * (at your option) any later version. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, | ||
20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | * GNU General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, see the file COPYING, or write | ||
26 | * to the Free Software Foundation, Inc., | ||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
28 | */ | ||
29 | |||
30 | #ifndef _BFIN_CLOCKS_H | ||
31 | #define _BFIN_CLOCKS_H | ||
32 | |||
33 | #ifdef CONFIG_CCLK_DIV_1 | ||
34 | # define CONFIG_CCLK_ACT_DIV CCLK_DIV1 | ||
35 | # define CONFIG_CCLK_DIV 1 | ||
36 | #endif | ||
37 | |||
38 | #ifdef CONFIG_CCLK_DIV_2 | ||
39 | # define CONFIG_CCLK_ACT_DIV CCLK_DIV2 | ||
40 | # define CONFIG_CCLK_DIV 2 | ||
41 | #endif | ||
42 | |||
43 | #ifdef CONFIG_CCLK_DIV_4 | ||
44 | # define CONFIG_CCLK_ACT_DIV CCLK_DIV4 | ||
45 | # define CONFIG_CCLK_DIV 4 | ||
46 | #endif | ||
47 | |||
48 | #ifdef CONFIG_CCLK_DIV_8 | ||
49 | # define CONFIG_CCLK_ACT_DIV CCLK_DIV8 | ||
50 | # define CONFIG_CCLK_DIV 8 | ||
51 | #endif | ||
52 | |||
53 | #ifndef CONFIG_PLL_BYPASS | ||
54 | # ifndef CONFIG_CLKIN_HALF | ||
55 | # define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT) | ||
56 | # else | ||
57 | # define CONFIG_VCO_HZ ((CONFIG_CLKIN_HZ * CONFIG_VCO_MULT)/2) | ||
58 | # endif | ||
59 | |||
60 | # define CONFIG_CCLK_HZ (CONFIG_VCO_HZ/CONFIG_CCLK_DIV) | ||
61 | # define CONFIG_SCLK_HZ (CONFIG_VCO_HZ/CONFIG_SCLK_DIV) | ||
62 | |||
63 | #else | ||
64 | # define CONFIG_VCO_HZ (CONFIG_CLKIN_HZ) | ||
65 | # define CONFIG_CCLK_HZ (CONFIG_CLKIN_HZ) | ||
66 | # define CONFIG_SCLK_HZ (CONFIG_CLKIN_HZ) | ||
67 | # define CONFIG_VCO_MULT 0 | ||
68 | #endif | ||
69 | |||
70 | #endif | ||
diff --git a/include/asm-blackfin/mach-common/def_LPBlackfin.h b/include/asm-blackfin/mach-common/def_LPBlackfin.h index be1ece8c0c27..c1d8c4a78fcf 100644 --- a/include/asm-blackfin/mach-common/def_LPBlackfin.h +++ b/include/asm-blackfin/mach-common/def_LPBlackfin.h | |||
@@ -33,81 +33,77 @@ | |||
33 | 33 | ||
34 | #include <asm/mach/anomaly.h> | 34 | #include <asm/mach/anomaly.h> |
35 | 35 | ||
36 | /*#if !defined(__ADSPLPBLACKFIN__) | ||
37 | #warning def_LPBlackfin.h should only be included for 532 compatible chips. | ||
38 | #endif | ||
39 | */ | ||
40 | |||
41 | #define MK_BMSK_(x) (1<<x) | 36 | #define MK_BMSK_(x) (1<<x) |
42 | 37 | ||
43 | #if defined(ANOMALY_05000198) | 38 | #ifndef __ASSEMBLY__ |
44 | |||
45 | #define bfin_read8(addr) ({ unsigned char __v; \ | ||
46 | __asm__ __volatile__ ("NOP;\n\t" \ | ||
47 | "%0 = b[%1] (z);\n\t" \ | ||
48 | : "=d"(__v) : "a"(addr)); \ | ||
49 | __v; }) | ||
50 | |||
51 | #define bfin_read16(addr) ({ unsigned __v; \ | ||
52 | __asm__ __volatile__ ("NOP;\n\t"\ | ||
53 | "%0 = w[%1] (z);\n\t"\ | ||
54 | : "=d"(__v) : "a"(addr)); (unsigned short)__v; }) | ||
55 | |||
56 | #define bfin_read32(addr) ({ unsigned __v; \ | ||
57 | __asm__ __volatile__ ("NOP;\n\t"\ | ||
58 | "%0 = [%1];\n\t"\ | ||
59 | : "=d"(__v) : "a"(addr)); __v; }) | ||
60 | |||
61 | #define bfin_write8(addr, val) ({ \ | ||
62 | __asm__ __volatile__ ("NOP;\n\t" \ | ||
63 | "b[%0] = %1;\n\t" \ | ||
64 | : : "a"(addr), "d"(val) : "memory");}) | ||
65 | 39 | ||
66 | #define bfin_write16(addr,val) ({\ | 40 | #include <linux/types.h> |
67 | __asm__ __volatile__ ("NOP;\n\t"\ | ||
68 | "w[%0] = %1;\n\t"\ | ||
69 | : : "a"(addr) , "d"(val) : "memory");}) | ||
70 | |||
71 | #define bfin_write32(addr,val) ({\ | ||
72 | __asm__ __volatile__ ("NOP;\n\t"\ | ||
73 | "[%0] = %1;\n\t"\ | ||
74 | : : "a"(addr) , "d"(val) : "memory");}) | ||
75 | 41 | ||
42 | #if ANOMALY_05000198 | ||
43 | # define NOP_PAD_ANOMALY_05000198 "nop;" | ||
76 | #else | 44 | #else |
77 | 45 | # define NOP_PAD_ANOMALY_05000198 | |
78 | #define bfin_read8(addr) ({ unsigned char __v; \ | ||
79 | __asm__ __volatile__ ( \ | ||
80 | "%0 = b[%1] (z);\n\t" \ | ||
81 | :"=d"(__v) : "a"(addr)); \ | ||
82 | __v; }) | ||
83 | |||
84 | #define bfin_read16(addr) ({ unsigned __v; \ | ||
85 | __asm__ __volatile__ (\ | ||
86 | "%0 = w[%1] (z);\n\t"\ | ||
87 | : "=d"(__v) : "a"(addr)); (unsigned short)__v; }) | ||
88 | |||
89 | #define bfin_read32(addr) ({ unsigned __v; \ | ||
90 | __asm__ __volatile__ (\ | ||
91 | "%0 = [%1];\n\t"\ | ||
92 | : "=d"(__v) : "a"(addr)); __v; }) | ||
93 | |||
94 | #define bfin_write8(addr, val) ({ \ | ||
95 | __asm__ __volatile__ ( \ | ||
96 | "b[%0] = %1; \n\t" \ | ||
97 | ::"a"(addr), "d"(val) : "memory");}) | ||
98 | |||
99 | #define bfin_write16(addr,val) ({\ | ||
100 | __asm__ __volatile__ (\ | ||
101 | "w[%0] = %1;\n\t"\ | ||
102 | : : "a"(addr) , "d"(val) : "memory");}) | ||
103 | |||
104 | #define bfin_write32(addr,val) ({\ | ||
105 | __asm__ __volatile__ (\ | ||
106 | "[%0] = %1;\n\t"\ | ||
107 | : : "a"(addr) , "d"(val) : "memory");}) | ||
108 | |||
109 | #endif | 46 | #endif |
110 | 47 | ||
48 | #define bfin_read8(addr) ({ \ | ||
49 | uint8_t __v; \ | ||
50 | __asm__ __volatile__( \ | ||
51 | NOP_PAD_ANOMALY_05000198 \ | ||
52 | "%0 = b[%1] (z);" \ | ||
53 | : "=d" (__v) \ | ||
54 | : "a" (addr) \ | ||
55 | ); \ | ||
56 | __v; }) | ||
57 | |||
58 | #define bfin_read16(addr) ({ \ | ||
59 | uint16_t __v; \ | ||
60 | __asm__ __volatile__( \ | ||
61 | NOP_PAD_ANOMALY_05000198 \ | ||
62 | "%0 = w[%1] (z);" \ | ||
63 | : "=d" (__v) \ | ||
64 | : "a" (addr) \ | ||
65 | ); \ | ||
66 | __v; }) | ||
67 | |||
68 | #define bfin_read32(addr) ({ \ | ||
69 | uint32_t __v; \ | ||
70 | __asm__ __volatile__( \ | ||
71 | NOP_PAD_ANOMALY_05000198 \ | ||
72 | "%0 = [%1];" \ | ||
73 | : "=d" (__v) \ | ||
74 | : "a" (addr) \ | ||
75 | ); \ | ||
76 | __v; }) | ||
77 | |||
78 | #define bfin_write8(addr, val) \ | ||
79 | __asm__ __volatile__( \ | ||
80 | NOP_PAD_ANOMALY_05000198 \ | ||
81 | "b[%0] = %1;" \ | ||
82 | : \ | ||
83 | : "a" (addr), "d" (val) \ | ||
84 | : "memory" \ | ||
85 | ) | ||
86 | |||
87 | #define bfin_write16(addr, val) \ | ||
88 | __asm__ __volatile__( \ | ||
89 | NOP_PAD_ANOMALY_05000198 \ | ||
90 | "w[%0] = %1;" \ | ||
91 | : \ | ||
92 | : "a" (addr), "d" (val) \ | ||
93 | : "memory" \ | ||
94 | ) | ||
95 | |||
96 | #define bfin_write32(addr, val) \ | ||
97 | __asm__ __volatile__( \ | ||
98 | NOP_PAD_ANOMALY_05000198 \ | ||
99 | "[%0] = %1;" \ | ||
100 | : \ | ||
101 | : "a" (addr), "d" (val) \ | ||
102 | : "memory" \ | ||
103 | ) | ||
104 | |||
105 | #endif /* __ASSEMBLY__ */ | ||
106 | |||
111 | /************************************************** | 107 | /************************************************** |
112 | * System Register Bits | 108 | * System Register Bits |
113 | **************************************************/ | 109 | **************************************************/ |
@@ -643,6 +639,7 @@ | |||
643 | #define CPLB_USER_RD 0x00000004 /* 0=no read access, 1=read access | 639 | #define CPLB_USER_RD 0x00000004 /* 0=no read access, 1=read access |
644 | * allowed (user mode) | 640 | * allowed (user mode) |
645 | */ | 641 | */ |
642 | |||
646 | #define PAGE_SIZE_1KB 0x00000000 /* 1 KB page size */ | 643 | #define PAGE_SIZE_1KB 0x00000000 /* 1 KB page size */ |
647 | #define PAGE_SIZE_4KB 0x00010000 /* 4 KB page size */ | 644 | #define PAGE_SIZE_4KB 0x00010000 /* 4 KB page size */ |
648 | #define PAGE_SIZE_1MB 0x00020000 /* 1 MB page size */ | 645 | #define PAGE_SIZE_1MB 0x00020000 /* 1 MB page size */ |
@@ -675,6 +672,8 @@ | |||
675 | */ | 672 | */ |
676 | #define CPLB_WT 0x00004000 /* 0=write-back, 1=write-through */ | 673 | #define CPLB_WT 0x00004000 /* 0=write-back, 1=write-through */ |
677 | 674 | ||
675 | #define CPLB_ALL_ACCESS CPLB_SUPV_WR | CPLB_USER_RD | CPLB_USER_WR | ||
676 | |||
678 | /* TBUFCTL Masks */ | 677 | /* TBUFCTL Masks */ |
679 | #define TBUFPWR 0x0001 | 678 | #define TBUFPWR 0x0001 |
680 | #define TBUFEN 0x0002 | 679 | #define TBUFEN 0x0002 |
diff --git a/include/asm-blackfin/pgtable.h b/include/asm-blackfin/pgtable.h index 5a8f9e431c40..b11b114689c0 100644 --- a/include/asm-blackfin/pgtable.h +++ b/include/asm-blackfin/pgtable.h | |||
@@ -4,7 +4,7 @@ | |||
4 | #include <asm-generic/4level-fixup.h> | 4 | #include <asm-generic/4level-fixup.h> |
5 | 5 | ||
6 | #include <asm/page.h> | 6 | #include <asm/page.h> |
7 | #include <asm/cplb.h> | 7 | #include <asm/mach-common/def_LPBlackfin.h> |
8 | 8 | ||
9 | typedef pte_t *pte_addr_t; | 9 | typedef pte_t *pte_addr_t; |
10 | /* | 10 | /* |
diff --git a/include/asm-blackfin/reboot.h b/include/asm-blackfin/reboot.h new file mode 100644 index 000000000000..6d448b5f5985 --- /dev/null +++ b/include/asm-blackfin/reboot.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * include/asm-blackfin/reboot.h - shutdown/reboot header | ||
3 | * | ||
4 | * Copyright 2004-2007 Analog Devices Inc. | ||
5 | * | ||
6 | * Licensed under the GPL-2 or later. | ||
7 | */ | ||
8 | |||
9 | #ifndef __ASM_REBOOT_H__ | ||
10 | #define __ASM_REBOOT_H__ | ||
11 | |||
12 | /* optional board specific hooks */ | ||
13 | extern void native_machine_restart(char *cmd); | ||
14 | extern void native_machine_halt(void); | ||
15 | extern void native_machine_power_off(void); | ||
16 | |||
17 | /* common reboot workarounds */ | ||
18 | extern void bfin_gpio_reset_spi0_ssel1(void); | ||
19 | |||
20 | #endif | ||
diff --git a/include/asm-blackfin/system.h b/include/asm-blackfin/system.h index 5e5f1a0566c0..2b3d47d0bbb6 100644 --- a/include/asm-blackfin/system.h +++ b/include/asm-blackfin/system.h | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include <linux/linkage.h> | 37 | #include <linux/linkage.h> |
38 | #include <linux/compiler.h> | 38 | #include <linux/compiler.h> |
39 | #include <asm/mach/anomaly.h> | ||
39 | 40 | ||
40 | /* | 41 | /* |
41 | * Interrupt configuring macros. | 42 | * Interrupt configuring macros. |
@@ -43,53 +44,60 @@ | |||
43 | 44 | ||
44 | extern unsigned long irq_flags; | 45 | extern unsigned long irq_flags; |
45 | 46 | ||
46 | #define local_irq_enable() do { \ | 47 | #define local_irq_enable() \ |
47 | __asm__ __volatile__ ( \ | 48 | __asm__ __volatile__( \ |
48 | "sti %0;" \ | 49 | "sti %0;" \ |
49 | ::"d"(irq_flags)); \ | 50 | : \ |
50 | } while (0) | 51 | : "d" (irq_flags) \ |
52 | ) | ||
51 | 53 | ||
52 | #define local_irq_disable() do { \ | 54 | #define local_irq_disable() \ |
53 | int _tmp_dummy; \ | 55 | do { \ |
54 | __asm__ __volatile__ ( \ | 56 | int __tmp_dummy; \ |
55 | "cli %0;" \ | 57 | __asm__ __volatile__( \ |
56 | :"=d" (_tmp_dummy):); \ | 58 | "cli %0;" \ |
57 | } while (0) | 59 | : "=d" (__tmp_dummy) \ |
60 | ); \ | ||
61 | } while (0) | ||
58 | 62 | ||
59 | #if defined(ANOMALY_05000244) && defined (CONFIG_BLKFIN_CACHE) | 63 | #if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE) |
60 | #define idle_with_irq_disabled() do { \ | 64 | # define NOP_PAD_ANOMALY_05000244 "nop; nop;" |
61 | __asm__ __volatile__ ( \ | ||
62 | "nop; nop;\n" \ | ||
63 | ".align 8;\n" \ | ||
64 | "sti %0; idle;\n" \ | ||
65 | ::"d" (irq_flags)); \ | ||
66 | } while (0) | ||
67 | #else | 65 | #else |
68 | #define idle_with_irq_disabled() do { \ | 66 | # define NOP_PAD_ANOMALY_05000244 |
69 | __asm__ __volatile__ ( \ | ||
70 | ".align 8;\n" \ | ||
71 | "sti %0; idle;\n" \ | ||
72 | ::"d" (irq_flags)); \ | ||
73 | } while (0) | ||
74 | #endif | 67 | #endif |
75 | 68 | ||
69 | #define idle_with_irq_disabled() \ | ||
70 | __asm__ __volatile__( \ | ||
71 | NOP_PAD_ANOMALY_05000244 \ | ||
72 | ".align 8;" \ | ||
73 | "sti %0;" \ | ||
74 | "idle;" \ | ||
75 | : \ | ||
76 | : "d" (irq_flags) \ | ||
77 | ) | ||
78 | |||
76 | #ifdef CONFIG_DEBUG_HWERR | 79 | #ifdef CONFIG_DEBUG_HWERR |
77 | #define __save_and_cli(x) do { \ | 80 | # define __save_and_cli(x) \ |
78 | __asm__ __volatile__ ( \ | 81 | __asm__ __volatile__( \ |
79 | "cli %0;\n\tsti %1;" \ | 82 | "cli %0;" \ |
80 | :"=&d"(x): "d" (0x3F)); \ | 83 | "sti %1;" \ |
81 | } while (0) | 84 | : "=&d" (x) \ |
85 | : "d" (0x3F) \ | ||
86 | ) | ||
82 | #else | 87 | #else |
83 | #define __save_and_cli(x) do { \ | 88 | # define __save_and_cli(x) \ |
84 | __asm__ __volatile__ ( \ | 89 | __asm__ __volatile__( \ |
85 | "cli %0;" \ | 90 | "cli %0;" \ |
86 | :"=&d"(x):); \ | 91 | : "=&d" (x) \ |
87 | } while (0) | 92 | ) |
88 | #endif | 93 | #endif |
89 | 94 | ||
90 | #define local_save_flags(x) asm volatile ("cli %0;" \ | 95 | #define local_save_flags(x) \ |
91 | "sti %0;" \ | 96 | __asm__ __volatile__( \ |
92 | :"=d"(x):); | 97 | "cli %0;" \ |
98 | "sti %0;" \ | ||
99 | : "=d" (x) \ | ||
100 | ) | ||
93 | 101 | ||
94 | #ifdef CONFIG_DEBUG_HWERR | 102 | #ifdef CONFIG_DEBUG_HWERR |
95 | #define irqs_enabled_from_flags(x) (((x) & ~0x3f) != 0) | 103 | #define irqs_enabled_from_flags(x) (((x) & ~0x3f) != 0) |
@@ -97,10 +105,11 @@ extern unsigned long irq_flags; | |||
97 | #define irqs_enabled_from_flags(x) ((x) != 0x1f) | 105 | #define irqs_enabled_from_flags(x) ((x) != 0x1f) |
98 | #endif | 106 | #endif |
99 | 107 | ||
100 | #define local_irq_restore(x) do { \ | 108 | #define local_irq_restore(x) \ |
101 | if (irqs_enabled_from_flags(x)) \ | 109 | do { \ |
102 | local_irq_enable (); \ | 110 | if (irqs_enabled_from_flags(x)) \ |
103 | } while (0) | 111 | local_irq_enable(); \ |
112 | } while (0) | ||
104 | 113 | ||
105 | /* For spinlocks etc */ | 114 | /* For spinlocks etc */ |
106 | #define local_irq_save(x) __save_and_cli(x) | 115 | #define local_irq_save(x) __save_and_cli(x) |
diff --git a/include/asm-blackfin/termbits.h b/include/asm-blackfin/termbits.h index 4eac38de8ce1..f37feb7cf895 100644 --- a/include/asm-blackfin/termbits.h +++ b/include/asm-blackfin/termbits.h | |||
@@ -140,6 +140,7 @@ struct ktermios { | |||
140 | #define HUPCL 0002000 | 140 | #define HUPCL 0002000 |
141 | #define CLOCAL 0004000 | 141 | #define CLOCAL 0004000 |
142 | #define CBAUDEX 0010000 | 142 | #define CBAUDEX 0010000 |
143 | #define BOTHER 0010000 | ||
143 | #define B57600 0010001 | 144 | #define B57600 0010001 |
144 | #define B115200 0010002 | 145 | #define B115200 0010002 |
145 | #define B230400 0010003 | 146 | #define B230400 0010003 |
@@ -155,10 +156,12 @@ struct ktermios { | |||
155 | #define B3000000 0010015 | 156 | #define B3000000 0010015 |
156 | #define B3500000 0010016 | 157 | #define B3500000 0010016 |
157 | #define B4000000 0010017 | 158 | #define B4000000 0010017 |
158 | #define CIBAUD 002003600000 /* input baud rate (not used) */ | 159 | #define CIBAUD 002003600000 /* input baud rate */ |
159 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | 160 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ |
160 | #define CRTSCTS 020000000000 /* flow control */ | 161 | #define CRTSCTS 020000000000 /* flow control */ |
161 | 162 | ||
163 | #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ | ||
164 | |||
162 | /* c_lflag bits */ | 165 | /* c_lflag bits */ |
163 | #define ISIG 0000001 | 166 | #define ISIG 0000001 |
164 | #define ICANON 0000002 | 167 | #define ICANON 0000002 |
diff --git a/include/asm-blackfin/termios.h b/include/asm-blackfin/termios.h index 5c41478a51c6..e31fe859650b 100644 --- a/include/asm-blackfin/termios.h +++ b/include/asm-blackfin/termios.h | |||
@@ -98,8 +98,14 @@ struct termio { | |||
98 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | 98 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ |
99 | }) | 99 | }) |
100 | 100 | ||
101 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) | 101 | #define user_termios_to_kernel_termios(k, u) \ |
102 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) | 102 | copy_from_user(k, u, sizeof(struct termios2)) |
103 | #define kernel_termios_to_user_termios(u, k) \ | ||
104 | copy_to_user(u, k, sizeof(struct termios2)) | ||
105 | #define user_termios_to_kernel_termios_1(k, u) \ | ||
106 | copy_from_user(k, u, sizeof(struct termios)) | ||
107 | #define kernel_termios_to_user_termios_1(u, k) \ | ||
108 | copy_to_user(u, k, sizeof(struct termios)) | ||
103 | 109 | ||
104 | #endif /* __KERNEL__ */ | 110 | #endif /* __KERNEL__ */ |
105 | 111 | ||
diff --git a/include/asm-blackfin/trace.h b/include/asm-blackfin/trace.h index 9c2474c9a589..6313aace9d59 100644 --- a/include/asm-blackfin/trace.h +++ b/include/asm-blackfin/trace.h | |||
@@ -6,23 +6,46 @@ | |||
6 | #ifndef _BLACKFIN_TRACE_ | 6 | #ifndef _BLACKFIN_TRACE_ |
7 | #define _BLACKFIN_TRACE_ | 7 | #define _BLACKFIN_TRACE_ |
8 | 8 | ||
9 | /* Normally, we use ON, but you can't turn on software expansion until | ||
10 | * interrupts subsystem is ready | ||
11 | */ | ||
12 | |||
13 | #define BFIN_TRACE_INIT ((CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION << 4) | 0x03) | ||
14 | #ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND | ||
15 | #define BFIN_TRACE_ON (BFIN_TRACE_INIT | (CONFIG_DEBUG_BFIN_HWTRACE_EXPAND << 2)) | ||
16 | #else | ||
17 | #define BFIN_TRACE_ON (BFIN_TRACE_INIT) | ||
18 | #endif | ||
19 | |||
9 | #ifndef __ASSEMBLY__ | 20 | #ifndef __ASSEMBLY__ |
21 | extern unsigned long trace_buff_offset; | ||
22 | extern unsigned long software_trace_buff[]; | ||
23 | |||
10 | /* Trace Macros for C files */ | 24 | /* Trace Macros for C files */ |
11 | 25 | ||
26 | #ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON | ||
27 | |||
12 | #define trace_buffer_save(x) \ | 28 | #define trace_buffer_save(x) \ |
13 | do { \ | 29 | do { \ |
14 | (x) = bfin_read_TBUFCTL(); \ | 30 | (x) = bfin_read_TBUFCTL(); \ |
15 | bfin_write_TBUFCTL((x) & ~TBUFEN); \ | 31 | bfin_write_TBUFCTL((x) & ~TBUFEN); \ |
16 | } while (0) | 32 | } while (0) |
17 | 33 | ||
18 | #define trace_buffer_restore(x) \ | 34 | #define trace_buffer_restore(x) \ |
19 | do { \ | 35 | do { \ |
20 | bfin_write_TBUFCTL((x)); \ | 36 | bfin_write_TBUFCTL((x)); \ |
21 | } while (0) | 37 | } while (0) |
38 | #else /* DEBUG_BFIN_HWTRACE_ON */ | ||
39 | |||
40 | #define trace_buffer_save(x) | ||
41 | #define trace_buffer_restore(x) | ||
42 | #endif /* CONFIG_DEBUG_BFIN_HWTRACE_ON */ | ||
22 | 43 | ||
23 | #else | 44 | #else |
24 | /* Trace Macros for Assembly files */ | 45 | /* Trace Macros for Assembly files */ |
25 | 46 | ||
47 | #ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON | ||
48 | |||
26 | #define TRACE_BUFFER_START(preg, dreg) trace_buffer_start(preg, dreg) | 49 | #define TRACE_BUFFER_START(preg, dreg) trace_buffer_start(preg, dreg) |
27 | #define TRACE_BUFFER_STOP(preg, dreg) trace_buffer_stop(preg, dreg) | 50 | #define TRACE_BUFFER_STOP(preg, dreg) trace_buffer_stop(preg, dreg) |
28 | 51 | ||
@@ -32,12 +55,26 @@ | |||
32 | dreg = 0x1; \ | 55 | dreg = 0x1; \ |
33 | [preg] = dreg; | 56 | [preg] = dreg; |
34 | 57 | ||
35 | #define trace_buffer_start(preg, dreg) \ | 58 | #define trace_buffer_start(preg, dreg) \ |
36 | preg.L = LO(TBUFCTL); \ | 59 | preg.L = LO(TBUFCTL); \ |
37 | preg.H = HI(TBUFCTL); \ | 60 | preg.H = HI(TBUFCTL); \ |
38 | dreg = 0x13; \ | 61 | dreg = BFIN_TRACE_ON; \ |
62 | [preg] = dreg; | ||
63 | |||
64 | #define trace_buffer_init(preg, dreg) \ | ||
65 | preg.L = LO(TBUFCTL); \ | ||
66 | preg.H = HI(TBUFCTL); \ | ||
67 | dreg = BFIN_TRACE_INIT; \ | ||
39 | [preg] = dreg; | 68 | [preg] = dreg; |
40 | 69 | ||
70 | #else /* CONFIG_DEBUG_BFIN_HWTRACE_ON */ | ||
71 | |||
72 | #define trace_buffer_stop(preg, dreg) | ||
73 | #define trace_buffer_start(preg, dreg) | ||
74 | #define trace_buffer_init(preg, dreg) | ||
75 | |||
76 | #endif /* CONFIG_DEBUG_BFIN_HWTRACE_ON */ | ||
77 | |||
41 | #ifdef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE | 78 | #ifdef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE |
42 | # define DEBUG_START_HWTRACE(preg, dreg) trace_buffer_start(preg, dreg) | 79 | # define DEBUG_START_HWTRACE(preg, dreg) trace_buffer_start(preg, dreg) |
43 | # define DEBUG_STOP_HWTRACE(preg, dreg) trace_buffer_stop(preg, dreg) | 80 | # define DEBUG_STOP_HWTRACE(preg, dreg) trace_buffer_stop(preg, dreg) |