diff options
Diffstat (limited to 'include/asm-blackfin')
-rw-r--r-- | include/asm-blackfin/bfin-global.h | 8 | ||||
-rw-r--r-- | include/asm-blackfin/dma.h | 8 | ||||
-rw-r--r-- | include/asm-blackfin/dpmc.h | 82 | ||||
-rw-r--r-- | include/asm-blackfin/elf.h | 2 | ||||
-rw-r--r-- | include/asm-blackfin/gpio.h | 19 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf527/anomaly.h | 2 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf527/bfin_sir.h | 21 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf527/defBF527.h | 1 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf527/mem_init.h | 27 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/bfin_sir.h | 13 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf533/mem_init.h | 27 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf537/bfin_sir.h | 21 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf537/defBF537.h | 1 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf537/mem_init.h | 27 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf548/bfin_sir.h | 37 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf548/gpio.h | 8 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf561/bfin_sir.h | 13 | ||||
-rw-r--r-- | include/asm-blackfin/mach-bf561/mem_init.h | 27 | ||||
-rw-r--r-- | include/asm-blackfin/module.h | 5 | ||||
-rw-r--r-- | include/asm-blackfin/processor.h | 21 |
20 files changed, 165 insertions, 205 deletions
diff --git a/include/asm-blackfin/bfin-global.h b/include/asm-blackfin/bfin-global.h index 76033831eb35..320aa5e167e9 100644 --- a/include/asm-blackfin/bfin-global.h +++ b/include/asm-blackfin/bfin-global.h | |||
@@ -92,16 +92,20 @@ extern void *l1_data_B_sram_alloc(size_t); | |||
92 | extern void *l1_inst_sram_alloc(size_t); | 92 | extern void *l1_inst_sram_alloc(size_t); |
93 | extern void *l1_data_sram_alloc(size_t); | 93 | extern void *l1_data_sram_alloc(size_t); |
94 | extern void *l1_data_sram_zalloc(size_t); | 94 | extern void *l1_data_sram_zalloc(size_t); |
95 | extern void *l2_sram_alloc(size_t); | ||
96 | extern void *l2_sram_zalloc(size_t); | ||
95 | extern int l1_data_A_sram_free(const void*); | 97 | extern int l1_data_A_sram_free(const void*); |
96 | extern int l1_data_B_sram_free(const void*); | 98 | extern int l1_data_B_sram_free(const void*); |
97 | extern int l1_inst_sram_free(const void*); | 99 | extern int l1_inst_sram_free(const void*); |
98 | extern int l1_data_sram_free(const void*); | 100 | extern int l1_data_sram_free(const void*); |
101 | extern int l2_sram_free(const void *); | ||
99 | extern int sram_free(const void*); | 102 | extern int sram_free(const void*); |
100 | 103 | ||
101 | #define L1_INST_SRAM 0x00000001 | 104 | #define L1_INST_SRAM 0x00000001 |
102 | #define L1_DATA_A_SRAM 0x00000002 | 105 | #define L1_DATA_A_SRAM 0x00000002 |
103 | #define L1_DATA_B_SRAM 0x00000004 | 106 | #define L1_DATA_B_SRAM 0x00000004 |
104 | #define L1_DATA_SRAM 0x00000006 | 107 | #define L1_DATA_SRAM 0x00000006 |
108 | #define L2_SRAM 0x00000008 | ||
105 | extern void *sram_alloc_with_lsl(size_t, unsigned long); | 109 | extern void *sram_alloc_with_lsl(size_t, unsigned long); |
106 | extern int sram_free_with_lsl(const void*); | 110 | extern int sram_free_with_lsl(const void*); |
107 | 111 | ||
@@ -114,7 +118,9 @@ extern struct file_operations dpmc_fops; | |||
114 | extern unsigned long _ramstart, _ramend, _rambase; | 118 | extern unsigned long _ramstart, _ramend, _rambase; |
115 | extern unsigned long memory_start, memory_end, physical_mem_end; | 119 | extern unsigned long memory_start, memory_end, physical_mem_end; |
116 | extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[], | 120 | extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[], |
117 | _ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _ebss_b_l1[]; | 121 | _ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _ebss_b_l1[], |
122 | _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[], | ||
123 | _ebss_l2[], _l2_lma_start[]; | ||
118 | 124 | ||
119 | #ifdef CONFIG_MTD_UCLINUX | 125 | #ifdef CONFIG_MTD_UCLINUX |
120 | extern unsigned long memory_mtd_start, memory_mtd_end, mtd_size; | 126 | extern unsigned long memory_mtd_start, memory_mtd_end, mtd_size; |
diff --git a/include/asm-blackfin/dma.h b/include/asm-blackfin/dma.h index c0d5259e315b..3cd4b522aa3f 100644 --- a/include/asm-blackfin/dma.h +++ b/include/asm-blackfin/dma.h | |||
@@ -144,8 +144,16 @@ struct dma_channel { | |||
144 | void *data; | 144 | void *data; |
145 | unsigned int dma_enable_flag; | 145 | unsigned int dma_enable_flag; |
146 | unsigned int loopback_flag; | 146 | unsigned int loopback_flag; |
147 | #ifdef CONFIG_PM | ||
148 | unsigned short saved_peripheral_map; | ||
149 | #endif | ||
147 | }; | 150 | }; |
148 | 151 | ||
152 | #ifdef CONFIG_PM | ||
153 | int blackfin_dma_suspend(void); | ||
154 | void blackfin_dma_resume(void); | ||
155 | #endif | ||
156 | |||
149 | /******************************************************************************* | 157 | /******************************************************************************* |
150 | * DMA API's | 158 | * DMA API's |
151 | *******************************************************************************/ | 159 | *******************************************************************************/ |
diff --git a/include/asm-blackfin/dpmc.h b/include/asm-blackfin/dpmc.h index 7f34cd384f12..de28e6e018b3 100644 --- a/include/asm-blackfin/dpmc.h +++ b/include/asm-blackfin/dpmc.h | |||
@@ -7,63 +7,18 @@ | |||
7 | #ifndef _BLACKFIN_DPMC_H_ | 7 | #ifndef _BLACKFIN_DPMC_H_ |
8 | #define _BLACKFIN_DPMC_H_ | 8 | #define _BLACKFIN_DPMC_H_ |
9 | 9 | ||
10 | #define SLEEP_MODE 1 | ||
11 | #define DEEP_SLEEP_MODE 2 | ||
12 | #define ACTIVE_PLL_DISABLED 3 | ||
13 | #define FULLON_MODE 4 | ||
14 | #define ACTIVE_PLL_ENABLED 5 | ||
15 | #define HIBERNATE_MODE 6 | ||
16 | |||
17 | #define IOCTL_FULL_ON_MODE _IO('s', 0xA0) | ||
18 | #define IOCTL_ACTIVE_MODE _IO('s', 0xA1) | ||
19 | #define IOCTL_SLEEP_MODE _IO('s', 0xA2) | ||
20 | #define IOCTL_DEEP_SLEEP_MODE _IO('s', 0xA3) | ||
21 | #define IOCTL_HIBERNATE_MODE _IO('s', 0xA4) | ||
22 | #define IOCTL_CHANGE_FREQUENCY _IOW('s', 0xA5, unsigned long) | ||
23 | #define IOCTL_CHANGE_VOLTAGE _IOW('s', 0xA6, unsigned long) | ||
24 | #define IOCTL_SET_CCLK _IOW('s', 0xA7, unsigned long) | ||
25 | #define IOCTL_SET_SCLK _IOW('s', 0xA8, unsigned long) | ||
26 | #define IOCTL_GET_PLLSTATUS _IOW('s', 0xA9, unsigned long) | ||
27 | #define IOCTL_GET_CORECLOCK _IOW('s', 0xAA, unsigned long) | ||
28 | #define IOCTL_GET_SYSTEMCLOCK _IOW('s', 0xAB, unsigned long) | ||
29 | #define IOCTL_GET_VCO _IOW('s', 0xAC, unsigned long) | ||
30 | #define IOCTL_DISABLE_WDOG_TIMER _IO('s', 0xAD) | ||
31 | #define IOCTL_UNMASK_WDOG_WAKEUP_EVENT _IO('s',0xAE) | ||
32 | #define IOCTL_PROGRAM_WDOG_TIMER _IOW('s',0xAF,unsigned long) | ||
33 | #define IOCTL_CLEAR_WDOG_WAKEUP_EVENT _IO('s',0xB0) | ||
34 | #define IOCTL_SLEEP_DEEPER_MODE _IO('s',0xB1) | ||
35 | |||
36 | #define DPMC_MINOR 254 | ||
37 | |||
38 | #define ON 0 | ||
39 | #define OFF 1 | ||
40 | |||
41 | #ifdef __KERNEL__ | 10 | #ifdef __KERNEL__ |
11 | #ifndef __ASSEMBLY__ | ||
42 | 12 | ||
43 | unsigned long calc_volt(void); | ||
44 | int calc_vlev(int vlt); | ||
45 | unsigned long change_voltage(unsigned long volt); | ||
46 | int calc_msel(int vco_hz); | ||
47 | unsigned long change_frequency(unsigned long vco_mhz); | ||
48 | int set_pll_div(unsigned short sel, unsigned char flag); | ||
49 | int get_vco(void); | ||
50 | unsigned long change_system_clock(unsigned long clock); | ||
51 | unsigned long change_core_clock(unsigned long clock); | ||
52 | unsigned long get_pll_status(void); | ||
53 | void change_baud(int baud); | ||
54 | void fullon_mode(void); | ||
55 | void active_mode(void); | ||
56 | void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | 13 | void sleep_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); |
57 | void deep_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | 14 | void deep_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); |
58 | void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | 15 | void hibernate_mode(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); |
59 | void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); | 16 | void sleep_deeper(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2); |
60 | void program_wdog_timer(unsigned long); | 17 | void do_hibernate(int wakeup); |
61 | void unmask_wdog_wakeup_evt(void); | 18 | void set_dram_srfs(void); |
62 | void clear_wdog_wakeup_evt(void); | 19 | void unset_dram_srfs(void); |
63 | void disable_wdog_timer(void); | ||
64 | 20 | ||
65 | extern unsigned long get_cclk(void); | 21 | #define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16)) |
66 | extern unsigned long get_sclk(void); | ||
67 | 22 | ||
68 | struct bfin_dpmc_platform_data { | 23 | struct bfin_dpmc_platform_data { |
69 | const unsigned int *tuple_tab; | 24 | const unsigned int *tuple_tab; |
@@ -71,8 +26,33 @@ struct bfin_dpmc_platform_data { | |||
71 | unsigned short vr_settling_time; /* in us */ | 26 | unsigned short vr_settling_time; /* in us */ |
72 | }; | 27 | }; |
73 | 28 | ||
74 | #define VRPAIR(vlev, freq) (((vlev) << 16) | ((freq) >> 16)) | 29 | #else |
30 | |||
31 | #define PM_PUSH(x) \ | ||
32 | R0 = [P0 + (x - SRAM_BASE_ADDRESS)];\ | ||
33 | [--SP] = R0;\ | ||
34 | |||
35 | #define PM_POP(x) \ | ||
36 | R0 = [SP++];\ | ||
37 | [P0 + (x - SRAM_BASE_ADDRESS)] = R0;\ | ||
38 | |||
39 | #define PM_SYS_PUSH(x) \ | ||
40 | R0 = [P0 + (x - PLL_CTL)];\ | ||
41 | [--SP] = R0;\ | ||
42 | |||
43 | #define PM_SYS_POP(x) \ | ||
44 | R0 = [SP++];\ | ||
45 | [P0 + (x - PLL_CTL)] = R0;\ | ||
46 | |||
47 | #define PM_SYS_PUSH16(x) \ | ||
48 | R0 = w[P0 + (x - PLL_CTL)];\ | ||
49 | [--SP] = R0;\ | ||
50 | |||
51 | #define PM_SYS_POP16(x) \ | ||
52 | R0 = [SP++];\ | ||
53 | w[P0 + (x - PLL_CTL)] = R0;\ | ||
75 | 54 | ||
55 | #endif | ||
76 | #endif /* __KERNEL__ */ | 56 | #endif /* __KERNEL__ */ |
77 | 57 | ||
78 | #endif /*_BLACKFIN_DPMC_H_*/ | 58 | #endif /*_BLACKFIN_DPMC_H_*/ |
diff --git a/include/asm-blackfin/elf.h b/include/asm-blackfin/elf.h index 30303fc8292c..67a03a8a353e 100644 --- a/include/asm-blackfin/elf.h +++ b/include/asm-blackfin/elf.h | |||
@@ -15,6 +15,8 @@ | |||
15 | #define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */ | 15 | #define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */ |
16 | #define EF_BFIN_CODE_IN_L1 0x00000010 /* --code-in-l1 */ | 16 | #define EF_BFIN_CODE_IN_L1 0x00000010 /* --code-in-l1 */ |
17 | #define EF_BFIN_DATA_IN_L1 0x00000020 /* --data-in-l1 */ | 17 | #define EF_BFIN_DATA_IN_L1 0x00000020 /* --data-in-l1 */ |
18 | #define EF_BFIN_CODE_IN_L2 0x00000040 /* --code-in-l2 */ | ||
19 | #define EF_BFIN_DATA_IN_L2 0x00000080 /* --data-in-l2 */ | ||
18 | 20 | ||
19 | typedef unsigned long elf_greg_t; | 21 | typedef unsigned long elf_greg_t; |
20 | 22 | ||
diff --git a/include/asm-blackfin/gpio.h b/include/asm-blackfin/gpio.h index ff95e9d88342..168f1251eb4d 100644 --- a/include/asm-blackfin/gpio.h +++ b/include/asm-blackfin/gpio.h | |||
@@ -376,8 +376,12 @@ struct gpio_port_t { | |||
376 | #endif | 376 | #endif |
377 | 377 | ||
378 | #ifdef CONFIG_PM | 378 | #ifdef CONFIG_PM |
379 | unsigned int bfin_pm_setup(void); | 379 | |
380 | void bfin_pm_restore(void); | 380 | unsigned int bfin_pm_standby_setup(void); |
381 | void bfin_pm_standby_restore(void); | ||
382 | |||
383 | void bfin_gpio_pm_hibernate_restore(void); | ||
384 | void bfin_gpio_pm_hibernate_suspend(void); | ||
381 | 385 | ||
382 | #ifndef CONFIG_BF54x | 386 | #ifndef CONFIG_BF54x |
383 | #define PM_WAKE_RISING 0x1 | 387 | #define PM_WAKE_RISING 0x1 |
@@ -392,17 +396,8 @@ void gpio_pm_wakeup_free(unsigned gpio); | |||
392 | 396 | ||
393 | struct gpio_port_s { | 397 | struct gpio_port_s { |
394 | unsigned short data; | 398 | unsigned short data; |
395 | unsigned short data_clear; | ||
396 | unsigned short data_set; | ||
397 | unsigned short toggle; | ||
398 | unsigned short maska; | 399 | unsigned short maska; |
399 | unsigned short maska_clear; | ||
400 | unsigned short maska_set; | ||
401 | unsigned short maska_toggle; | ||
402 | unsigned short maskb; | 400 | unsigned short maskb; |
403 | unsigned short maskb_clear; | ||
404 | unsigned short maskb_set; | ||
405 | unsigned short maskb_toggle; | ||
406 | unsigned short dir; | 401 | unsigned short dir; |
407 | unsigned short polar; | 402 | unsigned short polar; |
408 | unsigned short edge; | 403 | unsigned short edge; |
@@ -411,10 +406,10 @@ struct gpio_port_s { | |||
411 | 406 | ||
412 | unsigned short fer; | 407 | unsigned short fer; |
413 | unsigned short reserved; | 408 | unsigned short reserved; |
409 | unsigned short mux; | ||
414 | }; | 410 | }; |
415 | #endif /*CONFIG_BF54x*/ | 411 | #endif /*CONFIG_BF54x*/ |
416 | #endif /*CONFIG_PM*/ | 412 | #endif /*CONFIG_PM*/ |
417 | |||
418 | /*********************************************************** | 413 | /*********************************************************** |
419 | * | 414 | * |
420 | * FUNCTIONS: Blackfin GPIO Driver | 415 | * FUNCTIONS: Blackfin GPIO Driver |
diff --git a/include/asm-blackfin/mach-bf527/anomaly.h b/include/asm-blackfin/mach-bf527/anomaly.h index 4725268a5ada..b7b166f4f064 100644 --- a/include/asm-blackfin/mach-bf527/anomaly.h +++ b/include/asm-blackfin/mach-bf527/anomaly.h | |||
@@ -23,6 +23,8 @@ | |||
23 | #define ANOMALY_05000245 (1) | 23 | #define ANOMALY_05000245 (1) |
24 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ | 24 | /* Sensitivity To Noise with Slow Input Edge Rates on External SPORT TX and RX Clocks */ |
25 | #define ANOMALY_05000265 (1) | 25 | #define ANOMALY_05000265 (1) |
26 | /* New Feature: EMAC TX DMA Word Alignment */ | ||
27 | #define ANOMALY_05000285 (1) | ||
26 | /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ | 28 | /* Errors when SSYNC, CSYNC, or Loads to LT, LB and LC Registers Are Interrupted */ |
27 | #define ANOMALY_05000312 (1) | 29 | #define ANOMALY_05000312 (1) |
28 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ | 30 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ |
diff --git a/include/asm-blackfin/mach-bf527/bfin_sir.h b/include/asm-blackfin/mach-bf527/bfin_sir.h index 0612d0c9501c..cfd8ad4f1f2c 100644 --- a/include/asm-blackfin/mach-bf527/bfin_sir.h +++ b/include/asm-blackfin/mach-bf527/bfin_sir.h | |||
@@ -118,16 +118,25 @@ static inline void SIR_UART_CLEAR_LSR(struct bfin_sir_port *port) | |||
118 | 118 | ||
119 | #define DRIVER_NAME "bfin_sir" | 119 | #define DRIVER_NAME "bfin_sir" |
120 | 120 | ||
121 | static void bfin_sir_hw_init(void) | 121 | static int bfin_sir_hw_init(void) |
122 | { | 122 | { |
123 | int ret = -ENODEV; | ||
123 | #ifdef CONFIG_BFIN_SIR0 | 124 | #ifdef CONFIG_BFIN_SIR0 |
124 | peripheral_request(P_UART0_TX, DRIVER_NAME); | 125 | ret = peripheral_request(P_UART0_TX, DRIVER_NAME); |
125 | peripheral_request(P_UART0_RX, DRIVER_NAME); | 126 | if (ret) |
127 | return ret; | ||
128 | ret = peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
129 | if (ret) | ||
130 | return ret; | ||
126 | #endif | 131 | #endif |
127 | 132 | ||
128 | #ifdef CONFIG_BFIN_SIR1 | 133 | #ifdef CONFIG_BFIN_SIR1 |
129 | peripheral_request(P_UART1_TX, DRIVER_NAME); | 134 | ret = peripheral_request(P_UART1_TX, DRIVER_NAME); |
130 | peripheral_request(P_UART1_RX, DRIVER_NAME); | 135 | if (ret) |
136 | return ret; | ||
137 | ret = peripheral_request(P_UART1_RX, DRIVER_NAME); | ||
138 | if (ret) | ||
139 | return ret; | ||
131 | #endif | 140 | #endif |
132 | SSYNC(); | 141 | return ret; |
133 | } | 142 | } |
diff --git a/include/asm-blackfin/mach-bf527/defBF527.h b/include/asm-blackfin/mach-bf527/defBF527.h index 82134f578f32..f1a70db70cb8 100644 --- a/include/asm-blackfin/mach-bf527/defBF527.h +++ b/include/asm-blackfin/mach-bf527/defBF527.h | |||
@@ -302,6 +302,7 @@ | |||
302 | #define PHYIE 0x00000001 /* PHY_INT Interrupt Enable */ | 302 | #define PHYIE 0x00000001 /* PHY_INT Interrupt Enable */ |
303 | #define RXDWA 0x00000002 /* Receive Frame DMA Word Alignment (Odd/Even*) */ | 303 | #define RXDWA 0x00000002 /* Receive Frame DMA Word Alignment (Odd/Even*) */ |
304 | #define RXCKS 0x00000004 /* Enable RX Frame TCP/UDP Checksum Computation */ | 304 | #define RXCKS 0x00000004 /* Enable RX Frame TCP/UDP Checksum Computation */ |
305 | #define TXDWA 0x00000010 /* Transmit Frame DMA Word Alignment (Odd/Even*) */ | ||
305 | #define MDCDIV 0x00003F00 /* SCLK:MDC Clock Divisor [MDC=SCLK/(2*(N+1))] */ | 306 | #define MDCDIV 0x00003F00 /* SCLK:MDC Clock Divisor [MDC=SCLK/(2*(N+1))] */ |
306 | 307 | ||
307 | #define SET_MDCDIV(x) (((x)&0x3F)<< 8) /* Set MDC Clock Divisor */ | 308 | #define SET_MDCDIV(x) (((x)&0x3F)<< 8) /* Set MDC Clock Divisor */ |
diff --git a/include/asm-blackfin/mach-bf527/mem_init.h b/include/asm-blackfin/mach-bf527/mem_init.h index 008ca66719e2..cbe03f4a5698 100644 --- a/include/asm-blackfin/mach-bf527/mem_init.h +++ b/include/asm-blackfin/mach-bf527/mem_init.h | |||
@@ -146,33 +146,6 @@ | |||
146 | #define SDRAM_CL CL_3 | 146 | #define SDRAM_CL CL_3 |
147 | #endif | 147 | #endif |
148 | 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 */ | 149 | /* 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) | 150 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) |
178 | 151 | ||
diff --git a/include/asm-blackfin/mach-bf533/bfin_sir.h b/include/asm-blackfin/mach-bf533/bfin_sir.h index cefcf8bb505b..9bb87e9e2e9b 100644 --- a/include/asm-blackfin/mach-bf533/bfin_sir.h +++ b/include/asm-blackfin/mach-bf533/bfin_sir.h | |||
@@ -110,11 +110,16 @@ static inline void SIR_UART_CLEAR_LSR(struct bfin_sir_port *port) | |||
110 | 110 | ||
111 | #define DRIVER_NAME "bfin_sir" | 111 | #define DRIVER_NAME "bfin_sir" |
112 | 112 | ||
113 | static void bfin_sir_hw_init(void) | 113 | static int bfin_sir_hw_init(void) |
114 | { | 114 | { |
115 | int ret = -ENODEV; | ||
115 | #ifdef CONFIG_BFIN_SIR0 | 116 | #ifdef CONFIG_BFIN_SIR0 |
116 | peripheral_request(P_UART0_TX, DRIVER_NAME); | 117 | ret = peripheral_request(P_UART0_TX, DRIVER_NAME); |
117 | peripheral_request(P_UART0_RX, DRIVER_NAME); | 118 | if (ret) |
119 | return ret; | ||
120 | ret = peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
121 | if (ret) | ||
122 | return ret; | ||
118 | #endif | 123 | #endif |
119 | SSYNC(); | 124 | return ret; |
120 | } | 125 | } |
diff --git a/include/asm-blackfin/mach-bf533/mem_init.h b/include/asm-blackfin/mach-bf533/mem_init.h index f8f31901fca9..995c06b2b1ef 100644 --- a/include/asm-blackfin/mach-bf533/mem_init.h +++ b/include/asm-blackfin/mach-bf533/mem_init.h | |||
@@ -133,33 +133,6 @@ | |||
133 | #define SDRAM_CL CL_3 | 133 | #define SDRAM_CL CL_3 |
134 | #endif | 134 | #endif |
135 | 135 | ||
136 | #if (CONFIG_MEM_SIZE == 128) | ||
137 | #define SDRAM_SIZE EBSZ_128 | ||
138 | #endif | ||
139 | #if (CONFIG_MEM_SIZE == 64) | ||
140 | #define SDRAM_SIZE EBSZ_64 | ||
141 | #endif | ||
142 | #if (CONFIG_MEM_SIZE == 32) | ||
143 | #define SDRAM_SIZE EBSZ_32 | ||
144 | #endif | ||
145 | #if (CONFIG_MEM_SIZE == 16) | ||
146 | #define SDRAM_SIZE EBSZ_16 | ||
147 | #endif | ||
148 | #if (CONFIG_MEM_ADD_WIDTH == 11) | ||
149 | #define SDRAM_WIDTH EBCAW_11 | ||
150 | #endif | ||
151 | #if (CONFIG_MEM_ADD_WIDTH == 10) | ||
152 | #define SDRAM_WIDTH EBCAW_10 | ||
153 | #endif | ||
154 | #if (CONFIG_MEM_ADD_WIDTH == 9) | ||
155 | #define SDRAM_WIDTH EBCAW_9 | ||
156 | #endif | ||
157 | #if (CONFIG_MEM_ADD_WIDTH == 8) | ||
158 | #define SDRAM_WIDTH EBCAW_8 | ||
159 | #endif | ||
160 | |||
161 | #define mem_SDBCTL (SDRAM_WIDTH | SDRAM_SIZE | EBE) | ||
162 | |||
163 | /* Equation from section 17 (p17-46) of BF533 HRM */ | 136 | /* Equation from section 17 (p17-46) of BF533 HRM */ |
164 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) | 137 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) |
165 | 138 | ||
diff --git a/include/asm-blackfin/mach-bf537/bfin_sir.h b/include/asm-blackfin/mach-bf537/bfin_sir.h index 0612d0c9501c..cfd8ad4f1f2c 100644 --- a/include/asm-blackfin/mach-bf537/bfin_sir.h +++ b/include/asm-blackfin/mach-bf537/bfin_sir.h | |||
@@ -118,16 +118,25 @@ static inline void SIR_UART_CLEAR_LSR(struct bfin_sir_port *port) | |||
118 | 118 | ||
119 | #define DRIVER_NAME "bfin_sir" | 119 | #define DRIVER_NAME "bfin_sir" |
120 | 120 | ||
121 | static void bfin_sir_hw_init(void) | 121 | static int bfin_sir_hw_init(void) |
122 | { | 122 | { |
123 | int ret = -ENODEV; | ||
123 | #ifdef CONFIG_BFIN_SIR0 | 124 | #ifdef CONFIG_BFIN_SIR0 |
124 | peripheral_request(P_UART0_TX, DRIVER_NAME); | 125 | ret = peripheral_request(P_UART0_TX, DRIVER_NAME); |
125 | peripheral_request(P_UART0_RX, DRIVER_NAME); | 126 | if (ret) |
127 | return ret; | ||
128 | ret = peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
129 | if (ret) | ||
130 | return ret; | ||
126 | #endif | 131 | #endif |
127 | 132 | ||
128 | #ifdef CONFIG_BFIN_SIR1 | 133 | #ifdef CONFIG_BFIN_SIR1 |
129 | peripheral_request(P_UART1_TX, DRIVER_NAME); | 134 | ret = peripheral_request(P_UART1_TX, DRIVER_NAME); |
130 | peripheral_request(P_UART1_RX, DRIVER_NAME); | 135 | if (ret) |
136 | return ret; | ||
137 | ret = peripheral_request(P_UART1_RX, DRIVER_NAME); | ||
138 | if (ret) | ||
139 | return ret; | ||
131 | #endif | 140 | #endif |
132 | SSYNC(); | 141 | return ret; |
133 | } | 142 | } |
diff --git a/include/asm-blackfin/mach-bf537/defBF537.h b/include/asm-blackfin/mach-bf537/defBF537.h index 3f455909c418..abde24c6d3b1 100644 --- a/include/asm-blackfin/mach-bf537/defBF537.h +++ b/include/asm-blackfin/mach-bf537/defBF537.h | |||
@@ -290,6 +290,7 @@ | |||
290 | #define PHYIE 0x00000001 /* PHY_INT Interrupt Enable */ | 290 | #define PHYIE 0x00000001 /* PHY_INT Interrupt Enable */ |
291 | #define RXDWA 0x00000002 /* Receive Frame DMA Word Alignment (Odd/Even*) */ | 291 | #define RXDWA 0x00000002 /* Receive Frame DMA Word Alignment (Odd/Even*) */ |
292 | #define RXCKS 0x00000004 /* Enable RX Frame TCP/UDP Checksum Computation */ | 292 | #define RXCKS 0x00000004 /* Enable RX Frame TCP/UDP Checksum Computation */ |
293 | #define TXDWA 0x00000010 /* Transmit Frame DMA Word Alignment (Odd/Even*) */ | ||
293 | #define MDCDIV 0x00003F00 /* SCLK:MDC Clock Divisor [MDC=SCLK/(2*(N+1))] */ | 294 | #define MDCDIV 0x00003F00 /* SCLK:MDC Clock Divisor [MDC=SCLK/(2*(N+1))] */ |
294 | 295 | ||
295 | #define SET_MDCDIV(x) (((x)&0x3F)<< 8) /* Set MDC Clock Divisor */ | 296 | #define SET_MDCDIV(x) (((x)&0x3F)<< 8) /* Set MDC Clock Divisor */ |
diff --git a/include/asm-blackfin/mach-bf537/mem_init.h b/include/asm-blackfin/mach-bf537/mem_init.h index 9ad979d416c6..f67698f670ca 100644 --- a/include/asm-blackfin/mach-bf537/mem_init.h +++ b/include/asm-blackfin/mach-bf537/mem_init.h | |||
@@ -139,33 +139,6 @@ | |||
139 | #define SDRAM_CL CL_3 | 139 | #define SDRAM_CL CL_3 |
140 | #endif | 140 | #endif |
141 | 141 | ||
142 | #if (CONFIG_MEM_SIZE == 128) | ||
143 | #define SDRAM_SIZE EBSZ_128 | ||
144 | #endif | ||
145 | #if (CONFIG_MEM_SIZE == 64) | ||
146 | #define SDRAM_SIZE EBSZ_64 | ||
147 | #endif | ||
148 | #if (CONFIG_MEM_SIZE == 32) | ||
149 | #define SDRAM_SIZE EBSZ_32 | ||
150 | #endif | ||
151 | #if (CONFIG_MEM_SIZE == 16) | ||
152 | #define SDRAM_SIZE EBSZ_16 | ||
153 | #endif | ||
154 | #if (CONFIG_MEM_ADD_WIDTH == 11) | ||
155 | #define SDRAM_WIDTH EBCAW_11 | ||
156 | #endif | ||
157 | #if (CONFIG_MEM_ADD_WIDTH == 10) | ||
158 | #define SDRAM_WIDTH EBCAW_10 | ||
159 | #endif | ||
160 | #if (CONFIG_MEM_ADD_WIDTH == 9) | ||
161 | #define SDRAM_WIDTH EBCAW_9 | ||
162 | #endif | ||
163 | #if (CONFIG_MEM_ADD_WIDTH == 8) | ||
164 | #define SDRAM_WIDTH EBCAW_8 | ||
165 | #endif | ||
166 | |||
167 | #define mem_SDBCTL (SDRAM_WIDTH | SDRAM_SIZE | EBE) | ||
168 | |||
169 | /* Equation from section 17 (p17-46) of BF533 HRM */ | 142 | /* Equation from section 17 (p17-46) of BF533 HRM */ |
170 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) | 143 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) |
171 | 144 | ||
diff --git a/include/asm-blackfin/mach-bf548/bfin_sir.h b/include/asm-blackfin/mach-bf548/bfin_sir.h index 5e94271c7e3b..c41f9cf00268 100644 --- a/include/asm-blackfin/mach-bf548/bfin_sir.h +++ b/include/asm-blackfin/mach-bf548/bfin_sir.h | |||
@@ -124,26 +124,43 @@ struct bfin_sir_self { | |||
124 | 124 | ||
125 | #define DRIVER_NAME "bfin_sir" | 125 | #define DRIVER_NAME "bfin_sir" |
126 | 126 | ||
127 | static void bfin_sir_hw_init(void) | 127 | static int bfin_sir_hw_init(void) |
128 | { | 128 | { |
129 | int ret = -ENODEV; | ||
129 | #ifdef CONFIG_BFIN_SIR0 | 130 | #ifdef CONFIG_BFIN_SIR0 |
130 | peripheral_request(P_UART0_TX, DRIVER_NAME); | 131 | ret = peripheral_request(P_UART0_TX, DRIVER_NAME); |
131 | peripheral_request(P_UART0_RX, DRIVER_NAME); | 132 | if (ret) |
133 | return ret; | ||
134 | ret = peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
135 | if (ret) | ||
136 | return ret; | ||
132 | #endif | 137 | #endif |
133 | 138 | ||
134 | #ifdef CONFIG_BFIN_SIR1 | 139 | #ifdef CONFIG_BFIN_SIR1 |
135 | peripheral_request(P_UART1_TX, DRIVER_NAME); | 140 | ret = peripheral_request(P_UART1_TX, DRIVER_NAME); |
136 | peripheral_request(P_UART1_RX, DRIVER_NAME); | 141 | if (ret) |
142 | return ret; | ||
143 | ret = peripheral_request(P_UART1_RX, DRIVER_NAME); | ||
144 | if (ret) | ||
145 | return ret; | ||
137 | #endif | 146 | #endif |
138 | 147 | ||
139 | #ifdef CONFIG_BFIN_SIR2 | 148 | #ifdef CONFIG_BFIN_SIR2 |
140 | peripheral_request(P_UART2_TX, DRIVER_NAME); | 149 | ret = peripheral_request(P_UART2_TX, DRIVER_NAME); |
141 | peripheral_request(P_UART2_RX, DRIVER_NAME); | 150 | if (ret) |
151 | return ret; | ||
152 | ret = peripheral_request(P_UART2_RX, DRIVER_NAME); | ||
153 | if (ret) | ||
154 | return ret; | ||
142 | #endif | 155 | #endif |
143 | 156 | ||
144 | #ifdef CONFIG_BFIN_SIR3 | 157 | #ifdef CONFIG_BFIN_SIR3 |
145 | peripheral_request(P_UART3_TX, DRIVER_NAME); | 158 | ret = peripheral_request(P_UART3_TX, DRIVER_NAME); |
146 | peripheral_request(P_UART3_RX, DRIVER_NAME); | 159 | if (ret) |
160 | return ret; | ||
161 | ret = peripheral_request(P_UART3_RX, DRIVER_NAME); | ||
162 | if (ret) | ||
163 | return ret; | ||
147 | #endif | 164 | #endif |
148 | SSYNC(); | 165 | return ret; |
149 | } | 166 | } |
diff --git a/include/asm-blackfin/mach-bf548/gpio.h b/include/asm-blackfin/mach-bf548/gpio.h index cb8b0f15c9a6..bba82dc75f16 100644 --- a/include/asm-blackfin/mach-bf548/gpio.h +++ b/include/asm-blackfin/mach-bf548/gpio.h | |||
@@ -209,3 +209,11 @@ 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 | struct gpio_port_s { | ||
214 | unsigned short fer; | ||
215 | unsigned short data; | ||
216 | unsigned short dir; | ||
217 | unsigned short inen; | ||
218 | unsigned int mux; | ||
219 | }; | ||
diff --git a/include/asm-blackfin/mach-bf561/bfin_sir.h b/include/asm-blackfin/mach-bf561/bfin_sir.h index cefcf8bb505b..9bb87e9e2e9b 100644 --- a/include/asm-blackfin/mach-bf561/bfin_sir.h +++ b/include/asm-blackfin/mach-bf561/bfin_sir.h | |||
@@ -110,11 +110,16 @@ static inline void SIR_UART_CLEAR_LSR(struct bfin_sir_port *port) | |||
110 | 110 | ||
111 | #define DRIVER_NAME "bfin_sir" | 111 | #define DRIVER_NAME "bfin_sir" |
112 | 112 | ||
113 | static void bfin_sir_hw_init(void) | 113 | static int bfin_sir_hw_init(void) |
114 | { | 114 | { |
115 | int ret = -ENODEV; | ||
115 | #ifdef CONFIG_BFIN_SIR0 | 116 | #ifdef CONFIG_BFIN_SIR0 |
116 | peripheral_request(P_UART0_TX, DRIVER_NAME); | 117 | ret = peripheral_request(P_UART0_TX, DRIVER_NAME); |
117 | peripheral_request(P_UART0_RX, DRIVER_NAME); | 118 | if (ret) |
119 | return ret; | ||
120 | ret = peripheral_request(P_UART0_RX, DRIVER_NAME); | ||
121 | if (ret) | ||
122 | return ret; | ||
118 | #endif | 123 | #endif |
119 | SSYNC(); | 124 | return ret; |
120 | } | 125 | } |
diff --git a/include/asm-blackfin/mach-bf561/mem_init.h b/include/asm-blackfin/mach-bf561/mem_init.h index 439a5895b346..e163260bca18 100644 --- a/include/asm-blackfin/mach-bf561/mem_init.h +++ b/include/asm-blackfin/mach-bf561/mem_init.h | |||
@@ -131,33 +131,6 @@ | |||
131 | #define SDRAM_CL CL_3 | 131 | #define SDRAM_CL CL_3 |
132 | #endif | 132 | #endif |
133 | 133 | ||
134 | #if (CONFIG_MEM_SIZE == 128) | ||
135 | #define SDRAM_SIZE EB0_SZ_128 | ||
136 | #endif | ||
137 | #if (CONFIG_MEM_SIZE == 64) | ||
138 | #define SDRAM_SIZE EB0_SZ_64 | ||
139 | #endif | ||
140 | #if ( CONFIG_MEM_SIZE == 32) | ||
141 | #define SDRAM_SIZE EB0_SZ_32 | ||
142 | #endif | ||
143 | #if (CONFIG_MEM_SIZE == 16) | ||
144 | #define SDRAM_SIZE EB0_SZ_16 | ||
145 | #endif | ||
146 | #if (CONFIG_MEM_ADD_WIDTH == 11) | ||
147 | #define SDRAM_WIDTH EB0_CAW_11 | ||
148 | #endif | ||
149 | #if (CONFIG_MEM_ADD_WIDTH == 10) | ||
150 | #define SDRAM_WIDTH EB0_CAW_10 | ||
151 | #endif | ||
152 | #if (CONFIG_MEM_ADD_WIDTH == 9) | ||
153 | #define SDRAM_WIDTH EB0_CAW_9 | ||
154 | #endif | ||
155 | #if (CONFIG_MEM_ADD_WIDTH == 8) | ||
156 | #define SDRAM_WIDTH EB0_CAW_8 | ||
157 | #endif | ||
158 | |||
159 | #define mem_SDBCTL (SDRAM_WIDTH | SDRAM_SIZE | EB0_E) | ||
160 | |||
161 | /* Equation from section 17 (p17-46) of BF533 HRM */ | 134 | /* Equation from section 17 (p17-46) of BF533 HRM */ |
162 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) | 135 | #define mem_SDRRC (((CONFIG_SCLK_HZ / 1000) * SDRAM_Tref) / SDRAM_NRA) - (SDRAM_tRAS_num + SDRAM_tRP_num) |
163 | 136 | ||
diff --git a/include/asm-blackfin/module.h b/include/asm-blackfin/module.h index 3c7ce1644280..e3128df139d6 100644 --- a/include/asm-blackfin/module.h +++ b/include/asm-blackfin/module.h | |||
@@ -6,8 +6,6 @@ | |||
6 | #define Elf_Shdr Elf32_Shdr | 6 | #define Elf_Shdr Elf32_Shdr |
7 | #define Elf_Sym Elf32_Sym | 7 | #define Elf_Sym Elf32_Sym |
8 | #define Elf_Ehdr Elf32_Ehdr | 8 | #define Elf_Ehdr Elf32_Ehdr |
9 | #define FLG_CODE_IN_L1 0x10 | ||
10 | #define FLG_DATA_IN_L1 0x20 | ||
11 | 9 | ||
12 | struct mod_arch_specific { | 10 | struct mod_arch_specific { |
13 | Elf_Shdr *text_l1; | 11 | Elf_Shdr *text_l1; |
@@ -15,5 +13,8 @@ struct mod_arch_specific { | |||
15 | Elf_Shdr *bss_a_l1; | 13 | Elf_Shdr *bss_a_l1; |
16 | Elf_Shdr *data_b_l1; | 14 | Elf_Shdr *data_b_l1; |
17 | Elf_Shdr *bss_b_l1; | 15 | Elf_Shdr *bss_b_l1; |
16 | Elf_Shdr *text_l2; | ||
17 | Elf_Shdr *data_l2; | ||
18 | Elf_Shdr *bss_l2; | ||
18 | }; | 19 | }; |
19 | #endif /* _ASM_BFIN_MODULE_H */ | 20 | #endif /* _ASM_BFIN_MODULE_H */ |
diff --git a/include/asm-blackfin/processor.h b/include/asm-blackfin/processor.h index 1c0040724612..6f3995b119d8 100644 --- a/include/asm-blackfin/processor.h +++ b/include/asm-blackfin/processor.h | |||
@@ -112,7 +112,26 @@ unsigned long get_wchan(struct task_struct *p); | |||
112 | static inline uint32_t __pure bfin_revid(void) | 112 | static inline uint32_t __pure bfin_revid(void) |
113 | { | 113 | { |
114 | /* stored in the upper 4 bits */ | 114 | /* stored in the upper 4 bits */ |
115 | return bfin_read_CHIPID() >> 28; | 115 | uint32_t revid = bfin_read_CHIPID() >> 28; |
116 | |||
117 | #ifdef CONFIG_BF52x | ||
118 | /* ANOMALY_05000357 | ||
119 | * Incorrect Revision Number in DSPID Register | ||
120 | */ | ||
121 | if (revid == 0) | ||
122 | switch (bfin_read16(_BOOTROM_GET_DXE_ADDRESS_TWI)) { | ||
123 | case 0x0010: | ||
124 | revid = 0; | ||
125 | break; | ||
126 | case 0x2796: | ||
127 | revid = 1; | ||
128 | break; | ||
129 | default: | ||
130 | revid = 0xFFFF; | ||
131 | break; | ||
132 | } | ||
133 | #endif | ||
134 | return revid; | ||
116 | } | 135 | } |
117 | 136 | ||
118 | static inline uint32_t __pure bfin_compiled_revid(void) | 137 | static inline uint32_t __pure bfin_compiled_revid(void) |