diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-21 12:57:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-21 12:57:55 -0400 |
commit | efea90a454c6bf95d489878ea366d5dff03f3fb7 (patch) | |
tree | 9eba629ea4325d67bca7e42d3fc46c346477c106 /include | |
parent | 2fb59d623ad85dfdb8ce03a660051743f7361896 (diff) | |
parent | d4b1d27368314ac79ae28082a0eb17b4c526bd14 (diff) |
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/cooloney/blackfin-2.6:
Blackfin arch: update boards files
Blackfin arch: dma add some API and cleanup bf54x DMA definition
Blackfin arch: cleanup and promote the general purpose timers api to a core blackfin component
Blackfin arch: add a cheesy install target
Blackfin arch: add functions for converting between sclks and usecs
Blackfin arch: add assembly function for doing 64bit unsigned division
Blackfin arch: -mno-fdpic works
Blackfin arch: use "char bfin_board_name[]" rather than "char *bfin_board_name" per discussion on lkml as the former uses less storage
Blackfin arch: Fixing Bug: balance calls to get_task_mm with corresponding mmput calls
Blackfin serial driver Kconfig: depend on DMA not being enabled rather than a specific DMA size
Blackfin arch: Fix bug: missing CHIPID register field definition of BF54x
Blackfin arch: Fix up /proc/cpuinfo so it is like everyone else
Blackfin arch: Optimization - no need to make additional math here
Blackfin arch: force irq_flags into the .data section
Blackfin arch BF548 defconfig: enable watchdog by default
Blackfin arch: add new processor ADSP-BF52x arch/mach support
Diffstat (limited to 'include')
20 files changed, 1570 insertions, 233 deletions
diff --git a/include/asm-blackfin/bf5xx_timers.h b/include/asm-blackfin/bf5xx_timers.h deleted file mode 100644 index 86c770321b61..000000000000 --- a/include/asm-blackfin/bf5xx_timers.h +++ /dev/null | |||
@@ -1,209 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm/bf5xx_timers.h | ||
3 | * | ||
4 | * This file contains the major Data structures and constants | ||
5 | * used for General Purpose Timer Implementation in BF5xx | ||
6 | * | ||
7 | * Copyright (C) 2005 John DeHority | ||
8 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #ifndef _BLACKFIN_TIMERS_H_ | ||
13 | #define _BLACKFIN_TIMERS_H_ | ||
14 | |||
15 | #undef MAX_BLACKFIN_GPTIMERS | ||
16 | /* | ||
17 | * BF537: 8 timers: | ||
18 | */ | ||
19 | #if defined(CONFIG_BF537) | ||
20 | # define MAX_BLACKFIN_GPTIMERS 8 | ||
21 | # define TIMER0_GROUP_REG TIMER_ENABLE | ||
22 | #endif | ||
23 | /* | ||
24 | * BF561: 12 timers: | ||
25 | */ | ||
26 | #if defined(CONFIG_BF561) | ||
27 | # define MAX_BLACKFIN_GPTIMERS 12 | ||
28 | # define TIMER0_GROUP_REG TMRS8_ENABLE | ||
29 | # define TIMER8_GROUP_REG TMRS4_ENABLE | ||
30 | #endif | ||
31 | /* | ||
32 | * All others: 3 timers: | ||
33 | */ | ||
34 | #if !defined(MAX_BLACKFIN_GPTIMERS) | ||
35 | # define MAX_BLACKFIN_GPTIMERS 3 | ||
36 | # define TIMER0_GROUP_REG TIMER_ENABLE | ||
37 | #endif | ||
38 | |||
39 | #define BLACKFIN_GPTIMER_IDMASK ((1UL << MAX_BLACKFIN_GPTIMERS) - 1) | ||
40 | #define BFIN_TIMER_OCTET(x) ((x) >> 3) | ||
41 | |||
42 | /* used in masks for timer_enable() and timer_disable() */ | ||
43 | #define TIMER0bit 0x0001 /* 0001b */ | ||
44 | #define TIMER1bit 0x0002 /* 0010b */ | ||
45 | #define TIMER2bit 0x0004 /* 0100b */ | ||
46 | |||
47 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
48 | # define TIMER3bit 0x0008 | ||
49 | # define TIMER4bit 0x0010 | ||
50 | # define TIMER5bit 0x0020 | ||
51 | # define TIMER6bit 0x0040 | ||
52 | # define TIMER7bit 0x0080 | ||
53 | #endif | ||
54 | |||
55 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
56 | # define TIMER8bit 0x0100 | ||
57 | # define TIMER9bit 0x0200 | ||
58 | # define TIMER10bit 0x0400 | ||
59 | # define TIMER11bit 0x0800 | ||
60 | #endif | ||
61 | |||
62 | #define TIMER0_id 0 | ||
63 | #define TIMER1_id 1 | ||
64 | #define TIMER2_id 2 | ||
65 | |||
66 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
67 | # define TIMER3_id 3 | ||
68 | # define TIMER4_id 4 | ||
69 | # define TIMER5_id 5 | ||
70 | # define TIMER6_id 6 | ||
71 | # define TIMER7_id 7 | ||
72 | #endif | ||
73 | |||
74 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
75 | # define TIMER8_id 8 | ||
76 | # define TIMER9_id 9 | ||
77 | # define TIMER10_id 10 | ||
78 | # define TIMER11_id 11 | ||
79 | #endif | ||
80 | |||
81 | /* associated timers for ppi framesync: */ | ||
82 | |||
83 | #if defined(CONFIG_BF561) | ||
84 | # define FS0_1_TIMER_ID TIMER8_id | ||
85 | # define FS0_2_TIMER_ID TIMER9_id | ||
86 | # define FS1_1_TIMER_ID TIMER10_id | ||
87 | # define FS1_2_TIMER_ID TIMER11_id | ||
88 | # define FS0_1_TIMER_BIT TIMER8bit | ||
89 | # define FS0_2_TIMER_BIT TIMER9bit | ||
90 | # define FS1_1_TIMER_BIT TIMER10bit | ||
91 | # define FS1_2_TIMER_BIT TIMER11bit | ||
92 | # undef FS1_TIMER_ID | ||
93 | # undef FS2_TIMER_ID | ||
94 | # undef FS1_TIMER_BIT | ||
95 | # undef FS2_TIMER_BIT | ||
96 | #else | ||
97 | # define FS1_TIMER_ID TIMER0_id | ||
98 | # define FS2_TIMER_ID TIMER1_id | ||
99 | # define FS1_TIMER_BIT TIMER0bit | ||
100 | # define FS2_TIMER_BIT TIMER1bit | ||
101 | #endif | ||
102 | |||
103 | /* | ||
104 | ** Timer Configuration Register Bits | ||
105 | */ | ||
106 | #define TIMER_ERR 0xC000 | ||
107 | #define TIMER_ERR_OVFL 0x4000 | ||
108 | #define TIMER_ERR_PROG_PER 0x8000 | ||
109 | #define TIMER_ERR_PROG_PW 0xC000 | ||
110 | #define TIMER_EMU_RUN 0x0200 | ||
111 | #define TIMER_TOGGLE_HI 0x0100 | ||
112 | #define TIMER_CLK_SEL 0x0080 | ||
113 | #define TIMER_OUT_DIS 0x0040 | ||
114 | #define TIMER_TIN_SEL 0x0020 | ||
115 | #define TIMER_IRQ_ENA 0x0010 | ||
116 | #define TIMER_PERIOD_CNT 0x0008 | ||
117 | #define TIMER_PULSE_HI 0x0004 | ||
118 | #define TIMER_MODE 0x0003 | ||
119 | #define TIMER_MODE_PWM 0x0001 | ||
120 | #define TIMER_MODE_WDTH 0x0002 | ||
121 | #define TIMER_MODE_EXT_CLK 0x0003 | ||
122 | |||
123 | /* | ||
124 | ** Timer Status Register Bits | ||
125 | */ | ||
126 | #define TIMER_STATUS_TIMIL0 0x0001 | ||
127 | #define TIMER_STATUS_TIMIL1 0x0002 | ||
128 | #define TIMER_STATUS_TIMIL2 0x0004 | ||
129 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
130 | # define TIMER_STATUS_TIMIL3 0x00000008 | ||
131 | # define TIMER_STATUS_TIMIL4 0x00010000 | ||
132 | # define TIMER_STATUS_TIMIL5 0x00020000 | ||
133 | # define TIMER_STATUS_TIMIL6 0x00040000 | ||
134 | # define TIMER_STATUS_TIMIL7 0x00080000 | ||
135 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
136 | # define TIMER_STATUS_TIMIL8 0x0001 | ||
137 | # define TIMER_STATUS_TIMIL9 0x0002 | ||
138 | # define TIMER_STATUS_TIMIL10 0x0004 | ||
139 | # define TIMER_STATUS_TIMIL11 0x0008 | ||
140 | # endif | ||
141 | # define TIMER_STATUS_INTR 0x000F000F | ||
142 | #else | ||
143 | # define TIMER_STATUS_INTR 0x0007 /* any timer interrupt */ | ||
144 | #endif | ||
145 | |||
146 | #define TIMER_STATUS_TOVF0 0x0010 /* timer 0 overflow error */ | ||
147 | #define TIMER_STATUS_TOVF1 0x0020 | ||
148 | #define TIMER_STATUS_TOVF2 0x0040 | ||
149 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
150 | # define TIMER_STATUS_TOVF3 0x00000080 | ||
151 | # define TIMER_STATUS_TOVF4 0x00100000 | ||
152 | # define TIMER_STATUS_TOVF5 0x00200000 | ||
153 | # define TIMER_STATUS_TOVF6 0x00400000 | ||
154 | # define TIMER_STATUS_TOVF7 0x00800000 | ||
155 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
156 | # define TIMER_STATUS_TOVF8 0x0010 | ||
157 | # define TIMER_STATUS_TOVF9 0x0020 | ||
158 | # define TIMER_STATUS_TOVF10 0x0040 | ||
159 | # define TIMER_STATUS_TOVF11 0x0080 | ||
160 | # endif | ||
161 | # define TIMER_STATUS_OFLOW 0x00F000F0 | ||
162 | #else | ||
163 | # define TIMER_STATUS_OFLOW 0x0070 /* any timer overflow */ | ||
164 | #endif | ||
165 | |||
166 | /* | ||
167 | ** Timer Slave Enable Status : write 1 to clear | ||
168 | */ | ||
169 | #define TIMER_STATUS_TRUN0 0x1000 | ||
170 | #define TIMER_STATUS_TRUN1 0x2000 | ||
171 | #define TIMER_STATUS_TRUN2 0x4000 | ||
172 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
173 | # define TIMER_STATUS_TRUN3 0x00008000 | ||
174 | # define TIMER_STATUS_TRUN4 0x10000000 | ||
175 | # define TIMER_STATUS_TRUN5 0x20000000 | ||
176 | # define TIMER_STATUS_TRUN6 0x40000000 | ||
177 | # define TIMER_STATUS_TRUN7 0x80000000 | ||
178 | # define TIMER_STATUS_TRUN 0xF000F000 | ||
179 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
180 | # define TIMER_STATUS_TRUN8 0x1000 | ||
181 | # define TIMER_STATUS_TRUN9 0x2000 | ||
182 | # define TIMER_STATUS_TRUN10 0x4000 | ||
183 | # define TIMER_STATUS_TRUN11 0x8000 | ||
184 | # endif | ||
185 | #else | ||
186 | # define TIMER_STATUS_TRUN 0x7000 | ||
187 | #endif | ||
188 | |||
189 | /******************************************************************************* | ||
190 | * GP_TIMER API's | ||
191 | *******************************************************************************/ | ||
192 | |||
193 | void set_gptimer_pwidth (int timer_id, int width); | ||
194 | int get_gptimer_pwidth (int timer_id); | ||
195 | void set_gptimer_period (int timer_id, int period); | ||
196 | int get_gptimer_period (int timer_id); | ||
197 | int get_gptimer_count (int timer_id); | ||
198 | short get_gptimer_intr (int timer_id); | ||
199 | void set_gptimer_config (int timer_id, short config); | ||
200 | short get_gptimer_config (int timer_id); | ||
201 | void set_gptimer_pulse_hi (int timer_id); | ||
202 | void clear_gptimer_pulse_hi(int timer_id); | ||
203 | void enable_gptimers (short mask); | ||
204 | void disable_gptimers (short mask); | ||
205 | short get_enabled_timers (void); | ||
206 | int get_gptimer_status (int octet); | ||
207 | void set_gptimer_status (int octet, int value); | ||
208 | |||
209 | #endif | ||
diff --git a/include/asm-blackfin/bfin-global.h b/include/asm-blackfin/bfin-global.h index a970781a0f98..14cb8d35924e 100644 --- a/include/asm-blackfin/bfin-global.h +++ b/include/asm-blackfin/bfin-global.h | |||
@@ -47,6 +47,8 @@ | |||
47 | 47 | ||
48 | extern unsigned long get_cclk(void); | 48 | extern unsigned long get_cclk(void); |
49 | extern unsigned long get_sclk(void); | 49 | extern unsigned long get_sclk(void); |
50 | extern unsigned long sclk_to_usecs(unsigned long sclk); | ||
51 | extern unsigned long usecs_to_sclk(unsigned long usecs); | ||
50 | 52 | ||
51 | extern void dump_thread(struct pt_regs *regs, struct user *dump); | 53 | extern void dump_thread(struct pt_regs *regs, struct user *dump); |
52 | extern void dump_bfin_regs(struct pt_regs *fp, void *retaddr); | 54 | extern void dump_bfin_regs(struct pt_regs *fp, void *retaddr); |
@@ -105,7 +107,7 @@ extern void led_disp_num(int); | |||
105 | extern void led_toggle_num(int); | 107 | extern void led_toggle_num(int); |
106 | extern void init_leds(void); | 108 | extern void init_leds(void); |
107 | 109 | ||
108 | extern char *bfin_board_name __attribute__ ((weak)); | 110 | extern const char bfin_board_name[]; |
109 | extern unsigned long wall_jiffies; | 111 | extern unsigned long wall_jiffies; |
110 | extern unsigned long ipdt_table[]; | 112 | extern unsigned long ipdt_table[]; |
111 | extern unsigned long dpdt_table[]; | 113 | extern unsigned long dpdt_table[]; |
diff --git a/include/asm-blackfin/dma.h b/include/asm-blackfin/dma.h index b42a531e7a1b..b469505af364 100644 --- a/include/asm-blackfin/dma.h +++ b/include/asm-blackfin/dma.h | |||
@@ -109,9 +109,7 @@ struct dma_register { | |||
109 | 109 | ||
110 | unsigned long curr_desc_ptr; /* DMA Current Descriptor Pointer | 110 | unsigned long curr_desc_ptr; /* DMA Current Descriptor Pointer |
111 | register */ | 111 | register */ |
112 | unsigned short curr_addr_ptr_lo; /* DMA Current Address Pointer | 112 | unsigned long curr_addr_ptr; /* DMA Current Address Pointer |
113 | register */ | ||
114 | unsigned short curr_addr_ptr_hi; /* DMA Current Address Pointer | ||
115 | register */ | 113 | register */ |
116 | unsigned short irq_status; /* DMA irq status register */ | 114 | unsigned short irq_status; /* DMA irq status register */ |
117 | unsigned short dummy6; | 115 | unsigned short dummy6; |
@@ -166,6 +164,9 @@ void set_dma_curr_addr(unsigned int channel, unsigned long addr); | |||
166 | unsigned short get_dma_curr_irqstat(unsigned int channel); | 164 | unsigned short get_dma_curr_irqstat(unsigned int channel); |
167 | unsigned short get_dma_curr_xcount(unsigned int channel); | 165 | unsigned short get_dma_curr_xcount(unsigned int channel); |
168 | unsigned short get_dma_curr_ycount(unsigned int channel); | 166 | unsigned short get_dma_curr_ycount(unsigned int channel); |
167 | unsigned long get_dma_next_desc_ptr(unsigned int channel); | ||
168 | unsigned long get_dma_curr_desc_ptr(unsigned int channel); | ||
169 | unsigned long get_dma_curr_addr(unsigned int channel); | ||
169 | 170 | ||
170 | /* set large DMA mode descriptor */ | 171 | /* set large DMA mode descriptor */ |
171 | void set_dma_sg(unsigned int channel, struct dmasg *sg, int nr_sg); | 172 | void set_dma_sg(unsigned int channel, struct dmasg *sg, int nr_sg); |
diff --git a/include/asm-blackfin/gpio.h b/include/asm-blackfin/gpio.h index dd203cd93796..33ce98ef7e0f 100644 --- a/include/asm-blackfin/gpio.h +++ b/include/asm-blackfin/gpio.h | |||
@@ -29,6 +29,7 @@ | |||
29 | 29 | ||
30 | /* | 30 | /* |
31 | * Number BF537/6/4 BF561 BF533/2/1 | 31 | * Number BF537/6/4 BF561 BF533/2/1 |
32 | * BF527/5/2 | ||
32 | * | 33 | * |
33 | * GPIO_0 PF0 PF0 PF0 | 34 | * GPIO_0 PF0 PF0 PF0 |
34 | * GPIO_1 PF1 PF1 PF1 | 35 | * GPIO_1 PF1 PF1 PF1 |
@@ -164,7 +165,7 @@ | |||
164 | 165 | ||
165 | #endif | 166 | #endif |
166 | 167 | ||
167 | #ifdef BF537_FAMILY | 168 | #if defined(BF527_FAMILY) || defined(BF537_FAMILY) |
168 | #define MAX_BLACKFIN_GPIOS 48 | 169 | #define MAX_BLACKFIN_GPIOS 48 |
169 | 170 | ||
170 | #define GPIO_PF0 0 | 171 | #define GPIO_PF0 0 |
diff --git a/include/asm-blackfin/gptimers.h b/include/asm-blackfin/gptimers.h new file mode 100644 index 000000000000..c97ab03e43a6 --- /dev/null +++ b/include/asm-blackfin/gptimers.h | |||
@@ -0,0 +1,210 @@ | |||
1 | /* | ||
2 | * include/asm/bf5xx_timers.h | ||
3 | * | ||
4 | * This file contains the major Data structures and constants | ||
5 | * used for General Purpose Timer Implementation in BF5xx | ||
6 | * | ||
7 | * Copyright (C) 2005 John DeHority | ||
8 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #ifndef _BLACKFIN_TIMERS_H_ | ||
13 | #define _BLACKFIN_TIMERS_H_ | ||
14 | |||
15 | #include <linux/types.h> | ||
16 | #include <asm/blackfin.h> | ||
17 | |||
18 | /* | ||
19 | * BF537/BF527: 8 timers: | ||
20 | */ | ||
21 | #if defined(BF527_FAMILY) || defined(BF537_FAMILY) | ||
22 | # define MAX_BLACKFIN_GPTIMERS 8 | ||
23 | # define TIMER0_GROUP_REG TIMER_ENABLE | ||
24 | #endif | ||
25 | /* | ||
26 | * BF561: 12 timers: | ||
27 | */ | ||
28 | #if defined(CONFIG_BF561) | ||
29 | # define MAX_BLACKFIN_GPTIMERS 12 | ||
30 | # define TIMER0_GROUP_REG TMRS8_ENABLE | ||
31 | # define TIMER8_GROUP_REG TMRS4_ENABLE | ||
32 | #endif | ||
33 | /* | ||
34 | * All others: 3 timers: | ||
35 | */ | ||
36 | #if !defined(MAX_BLACKFIN_GPTIMERS) | ||
37 | # define MAX_BLACKFIN_GPTIMERS 3 | ||
38 | # define TIMER0_GROUP_REG TIMER_ENABLE | ||
39 | #endif | ||
40 | |||
41 | #define BLACKFIN_GPTIMER_IDMASK ((1UL << MAX_BLACKFIN_GPTIMERS) - 1) | ||
42 | #define BFIN_TIMER_OCTET(x) ((x) >> 3) | ||
43 | |||
44 | /* used in masks for timer_enable() and timer_disable() */ | ||
45 | #define TIMER0bit 0x0001 /* 0001b */ | ||
46 | #define TIMER1bit 0x0002 /* 0010b */ | ||
47 | #define TIMER2bit 0x0004 /* 0100b */ | ||
48 | |||
49 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
50 | # define TIMER3bit 0x0008 | ||
51 | # define TIMER4bit 0x0010 | ||
52 | # define TIMER5bit 0x0020 | ||
53 | # define TIMER6bit 0x0040 | ||
54 | # define TIMER7bit 0x0080 | ||
55 | #endif | ||
56 | |||
57 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
58 | # define TIMER8bit 0x0100 | ||
59 | # define TIMER9bit 0x0200 | ||
60 | # define TIMER10bit 0x0400 | ||
61 | # define TIMER11bit 0x0800 | ||
62 | #endif | ||
63 | |||
64 | #define TIMER0_id 0 | ||
65 | #define TIMER1_id 1 | ||
66 | #define TIMER2_id 2 | ||
67 | |||
68 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
69 | # define TIMER3_id 3 | ||
70 | # define TIMER4_id 4 | ||
71 | # define TIMER5_id 5 | ||
72 | # define TIMER6_id 6 | ||
73 | # define TIMER7_id 7 | ||
74 | #endif | ||
75 | |||
76 | #if (MAX_BLACKFIN_GPTIMERS > 8) | ||
77 | # define TIMER8_id 8 | ||
78 | # define TIMER9_id 9 | ||
79 | # define TIMER10_id 10 | ||
80 | # define TIMER11_id 11 | ||
81 | #endif | ||
82 | |||
83 | /* associated timers for ppi framesync: */ | ||
84 | |||
85 | #if defined(CONFIG_BF561) | ||
86 | # define FS0_1_TIMER_ID TIMER8_id | ||
87 | # define FS0_2_TIMER_ID TIMER9_id | ||
88 | # define FS1_1_TIMER_ID TIMER10_id | ||
89 | # define FS1_2_TIMER_ID TIMER11_id | ||
90 | # define FS0_1_TIMER_BIT TIMER8bit | ||
91 | # define FS0_2_TIMER_BIT TIMER9bit | ||
92 | # define FS1_1_TIMER_BIT TIMER10bit | ||
93 | # define FS1_2_TIMER_BIT TIMER11bit | ||
94 | # undef FS1_TIMER_ID | ||
95 | # undef FS2_TIMER_ID | ||
96 | # undef FS1_TIMER_BIT | ||
97 | # undef FS2_TIMER_BIT | ||
98 | #else | ||
99 | # define FS1_TIMER_ID TIMER0_id | ||
100 | # define FS2_TIMER_ID TIMER1_id | ||
101 | # define FS1_TIMER_BIT TIMER0bit | ||
102 | # define FS2_TIMER_BIT TIMER1bit | ||
103 | #endif | ||
104 | |||
105 | /* | ||
106 | * Timer Configuration Register Bits | ||
107 | */ | ||
108 | #define TIMER_ERR 0xC000 | ||
109 | #define TIMER_ERR_OVFL 0x4000 | ||
110 | #define TIMER_ERR_PROG_PER 0x8000 | ||
111 | #define TIMER_ERR_PROG_PW 0xC000 | ||
112 | #define TIMER_EMU_RUN 0x0200 | ||
113 | #define TIMER_TOGGLE_HI 0x0100 | ||
114 | #define TIMER_CLK_SEL 0x0080 | ||
115 | #define TIMER_OUT_DIS 0x0040 | ||
116 | #define TIMER_TIN_SEL 0x0020 | ||
117 | #define TIMER_IRQ_ENA 0x0010 | ||
118 | #define TIMER_PERIOD_CNT 0x0008 | ||
119 | #define TIMER_PULSE_HI 0x0004 | ||
120 | #define TIMER_MODE 0x0003 | ||
121 | #define TIMER_MODE_PWM 0x0001 | ||
122 | #define TIMER_MODE_WDTH 0x0002 | ||
123 | #define TIMER_MODE_EXT_CLK 0x0003 | ||
124 | |||
125 | /* | ||
126 | * Timer Status Register Bits | ||
127 | */ | ||
128 | #define TIMER_STATUS_TIMIL0 0x0001 | ||
129 | #define TIMER_STATUS_TIMIL1 0x0002 | ||
130 | #define TIMER_STATUS_TIMIL2 0x0004 | ||
131 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
132 | # define TIMER_STATUS_TIMIL3 0x00000008 | ||
133 | # define TIMER_STATUS_TIMIL4 0x00010000 | ||
134 | # define TIMER_STATUS_TIMIL5 0x00020000 | ||
135 | # define TIMER_STATUS_TIMIL6 0x00040000 | ||
136 | # define TIMER_STATUS_TIMIL7 0x00080000 | ||
137 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
138 | # define TIMER_STATUS_TIMIL8 0x0001 | ||
139 | # define TIMER_STATUS_TIMIL9 0x0002 | ||
140 | # define TIMER_STATUS_TIMIL10 0x0004 | ||
141 | # define TIMER_STATUS_TIMIL11 0x0008 | ||
142 | # endif | ||
143 | # define TIMER_STATUS_INTR 0x000F000F | ||
144 | #else | ||
145 | # define TIMER_STATUS_INTR 0x0007 /* any timer interrupt */ | ||
146 | #endif | ||
147 | |||
148 | #define TIMER_STATUS_TOVF0 0x0010 /* timer 0 overflow error */ | ||
149 | #define TIMER_STATUS_TOVF1 0x0020 | ||
150 | #define TIMER_STATUS_TOVF2 0x0040 | ||
151 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
152 | # define TIMER_STATUS_TOVF3 0x00000080 | ||
153 | # define TIMER_STATUS_TOVF4 0x00100000 | ||
154 | # define TIMER_STATUS_TOVF5 0x00200000 | ||
155 | # define TIMER_STATUS_TOVF6 0x00400000 | ||
156 | # define TIMER_STATUS_TOVF7 0x00800000 | ||
157 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
158 | # define TIMER_STATUS_TOVF8 0x0010 | ||
159 | # define TIMER_STATUS_TOVF9 0x0020 | ||
160 | # define TIMER_STATUS_TOVF10 0x0040 | ||
161 | # define TIMER_STATUS_TOVF11 0x0080 | ||
162 | # endif | ||
163 | # define TIMER_STATUS_OFLOW 0x00F000F0 | ||
164 | #else | ||
165 | # define TIMER_STATUS_OFLOW 0x0070 /* any timer overflow */ | ||
166 | #endif | ||
167 | |||
168 | /* | ||
169 | * Timer Slave Enable Status : write 1 to clear | ||
170 | */ | ||
171 | #define TIMER_STATUS_TRUN0 0x1000 | ||
172 | #define TIMER_STATUS_TRUN1 0x2000 | ||
173 | #define TIMER_STATUS_TRUN2 0x4000 | ||
174 | #if (MAX_BLACKFIN_GPTIMERS > 3) | ||
175 | # define TIMER_STATUS_TRUN3 0x00008000 | ||
176 | # define TIMER_STATUS_TRUN4 0x10000000 | ||
177 | # define TIMER_STATUS_TRUN5 0x20000000 | ||
178 | # define TIMER_STATUS_TRUN6 0x40000000 | ||
179 | # define TIMER_STATUS_TRUN7 0x80000000 | ||
180 | # define TIMER_STATUS_TRUN 0xF000F000 | ||
181 | # if (MAX_BLACKFIN_GPTIMERS > 8) | ||
182 | # define TIMER_STATUS_TRUN8 0x1000 | ||
183 | # define TIMER_STATUS_TRUN9 0x2000 | ||
184 | # define TIMER_STATUS_TRUN10 0x4000 | ||
185 | # define TIMER_STATUS_TRUN11 0x8000 | ||
186 | # endif | ||
187 | #else | ||
188 | # define TIMER_STATUS_TRUN 0x7000 | ||
189 | #endif | ||
190 | |||
191 | /* The actual gptimer API */ | ||
192 | |||
193 | void set_gptimer_pwidth (int timer_id, uint32_t width); | ||
194 | uint32_t get_gptimer_pwidth (int timer_id); | ||
195 | void set_gptimer_period (int timer_id, uint32_t period); | ||
196 | uint32_t get_gptimer_period (int timer_id); | ||
197 | uint32_t get_gptimer_count (int timer_id); | ||
198 | uint16_t get_gptimer_intr (int timer_id); | ||
199 | void clear_gptimer_intr (int timer_id); | ||
200 | void set_gptimer_config (int timer_id, uint16_t config); | ||
201 | uint16_t get_gptimer_config (int timer_id); | ||
202 | void set_gptimer_pulse_hi (int timer_id); | ||
203 | void clear_gptimer_pulse_hi(int timer_id); | ||
204 | void enable_gptimers (uint16_t mask); | ||
205 | void disable_gptimers (uint16_t mask); | ||
206 | uint16_t get_enabled_gptimers (void); | ||
207 | uint32_t get_gptimer_status (int group); | ||
208 | void set_gptimer_status (int group, uint32_t value); | ||
209 | |||
210 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf527/anomaly.h b/include/asm-blackfin/mach-bf527/anomaly.h index 991db986cd4b..a89120445be6 100644 --- a/include/asm-blackfin/mach-bf527/anomaly.h +++ b/include/asm-blackfin/mach-bf527/anomaly.h | |||
@@ -38,4 +38,12 @@ | |||
38 | 38 | ||
39 | /* Anomalies that don't exist on this proc */ | 39 | /* Anomalies that don't exist on this proc */ |
40 | #define ANOMALY_05000323 (0) | 40 | #define ANOMALY_05000323 (0) |
41 | #define ANOMALY_05000244 (0) | ||
42 | #define ANOMALY_05000198 (0) | ||
43 | #define ANOMALY_05000125 (0) | ||
44 | #define ANOMALY_05000158 (0) | ||
45 | #define ANOMALY_05000273 (0) | ||
46 | #define ANOMALY_05000263 (0) | ||
47 | #define ANOMALY_05000311 (0) | ||
48 | #define ANOMALY_05000230 (0) | ||
41 | #endif | 49 | #endif |
diff --git a/include/asm-blackfin/mach-bf527/bf527.h b/include/asm-blackfin/mach-bf527/bf527.h new file mode 100644 index 000000000000..056eb4b9cd25 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/bf527.h | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/mach-bf527/bf527.h | ||
3 | * Based on: include/asm-blackfin/mach-bf537/bf537.h | ||
4 | * Author: Michael Hennerich (michael.hennerich@analog.com) | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: SYSTEM MMR REGISTER AND MEMORY MAP FOR ADSP-BF527 | ||
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 __MACH_BF527_H__ | ||
31 | #define __MACH_BF527_H__ | ||
32 | |||
33 | #define SUPPORTED_REVID 2 | ||
34 | |||
35 | #define OFFSET_(x) ((x) & 0x0000FFFF) | ||
36 | |||
37 | /*some misc defines*/ | ||
38 | #define IMASK_IVG15 0x8000 | ||
39 | #define IMASK_IVG14 0x4000 | ||
40 | #define IMASK_IVG13 0x2000 | ||
41 | #define IMASK_IVG12 0x1000 | ||
42 | |||
43 | #define IMASK_IVG11 0x0800 | ||
44 | #define IMASK_IVG10 0x0400 | ||
45 | #define IMASK_IVG9 0x0200 | ||
46 | #define IMASK_IVG8 0x0100 | ||
47 | |||
48 | #define IMASK_IVG7 0x0080 | ||
49 | #define IMASK_IVGTMR 0x0040 | ||
50 | #define IMASK_IVGHW 0x0020 | ||
51 | |||
52 | /***************************/ | ||
53 | |||
54 | #define BFIN_DSUBBANKS 4 | ||
55 | #define BFIN_DWAYS 2 | ||
56 | #define BFIN_DLINES 64 | ||
57 | #define BFIN_ISUBBANKS 4 | ||
58 | #define BFIN_IWAYS 4 | ||
59 | #define BFIN_ILINES 32 | ||
60 | |||
61 | #define WAY0_L 0x1 | ||
62 | #define WAY1_L 0x2 | ||
63 | #define WAY01_L 0x3 | ||
64 | #define WAY2_L 0x4 | ||
65 | #define WAY02_L 0x5 | ||
66 | #define WAY12_L 0x6 | ||
67 | #define WAY012_L 0x7 | ||
68 | |||
69 | #define WAY3_L 0x8 | ||
70 | #define WAY03_L 0x9 | ||
71 | #define WAY13_L 0xA | ||
72 | #define WAY013_L 0xB | ||
73 | |||
74 | #define WAY32_L 0xC | ||
75 | #define WAY320_L 0xD | ||
76 | #define WAY321_L 0xE | ||
77 | #define WAYALL_L 0xF | ||
78 | |||
79 | #define DMC_ENABLE (2<<2) /*yes, 2, not 1 */ | ||
80 | |||
81 | /********************************* EBIU Settings ************************************/ | ||
82 | #define AMBCTL0VAL ((CONFIG_BANK_1 << 16) | CONFIG_BANK_0) | ||
83 | #define AMBCTL1VAL ((CONFIG_BANK_3 << 16) | CONFIG_BANK_2) | ||
84 | |||
85 | #ifdef CONFIG_C_AMBEN_ALL | ||
86 | #define V_AMBEN AMBEN_ALL | ||
87 | #endif | ||
88 | #ifdef CONFIG_C_AMBEN | ||
89 | #define V_AMBEN 0x0 | ||
90 | #endif | ||
91 | #ifdef CONFIG_C_AMBEN_B0 | ||
92 | #define V_AMBEN AMBEN_B0 | ||
93 | #endif | ||
94 | #ifdef CONFIG_C_AMBEN_B0_B1 | ||
95 | #define V_AMBEN AMBEN_B0_B1 | ||
96 | #endif | ||
97 | #ifdef CONFIG_C_AMBEN_B0_B1_B2 | ||
98 | #define V_AMBEN AMBEN_B0_B1_B2 | ||
99 | #endif | ||
100 | #ifdef CONFIG_C_AMCKEN | ||
101 | #define V_AMCKEN AMCKEN | ||
102 | #else | ||
103 | #define V_AMCKEN 0x0 | ||
104 | #endif | ||
105 | #ifdef CONFIG_C_CDPRIO | ||
106 | #define V_CDPRIO 0x100 | ||
107 | #else | ||
108 | #define V_CDPRIO 0x0 | ||
109 | #endif | ||
110 | |||
111 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN | V_CDPRIO) | ||
112 | |||
113 | #ifdef CONFIG_BF527 | ||
114 | #define CPU "BF527" | ||
115 | #endif | ||
116 | #ifdef CONFIG_BF525 | ||
117 | #define CPU "BF525" | ||
118 | #endif | ||
119 | #ifdef CONFIG_BF522 | ||
120 | #define CPU "BF522" | ||
121 | #endif | ||
122 | #ifndef CPU | ||
123 | #define CPU "UNKNOWN" | ||
124 | #define CPUID 0x0 | ||
125 | #endif | ||
126 | |||
127 | #endif /* __MACH_BF527_H__ */ | ||
diff --git a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h new file mode 100644 index 000000000000..0b867e6a76c4 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h | |||
@@ -0,0 +1,152 @@ | |||
1 | #include <linux/serial.h> | ||
2 | #include <asm/dma.h> | ||
3 | #include <asm/portmux.h> | ||
4 | |||
5 | #define NR_PORTS 2 | ||
6 | |||
7 | #define OFFSET_THR 0x00 /* Transmit Holding register */ | ||
8 | #define OFFSET_RBR 0x00 /* Receive Buffer register */ | ||
9 | #define OFFSET_DLL 0x00 /* Divisor Latch (Low-Byte) */ | ||
10 | #define OFFSET_IER 0x04 /* Interrupt Enable Register */ | ||
11 | #define OFFSET_DLH 0x04 /* Divisor Latch (High-Byte) */ | ||
12 | #define OFFSET_IIR 0x08 /* Interrupt Identification Register */ | ||
13 | #define OFFSET_LCR 0x0C /* Line Control Register */ | ||
14 | #define OFFSET_MCR 0x10 /* Modem Control Register */ | ||
15 | #define OFFSET_LSR 0x14 /* Line Status Register */ | ||
16 | #define OFFSET_MSR 0x18 /* Modem Status Register */ | ||
17 | #define OFFSET_SCR 0x1C /* SCR Scratch Register */ | ||
18 | #define OFFSET_GCTL 0x24 /* Global Control Register */ | ||
19 | |||
20 | #define UART_GET_CHAR(uart) bfin_read16(((uart)->port.membase + OFFSET_RBR)) | ||
21 | #define UART_GET_DLL(uart) bfin_read16(((uart)->port.membase + OFFSET_DLL)) | ||
22 | #define UART_GET_IER(uart) bfin_read16(((uart)->port.membase + OFFSET_IER)) | ||
23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) | ||
24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) | ||
25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | ||
26 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | ||
27 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | ||
28 | |||
29 | #define UART_PUT_CHAR(uart, v) bfin_write16(((uart)->port.membase + OFFSET_THR), v) | ||
30 | #define UART_PUT_DLL(uart, v) bfin_write16(((uart)->port.membase + OFFSET_DLL), v) | ||
31 | #define UART_PUT_IER(uart, v) bfin_write16(((uart)->port.membase + OFFSET_IER), v) | ||
32 | #define UART_PUT_DLH(uart, v) bfin_write16(((uart)->port.membase + OFFSET_DLH), v) | ||
33 | #define UART_PUT_LCR(uart, v) bfin_write16(((uart)->port.membase + OFFSET_LCR), v) | ||
34 | #define UART_PUT_GCTL(uart, v) bfin_write16(((uart)->port.membase + OFFSET_GCTL), v) | ||
35 | |||
36 | #if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) | ||
37 | # define CONFIG_SERIAL_BFIN_CTSRTS | ||
38 | |||
39 | # ifndef CONFIG_UART0_CTS_PIN | ||
40 | # define CONFIG_UART0_CTS_PIN -1 | ||
41 | # endif | ||
42 | |||
43 | # ifndef CONFIG_UART0_RTS_PIN | ||
44 | # define CONFIG_UART0_RTS_PIN -1 | ||
45 | # endif | ||
46 | |||
47 | # ifndef CONFIG_UART1_CTS_PIN | ||
48 | # define CONFIG_UART1_CTS_PIN -1 | ||
49 | # endif | ||
50 | |||
51 | # ifndef CONFIG_UART1_RTS_PIN | ||
52 | # define CONFIG_UART1_RTS_PIN -1 | ||
53 | # endif | ||
54 | #endif | ||
55 | /* | ||
56 | * The pin configuration is different from schematic | ||
57 | */ | ||
58 | struct bfin_serial_port { | ||
59 | struct uart_port port; | ||
60 | unsigned int old_status; | ||
61 | #ifdef CONFIG_SERIAL_BFIN_DMA | ||
62 | int tx_done; | ||
63 | int tx_count; | ||
64 | struct circ_buf rx_dma_buf; | ||
65 | struct timer_list rx_dma_timer; | ||
66 | int rx_dma_nrows; | ||
67 | unsigned int tx_dma_channel; | ||
68 | unsigned int rx_dma_channel; | ||
69 | struct work_struct tx_dma_workqueue; | ||
70 | #else | ||
71 | struct work_struct cts_workqueue; | ||
72 | #endif | ||
73 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | ||
74 | int cts_pin; | ||
75 | int rts_pin; | ||
76 | #endif | ||
77 | }; | ||
78 | |||
79 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; | ||
80 | struct bfin_serial_res { | ||
81 | unsigned long uart_base_addr; | ||
82 | int uart_irq; | ||
83 | #ifdef CONFIG_SERIAL_BFIN_DMA | ||
84 | unsigned int uart_tx_dma_channel; | ||
85 | unsigned int uart_rx_dma_channel; | ||
86 | #endif | ||
87 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | ||
88 | int uart_cts_pin; | ||
89 | int uart_rts_pin; | ||
90 | #endif | ||
91 | }; | ||
92 | |||
93 | struct bfin_serial_res bfin_serial_resource[] = { | ||
94 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
95 | { | ||
96 | 0xFFC00400, | ||
97 | IRQ_UART0_RX, | ||
98 | #ifdef CONFIG_SERIAL_BFIN_DMA | ||
99 | CH_UART0_TX, | ||
100 | CH_UART0_RX, | ||
101 | #endif | ||
102 | #ifdef CONFIG_BFIN_UART0_CTSRTS | ||
103 | CONFIG_UART0_CTS_PIN, | ||
104 | CONFIG_UART0_RTS_PIN, | ||
105 | #endif | ||
106 | }, | ||
107 | #endif | ||
108 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
109 | { | ||
110 | 0xFFC02000, | ||
111 | IRQ_UART1_RX, | ||
112 | #ifdef CONFIG_SERIAL_BFIN_DMA | ||
113 | CH_UART1_TX, | ||
114 | CH_UART1_RX, | ||
115 | #endif | ||
116 | #ifdef CONFIG_BFIN_UART1_CTSRTS | ||
117 | CONFIG_UART1_CTS_PIN, | ||
118 | CONFIG_UART1_RTS_PIN, | ||
119 | #endif | ||
120 | }, | ||
121 | #endif | ||
122 | }; | ||
123 | |||
124 | int nr_ports = ARRAY_SIZE(bfin_serial_resource); | ||
125 | |||
126 | #define DRIVER_NAME "bfin-uart" | ||
127 | |||
128 | static void bfin_serial_hw_init(struct bfin_serial_port *uart) | ||
129 | { | ||
130 | |||
131 | #ifdef CONFIG_SERIAL_BFIN_UART0 | ||
132 | peripheral_request(P_UART0_TX, DRIVER_NAME); | ||
133 | peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
134 | #endif | ||
135 | |||
136 | #ifdef CONFIG_SERIAL_BFIN_UART1 | ||
137 | peripheral_request(P_UART1_TX, DRIVER_NAME); | ||
138 | peripheral_request(P_UART1_RX, DRIVER_NAME); | ||
139 | #endif | ||
140 | |||
141 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | ||
142 | if (uart->cts_pin >= 0) { | ||
143 | gpio_request(uart->cts_pin, DRIVER_NAME); | ||
144 | gpio_direction_input(uart->cts_pin); | ||
145 | } | ||
146 | |||
147 | if (uart->rts_pin >= 0) { | ||
148 | gpio_request(uart->rts_pin, DRIVER_NAME); | ||
149 | gpio_direction_output(uart->rts_pin); | ||
150 | } | ||
151 | #endif | ||
152 | } | ||
diff --git a/include/asm-blackfin/mach-bf527/blackfin.h b/include/asm-blackfin/mach-bf527/blackfin.h new file mode 100644 index 000000000000..1bd07e30781c --- /dev/null +++ b/include/asm-blackfin/mach-bf527/blackfin.h | |||
@@ -0,0 +1,78 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/mach-bf527/blackfin.h | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: | ||
8 | * | ||
9 | * Rev: | ||
10 | * | ||
11 | * Modified: | ||
12 | * | ||
13 | * | ||
14 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
15 | * | ||
16 | * This program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the GNU General Public License as published by | ||
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 | */ | ||
31 | |||
32 | #ifndef _MACH_BLACKFIN_H_ | ||
33 | #define _MACH_BLACKFIN_H_ | ||
34 | |||
35 | #define BF527_FAMILY | ||
36 | |||
37 | #include "bf527.h" | ||
38 | #include "mem_map.h" | ||
39 | #include "defBF522.h" | ||
40 | #include "anomaly.h" | ||
41 | |||
42 | #if defined(CONFIG_BF527) | ||
43 | #include "defBF527.h" | ||
44 | #endif | ||
45 | |||
46 | #if defined(CONFIG_BF525) | ||
47 | #include "defBF525.h" | ||
48 | #endif | ||
49 | |||
50 | #if !defined(__ASSEMBLY__) | ||
51 | #include "cdefBF522.h" | ||
52 | |||
53 | #if defined(CONFIG_BF527) | ||
54 | #include "cdefBF527.h" | ||
55 | #endif | ||
56 | |||
57 | #if defined(CONFIG_BF525) | ||
58 | #include "cdefBF525.h" | ||
59 | #endif | ||
60 | #endif | ||
61 | |||
62 | /* UART_IIR Register */ | ||
63 | #define STATUS(x) ((x << 1) & 0x06) | ||
64 | #define STATUS_P1 0x02 | ||
65 | #define STATUS_P0 0x01 | ||
66 | |||
67 | /* DPMC*/ | ||
68 | #define bfin_read_STOPCK_OFF() bfin_read_STOPCK() | ||
69 | #define bfin_write_STOPCK_OFF(val) bfin_write_STOPCK(val) | ||
70 | #define STOPCK_OFF STOPCK | ||
71 | |||
72 | /* PLL_DIV Masks */ | ||
73 | #define CCLK_DIV1 CSEL_DIV1 /* CCLK = VCO / 1 */ | ||
74 | #define CCLK_DIV2 CSEL_DIV2 /* CCLK = VCO / 2 */ | ||
75 | #define CCLK_DIV4 CSEL_DIV4 /* CCLK = VCO / 4 */ | ||
76 | #define CCLK_DIV8 CSEL_DIV8 /* CCLK = VCO / 8 */ | ||
77 | |||
78 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h b/include/asm-blackfin/mach-bf527/cdefBF52x_base.h index 5f801a0ef797..3f4de5d9d4cb 100644 --- a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h +++ b/include/asm-blackfin/mach-bf527/cdefBF52x_base.h | |||
@@ -45,8 +45,8 @@ | |||
45 | #define bfin_write_PLL_STAT(val) bfin_write16(PLL_STAT, val) | 45 | #define bfin_write_PLL_STAT(val) bfin_write16(PLL_STAT, val) |
46 | #define bfin_read_PLL_LOCKCNT() bfin_read16(PLL_LOCKCNT) | 46 | #define bfin_read_PLL_LOCKCNT() bfin_read16(PLL_LOCKCNT) |
47 | #define bfin_write_PLL_LOCKCNT(val) bfin_write16(PLL_LOCKCNT, val) | 47 | #define bfin_write_PLL_LOCKCNT(val) bfin_write16(PLL_LOCKCNT, val) |
48 | #define bfin_read_CHIPID() bfin_read16(CHIPID) | 48 | #define bfin_read_CHIPID() bfin_read32(CHIPID) |
49 | #define bfin_write_CHIPID(val) bfin_write16(CHIPID, val) | 49 | #define bfin_write_CHIPID(val) bfin_write32(CHIPID, val) |
50 | 50 | ||
51 | 51 | ||
52 | /* System Interrupt Controller (0xFFC00100 - 0xFFC001FF) */ | 52 | /* System Interrupt Controller (0xFFC00100 - 0xFFC001FF) */ |
@@ -59,9 +59,8 @@ | |||
59 | #define bfin_write_SIC_RVECT(val) bfin_write32(SIC_RVECT, val) | 59 | #define bfin_write_SIC_RVECT(val) bfin_write32(SIC_RVECT, val) |
60 | #define bfin_read_SIC_IMASK0() bfin_read32(SIC_IMASK0) | 60 | #define bfin_read_SIC_IMASK0() bfin_read32(SIC_IMASK0) |
61 | #define bfin_write_SIC_IMASK0(val) bfin_write32(SIC_IMASK0, val) | 61 | #define bfin_write_SIC_IMASK0(val) bfin_write32(SIC_IMASK0, val) |
62 | /* legacy register name (below) provided for backwards code compatibility */ | 62 | #define bfin_read_SIC_IMASK(x) bfin_read32(SIC_IMASK0 + (x << 6)) |
63 | #define bfin_read_SIC_IMASK() bfin_read32(SIC_IMASK) | 63 | #define bfin_write_SIC_IMASK(x, val) bfin_write32((SIC_IMASK0 + (x << 6)), val) |
64 | #define bfin_write_SIC_IMASK(val) bfin_write32(SIC_IMASK, val) | ||
65 | 64 | ||
66 | #define bfin_read_SIC_IAR0() bfin_read32(SIC_IAR0) | 65 | #define bfin_read_SIC_IAR0() bfin_read32(SIC_IAR0) |
67 | #define bfin_write_SIC_IAR0(val) bfin_write32(SIC_IAR0, val) | 66 | #define bfin_write_SIC_IAR0(val) bfin_write32(SIC_IAR0, val) |
@@ -74,15 +73,13 @@ | |||
74 | 73 | ||
75 | #define bfin_read_SIC_ISR0() bfin_read32(SIC_ISR0) | 74 | #define bfin_read_SIC_ISR0() bfin_read32(SIC_ISR0) |
76 | #define bfin_write_SIC_ISR0(val) bfin_write32(SIC_ISR0, val) | 75 | #define bfin_write_SIC_ISR0(val) bfin_write32(SIC_ISR0, val) |
77 | /* legacy register name (below) provided for backwards code compatibility */ | 76 | #define bfin_read_SIC_ISR(x) bfin_read32(SIC_ISR0 + (x << 6)) |
78 | #define bfin_read_SIC_ISR() bfin_read32(SIC_ISR) | 77 | #define bfin_write_SIC_ISR(x, val) bfin_write32((SIC_ISR0 + (x << 6)), val) |
79 | #define bfin_write_SIC_ISR(val) bfin_write32(SIC_ISR, val) | ||
80 | 78 | ||
81 | #define bfin_read_SIC_IWR0() bfin_read32(SIC_IWR0) | 79 | #define bfin_read_SIC_IWR0() bfin_read32(SIC_IWR0) |
82 | #define bfin_write_SIC_IWR0(val) bfin_write32(SIC_IWR0, val) | 80 | #define bfin_write_SIC_IWR0(val) bfin_write32(SIC_IWR0, val) |
83 | /* legacy register name (below) provided for backwards code compatibility */ | 81 | #define bfin_read_SIC_IWR(x) bfin_read32(SIC_IWR0 + (x << 6)) |
84 | #define bfin_read_SIC_IWR() bfin_read32(SIC_IWR) | 82 | #define bfin_write_SIC_IWR(x, val) bfin_write32((SIC_IWR0 + (x << 6)), val) |
85 | #define bfin_write_SIC_IWR(val) bfin_write32(SIC_IWR, val) | ||
86 | 83 | ||
87 | /* SIC Additions to ADSP-BF52x (0xFFC0014C - 0xFFC00162) */ | 84 | /* SIC Additions to ADSP-BF52x (0xFFC0014C - 0xFFC00162) */ |
88 | 85 | ||
diff --git a/include/asm-blackfin/mach-bf527/defBF527.h b/include/asm-blackfin/mach-bf527/defBF527.h index 2be3293f9e26..82134f578f32 100644 --- a/include/asm-blackfin/mach-bf527/defBF527.h +++ b/include/asm-blackfin/mach-bf527/defBF527.h | |||
@@ -32,12 +32,12 @@ | |||
32 | #define _DEF_BF527_H | 32 | #define _DEF_BF527_H |
33 | 33 | ||
34 | /* Include all Core registers and bit definitions */ | 34 | /* Include all Core registers and bit definitions */ |
35 | #include <def_LPBlackfin.h> | 35 | #include <asm/mach-common/def_LPBlackfin.h> |
36 | 36 | ||
37 | /* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ | 37 | /* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ |
38 | 38 | ||
39 | /* Include defBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */ | 39 | /* Include defBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */ |
40 | #include <defBF52x_base.h> | 40 | #include "defBF52x_base.h" |
41 | 41 | ||
42 | /* The following are the #defines needed by ADSP-BF527 that are not in the common header */ | 42 | /* The following are the #defines needed by ADSP-BF527 that are not in the common header */ |
43 | /* 10/100 Ethernet Controller (0xFFC03000 - 0xFFC031FF) */ | 43 | /* 10/100 Ethernet Controller (0xFFC03000 - 0xFFC031FF) */ |
diff --git a/include/asm-blackfin/mach-bf527/defBF52x_base.h b/include/asm-blackfin/mach-bf527/defBF52x_base.h index b1ff67db01f8..d6c24c54699d 100644 --- a/include/asm-blackfin/mach-bf527/defBF52x_base.h +++ b/include/asm-blackfin/mach-bf527/defBF52x_base.h | |||
@@ -52,13 +52,13 @@ | |||
52 | #define SYSCR 0xFFC00104 /* System Configuration Register */ | 52 | #define SYSCR 0xFFC00104 /* System Configuration Register */ |
53 | #define SIC_RVECT 0xFFC00108 /* Interrupt Reset Vector Address Register */ | 53 | #define SIC_RVECT 0xFFC00108 /* Interrupt Reset Vector Address Register */ |
54 | 54 | ||
55 | #define SIC_IMASK 0xFFC0010C /* Interrupt Mask Register */ | 55 | #define SIC_IMASK0 0xFFC0010C /* Interrupt Mask Register */ |
56 | #define SIC_IAR0 0xFFC00110 /* Interrupt Assignment Register 0 */ | 56 | #define SIC_IAR0 0xFFC00110 /* Interrupt Assignment Register 0 */ |
57 | #define SIC_IAR1 0xFFC00114 /* Interrupt Assignment Register 1 */ | 57 | #define SIC_IAR1 0xFFC00114 /* Interrupt Assignment Register 1 */ |
58 | #define SIC_IAR2 0xFFC00118 /* Interrupt Assignment Register 2 */ | 58 | #define SIC_IAR2 0xFFC00118 /* Interrupt Assignment Register 2 */ |
59 | #define SIC_IAR3 0xFFC0011C /* Interrupt Assignment Register 3 */ | 59 | #define SIC_IAR3 0xFFC0011C /* Interrupt Assignment Register 3 */ |
60 | #define SIC_ISR 0xFFC00120 /* Interrupt Status Register */ | 60 | #define SIC_ISR0 0xFFC00120 /* Interrupt Status Register */ |
61 | #define SIC_IWR 0xFFC00124 /* Interrupt Wakeup Register */ | 61 | #define SIC_IWR0 0xFFC00124 /* Interrupt Wakeup Register */ |
62 | 62 | ||
63 | /* SIC Additions to ADSP-BF52x (0xFFC0014C - 0xFFC00162) */ | 63 | /* SIC Additions to ADSP-BF52x (0xFFC0014C - 0xFFC00162) */ |
64 | #define SIC_IMASK1 0xFFC0014C /* Interrupt Mask register of SIC2 */ | 64 | #define SIC_IMASK1 0xFFC0014C /* Interrupt Mask register of SIC2 */ |
@@ -691,6 +691,8 @@ | |||
691 | 691 | ||
692 | /* ************* SYSTEM INTERRUPT CONTROLLER MASKS *************************************/ | 692 | /* ************* SYSTEM INTERRUPT CONTROLLER MASKS *************************************/ |
693 | /* Peripheral Masks For SIC_ISR, SIC_IWR, SIC_IMASK */ | 693 | /* Peripheral Masks For SIC_ISR, SIC_IWR, SIC_IMASK */ |
694 | |||
695 | #if 0 | ||
694 | #define IRQ_PLL_WAKEUP 0x00000001 /* PLL Wakeup Interrupt */ | 696 | #define IRQ_PLL_WAKEUP 0x00000001 /* PLL Wakeup Interrupt */ |
695 | 697 | ||
696 | #define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */ | 698 | #define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */ |
@@ -732,6 +734,7 @@ | |||
732 | #define IRQ_DMA15 0x40000000 /* DMA Channels 15 (MDMA0 Destination) TX Interrupt */ | 734 | #define IRQ_DMA15 0x40000000 /* DMA Channels 15 (MDMA0 Destination) TX Interrupt */ |
733 | #define IRQ_WDOG 0x80000000 /* Software Watchdog Timer Interrupt */ | 735 | #define IRQ_WDOG 0x80000000 /* Software Watchdog Timer Interrupt */ |
734 | #define IRQ_PFB_PORTG 0x10000000 /* PF Port G (PF31:16) Interrupt B */ | 736 | #define IRQ_PFB_PORTG 0x10000000 /* PF Port G (PF31:16) Interrupt B */ |
737 | #endif | ||
735 | 738 | ||
736 | /* SIC_IAR0 Macros */ | 739 | /* SIC_IAR0 Macros */ |
737 | #define P0_IVG(x) (((x)&0xF)-7) /* Peripheral #0 assigned IVG #x */ | 740 | #define P0_IVG(x) (((x)&0xF)-7) /* Peripheral #0 assigned IVG #x */ |
diff --git a/include/asm-blackfin/mach-bf527/dma.h b/include/asm-blackfin/mach-bf527/dma.h new file mode 100644 index 000000000000..a41627ae9134 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/dma.h | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * file: include/asm-blackfin/mach-bf527/dma.h | ||
3 | * based on: include/asm-blackfin/mach-bf537/dma.h | ||
4 | * author: Michael Hennerich (michael.hennerich@analog.com) | ||
5 | * | ||
6 | * created: | ||
7 | * description: | ||
8 | * system DMA map | ||
9 | * rev: | ||
10 | * | ||
11 | * modified: | ||
12 | * | ||
13 | * | ||
14 | * bugs: enter bugs at http://blackfin.uclinux.org/ | ||
15 | * | ||
16 | * this program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the gnu general public license as published by | ||
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 | */ | ||
31 | |||
32 | #ifndef _MACH_DMA_H_ | ||
33 | #define _MACH_DMA_H_ | ||
34 | |||
35 | #define MAX_BLACKFIN_DMA_CHANNEL 16 | ||
36 | |||
37 | #define CH_PPI 0 /* PPI receive/transmit or NFC */ | ||
38 | #define CH_NFC 0 /* PPI receive/transmit or NFC */ | ||
39 | #define CH_EMAC_RX 1 /* Ethernet MAC receive or HOSTDP */ | ||
40 | #define CH_EMAC_HOSTDP 1 /* Ethernet MAC receive or HOSTDP */ | ||
41 | #define CH_EMAC_TX 2 /* Ethernet MAC transmit or NFC */ | ||
42 | #define CH_SPORT0_RX 3 /* SPORT0 receive */ | ||
43 | #define CH_SPORT0_TX 4 /* SPORT0 transmit */ | ||
44 | #define CH_SPORT1_RX 5 /* SPORT1 receive */ | ||
45 | #define CH_SPORT1_TX 6 /* SPORT1 transmit */ | ||
46 | #define CH_SPI 7 /* SPI transmit/receive */ | ||
47 | #define CH_UART0_RX 8 /* UART0 receive */ | ||
48 | #define CH_UART0_TX 9 /* UART0 transmit */ | ||
49 | #define CH_UART1_RX 10 /* UART1 receive */ | ||
50 | #define CH_UART1_TX 11 /* UART1 transmit */ | ||
51 | |||
52 | #define CH_MEM_STREAM0_DEST 12 /* TX */ | ||
53 | #define CH_MEM_STREAM0_SRC 13 /* RX */ | ||
54 | #define CH_MEM_STREAM1_DEST 14 /* TX */ | ||
55 | #define CH_MEM_STREAM1_SRC 15 /* RX */ | ||
56 | |||
57 | extern int channel2irq(unsigned int channel); | ||
58 | extern struct dma_register *base_addr[]; | ||
59 | |||
60 | #endif | ||
diff --git a/include/asm-blackfin/mach-bf527/irq.h b/include/asm-blackfin/mach-bf527/irq.h new file mode 100644 index 000000000000..304f5bcfebe4 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/irq.h | |||
@@ -0,0 +1,263 @@ | |||
1 | /* | ||
2 | * file: include/asm-blackfin/mach-bf527/irq.h | ||
3 | * based on: include/asm-blackfin/mach-bf537/irq.h | ||
4 | * author: Michael Hennerich (michael.hennerich@analog.com) | ||
5 | * | ||
6 | * created: | ||
7 | * description: | ||
8 | * system mmr register map | ||
9 | * rev: | ||
10 | * | ||
11 | * modified: | ||
12 | * | ||
13 | * | ||
14 | * bugs: enter bugs at http://blackfin.uclinux.org/ | ||
15 | * | ||
16 | * this program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the gnu general public license as published by | ||
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 | */ | ||
31 | |||
32 | #ifndef _BF527_IRQ_H_ | ||
33 | #define _BF527_IRQ_H_ | ||
34 | |||
35 | /* | ||
36 | * Interrupt source definitions | ||
37 | Event Source Core Event Name | ||
38 | Core Emulation ** | ||
39 | Events (highest priority) EMU 0 | ||
40 | Reset RST 1 | ||
41 | NMI NMI 2 | ||
42 | Exception EVX 3 | ||
43 | Reserved -- 4 | ||
44 | Hardware Error IVHW 5 | ||
45 | Core Timer IVTMR 6 * | ||
46 | |||
47 | ..... | ||
48 | |||
49 | Software Interrupt 1 IVG14 31 | ||
50 | Software Interrupt 2 -- | ||
51 | (lowest priority) IVG15 32 * | ||
52 | */ | ||
53 | |||
54 | #define NR_PERI_INTS (2 * 32) | ||
55 | |||
56 | /* The ABSTRACT IRQ definitions */ | ||
57 | /** the first seven of the following are fixed, the rest you change if you need to **/ | ||
58 | #define IRQ_EMU 0 /* Emulation */ | ||
59 | #define IRQ_RST 1 /* reset */ | ||
60 | #define IRQ_NMI 2 /* Non Maskable */ | ||
61 | #define IRQ_EVX 3 /* Exception */ | ||
62 | #define IRQ_UNUSED 4 /* - unused interrupt */ | ||
63 | #define IRQ_HWERR 5 /* Hardware Error */ | ||
64 | #define IRQ_CORETMR 6 /* Core timer */ | ||
65 | |||
66 | #define BFIN_IRQ(x) ((x) + 7) | ||
67 | |||
68 | #define IRQ_PLL_WAKEUP BFIN_IRQ(0) /* PLL Wakeup Interrupt */ | ||
69 | #define IRQ_DMA0_ERROR BFIN_IRQ(1) /* DMA Error 0 (generic) */ | ||
70 | #define IRQ_DMAR0_BLK BFIN_IRQ(2) /* DMAR0 Block Interrupt */ | ||
71 | #define IRQ_DMAR1_BLK BFIN_IRQ(3) /* DMAR1 Block Interrupt */ | ||
72 | #define IRQ_DMAR0_OVR BFIN_IRQ(4) /* DMAR0 Overflow Error */ | ||
73 | #define IRQ_DMAR1_OVR BFIN_IRQ(5) /* DMAR1 Overflow Error */ | ||
74 | #define IRQ_PPI_ERROR BFIN_IRQ(6) /* PPI Error */ | ||
75 | #define IRQ_MAC_ERROR BFIN_IRQ(7) /* MAC Status */ | ||
76 | #define IRQ_SPORT0_ERROR BFIN_IRQ(8) /* SPORT0 Status */ | ||
77 | #define IRQ_SPORT1_ERROR BFIN_IRQ(9) /* SPORT1 Status */ | ||
78 | #define IRQ_UART0_ERROR BFIN_IRQ(12) /* UART0 Status */ | ||
79 | #define IRQ_UART1_ERROR BFIN_IRQ(13) /* UART1 Status */ | ||
80 | #define IRQ_RTC BFIN_IRQ(14) /* RTC */ | ||
81 | #define IRQ_PPI BFIN_IRQ(15) /* DMA Channel 0 (PPI/NAND) */ | ||
82 | #define IRQ_SPORT0_RX BFIN_IRQ(16) /* DMA 3 Channel (SPORT0 RX) */ | ||
83 | #define IRQ_SPORT0_TX BFIN_IRQ(17) /* DMA 4 Channel (SPORT0 TX) */ | ||
84 | #define IRQ_SPORT1_RX BFIN_IRQ(18) /* DMA 5 Channel (SPORT1 RX) */ | ||
85 | #define IRQ_SPORT1_TX BFIN_IRQ(19) /* DMA 6 Channel (SPORT1 TX) */ | ||
86 | #define IRQ_TWI BFIN_IRQ(20) /* TWI */ | ||
87 | #define IRQ_SPI BFIN_IRQ(21) /* DMA 7 Channel (SPI) */ | ||
88 | #define IRQ_UART0_RX BFIN_IRQ(22) /* DMA8 Channel (UART0 RX) */ | ||
89 | #define IRQ_UART0_TX BFIN_IRQ(23) /* DMA9 Channel (UART0 TX) */ | ||
90 | #define IRQ_UART1_RX BFIN_IRQ(24) /* DMA10 Channel (UART1 RX) */ | ||
91 | #define IRQ_UART1_TX BFIN_IRQ(25) /* DMA11 Channel (UART1 TX) */ | ||
92 | #define IRQ_OPTSEC BFIN_IRQ(26) /* OTPSEC Interrupt */ | ||
93 | #define IRQ_CNT BFIN_IRQ(27) /* GP Counter */ | ||
94 | #define IRQ_MAC_RX BFIN_IRQ(28) /* DMA1 Channel (MAC RX/HDMA) */ | ||
95 | #define IRQ_PORTH_INTA BFIN_IRQ(29) /* Port H Interrupt A */ | ||
96 | #define IRQ_MAC_TX BFIN_IRQ(30) /* DMA2 Channel (MAC TX/NAND) */ | ||
97 | #define IRQ_NFC BFIN_IRQ(30) /* DMA2 Channel (MAC TX/NAND) */ | ||
98 | #define IRQ_PORTH_INTB BFIN_IRQ(31) /* Port H Interrupt B */ | ||
99 | #define IRQ_TMR0 BFIN_IRQ(32) /* Timer 0 */ | ||
100 | #define IRQ_TMR1 BFIN_IRQ(33) /* Timer 1 */ | ||
101 | #define IRQ_TMR2 BFIN_IRQ(34) /* Timer 2 */ | ||
102 | #define IRQ_TMR3 BFIN_IRQ(35) /* Timer 3 */ | ||
103 | #define IRQ_TMR4 BFIN_IRQ(36) /* Timer 4 */ | ||
104 | #define IRQ_TMR5 BFIN_IRQ(37) /* Timer 5 */ | ||
105 | #define IRQ_TMR6 BFIN_IRQ(38) /* Timer 6 */ | ||
106 | #define IRQ_TMR7 BFIN_IRQ(39) /* Timer 7 */ | ||
107 | #define IRQ_PORTG_INTA BFIN_IRQ(40) /* Port G Interrupt A */ | ||
108 | #define IRQ_PORTG_INTB BFIN_IRQ(41) /* Port G Interrupt B */ | ||
109 | #define IRQ_MEM_DMA0 BFIN_IRQ(42) /* MDMA Stream 0 */ | ||
110 | #define IRQ_MEM_DMA1 BFIN_IRQ(43) /* MDMA Stream 1 */ | ||
111 | #define IRQ_WATCH BFIN_IRQ(44) /* Software Watchdog Timer */ | ||
112 | #define IRQ_PORTF_INTA BFIN_IRQ(45) /* Port F Interrupt A */ | ||
113 | #define IRQ_PORTF_INTB BFIN_IRQ(46) /* Port F Interrupt B */ | ||
114 | #define IRQ_SPI_ERROR BFIN_IRQ(47) /* SPI Status */ | ||
115 | #define IRQ_NFC_ERROR BFIN_IRQ(48) /* NAND Error */ | ||
116 | #define IRQ_HDMA_ERROR BFIN_IRQ(49) /* HDMA Error */ | ||
117 | #define IRQ_HDMA BFIN_IRQ(50) /* HDMA (TFI) */ | ||
118 | #define IRQ_USB_EINT BFIN_IRQ(51) /* USB_EINT Interrupt */ | ||
119 | #define IRQ_USB_INT0 BFIN_IRQ(52) /* USB_INT0 Interrupt */ | ||
120 | #define IRQ_USB_INT1 BFIN_IRQ(53) /* USB_INT1 Interrupt */ | ||
121 | #define IRQ_USB_INT2 BFIN_IRQ(54) /* USB_INT2 Interrupt */ | ||
122 | #define IRQ_USB_DMA BFIN_IRQ(55) /* USB_DMAINT Interrupt */ | ||
123 | |||
124 | #define SYS_IRQS BFIN_IRQ(63) /* 70 */ | ||
125 | |||
126 | #define IRQ_PF0 71 | ||
127 | #define IRQ_PF1 72 | ||
128 | #define IRQ_PF2 73 | ||
129 | #define IRQ_PF3 74 | ||
130 | #define IRQ_PF4 75 | ||
131 | #define IRQ_PF5 76 | ||
132 | #define IRQ_PF6 77 | ||
133 | #define IRQ_PF7 78 | ||
134 | #define IRQ_PF8 79 | ||
135 | #define IRQ_PF9 80 | ||
136 | #define IRQ_PF10 81 | ||
137 | #define IRQ_PF11 82 | ||
138 | #define IRQ_PF12 83 | ||
139 | #define IRQ_PF13 84 | ||
140 | #define IRQ_PF14 85 | ||
141 | #define IRQ_PF15 86 | ||
142 | |||
143 | #define IRQ_PG0 87 | ||
144 | #define IRQ_PG1 88 | ||
145 | #define IRQ_PG2 89 | ||
146 | #define IRQ_PG3 90 | ||
147 | #define IRQ_PG4 91 | ||
148 | #define IRQ_PG5 92 | ||
149 | #define IRQ_PG6 93 | ||
150 | #define IRQ_PG7 94 | ||
151 | #define IRQ_PG8 95 | ||
152 | #define IRQ_PG9 96 | ||
153 | #define IRQ_PG10 97 | ||
154 | #define IRQ_PG11 98 | ||
155 | #define IRQ_PG12 99 | ||
156 | #define IRQ_PG13 100 | ||
157 | #define IRQ_PG14 101 | ||
158 | #define IRQ_PG15 102 | ||
159 | |||
160 | #define IRQ_PH0 103 | ||
161 | #define IRQ_PH1 104 | ||
162 | #define IRQ_PH2 105 | ||
163 | #define IRQ_PH3 106 | ||
164 | #define IRQ_PH4 107 | ||
165 | #define IRQ_PH5 108 | ||
166 | #define IRQ_PH6 109 | ||
167 | #define IRQ_PH7 110 | ||
168 | #define IRQ_PH8 111 | ||
169 | #define IRQ_PH9 112 | ||
170 | #define IRQ_PH10 113 | ||
171 | #define IRQ_PH11 114 | ||
172 | #define IRQ_PH12 115 | ||
173 | #define IRQ_PH13 116 | ||
174 | #define IRQ_PH14 117 | ||
175 | #define IRQ_PH15 118 | ||
176 | |||
177 | #define GPIO_IRQ_BASE IRQ_PF0 | ||
178 | |||
179 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
180 | #define NR_IRQS (IRQ_PH15+1) | ||
181 | #else | ||
182 | #define NR_IRQS (SYS_IRQS+1) | ||
183 | #endif | ||
184 | |||
185 | #define IVG7 7 | ||
186 | #define IVG8 8 | ||
187 | #define IVG9 9 | ||
188 | #define IVG10 10 | ||
189 | #define IVG11 11 | ||
190 | #define IVG12 12 | ||
191 | #define IVG13 13 | ||
192 | #define IVG14 14 | ||
193 | #define IVG15 15 | ||
194 | |||
195 | /* IAR0 BIT FIELDS */ | ||
196 | #define IRQ_PLL_WAKEUP_POS 0 | ||
197 | #define IRQ_DMA0_ERROR_POS 4 | ||
198 | #define IRQ_DMAR0_BLK_POS 8 | ||
199 | #define IRQ_DMAR1_BLK_POS 12 | ||
200 | #define IRQ_DMAR0_OVR_POS 16 | ||
201 | #define IRQ_DMAR1_OVR_POS 20 | ||
202 | #define IRQ_PPI_ERROR_POS 24 | ||
203 | #define IRQ_MAC_ERROR_POS 28 | ||
204 | |||
205 | /* IAR1 BIT FIELDS */ | ||
206 | #define IRQ_SPORT0_ERROR_POS 0 | ||
207 | #define IRQ_SPORT1_ERROR_POS 4 | ||
208 | #define IRQ_UART0_ERROR_POS 16 | ||
209 | #define IRQ_UART1_ERROR_POS 20 | ||
210 | #define IRQ_RTC_POS 24 | ||
211 | #define IRQ_PPI_POS 28 | ||
212 | |||
213 | /* IAR2 BIT FIELDS */ | ||
214 | #define IRQ_SPORT0_RX_POS 0 | ||
215 | #define IRQ_SPORT0_TX_POS 4 | ||
216 | #define IRQ_SPORT1_RX_POS 8 | ||
217 | #define IRQ_SPORT1_TX_POS 12 | ||
218 | #define IRQ_TWI_POS 16 | ||
219 | #define IRQ_SPI_POS 20 | ||
220 | #define IRQ_UART0_RX_POS 24 | ||
221 | #define IRQ_UART0_TX_POS 28 | ||
222 | |||
223 | /* IAR3 BIT FIELDS */ | ||
224 | #define IRQ_UART1_RX_POS 0 | ||
225 | #define IRQ_UART1_TX_POS 4 | ||
226 | #define IRQ_OPTSEC_POS 8 | ||
227 | #define IRQ_CNT_POS 12 | ||
228 | #define IRQ_MAC_RX_POS 16 | ||
229 | #define IRQ_PORTH_INTA_POS 20 | ||
230 | #define IRQ_MAC_TX_POS 24 | ||
231 | #define IRQ_PORTH_INTB_POS 28 | ||
232 | |||
233 | /* IAR4 BIT FIELDS */ | ||
234 | #define IRQ_TMR0_POS 0 | ||
235 | #define IRQ_TMR1_POS 4 | ||
236 | #define IRQ_TMR2_POS 8 | ||
237 | #define IRQ_TMR3_POS 12 | ||
238 | #define IRQ_TMR4_POS 16 | ||
239 | #define IRQ_TMR5_POS 20 | ||
240 | #define IRQ_TMR6_POS 24 | ||
241 | #define IRQ_TMR7_POS 28 | ||
242 | |||
243 | /* IAR5 BIT FIELDS */ | ||
244 | #define IRQ_PORTG_INTA_POS 0 | ||
245 | #define IRQ_PORTG_INTB_POS 4 | ||
246 | #define IRQ_MEM_DMA0_POS 8 | ||
247 | #define IRQ_MEM_DMA1_POS 12 | ||
248 | #define IRQ_WATCH_POS 16 | ||
249 | #define IRQ_PORTF_INTA_POS 20 | ||
250 | #define IRQ_PORTF_INTB_POS 24 | ||
251 | #define IRQ_SPI_ERROR_POS 28 | ||
252 | |||
253 | /* IAR6 BIT FIELDS */ | ||
254 | #define IRQ_NFC_ERROR_POS 0 | ||
255 | #define IRQ_HDMA_ERROR_POS 4 | ||
256 | #define IRQ_HDMA_POS 8 | ||
257 | #define IRQ_USB_EINT_POS 12 | ||
258 | #define IRQ_USB_INT0_POS 16 | ||
259 | #define IRQ_USB_INT1_POS 20 | ||
260 | #define IRQ_USB_INT2_POS 24 | ||
261 | #define IRQ_USB_DMA_POS 28 | ||
262 | |||
263 | #endif /* _BF527_IRQ_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf527/mem_init.h b/include/asm-blackfin/mach-bf527/mem_init.h new file mode 100644 index 000000000000..008ca66719e2 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/mem_init.h | |||
@@ -0,0 +1,337 @@ | |||
1 | /* | ||
2 | * File: include/asm-blackfin/mach-bf527/mem_init.h | ||
3 | * Based on: | ||
4 | * Author: | ||
5 | * | ||
6 | * Created: | ||
7 | * Description: | ||
8 | * | ||
9 | * Rev: | ||
10 | * | ||
11 | * Modified: | ||
12 | * Copyright 2004-2007 Analog Devices Inc. | ||
13 | * | ||
14 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | ||
15 | * | ||
16 | * This program is free software; you can redistribute it and/or modify | ||
17 | * it under the terms of the GNU General Public License as published by | ||
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 | */ | ||
31 | |||
32 | #if (CONFIG_MEM_MT48LC16M16A2TG_75 || CONFIG_MEM_MT48LC64M4A2FB_7E || CONFIG_MEM_MT48LC16M8A2TG_75 || CONFIG_MEM_GENERIC_BOARD || CONFIG_MEM_MT48LC32M8A2_75 || CONFIG_MEM_MT48LC32M16A2TG_75) | ||
33 | #if (CONFIG_SCLK_HZ > 119402985) | ||
34 | #define SDRAM_tRP TRP_2 | ||
35 | #define SDRAM_tRP_num 2 | ||
36 | #define SDRAM_tRAS TRAS_7 | ||
37 | #define SDRAM_tRAS_num 7 | ||
38 | #define SDRAM_tRCD TRCD_2 | ||
39 | #define SDRAM_tWR TWR_2 | ||
40 | #endif | ||
41 | #if (CONFIG_SCLK_HZ > 104477612) && (CONFIG_SCLK_HZ <= 119402985) | ||
42 | #define SDRAM_tRP TRP_2 | ||
43 | #define SDRAM_tRP_num 2 | ||
44 | #define SDRAM_tRAS TRAS_6 | ||
45 | #define SDRAM_tRAS_num 6 | ||
46 | #define SDRAM_tRCD TRCD_2 | ||
47 | #define SDRAM_tWR TWR_2 | ||
48 | #endif | ||
49 | #if (CONFIG_SCLK_HZ > 89552239) && (CONFIG_SCLK_HZ <= 104477612) | ||
50 | #define SDRAM_tRP TRP_2 | ||
51 | #define SDRAM_tRP_num 2 | ||
52 | #define SDRAM_tRAS TRAS_5 | ||
53 | #define SDRAM_tRAS_num 5 | ||
54 | #define SDRAM_tRCD TRCD_2 | ||
55 | #define SDRAM_tWR TWR_2 | ||
56 | #endif | ||
57 | #if (CONFIG_SCLK_HZ > 74626866) && (CONFIG_SCLK_HZ <= 89552239) | ||
58 | #define SDRAM_tRP TRP_2 | ||
59 | #define SDRAM_tRP_num 2 | ||
60 | #define SDRAM_tRAS TRAS_4 | ||
61 | #define SDRAM_tRAS_num 4 | ||
62 | #define SDRAM_tRCD TRCD_2 | ||
63 | #define SDRAM_tWR TWR_2 | ||
64 | #endif | ||
65 | #if (CONFIG_SCLK_HZ > 66666667) && (CONFIG_SCLK_HZ <= 74626866) | ||
66 | #define SDRAM_tRP TRP_2 | ||
67 | #define SDRAM_tRP_num 2 | ||
68 | #define SDRAM_tRAS TRAS_3 | ||
69 | #define SDRAM_tRAS_num 3 | ||
70 | #define SDRAM_tRCD TRCD_2 | ||
71 | #define SDRAM_tWR TWR_2 | ||
72 | #endif | ||
73 | #if (CONFIG_SCLK_HZ > 59701493) && (CONFIG_SCLK_HZ <= 66666667) | ||
74 | #define SDRAM_tRP TRP_1 | ||
75 | #define SDRAM_tRP_num 1 | ||
76 | #define SDRAM_tRAS TRAS_4 | ||
77 | #define SDRAM_tRAS_num 3 | ||
78 | #define SDRAM_tRCD TRCD_1 | ||
79 | #define SDRAM_tWR TWR_2 | ||
80 | #endif | ||
81 | #if (CONFIG_SCLK_HZ > 44776119) && (CONFIG_SCLK_HZ <= 59701493) | ||
82 | #define SDRAM_tRP TRP_1 | ||
83 | #define SDRAM_tRP_num 1 | ||
84 | #define SDRAM_tRAS TRAS_3 | ||
85 | #define SDRAM_tRAS_num 3 | ||
86 | #define SDRAM_tRCD TRCD_1 | ||
87 | #define SDRAM_tWR TWR_2 | ||
88 | #endif | ||
89 | #if (CONFIG_SCLK_HZ > 29850746) && (CONFIG_SCLK_HZ <= 44776119) | ||
90 | #define SDRAM_tRP TRP_1 | ||
91 | #define SDRAM_tRP_num 1 | ||
92 | #define SDRAM_tRAS TRAS_2 | ||
93 | #define SDRAM_tRAS_num 2 | ||
94 | #define SDRAM_tRCD TRCD_1 | ||
95 | #define SDRAM_tWR TWR_2 | ||
96 | #endif | ||
97 | #if (CONFIG_SCLK_HZ <= 29850746) | ||
98 | #define SDRAM_tRP TRP_1 | ||
99 | #define SDRAM_tRP_num 1 | ||
100 | #define SDRAM_tRAS TRAS_1 | ||
101 | #define SDRAM_tRAS_num 1 | ||
102 | #define SDRAM_tRCD TRCD_1 | ||
103 | #define SDRAM_tWR TWR_2 | ||
104 | #endif | ||
105 | #endif | ||
106 | |||
107 | #if (CONFIG_MEM_MT48LC16M16A2TG_75) | ||
108 | /*SDRAM INFORMATION: */ | ||
109 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
110 | #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ | ||
111 | #define SDRAM_CL CL_3 | ||
112 | #endif | ||
113 | |||
114 | #if (CONFIG_MEM_MT48LC16M8A2TG_75) | ||
115 | /*SDRAM INFORMATION: */ | ||
116 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
117 | #define SDRAM_NRA 4096 /* Number of row addresses in SDRAM */ | ||
118 | #define SDRAM_CL CL_3 | ||
119 | #endif | ||
120 | |||
121 | #if (CONFIG_MEM_MT48LC32M8A2_75) | ||
122 | /*SDRAM INFORMATION: */ | ||
123 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
124 | #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ | ||
125 | #define SDRAM_CL CL_3 | ||
126 | #endif | ||
127 | |||
128 | #if (CONFIG_MEM_MT48LC64M4A2FB_7E) | ||
129 | /*SDRAM INFORMATION: */ | ||
130 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
131 | #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ | ||
132 | #define SDRAM_CL CL_3 | ||
133 | #endif | ||
134 | |||
135 | #if (CONFIG_MEM_GENERIC_BOARD) | ||
136 | /*SDRAM INFORMATION: Modify this for your board */ | ||
137 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
138 | #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ | ||
139 | #define SDRAM_CL CL_3 | ||
140 | #endif | ||
141 | |||
142 | #if (CONFIG_MEM_MT48LC32M16A2TG_75) | ||
143 | /*SDRAM INFORMATION: */ | ||
144 | #define SDRAM_Tref 64 /* Refresh period in milliseconds */ | ||
145 | #define SDRAM_NRA 8192 /* Number of row addresses in SDRAM */ | ||
146 | #define SDRAM_CL CL_3 | ||
147 | #endif | ||
148 | |||
149 | #if (CONFIG_MEM_SIZE == 128) | ||
150 | #define SDRAM_SIZE EBSZ_128 | ||
151 | #endif | ||
152 | #if (CONFIG_MEM_SIZE == 64) | ||
153 | #define SDRAM_SIZE EBSZ_64 | ||
154 | #endif | ||
155 | #if (CONFIG_MEM_SIZE == 32) | ||
156 | #define SDRAM_SIZE EBSZ_32 | ||
157 | #endif | ||
158 | #if (CONFIG_MEM_SIZE == 16) | ||
159 | #define SDRAM_SIZE EBSZ_16 | ||
160 | #endif | ||
161 | #if (CONFIG_MEM_ADD_WIDTH == 11) | ||
162 | #define SDRAM_WIDTH EBCAW_11 | ||
163 | #endif | ||
164 | #if (CONFIG_MEM_ADD_WIDTH == 10) | ||
165 | #define SDRAM_WIDTH EBCAW_10 | ||
166 | #endif | ||
167 | #if (CONFIG_MEM_ADD_WIDTH == 9) | ||
168 | #define SDRAM_WIDTH EBCAW_9 | ||
169 | #endif | ||
170 | #if (CONFIG_MEM_ADD_WIDTH == 8) | ||
171 | #define SDRAM_WIDTH EBCAW_8 | ||
172 | #endif | ||
173 | |||
174 | #define mem_SDBCTL (SDRAM_WIDTH | SDRAM_SIZE | EBE) | ||
175 | |||
176 | /* Equation from section 17 (p17-46) of BF533 HRM */ | ||
177 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) | ||
178 | |||
179 | /* Enable SCLK Out */ | ||
180 | #define mem_SDGCTL (SCTLE | SDRAM_CL | SDRAM_tRAS | SDRAM_tRP | SDRAM_tRCD | SDRAM_tWR | PSS) | ||
181 | |||
182 | #if defined CONFIG_CLKIN_HALF | ||
183 | #define CLKIN_HALF 1 | ||
184 | #else | ||
185 | #define CLKIN_HALF 0 | ||
186 | #endif | ||
187 | |||
188 | #if defined CONFIG_PLL_BYPASS | ||
189 | #define PLL_BYPASS 1 | ||
190 | #else | ||
191 | #define PLL_BYPASS 0 | ||
192 | #endif | ||
193 | |||
194 | /***************************************Currently Not Being Used *********************************/ | ||
195 | #define flash_EBIU_AMBCTL_WAT ((CONFIG_FLASH_SPEED_BWAT * 4) / (4000000000 / CONFIG_SCLK_HZ)) + 1 | ||
196 | #define flash_EBIU_AMBCTL_RAT ((CONFIG_FLASH_SPEED_BRAT * 4) / (4000000000 / CONFIG_SCLK_HZ)) + 1 | ||
197 | #define flash_EBIU_AMBCTL_HT ((CONFIG_FLASH_SPEED_BHT * 4) / (4000000000 / CONFIG_SCLK_HZ)) | ||
198 | #define flash_EBIU_AMBCTL_ST ((CONFIG_FLASH_SPEED_BST * 4) / (4000000000 / CONFIG_SCLK_HZ)) + 1 | ||
199 | #define flash_EBIU_AMBCTL_TT ((CONFIG_FLASH_SPEED_BTT * 4) / (4000000000 / CONFIG_SCLK_HZ)) + 1 | ||
200 | |||
201 | #if (flash_EBIU_AMBCTL_TT > 3) | ||
202 | #define flash_EBIU_AMBCTL0_TT B0TT_4 | ||
203 | #endif | ||
204 | #if (flash_EBIU_AMBCTL_TT == 3) | ||
205 | #define flash_EBIU_AMBCTL0_TT B0TT_3 | ||
206 | #endif | ||
207 | #if (flash_EBIU_AMBCTL_TT == 2) | ||
208 | #define flash_EBIU_AMBCTL0_TT B0TT_2 | ||
209 | #endif | ||
210 | #if (flash_EBIU_AMBCTL_TT < 2) | ||
211 | #define flash_EBIU_AMBCTL0_TT B0TT_1 | ||
212 | #endif | ||
213 | |||
214 | #if (flash_EBIU_AMBCTL_ST > 3) | ||
215 | #define flash_EBIU_AMBCTL0_ST B0ST_4 | ||
216 | #endif | ||
217 | #if (flash_EBIU_AMBCTL_ST == 3) | ||
218 | #define flash_EBIU_AMBCTL0_ST B0ST_3 | ||
219 | #endif | ||
220 | #if (flash_EBIU_AMBCTL_ST == 2) | ||
221 | #define flash_EBIU_AMBCTL0_ST B0ST_2 | ||
222 | #endif | ||
223 | #if (flash_EBIU_AMBCTL_ST < 2) | ||
224 | #define flash_EBIU_AMBCTL0_ST B0ST_1 | ||
225 | #endif | ||
226 | |||
227 | #if (flash_EBIU_AMBCTL_HT > 2) | ||
228 | #define flash_EBIU_AMBCTL0_HT B0HT_3 | ||
229 | #endif | ||
230 | #if (flash_EBIU_AMBCTL_HT == 2) | ||
231 | #define flash_EBIU_AMBCTL0_HT B0HT_2 | ||
232 | #endif | ||
233 | #if (flash_EBIU_AMBCTL_HT == 1) | ||
234 | #define flash_EBIU_AMBCTL0_HT B0HT_1 | ||
235 | #endif | ||
236 | #if (flash_EBIU_AMBCTL_HT == 0 && CONFIG_FLASH_SPEED_BHT == 0) | ||
237 | #define flash_EBIU_AMBCTL0_HT B0HT_0 | ||
238 | #endif | ||
239 | #if (flash_EBIU_AMBCTL_HT == 0 && CONFIG_FLASH_SPEED_BHT != 0) | ||
240 | #define flash_EBIU_AMBCTL0_HT B0HT_1 | ||
241 | #endif | ||
242 | |||
243 | #if (flash_EBIU_AMBCTL_WAT > 14) | ||
244 | #define flash_EBIU_AMBCTL0_WAT B0WAT_15 | ||
245 | #endif | ||
246 | #if (flash_EBIU_AMBCTL_WAT == 14) | ||
247 | #define flash_EBIU_AMBCTL0_WAT B0WAT_14 | ||
248 | #endif | ||
249 | #if (flash_EBIU_AMBCTL_WAT == 13) | ||
250 | #define flash_EBIU_AMBCTL0_WAT B0WAT_13 | ||
251 | #endif | ||
252 | #if (flash_EBIU_AMBCTL_WAT == 12) | ||
253 | #define flash_EBIU_AMBCTL0_WAT B0WAT_12 | ||
254 | #endif | ||
255 | #if (flash_EBIU_AMBCTL_WAT == 11) | ||
256 | #define flash_EBIU_AMBCTL0_WAT B0WAT_11 | ||
257 | #endif | ||
258 | #if (flash_EBIU_AMBCTL_WAT == 10) | ||
259 | #define flash_EBIU_AMBCTL0_WAT B0WAT_10 | ||
260 | #endif | ||
261 | #if (flash_EBIU_AMBCTL_WAT == 9) | ||
262 | #define flash_EBIU_AMBCTL0_WAT B0WAT_9 | ||
263 | #endif | ||
264 | #if (flash_EBIU_AMBCTL_WAT == 8) | ||
265 | #define flash_EBIU_AMBCTL0_WAT B0WAT_8 | ||
266 | #endif | ||
267 | #if (flash_EBIU_AMBCTL_WAT == 7) | ||
268 | #define flash_EBIU_AMBCTL0_WAT B0WAT_7 | ||
269 | #endif | ||
270 | #if (flash_EBIU_AMBCTL_WAT == 6) | ||
271 | #define flash_EBIU_AMBCTL0_WAT B0WAT_6 | ||
272 | #endif | ||
273 | #if (flash_EBIU_AMBCTL_WAT == 5) | ||
274 | #define flash_EBIU_AMBCTL0_WAT B0WAT_5 | ||
275 | #endif | ||
276 | #if (flash_EBIU_AMBCTL_WAT == 4) | ||
277 | #define flash_EBIU_AMBCTL0_WAT B0WAT_4 | ||
278 | #endif | ||
279 | #if (flash_EBIU_AMBCTL_WAT == 3) | ||
280 | #define flash_EBIU_AMBCTL0_WAT B0WAT_3 | ||
281 | #endif | ||
282 | #if (flash_EBIU_AMBCTL_WAT == 2) | ||
283 | #define flash_EBIU_AMBCTL0_WAT B0WAT_2 | ||
284 | #endif | ||
285 | #if (flash_EBIU_AMBCTL_WAT == 1) | ||
286 | #define flash_EBIU_AMBCTL0_WAT B0WAT_1 | ||
287 | #endif | ||
288 | |||
289 | #if (flash_EBIU_AMBCTL_RAT > 14) | ||
290 | #define flash_EBIU_AMBCTL0_RAT B0RAT_15 | ||
291 | #endif | ||
292 | #if (flash_EBIU_AMBCTL_RAT == 14) | ||
293 | #define flash_EBIU_AMBCTL0_RAT B0RAT_14 | ||
294 | #endif | ||
295 | #if (flash_EBIU_AMBCTL_RAT == 13) | ||
296 | #define flash_EBIU_AMBCTL0_RAT B0RAT_13 | ||
297 | #endif | ||
298 | #if (flash_EBIU_AMBCTL_RAT == 12) | ||
299 | #define flash_EBIU_AMBCTL0_RAT B0RAT_12 | ||
300 | #endif | ||
301 | #if (flash_EBIU_AMBCTL_RAT == 11) | ||
302 | #define flash_EBIU_AMBCTL0_RAT B0RAT_11 | ||
303 | #endif | ||
304 | #if (flash_EBIU_AMBCTL_RAT == 10) | ||
305 | #define flash_EBIU_AMBCTL0_RAT B0RAT_10 | ||
306 | #endif | ||
307 | #if (flash_EBIU_AMBCTL_RAT == 9) | ||
308 | #define flash_EBIU_AMBCTL0_RAT B0RAT_9 | ||
309 | #endif | ||
310 | #if (flash_EBIU_AMBCTL_RAT == 8) | ||
311 | #define flash_EBIU_AMBCTL0_RAT B0RAT_8 | ||
312 | #endif | ||
313 | #if (flash_EBIU_AMBCTL_RAT == 7) | ||
314 | #define flash_EBIU_AMBCTL0_RAT B0RAT_7 | ||
315 | #endif | ||
316 | #if (flash_EBIU_AMBCTL_RAT == 6) | ||
317 | #define flash_EBIU_AMBCTL0_RAT B0RAT_6 | ||
318 | #endif | ||
319 | #if (flash_EBIU_AMBCTL_RAT == 5) | ||
320 | #define flash_EBIU_AMBCTL0_RAT B0RAT_5 | ||
321 | #endif | ||
322 | #if (flash_EBIU_AMBCTL_RAT == 4) | ||
323 | #define flash_EBIU_AMBCTL0_RAT B0RAT_4 | ||
324 | #endif | ||
325 | #if (flash_EBIU_AMBCTL_RAT == 3) | ||
326 | #define flash_EBIU_AMBCTL0_RAT B0RAT_3 | ||
327 | #endif | ||
328 | #if (flash_EBIU_AMBCTL_RAT == 2) | ||
329 | #define flash_EBIU_AMBCTL0_RAT B0RAT_2 | ||
330 | #endif | ||
331 | #if (flash_EBIU_AMBCTL_RAT == 1) | ||
332 | #define flash_EBIU_AMBCTL0_RAT B0RAT_1 | ||
333 | #endif | ||
334 | |||
335 | #define flash_EBIU_AMBCTL0 \ | ||
336 | (flash_EBIU_AMBCTL0_WAT | flash_EBIU_AMBCTL0_RAT | flash_EBIU_AMBCTL0_HT | \ | ||
337 | flash_EBIU_AMBCTL0_ST | flash_EBIU_AMBCTL0_TT | CONFIG_FLASH_SPEED_RDYEN) | ||
diff --git a/include/asm-blackfin/mach-bf527/mem_map.h b/include/asm-blackfin/mach-bf527/mem_map.h new file mode 100644 index 000000000000..c5aa20102b24 --- /dev/null +++ b/include/asm-blackfin/mach-bf527/mem_map.h | |||
@@ -0,0 +1,98 @@ | |||
1 | /* | ||
2 | * file: include/asm-blackfin/mach-bf527/mem_map.h | ||
3 | * based on: include/asm-blackfin/mach-bf537/mem_map.h | ||
4 | * author: Michael Hennerich (michael.hennerich@analog.com) | ||
5 | * | ||
6 | * created: | ||
7 | * description: | ||
8 | * Memory MAP Common header file for blackfin BF527/5/2 of processors. | ||
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 | */ | ||
30 | |||
31 | #ifndef _MEM_MAP_527_H_ | ||
32 | #define _MEM_MAP_527_H_ | ||
33 | |||
34 | #define COREMMR_BASE 0xFFE00000 /* Core MMRs */ | ||
35 | #define SYSMMR_BASE 0xFFC00000 /* System MMRs */ | ||
36 | |||
37 | /* Async Memory Banks */ | ||
38 | #define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ | ||
39 | #define ASYNC_BANK3_SIZE 0x00100000 /* 1M */ | ||
40 | #define ASYNC_BANK2_BASE 0x20200000 /* Async Bank 2 */ | ||
41 | #define ASYNC_BANK2_SIZE 0x00100000 /* 1M */ | ||
42 | #define ASYNC_BANK1_BASE 0x20100000 /* Async Bank 1 */ | ||
43 | #define ASYNC_BANK1_SIZE 0x00100000 /* 1M */ | ||
44 | #define ASYNC_BANK0_BASE 0x20000000 /* Async Bank 0 */ | ||
45 | #define ASYNC_BANK0_SIZE 0x00100000 /* 1M */ | ||
46 | |||
47 | /* Boot ROM Memory */ | ||
48 | |||
49 | #define BOOT_ROM_START 0xEF000000 | ||
50 | |||
51 | /* Level 1 Memory */ | ||
52 | |||
53 | /* Memory Map for ADSP-BF527 ADSP-BF525 ADSP-BF522 processors */ | ||
54 | |||
55 | #ifdef CONFIG_BFIN_ICACHE | ||
56 | #define BFIN_ICACHESIZE (16*1024) | ||
57 | #else | ||
58 | #define BFIN_ICACHESIZE (0*1024) | ||
59 | #endif | ||
60 | |||
61 | #define L1_CODE_START 0xFFA00000 | ||
62 | #define L1_DATA_A_START 0xFF800000 | ||
63 | #define L1_DATA_B_START 0xFF900000 | ||
64 | |||
65 | #define L1_CODE_LENGTH 0xC000 | ||
66 | |||
67 | #ifdef CONFIG_BFIN_DCACHE | ||
68 | |||
69 | #ifdef CONFIG_BFIN_DCACHE_BANKA | ||
70 | #define DMEM_CNTR (ACACHE_BSRAM | ENDCPLB | PORT_PREF0) | ||
71 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | ||
72 | #define L1_DATA_B_LENGTH 0x8000 | ||
73 | #define BFIN_DCACHESIZE (16*1024) | ||
74 | #define BFIN_DSUPBANKS 1 | ||
75 | #else | ||
76 | #define DMEM_CNTR (ACACHE_BCACHE | ENDCPLB | PORT_PREF0) | ||
77 | #define L1_DATA_A_LENGTH (0x8000 - 0x4000) | ||
78 | #define L1_DATA_B_LENGTH (0x8000 - 0x4000) | ||
79 | #define BFIN_DCACHESIZE (32*1024) | ||
80 | #define BFIN_DSUPBANKS 2 | ||
81 | #endif | ||
82 | |||
83 | #else | ||
84 | #define DMEM_CNTR (ASRAM_BSRAM | ENDCPLB | PORT_PREF0) | ||
85 | #define L1_DATA_A_LENGTH 0x8000 | ||
86 | #define L1_DATA_B_LENGTH 0x8000 | ||
87 | #define BFIN_DCACHESIZE (0*1024) | ||
88 | #define BFIN_DSUPBANKS 0 | ||
89 | #endif /*CONFIG_BFIN_DCACHE */ | ||
90 | |||
91 | /* Scratch Pad Memory */ | ||
92 | |||
93 | #if defined(CONFIG_BF527) || defined(CONFIG_BF536) || defined(CONFIG_BF534) | ||
94 | #define L1_SCRATCH_START 0xFFB00000 | ||
95 | #define L1_SCRATCH_LENGTH 0x1000 | ||
96 | #endif | ||
97 | |||
98 | #endif /* _MEM_MAP_527_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf527/portmux.h b/include/asm-blackfin/mach-bf527/portmux.h new file mode 100644 index 000000000000..dcf001adc63c --- /dev/null +++ b/include/asm-blackfin/mach-bf527/portmux.h | |||
@@ -0,0 +1,205 @@ | |||
1 | #ifndef _MACH_PORTMUX_H_ | ||
2 | #define _MACH_PORTMUX_H_ | ||
3 | |||
4 | #define P_PPI0_D0 (P_DEFINED | P_IDENT(GPIO_PF0) | P_FUNCT(0)) | ||
5 | #define P_PPI0_D1 (P_DEFINED | P_IDENT(GPIO_PF1) | P_FUNCT(0)) | ||
6 | #define P_PPI0_D2 (P_DEFINED | P_IDENT(GPIO_PF2) | P_FUNCT(0)) | ||
7 | #define P_PPI0_D3 (P_DEFINED | P_IDENT(GPIO_PF3) | P_FUNCT(0)) | ||
8 | #define P_PPI0_D4 (P_DEFINED | P_IDENT(GPIO_PF4) | P_FUNCT(0)) | ||
9 | #define P_PPI0_D5 (P_DEFINED | P_IDENT(GPIO_PF5) | P_FUNCT(0)) | ||
10 | #define P_PPI0_D6 (P_DEFINED | P_IDENT(GPIO_PF6) | P_FUNCT(0)) | ||
11 | #define P_PPI0_D7 (P_DEFINED | P_IDENT(GPIO_PF7) | P_FUNCT(0)) | ||
12 | #define P_PPI0_D8 (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(0)) | ||
13 | #define P_PPI0_D9 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(0)) | ||
14 | #define P_PPI0_D10 (P_DEFINED | P_IDENT(GPIO_PF10) | P_FUNCT(0)) | ||
15 | #define P_PPI0_D11 (P_DEFINED | P_IDENT(GPIO_PF11) | P_FUNCT(0)) | ||
16 | #define P_PPI0_D12 (P_DEFINED | P_IDENT(GPIO_PF12) | P_FUNCT(0)) | ||
17 | #define P_PPI0_D13 (P_DEFINED | P_IDENT(GPIO_PF13) | P_FUNCT(0)) | ||
18 | #define P_PPI0_D14 (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(0)) | ||
19 | #define P_PPI0_D15 (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(0)) | ||
20 | |||
21 | #if defined(CONFIG_BF527_SPORT0_PORTF) | ||
22 | #define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PF0) | P_FUNCT(1)) | ||
23 | #define P_SPORT0_RFS (P_DEFINED | P_IDENT(GPIO_PF1) | P_FUNCT(1)) | ||
24 | #define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PF2) | P_FUNCT(1)) | ||
25 | #define P_SPORT0_DTPRI (P_DEFINED | P_IDENT(GPIO_PF3) | P_FUNCT(1)) | ||
26 | #define P_SPORT0_TFS (P_DEFINED | P_IDENT(GPIO_PF4) | P_FUNCT(1)) | ||
27 | #define P_SPORT0_TSCLK (P_DEFINED | P_IDENT(GPIO_PF5) | P_FUNCT(1)) | ||
28 | #define P_SPORT0_DTSEC (P_DEFINED | P_IDENT(GPIO_PF6) | P_FUNCT(1)) | ||
29 | #define P_SPORT0_DRSEC (P_DEFINED | P_IDENT(GPIO_PF7) | P_FUNCT(1)) | ||
30 | #elif defined(CONFIG_BF527_SPORT0_PORTG) | ||
31 | #define P_SPORT0_DTPRI (P_DEFINED | P_IDENT(GPIO_PG6) | P_FUNCT(0)) | ||
32 | #define P_SPORT0_DRSEC (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(1)) | ||
33 | #define P_SPORT0_DTSEC (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(1)) | ||
34 | #define P_SPORT0_DRPRI (P_DEFINED | P_IDENT(GPIO_PG7) | P_FUNCT(1)) | ||
35 | #define P_SPORT0_RFS (P_DEFINED | P_IDENT(GPIO_PG8) | P_FUNCT(1)) | ||
36 | #define P_SPORT0_RSCLK (P_DEFINED | P_IDENT(GPIO_PG9) | P_FUNCT(1)) | ||
37 | #if defined(CONFIG_BF527_SPORT0_TSCLK_PG10) | ||
38 | #define P_SPORT0_TSCLK (P_DEFINED | P_IDENT(GPIO_PG10) | P_FUNCT(1)) | ||
39 | #elif defined(CONFIG_BF527_SPORT0_TSCLK_PG14) | ||
40 | #define P_SPORT0_TSCLK (P_DEFINED | P_IDENT(GPIO_PG14) | P_FUNCT(0)) | ||
41 | #endif | ||
42 | #define P_SPORT0_TFS (P_DEFINED | P_IDENT(GPIO_PG15) | P_FUNCT(0)) | ||
43 | #endif | ||
44 | |||
45 | #define P_SPORT1_DRPRI (P_DEFINED | P_IDENT(GPIO_PF8) | P_FUNCT(1)) | ||
46 | #define P_SPORT1_RSCLK (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(1)) | ||
47 | #define P_SPORT1_RFS (P_DEFINED | P_IDENT(GPIO_PF10) | P_FUNCT(1)) | ||
48 | #define P_SPORT1_TFS (P_DEFINED | P_IDENT(GPIO_PF11) | P_FUNCT(1)) | ||
49 | #define P_SPORT1_DTPRI (P_DEFINED | P_IDENT(GPIO_PF12) | P_FUNCT(1)) | ||
50 | #define P_SPORT1_TSCLK (P_DEFINED | P_IDENT(GPIO_PF13) | P_FUNCT(1)) | ||
51 | #define P_SPORT1_DTSEC (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(1)) | ||
52 | #define P_SPORT1_DRSEC (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(1)) | ||
53 | |||
54 | #define P_SPI0_SSEL6 (P_DEFINED | P_IDENT(GPIO_PF9) | P_FUNCT(2)) | ||
55 | #define P_SPI0_SSEL7 (P_DEFINED | P_IDENT(GPIO_PF10) | P_FUNCT(2)) | ||
56 | |||
57 | #define P_SPI0_SSEL2 (P_DEFINED | P_IDENT(GPIO_PF12) | P_FUNCT(2)) | ||
58 | #define P_SPI0_SSEL3 (P_DEFINED | P_IDENT(GPIO_PF13) | P_FUNCT(2)) | ||
59 | |||
60 | #if defined(CONFIG_BF527_UART1_PORTF) | ||
61 | #define P_UART1_TX (P_DEFINED | P_IDENT(GPIO_PF14) | P_FUNCT(2)) | ||
62 | #define P_UART1_RX (P_DEFINED | P_IDENT(GPIO_PF15) | P_FUNCT(2)) | ||
63 | #elif defined(CONFIG_BF527_UART1_PORTG) | ||
64 | #define P_UART1_TX (P_DEFINED | P_IDENT(GPIO_PG12) | P_FUNCT(1)) | ||
65 | #define P_UART1_RX (P_DEFINED | P_IDENT(GPIO_PG13) | P_FUNCT(1)) | ||
66 | #endif | ||
67 | |||
68 | #define P_HWAIT (P_DONTCARE) | ||
69 | |||
70 | #define P_SPI0_SS (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(0)) | ||
71 | #define P_SPI0_SSEL1 (P_DEFINED | P_IDENT(GPIO_PG1) | P_FUNCT(2)) | ||
72 | #define P_SPI0_SCK (P_DEFINED | P_IDENT(GPIO_PG2) | P_FUNCT(2)) | ||
73 | #define P_SPI0_MISO (P_DEFINED | P_IDENT(GPIO_PG3) | P_FUNCT(2)) | ||
74 | #define P_SPI0_MOSI (P_DEFINED | P_IDENT(GPIO_PG4) | P_FUNCT(2)) | ||
75 | #define P_TMR1 (P_DEFINED | P_IDENT(GPIO_PG5) | P_FUNCT(0)) | ||
76 | #define P_PPI0_FS2 (P_DEFINED | P_IDENT(GPIO_PG5) | P_FUNCT(0)) | ||
77 | #define P_TMR3 (P_DEFINED | P_IDENT(GPIO_PG7) | P_FUNCT(0)) | ||
78 | #define P_TMR4 (P_DEFINED | P_IDENT(GPIO_PG8) | P_FUNCT(0)) | ||
79 | #define P_TMR5 (P_DEFINED | P_IDENT(GPIO_PG9) | P_FUNCT(0)) | ||
80 | #define P_TMR6 (P_DEFINED | P_IDENT(GPIO_PG10) | P_FUNCT(0)) | ||
81 | /* #define P_TMR7 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(0)) */ | ||
82 | #define P_DMAR1 (P_DEFINED | P_IDENT(GPIO_PG12) | P_FUNCT(0)) | ||
83 | #define P_DMAR0 (P_DEFINED | P_IDENT(GPIO_PG13) | P_FUNCT(0)) | ||
84 | #define P_TMR2 (P_DEFINED | P_IDENT(GPIO_PG6) | P_FUNCT(1)) | ||
85 | #define P_TMR7 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(1)) | ||
86 | #define P_MDC (P_DEFINED | P_IDENT(GPIO_PG14) | P_FUNCT(1)) | ||
87 | #define P_RMII0_MDINT (P_DEFINED | P_IDENT(GPIO_PG15) | P_FUNCT(1)) | ||
88 | #define P_MII0_PHYINT (P_DEFINED | P_IDENT(GPIO_PG15) | P_FUNCT(1)) | ||
89 | |||
90 | #define P_PPI0_FS3 (P_DEFINED | P_IDENT(GPIO_PG6) | P_FUNCT(2)) | ||
91 | #define P_UART0_TX (P_DEFINED | P_IDENT(GPIO_PG7) | P_FUNCT(2)) | ||
92 | #define P_UART0_RX (P_DEFINED | P_IDENT(GPIO_PG8) | P_FUNCT(2)) | ||
93 | |||
94 | #define P_HOST_WR (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(2)) | ||
95 | #define P_HOST_ACK (P_DEFINED | P_IDENT(GPIO_PG12) | P_FUNCT(2)) | ||
96 | #define P_HOST_ADDR (P_DEFINED | P_IDENT(GPIO_PG13) | P_FUNCT(2)) | ||
97 | #define P_HOST_RD (P_DEFINED | P_IDENT(GPIO_PG14) | P_FUNCT(2)) | ||
98 | #define P_HOST_CE (P_DEFINED | P_IDENT(GPIO_PG15) | P_FUNCT(2)) | ||
99 | |||
100 | #if defined(CONFIG_BF527_NAND_D_PORTF) | ||
101 | #define P_NAND_D0 (P_DEFINED | P_IDENT(GPIO_PF0) | P_FUNCT(2)) | ||
102 | #define P_NAND_D1 (P_DEFINED | P_IDENT(GPIO_PF1) | P_FUNCT(2)) | ||
103 | #define P_NAND_D2 (P_DEFINED | P_IDENT(GPIO_PF2) | P_FUNCT(2)) | ||
104 | #define P_NAND_D3 (P_DEFINED | P_IDENT(GPIO_PF3) | P_FUNCT(2)) | ||
105 | #define P_NAND_D4 (P_DEFINED | P_IDENT(GPIO_PF4) | P_FUNCT(2)) | ||
106 | #define P_NAND_D5 (P_DEFINED | P_IDENT(GPIO_PF5) | P_FUNCT(2)) | ||
107 | #define P_NAND_D6 (P_DEFINED | P_IDENT(GPIO_PF6) | P_FUNCT(2)) | ||
108 | #define P_NAND_D7 (P_DEFINED | P_IDENT(GPIO_PF7) | P_FUNCT(2)) | ||
109 | #elif defined(CONFIG_BF527_NAND_D_PORTH) | ||
110 | #define P_NAND_D0 (P_DEFINED | P_IDENT(GPIO_PH0) | P_FUNCT(0)) | ||
111 | #define P_NAND_D1 (P_DEFINED | P_IDENT(GPIO_PH1) | P_FUNCT(0)) | ||
112 | #define P_NAND_D2 (P_DEFINED | P_IDENT(GPIO_PH2) | P_FUNCT(0)) | ||
113 | #define P_NAND_D3 (P_DEFINED | P_IDENT(GPIO_PH3) | P_FUNCT(0)) | ||
114 | #define P_NAND_D4 (P_DEFINED | P_IDENT(GPIO_PH4) | P_FUNCT(0)) | ||
115 | #define P_NAND_D5 (P_DEFINED | P_IDENT(GPIO_PH5) | P_FUNCT(0)) | ||
116 | #define P_NAND_D6 (P_DEFINED | P_IDENT(GPIO_PH6) | P_FUNCT(0)) | ||
117 | #define P_NAND_D7 (P_DEFINED | P_IDENT(GPIO_PH7) | P_FUNCT(0)) | ||
118 | #endif | ||
119 | |||
120 | #define P_SPI0_SSEL4 (P_DEFINED | P_IDENT(GPIO_PH8) | P_FUNCT(0)) | ||
121 | #define P_SPI0_SSEL5 (P_DEFINED | P_IDENT(GPIO_PH9) | P_FUNCT(0)) | ||
122 | #define P_NAND_CE (P_DEFINED | P_IDENT(GPIO_PH10) | P_FUNCT(0)) | ||
123 | #define P_NAND_WE (P_DEFINED | P_IDENT(GPIO_PH11) | P_FUNCT(0)) | ||
124 | #define P_NAND_RE (P_DEFINED | P_IDENT(GPIO_PH12) | P_FUNCT(0)) | ||
125 | #define P_NAND_RB (P_DEFINED | P_IDENT(GPIO_PH13) | P_FUNCT(0)) | ||
126 | #define P_NAND_CLE (P_DEFINED | P_IDENT(GPIO_PH14) | P_FUNCT(0)) | ||
127 | #define P_NAND_ALE (P_DEFINED | P_IDENT(GPIO_PH15) | P_FUNCT(0)) | ||
128 | |||
129 | #define P_HOST_D0 (P_DEFINED | P_IDENT(GPIO_PH0) | P_FUNCT(2)) | ||
130 | #define P_HOST_D1 (P_DEFINED | P_IDENT(GPIO_PH1) | P_FUNCT(2)) | ||
131 | #define P_HOST_D2 (P_DEFINED | P_IDENT(GPIO_PH2) | P_FUNCT(2)) | ||
132 | #define P_HOST_D3 (P_DEFINED | P_IDENT(GPIO_PH3) | P_FUNCT(2)) | ||
133 | #define P_HOST_D4 (P_DEFINED | P_IDENT(GPIO_PH4) | P_FUNCT(2)) | ||
134 | #define P_HOST_D5 (P_DEFINED | P_IDENT(GPIO_PH5) | P_FUNCT(2)) | ||
135 | #define P_HOST_D6 (P_DEFINED | P_IDENT(GPIO_PH6) | P_FUNCT(2)) | ||
136 | #define P_HOST_D7 (P_DEFINED | P_IDENT(GPIO_PH7) | P_FUNCT(2)) | ||
137 | #define P_HOST_D8 (P_DEFINED | P_IDENT(GPIO_PH8) | P_FUNCT(2)) | ||
138 | #define P_HOST_D9 (P_DEFINED | P_IDENT(GPIO_PH9) | P_FUNCT(2)) | ||
139 | #define P_HOST_D10 (P_DEFINED | P_IDENT(GPIO_PH10) | P_FUNCT(2)) | ||
140 | #define P_HOST_D11 (P_DEFINED | P_IDENT(GPIO_PH11) | P_FUNCT(2)) | ||
141 | #define P_HOST_D12 (P_DEFINED | P_IDENT(GPIO_PH12) | P_FUNCT(2)) | ||
142 | #define P_HOST_D13 (P_DEFINED | P_IDENT(GPIO_PH13) | P_FUNCT(2)) | ||
143 | #define P_HOST_D14 (P_DEFINED | P_IDENT(GPIO_PH14) | P_FUNCT(2)) | ||
144 | #define P_HOST_D15 (P_DEFINED | P_IDENT(GPIO_PH15) | P_FUNCT(2)) | ||
145 | |||
146 | #define P_MII0_ETxD0 (P_DEFINED | P_IDENT(GPIO_PH5) | P_FUNCT(1)) | ||
147 | #define P_MII0_ETxD1 (P_DEFINED | P_IDENT(GPIO_PH7) | P_FUNCT(1)) | ||
148 | #define P_MII0_ETxD2 (P_DEFINED | P_IDENT(GPIO_PH9) | P_FUNCT(1)) | ||
149 | #define P_MII0_ETxD3 (P_DEFINED | P_IDENT(GPIO_PH11) | P_FUNCT(1)) | ||
150 | #define P_MII0_ETxEN (P_DEFINED | P_IDENT(GPIO_PH3) | P_FUNCT(1)) | ||
151 | #define P_MII0_TxCLK (P_DEFINED | P_IDENT(GPIO_PH4) | P_FUNCT(1)) | ||
152 | #define P_MII0_COL (P_DEFINED | P_IDENT(GPIO_PH15) | P_FUNCT(1)) | ||
153 | #define P_MII0_ERxD0 (P_DEFINED | P_IDENT(GPIO_PH6) | P_FUNCT(1)) | ||
154 | #define P_MII0_ERxD1 (P_DEFINED | P_IDENT(GPIO_PH8) | P_FUNCT(1)) | ||
155 | #define P_MII0_ERxD2 (P_DEFINED | P_IDENT(GPIO_PH10) | P_FUNCT(1)) | ||
156 | #define P_MII0_ERxD3 (P_DEFINED | P_IDENT(GPIO_PH12) | P_FUNCT(1)) | ||
157 | #define P_MII0_ERxDV (P_DEFINED | P_IDENT(GPIO_PH14) | P_FUNCT(1)) | ||
158 | #define P_MII0_ERxCLK (P_DEFINED | P_IDENT(GPIO_PH13) | P_FUNCT(1)) | ||
159 | #define P_MII0_ERxER (P_DEFINED | P_IDENT(GPIO_PH1) | P_FUNCT(1)) | ||
160 | #define P_MII0_CRS (P_DEFINED | P_IDENT(GPIO_PH0) | P_FUNCT(1)) | ||
161 | #define P_RMII0_REF_CLK (P_DEFINED | P_IDENT(GPIO_PH4) | P_FUNCT(1)) | ||
162 | #define P_RMII0_CRS_DV (P_DEFINED | P_IDENT(GPIO_PH0) | P_FUNCT(1)) | ||
163 | #define P_MDIO (P_DEFINED | P_IDENT(GPIO_PH2) | P_FUNCT(1)) | ||
164 | |||
165 | #define P_TWI0_SCL (P_DONTCARE) | ||
166 | #define P_TWI0_SDA (P_DONTCARE) | ||
167 | #define P_PPI0_FS1 (P_DONTCARE) | ||
168 | #define P_TMR0 (P_DONTCARE) | ||
169 | #define P_TMRCLK (P_DONTCARE) | ||
170 | #define P_PPI0_CLK (P_DONTCARE) | ||
171 | |||
172 | #define P_MII0 {\ | ||
173 | P_MII0_ETxD0, \ | ||
174 | P_MII0_ETxD1, \ | ||
175 | P_MII0_ETxD2, \ | ||
176 | P_MII0_ETxD3, \ | ||
177 | P_MII0_ETxEN, \ | ||
178 | P_MII0_TxCLK, \ | ||
179 | P_MII0_PHYINT, \ | ||
180 | P_MII0_COL, \ | ||
181 | P_MII0_ERxD0, \ | ||
182 | P_MII0_ERxD1, \ | ||
183 | P_MII0_ERxD2, \ | ||
184 | P_MII0_ERxD3, \ | ||
185 | P_MII0_ERxDV, \ | ||
186 | P_MII0_ERxCLK, \ | ||
187 | P_MII0_ERxER, \ | ||
188 | P_MII0_CRS, \ | ||
189 | P_MDC, \ | ||
190 | P_MDIO, 0} | ||
191 | |||
192 | #define P_RMII0 {\ | ||
193 | P_MII0_ETxD0, \ | ||
194 | P_MII0_ETxD1, \ | ||
195 | P_MII0_ETxEN, \ | ||
196 | P_MII0_ERxD0, \ | ||
197 | P_MII0_ERxD1, \ | ||
198 | P_MII0_ERxER, \ | ||
199 | P_RMII0_REF_CLK, \ | ||
200 | P_RMII0_MDINT, \ | ||
201 | P_RMII0_CRS_DV, \ | ||
202 | P_MDC, \ | ||
203 | P_MDIO, 0} | ||
204 | |||
205 | #endif /* _MACH_PORTMUX_H_ */ | ||
diff --git a/include/asm-blackfin/mach-bf548/defBF549.h b/include/asm-blackfin/mach-bf548/defBF549.h index 50b3fe55ef0c..4e46d657e50e 100644 --- a/include/asm-blackfin/mach-bf548/defBF549.h +++ b/include/asm-blackfin/mach-bf548/defBF549.h | |||
@@ -1178,7 +1178,7 @@ | |||
1178 | 1178 | ||
1179 | /* Bit masks for HOST_STATUS */ | 1179 | /* Bit masks for HOST_STATUS */ |
1180 | 1180 | ||
1181 | #define READY 0x1 /* DMA Ready */ | 1181 | #define DMA_READY 0x1 /* DMA Ready */ |
1182 | #define FIFOFULL 0x2 /* FIFO Full */ | 1182 | #define FIFOFULL 0x2 /* FIFO Full */ |
1183 | #define FIFOEMPTY 0x4 /* FIFO Empty */ | 1183 | #define FIFOEMPTY 0x4 /* FIFO Empty */ |
1184 | #define DMA_COMPLETE 0x8 /* DMA Complete */ | 1184 | #define DMA_COMPLETE 0x8 /* DMA Complete */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF54x_base.h b/include/asm-blackfin/mach-bf548/defBF54x_base.h index e2632db74baa..1d365c844ffe 100644 --- a/include/asm-blackfin/mach-bf548/defBF54x_base.h +++ b/include/asm-blackfin/mach-bf548/defBF54x_base.h | |||
@@ -47,6 +47,10 @@ | |||
47 | /* Debug/MP/Emulation Registers (0xFFC00014 - 0xFFC00014) */ | 47 | /* Debug/MP/Emulation Registers (0xFFC00014 - 0xFFC00014) */ |
48 | 48 | ||
49 | #define CHIPID 0xffc00014 | 49 | #define CHIPID 0xffc00014 |
50 | /* CHIPID Masks */ | ||
51 | #define CHIPID_VERSION 0xF0000000 | ||
52 | #define CHIPID_FAMILY 0x0FFFF000 | ||
53 | #define CHIPID_MANUFACTURE 0x00000FFE | ||
50 | 54 | ||
51 | /* System Reset and Interrupt Controller (0xFFC00100 - 0xFFC00104) */ | 55 | /* System Reset and Interrupt Controller (0xFFC00100 - 0xFFC00104) */ |
52 | 56 | ||
@@ -3299,7 +3303,7 @@ | |||
3299 | 3303 | ||
3300 | #define MFD 0xf000 /* Multi channel Frame Delay */ | 3304 | #define MFD 0xf000 /* Multi channel Frame Delay */ |
3301 | #define FSDR 0x80 /* Frame Sync to Data Relationship */ | 3305 | #define FSDR 0x80 /* Frame Sync to Data Relationship */ |
3302 | #define MCMEM 0x10 /* Multi channel Frame Mode Enable */ | 3306 | #define MCMEN 0x10 /* Multi channel Frame Mode Enable */ |
3303 | #define MCDRXPE 0x8 /* Multi channel DMA Receive Packing */ | 3307 | #define MCDRXPE 0x8 /* Multi channel DMA Receive Packing */ |
3304 | #define MCDTXPE 0x4 /* Multi channel DMA Transmit Packing */ | 3308 | #define MCDTXPE 0x4 /* Multi channel DMA Transmit Packing */ |
3305 | #define MCCRM 0x3 /* 2X Clock Recovery Mode */ | 3309 | #define MCCRM 0x3 /* 2X Clock Recovery Mode */ |
diff --git a/include/asm-blackfin/mach-bf548/dma.h b/include/asm-blackfin/mach-bf548/dma.h index 14cb10cc24ae..4d97d3aa97cd 100644 --- a/include/asm-blackfin/mach-bf548/dma.h +++ b/include/asm-blackfin/mach-bf548/dma.h | |||
@@ -70,5 +70,5 @@ | |||
70 | #define MAX_BLACKFIN_DMA_CHANNEL 32 | 70 | #define MAX_BLACKFIN_DMA_CHANNEL 32 |
71 | 71 | ||
72 | extern int channel2irq(unsigned int channel); | 72 | extern int channel2irq(unsigned int channel); |
73 | extern struct dma_register *base_addr[]; | 73 | extern struct dma_register *base_addr[MAX_BLACKFIN_DMA_CHANNEL]; |
74 | #endif | 74 | #endif |