aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf518
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-bf518')
-rw-r--r--arch/blackfin/mach-bf518/Kconfig1
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c47
-rw-r--r--arch/blackfin/mach-bf518/include/mach/anomaly.h66
-rw-r--r--arch/blackfin/mach-bf518/include/mach/blackfin.h1
-rw-r--r--arch/blackfin/mach-bf518/include/mach/mem_map.h56
-rw-r--r--arch/blackfin/mach-bf518/include/mach/portmux.h6
6 files changed, 105 insertions, 72 deletions
diff --git a/arch/blackfin/mach-bf518/Kconfig b/arch/blackfin/mach-bf518/Kconfig
index f397ede006bf..4c76fefb7a3b 100644
--- a/arch/blackfin/mach-bf518/Kconfig
+++ b/arch/blackfin/mach-bf518/Kconfig
@@ -156,6 +156,7 @@ config IRQ_PORTH_INTB
156 default 11 156 default 11
157config IRQ_TIMER0 157config IRQ_TIMER0
158 int "IRQ_TIMER0" 158 int "IRQ_TIMER0"
159 default 7 if TICKSOURCE_GPTMR0
159 default 8 160 default 8
160config IRQ_TIMER1 161config IRQ_TIMER1
161 int "IRQ_TIMER1" 162 int "IRQ_TIMER1"
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index 41f2eacfef20..d9791106be9f 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -82,7 +82,11 @@ static struct physmap_flash_data ezbrd_flash_data = {
82 82
83static struct resource ezbrd_flash_resource = { 83static struct resource ezbrd_flash_resource = {
84 .start = 0x20000000, 84 .start = 0x20000000,
85#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
86 .end = 0x202fffff,
87#else
85 .end = 0x203fffff, 88 .end = 0x203fffff,
89#endif
86 .flags = IORESOURCE_MEM, 90 .flags = IORESOURCE_MEM,
87}; 91};
88 92
@@ -115,13 +119,19 @@ static struct platform_device bfin_mac_device = {
115}; 119};
116 120
117#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE) 121#if defined(CONFIG_NET_DSA_KSZ8893M) || defined(CONFIG_NET_DSA_KSZ8893M_MODULE)
118static struct dsa_platform_data ksz8893m_switch_data = { 122static struct dsa_chip_data ksz8893m_switch_chip_data = {
119 .mii_bus = &bfin_mii_bus.dev, 123 .mii_bus = &bfin_mii_bus.dev,
124 .port_names = {
125 NULL,
126 "eth%d",
127 "eth%d",
128 "cpu",
129 },
130};
131static struct dsa_platform_data ksz8893m_switch_data = {
132 .nr_chips = 1,
120 .netdev = &bfin_mac_device.dev, 133 .netdev = &bfin_mac_device.dev,
121 .port_names[0] = NULL, 134 .chip = &ksz8893m_switch_chip_data,
122 .port_names[1] = "eth%d",
123 .port_names[2] = "eth%d",
124 .port_names[3] = "cpu",
125}; 135};
126 136
127static struct platform_device ksz8893m_switch_device = { 137static struct platform_device ksz8893m_switch_device = {
@@ -162,8 +172,8 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {
162}; 172};
163#endif 173#endif
164 174
165#if defined(CONFIG_SPI_ADC_BF533) \ 175#if defined(CONFIG_BFIN_SPI_ADC) \
166 || defined(CONFIG_SPI_ADC_BF533_MODULE) 176 || defined(CONFIG_BFIN_SPI_ADC_MODULE)
167/* SPI ADC chip */ 177/* SPI ADC chip */
168static struct bfin5xx_spi_chip spi_adc_chip_info = { 178static struct bfin5xx_spi_chip spi_adc_chip_info = {
169 .enable_dma = 1, /* use dma transfer with this chip*/ 179 .enable_dma = 1, /* use dma transfer with this chip*/
@@ -242,15 +252,15 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
242 .modalias = "m25p80", /* Name of spi_driver for this device */ 252 .modalias = "m25p80", /* Name of spi_driver for this device */
243 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 253 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
244 .bus_num = 0, /* Framework bus number */ 254 .bus_num = 0, /* Framework bus number */
245 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 255 .chip_select = 2, /* On BF518F-EZBRD it's SPI0_SSEL2 */
246 .platform_data = &bfin_spi_flash_data, 256 .platform_data = &bfin_spi_flash_data,
247 .controller_data = &spi_flash_chip_info, 257 .controller_data = &spi_flash_chip_info,
248 .mode = SPI_MODE_3, 258 .mode = SPI_MODE_3,
249 }, 259 },
250#endif 260#endif
251 261
252#if defined(CONFIG_SPI_ADC_BF533) \ 262#if defined(CONFIG_BFIN_SPI_ADC) \
253 || defined(CONFIG_SPI_ADC_BF533_MODULE) 263 || defined(CONFIG_BFIN_SPI_ADC_MODULE)
254 { 264 {
255 .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */ 265 .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */
256 .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */ 266 .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */
@@ -365,6 +375,11 @@ static struct resource bfin_spi0_resource[] = {
365 [1] = { 375 [1] = {
366 .start = CH_SPI0, 376 .start = CH_SPI0,
367 .end = CH_SPI0, 377 .end = CH_SPI0,
378 .flags = IORESOURCE_DMA,
379 },
380 [2] = {
381 .start = IRQ_SPI0,
382 .end = IRQ_SPI0,
368 .flags = IORESOURCE_IRQ, 383 .flags = IORESOURCE_IRQ,
369 }, 384 },
370}; 385};
@@ -395,6 +410,11 @@ static struct resource bfin_spi1_resource[] = {
395 [1] = { 410 [1] = {
396 .start = CH_SPI1, 411 .start = CH_SPI1,
397 .end = CH_SPI1, 412 .end = CH_SPI1,
413 .flags = IORESOURCE_DMA,
414 },
415 [2] = {
416 .start = IRQ_SPI1,
417 .end = IRQ_SPI1,
398 .flags = IORESOURCE_IRQ, 418 .flags = IORESOURCE_IRQ,
399 }, 419 },
400}; 420};
@@ -514,7 +534,7 @@ static struct platform_device i2c_bfin_twi_device = {
514#endif 534#endif
515 535
516static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 536static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
517#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE) 537#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
518 { 538 {
519 I2C_BOARD_INFO("pcf8574_lcd", 0x22), 539 I2C_BOARD_INFO("pcf8574_lcd", 0x22),
520 }, 540 },
@@ -678,6 +698,11 @@ static int __init ezbrd_init(void)
678 ARRAY_SIZE(bfin_i2c_board_info)); 698 ARRAY_SIZE(bfin_i2c_board_info));
679 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 699 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
680 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 700 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
701 /* setup BF518-EZBRD GPIO pin PG11 to AMS2, PG15 to AMS3. */
702 peripheral_request(P_AMS2, "ParaFlash");
703#if !defined(CONFIG_SPI_BFIN) && !defined(CONFIG_SPI_BFIN_MODULE)
704 peripheral_request(P_AMS3, "ParaFlash");
705#endif
681 return 0; 706 return 0;
682} 707}
683 708
diff --git a/arch/blackfin/mach-bf518/include/mach/anomaly.h b/arch/blackfin/mach-bf518/include/mach/anomaly.h
index c847bb101076..426e064062a0 100644
--- a/arch/blackfin/mach-bf518/include/mach/anomaly.h
+++ b/arch/blackfin/mach-bf518/include/mach/anomaly.h
@@ -6,10 +6,15 @@
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
8 8
9/* This file shoule be up to date with: 9/* This file should be up to date with:
10 * - Revision B, 02/03/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List 10 * - Revision C, 06/12/2009; ADSP-BF512/BF514/BF516/BF518 Blackfin Processor Anomaly List
11 */ 11 */
12 12
13/* We plan on not supporting 0.0 silicon, but 0.1 isn't out yet - sorry */
14#if __SILICON_REVISION__ < 0
15# error will not work on BF518 silicon version
16#endif
17
13#ifndef _MACH_ANOMALY_H_ 18#ifndef _MACH_ANOMALY_H_
14#define _MACH_ANOMALY_H_ 19#define _MACH_ANOMALY_H_
15 20
@@ -40,53 +45,90 @@
40/* Speculative Fetches of Indirect-Pointer Instructions Can Cause False Hardware Errors */ 45/* Speculative Fetches of Indirect-Pointer Instructions Can Cause False Hardware Errors */
41#define ANOMALY_05000426 (1) 46#define ANOMALY_05000426 (1)
42/* Software System Reset Corrupts PLL_LOCKCNT Register */ 47/* Software System Reset Corrupts PLL_LOCKCNT Register */
43#define ANOMALY_05000430 (1) 48#define ANOMALY_05000430 (__SILICON_REVISION__ < 1)
44/* Incorrect Use of Stack in Lockbox Firmware During Authentication */ 49/* Incorrect Use of Stack in Lockbox Firmware During Authentication */
45#define ANOMALY_05000431 (1) 50#define ANOMALY_05000431 (1)
46/* Certain SIC Registers are not Reset After Soft or Core Double Fault Reset */ 51/* Certain SIC Registers are not Reset After Soft or Core Double Fault Reset */
47#define ANOMALY_05000435 (1) 52#define ANOMALY_05000435 (__SILICON_REVISION__ < 1)
48/* PORTx_DRIVE and PORTx_HYSTERESIS Registers Read Back Incorrect Values */ 53/* PORTx_DRIVE and PORTx_HYSTERESIS Registers Read Back Incorrect Values */
49#define ANOMALY_05000438 (1) 54#define ANOMALY_05000438 (__SILICON_REVISION__ < 1)
50/* Preboot Cannot be Used to Program the PLL_DIV Register */ 55/* Preboot Cannot be Used to Alter the PLL_DIV Register */
51#define ANOMALY_05000439 (1) 56#define ANOMALY_05000439 (__SILICON_REVISION__ < 1)
52/* bfrom_SysControl() Cannot be Used to Write the PLL_DIV Register */ 57/* bfrom_SysControl() Cannot be Used to Write the PLL_DIV Register */
53#define ANOMALY_05000440 (1) 58#define ANOMALY_05000440 (__SILICON_REVISION__ < 1)
54/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */ 59/* IFLUSH Instruction at End of Hardware Loop Causes Infinite Stall */
55#define ANOMALY_05000443 (1) 60#define ANOMALY_05000443 (1)
56/* Incorrect L1 Instruction Bank B Memory Map Location */ 61/* Incorrect L1 Instruction Bank B Memory Map Location */
57#define ANOMALY_05000444 (1) 62#define ANOMALY_05000444 (__SILICON_REVISION__ < 1)
58/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */ 63/* Incorrect Default Hysteresis Setting for RESET, NMI, and BMODE Signals */
59#define ANOMALY_05000452 (1) 64#define ANOMALY_05000452 (__SILICON_REVISION__ < 1)
60/* PWM_TRIPB Signal Not Available on PG10 */ 65/* PWM_TRIPB Signal Not Available on PG10 */
61#define ANOMALY_05000453 (1) 66#define ANOMALY_05000453 (__SILICON_REVISION__ < 1)
62/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */ 67/* PPI_FS3 is Driven One Half Cycle Later Than PPI Data */
63#define ANOMALY_05000455 (1) 68#define ANOMALY_05000455 (__SILICON_REVISION__ < 1)
69/* False Hardware Error when RETI Points to Invalid Memory */
70#define ANOMALY_05000461 (1)
71/* Synchronization Problem at Startup May Cause SPORT Transmit Channels to Misalign */
72#define ANOMALY_05000462 (1)
64 73
65/* Anomalies that don't exist on this proc */ 74/* Anomalies that don't exist on this proc */
75#define ANOMALY_05000099 (0)
76#define ANOMALY_05000119 (0)
77#define ANOMALY_05000120 (0)
66#define ANOMALY_05000125 (0) 78#define ANOMALY_05000125 (0)
79#define ANOMALY_05000149 (0)
67#define ANOMALY_05000158 (0) 80#define ANOMALY_05000158 (0)
81#define ANOMALY_05000171 (0)
82#define ANOMALY_05000179 (0)
83#define ANOMALY_05000182 (0)
68#define ANOMALY_05000183 (0) 84#define ANOMALY_05000183 (0)
69#define ANOMALY_05000198 (0) 85#define ANOMALY_05000198 (0)
86#define ANOMALY_05000202 (0)
87#define ANOMALY_05000215 (0)
88#define ANOMALY_05000220 (0)
89#define ANOMALY_05000227 (0)
70#define ANOMALY_05000230 (0) 90#define ANOMALY_05000230 (0)
91#define ANOMALY_05000231 (0)
92#define ANOMALY_05000233 (0)
93#define ANOMALY_05000234 (0)
94#define ANOMALY_05000242 (0)
71#define ANOMALY_05000244 (0) 95#define ANOMALY_05000244 (0)
96#define ANOMALY_05000248 (0)
97#define ANOMALY_05000250 (0)
98#define ANOMALY_05000257 (0)
72#define ANOMALY_05000261 (0) 99#define ANOMALY_05000261 (0)
73#define ANOMALY_05000263 (0) 100#define ANOMALY_05000263 (0)
74#define ANOMALY_05000266 (0) 101#define ANOMALY_05000266 (0)
75#define ANOMALY_05000273 (0) 102#define ANOMALY_05000273 (0)
103#define ANOMALY_05000274 (0)
76#define ANOMALY_05000278 (0) 104#define ANOMALY_05000278 (0)
105#define ANOMALY_05000281 (0)
106#define ANOMALY_05000283 (0)
77#define ANOMALY_05000285 (0) 107#define ANOMALY_05000285 (0)
108#define ANOMALY_05000287 (0)
109#define ANOMALY_05000301 (0)
78#define ANOMALY_05000305 (0) 110#define ANOMALY_05000305 (0)
79#define ANOMALY_05000307 (0) 111#define ANOMALY_05000307 (0)
80#define ANOMALY_05000311 (0) 112#define ANOMALY_05000311 (0)
81#define ANOMALY_05000312 (0) 113#define ANOMALY_05000312 (0)
114#define ANOMALY_05000315 (0)
82#define ANOMALY_05000323 (0) 115#define ANOMALY_05000323 (0)
83#define ANOMALY_05000353 (0) 116#define ANOMALY_05000353 (0)
117#define ANOMALY_05000357 (0)
118#define ANOMALY_05000362 (1)
84#define ANOMALY_05000363 (0) 119#define ANOMALY_05000363 (0)
120#define ANOMALY_05000371 (0)
85#define ANOMALY_05000380 (0) 121#define ANOMALY_05000380 (0)
86#define ANOMALY_05000386 (0) 122#define ANOMALY_05000386 (0)
123#define ANOMALY_05000389 (0)
124#define ANOMALY_05000400 (0)
87#define ANOMALY_05000412 (0) 125#define ANOMALY_05000412 (0)
88#define ANOMALY_05000432 (0) 126#define ANOMALY_05000432 (0)
89#define ANOMALY_05000447 (0) 127#define ANOMALY_05000447 (0)
90#define ANOMALY_05000448 (0) 128#define ANOMALY_05000448 (0)
129#define ANOMALY_05000456 (0)
130#define ANOMALY_05000450 (0)
131#define ANOMALY_05000465 (0)
132#define ANOMALY_05000467 (0)
91 133
92#endif 134#endif
diff --git a/arch/blackfin/mach-bf518/include/mach/blackfin.h b/arch/blackfin/mach-bf518/include/mach/blackfin.h
index 267bb7c8bfb5..e8e14c2769ed 100644
--- a/arch/blackfin/mach-bf518/include/mach/blackfin.h
+++ b/arch/blackfin/mach-bf518/include/mach/blackfin.h
@@ -33,7 +33,6 @@
33#define _MACH_BLACKFIN_H_ 33#define _MACH_BLACKFIN_H_
34 34
35#include "bf518.h" 35#include "bf518.h"
36#include "mem_map.h"
37#include "defBF512.h" 36#include "defBF512.h"
38#include "anomaly.h" 37#include "anomaly.h"
39 38
diff --git a/arch/blackfin/mach-bf518/include/mach/mem_map.h b/arch/blackfin/mach-bf518/include/mach/mem_map.h
index 62bcc781bfaa..3c6777cb3532 100644
--- a/arch/blackfin/mach-bf518/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf518/include/mach/mem_map.h
@@ -1,38 +1,16 @@
1/* 1/*
2 * file: include/asm-blackfin/mach-bf518/mem_map.h 2 * BF51x memory map
3 * based on: include/asm-blackfin/mach-bf527/mem_map.h
4 * author: Bryan Wu <cooloney@kernel.org>
5 * 3 *
6 * created: 4 * Copyright 2004-2009 Analog Devices Inc.
7 * description: 5 * Licensed under the GPL-2 or later.
8 * Memory MAP Common header file for blackfin BF518/6/4/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 */ 6 */
30 7
31#ifndef _MEM_MAP_518_H_ 8#ifndef __BFIN_MACH_MEM_MAP_H__
32#define _MEM_MAP_518_H_ 9#define __BFIN_MACH_MEM_MAP_H__
33 10
34#define COREMMR_BASE 0xFFE00000 /* Core MMRs */ 11#ifndef __BFIN_MEM_MAP_H__
35#define SYSMMR_BASE 0xFFC00000 /* System MMRs */ 12# error "do not include mach/mem_map.h directly -- use asm/mem_map.h"
13#endif
36 14
37/* Async Memory Banks */ 15/* Async Memory Banks */
38#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */ 16#define ASYNC_BANK3_BASE 0x20300000 /* Async Bank 3 */
@@ -89,20 +67,4 @@
89#define BFIN_DSUPBANKS 0 67#define BFIN_DSUPBANKS 0
90#endif /*CONFIG_BFIN_DCACHE */ 68#endif /*CONFIG_BFIN_DCACHE */
91 69
92/* Level 2 Memory - none */ 70#endif
93
94#define L2_START 0
95#define L2_LENGTH 0
96
97/* Scratch Pad Memory */
98
99#define L1_SCRATCH_START 0xFFB00000
100#define L1_SCRATCH_LENGTH 0x1000
101
102#define GET_PDA_SAFE(preg) \
103 preg.l = _cpu_pda; \
104 preg.h = _cpu_pda;
105
106#define GET_PDA(preg, dreg) GET_PDA_SAFE(preg)
107
108#endif /* _MEM_MAP_518_H_ */
diff --git a/arch/blackfin/mach-bf518/include/mach/portmux.h b/arch/blackfin/mach-bf518/include/mach/portmux.h
index f618b487b2b0..a0fc77fd3315 100644
--- a/arch/blackfin/mach-bf518/include/mach/portmux.h
+++ b/arch/blackfin/mach-bf518/include/mach/portmux.h
@@ -185,6 +185,10 @@
185#define P_PTP_PPS (P_DEFINED | P_IDENT(GPIO_PG12) | P_FUNCT(2)) 185#define P_PTP_PPS (P_DEFINED | P_IDENT(GPIO_PG12) | P_FUNCT(2))
186#define P_PTP_CLKOUT (P_DEFINED | P_IDENT(GPIO_PG13) | P_FUNCT(2)) 186#define P_PTP_CLKOUT (P_DEFINED | P_IDENT(GPIO_PG13) | P_FUNCT(2))
187 187
188#define P_HWAIT (P_DEFINED | P_IDENT(GPIO_PG000000000) | P_FUNCT(1)) 188/* AMS */
189#define P_AMS2 (P_DEFINED | P_IDENT(GPIO_PG11) | P_FUNCT(1))
190#define P_AMS3 (P_DEFINED | P_IDENT(GPIO_PG15) | P_FUNCT(2))
191
192#define P_HWAIT (P_DEFINED | P_IDENT(GPIO_PG000000000) | P_FUNCT(1))
189 193
190#endif /* _MACH_PORTMUX_H_ */ 194#endif /* _MACH_PORTMUX_H_ */