aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf537/boards
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-bf537/boards')
-rw-r--r--arch/blackfin/mach-bf537/boards/Kconfig29
-rw-r--r--arch/blackfin/mach-bf537/boards/Makefile9
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c11
-rw-r--r--arch/blackfin/mach-bf537/boards/eth_mac.c50
-rw-r--r--arch/blackfin/mach-bf537/boards/generic_board.c13
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c15
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c50
7 files changed, 113 insertions, 64 deletions
diff --git a/arch/blackfin/mach-bf537/boards/Kconfig b/arch/blackfin/mach-bf537/boards/Kconfig
new file mode 100644
index 000000000000..96a15196e416
--- /dev/null
+++ b/arch/blackfin/mach-bf537/boards/Kconfig
@@ -0,0 +1,29 @@
1choice
2 prompt "System type"
3 default BFIN537_STAMP
4 help
5 Select your board!
6
7config BFIN537_STAMP
8 bool "BF537-STAMP"
9 help
10 BF537-STAMP board support.
11
12config BFIN537_BLUETECHNIX_CM
13 bool "Bluetechnix CM-BF537"
14 depends on (BF537)
15 help
16 CM-BF537 support for EVAL- and DEV-Board.
17
18config PNAV10
19 bool "PNAV board"
20 depends on (BF537)
21 help
22 PNAV board support.
23
24config GENERIC_BF537_BOARD
25 bool "Generic"
26 help
27 Generic or Custom board support.
28
29endchoice
diff --git a/arch/blackfin/mach-bf537/boards/Makefile b/arch/blackfin/mach-bf537/boards/Makefile
index 23323cacc3aa..94a85174283a 100644
--- a/arch/blackfin/mach-bf537/boards/Makefile
+++ b/arch/blackfin/mach-bf537/boards/Makefile
@@ -2,8 +2,7 @@
2# arch/blackfin/mach-bf537/boards/Makefile 2# arch/blackfin/mach-bf537/boards/Makefile
3# 3#
4 4
5obj-y += eth_mac.o 5obj-$(CONFIG_GENERIC_BF537_BOARD) += generic_board.o
6obj-$(CONFIG_GENERIC_BOARD) += generic_board.o 6obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o
7obj-$(CONFIG_BFIN537_STAMP) += stamp.o led.o 7obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o
8obj-$(CONFIG_BFIN537_BLUETECHNIX_CM) += cm_bf537.o 8obj-$(CONFIG_PNAV10) += pnav10.o
9obj-$(CONFIG_PNAV10) += pnav10.o
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index 2915931045e3..c0fb06dbc42e 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -34,11 +34,12 @@
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#include <linux/usb_isp1362.h> 37#include <linux/usb/isp1362.h>
38#include <linux/pata_platform.h> 38#include <linux/pata_platform.h>
39#include <linux/irq.h> 39#include <linux/irq.h>
40#include <asm/dma.h> 40#include <asm/dma.h>
41#include <asm/bfin5xx_spi.h> 41#include <asm/bfin5xx_spi.h>
42#include <asm/portmux.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -194,6 +195,7 @@ static struct resource bfin_spi0_resource[] = {
194static struct bfin5xx_spi_master bfin_spi0_info = { 195static struct bfin5xx_spi_master bfin_spi0_info = {
195 .num_chipselect = 8, 196 .num_chipselect = 8,
196 .enable_dma = 1, /* master has the ability to do dma transfer */ 197 .enable_dma = 1, /* master has the ability to do dma transfer */
198 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
197}; 199};
198 200
199static struct platform_device bfin_spi0_device = { 201static struct platform_device bfin_spi0_device = {
@@ -425,3 +427,10 @@ static int __init cm_bf537_init(void)
425} 427}
426 428
427arch_initcall(cm_bf537_init); 429arch_initcall(cm_bf537_init);
430
431void bfin_get_ether_addr(char *addr)
432{
433 random_ether_addr(addr);
434 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
435}
436EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/eth_mac.c b/arch/blackfin/mach-bf537/boards/eth_mac.c
deleted file mode 100644
index a725cc8a9290..000000000000
--- a/arch/blackfin/mach-bf537/boards/eth_mac.c
+++ /dev/null
@@ -1,50 +0,0 @@
1/*
2 * arch/blackfin/mach-bf537/board/eth_mac.c
3 *
4 * Copyright (C) 2007 Analog Devices, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#include <linux/module.h>
21#include <asm/blackfin.h>
22
23#if defined(CONFIG_GENERIC_BOARD) || defined(CONFIG_BFIN537_STAMP)
24
25/*
26 * Currently the MAC address is saved in Flash by U-Boot
27 */
28#define FLASH_MAC 0x203f0000
29
30void get_bf537_ether_addr(char *addr)
31{
32 unsigned int flash_mac = (unsigned int) FLASH_MAC;
33 *(u32 *)(&(addr[0])) = bfin_read32(flash_mac);
34 flash_mac += 4;
35 *(u16 *)(&(addr[4])) = bfin_read16(flash_mac);
36}
37
38#else
39
40/*
41 * Provide MAC address function for other specific board setting
42 */
43void get_bf537_ether_addr(char *addr)
44{
45 printk(KERN_WARNING "%s: No valid Ethernet MAC address found\n", __FILE__);
46}
47
48#endif
49
50EXPORT_SYMBOL(get_bf537_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c
index 255da7a98481..09f4bfbd2350 100644
--- a/arch/blackfin/mach-bf537/boards/generic_board.c
+++ b/arch/blackfin/mach-bf537/boards/generic_board.c
@@ -35,7 +35,7 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
@@ -44,6 +44,7 @@
44#include <asm/dma.h> 44#include <asm/dma.h>
45#include <asm/bfin5xx_spi.h> 45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h> 46#include <asm/reboot.h>
47#include <asm/portmux.h>
47#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
48 49
49/* 50/*
@@ -502,7 +503,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
502 .platform_data = &bfin_ad7877_ts_info, 503 .platform_data = &bfin_ad7877_ts_info,
503 .irq = IRQ_PF6, 504 .irq = IRQ_PF6,
504 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 505 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
505 .bus_num = 1, 506 .bus_num = 0,
506 .chip_select = 1, 507 .chip_select = 1,
507 .controller_data = &spi_ad7877_chip_info, 508 .controller_data = &spi_ad7877_chip_info,
508 }, 509 },
@@ -513,6 +514,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
513static struct bfin5xx_spi_master bfin_spi0_info = { 514static struct bfin5xx_spi_master bfin_spi0_info = {
514 .num_chipselect = 8, 515 .num_chipselect = 8,
515 .enable_dma = 1, /* master has the ability to do dma transfer */ 516 .enable_dma = 1, /* master has the ability to do dma transfer */
517 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
516}; 518};
517 519
518/* SPI (0) */ 520/* SPI (0) */
@@ -730,3 +732,10 @@ void native_machine_restart(char *cmd)
730 if ((bfin_read_SYSCR() & 0x7) == 0x3) 732 if ((bfin_read_SYSCR() & 0x7) == 0x3)
731 bfin_gpio_reset_spi0_ssel1(); 733 bfin_gpio_reset_spi0_ssel1();
732} 734}
735
736void bfin_get_ether_addr(char *addr)
737{
738 random_ether_addr(addr);
739 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
740}
741EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 87b808926789..fd5f4a6f08e4 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -35,11 +35,12 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/irq.h> 40#include <linux/irq.h>
41#include <asm/dma.h> 41#include <asm/dma.h>
42#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
43#include <asm/portmux.h>
43#include <linux/usb/sl811.h> 44#include <linux/usb/sl811.h>
44 45
45#include <linux/spi/ad7877.h> 46#include <linux/spi/ad7877.h>
@@ -295,7 +296,7 @@ static struct bfin5xx_spi_chip spi_mmc_chip_info = {
295 296
296#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 297#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
297static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 298static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
298 .cs_change_per_word = 1, 299 .cs_change_per_word = 0,
299 .enable_dma = 0, 300 .enable_dma = 0,
300 .bits_per_word = 16, 301 .bits_per_word = 16,
301}; 302};
@@ -387,7 +388,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
387 .platform_data = &bfin_ad7877_ts_info, 388 .platform_data = &bfin_ad7877_ts_info,
388 .irq = IRQ_PF2, 389 .irq = IRQ_PF2,
389 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 390 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
390 .bus_num = 1, 391 .bus_num = 0,
391 .chip_select = 5, 392 .chip_select = 5,
392 .controller_data = &spi_ad7877_chip_info, 393 .controller_data = &spi_ad7877_chip_info,
393}, 394},
@@ -413,6 +414,7 @@ static struct resource bfin_spi0_resource[] = {
413static struct bfin5xx_spi_master bfin_spi0_info = { 414static struct bfin5xx_spi_master bfin_spi0_info = {
414 .num_chipselect = 8, 415 .num_chipselect = 8,
415 .enable_dma = 1, /* master has the ability to do dma transfer */ 416 .enable_dma = 1, /* master has the ability to do dma transfer */
417 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
416}; 418};
417 419
418static struct platform_device bfin_spi0_device = { 420static struct platform_device bfin_spi0_device = {
@@ -508,3 +510,10 @@ static int __init stamp_init(void)
508} 510}
509 511
510arch_initcall(stamp_init); 512arch_initcall(stamp_init);
513
514void bfin_get_ether_addr(char *addr)
515{
516 random_ether_addr(addr);
517 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
518}
519EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 5f7b91fbafe8..07b0dc273d2f 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -35,7 +35,7 @@
35#include <linux/spi/spi.h> 35#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb_isp1362.h> 38#include <linux/usb/isp1362.h>
39#endif 39#endif
40#include <linux/pata_platform.h> 40#include <linux/pata_platform.h>
41#include <linux/irq.h> 41#include <linux/irq.h>
@@ -44,6 +44,7 @@
44#include <asm/dma.h> 44#include <asm/dma.h>
45#include <asm/bfin5xx_spi.h> 45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h> 46#include <asm/reboot.h>
47#include <asm/portmux.h>
47#include <linux/spi/ad7877.h> 48#include <linux/spi/ad7877.h>
48 49
49/* 50/*
@@ -182,6 +183,28 @@ static struct platform_device dm9000_device = {
182}; 183};
183#endif 184#endif
184 185
186#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
187static struct resource ax88180_resources[] = {
188 [0] = {
189 .start = 0x20300000,
190 .end = 0x20300000 + 0x8000,
191 .flags = IORESOURCE_MEM,
192 },
193 [1] = {
194 .start = IRQ_PF7,
195 .end = IRQ_PF7,
196 .flags = (IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL),
197 },
198};
199
200static struct platform_device ax88180_device = {
201 .name = "ax88180",
202 .id = -1,
203 .num_resources = ARRAY_SIZE(ax88180_resources),
204 .resource = ax88180_resources,
205};
206#endif
207
185#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE) 208#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
186static struct resource sl811_hcd_resources[] = { 209static struct resource sl811_hcd_resources[] = {
187 { 210 {
@@ -502,7 +525,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
502 .platform_data = &bfin_ad7877_ts_info, 525 .platform_data = &bfin_ad7877_ts_info,
503 .irq = IRQ_PF6, 526 .irq = IRQ_PF6,
504 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */ 527 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
505 .bus_num = 1, 528 .bus_num = 0,
506 .chip_select = 1, 529 .chip_select = 1,
507 .controller_data = &spi_ad7877_chip_info, 530 .controller_data = &spi_ad7877_chip_info,
508 }, 531 },
@@ -513,6 +536,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
513static struct bfin5xx_spi_master bfin_spi0_info = { 536static struct bfin5xx_spi_master bfin_spi0_info = {
514 .num_chipselect = 8, 537 .num_chipselect = 8,
515 .enable_dma = 1, /* master has the ability to do dma transfer */ 538 .enable_dma = 1, /* master has the ability to do dma transfer */
539 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
516}; 540};
517 541
518/* SPI (0) */ 542/* SPI (0) */
@@ -554,15 +578,20 @@ static struct platform_device bfin_fb_adv7393_device = {
554 578
555#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 579#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
556static struct resource bfin_uart_resources[] = { 580static struct resource bfin_uart_resources[] = {
581#ifdef CONFIG_SERIAL_BFIN_UART0
557 { 582 {
558 .start = 0xFFC00400, 583 .start = 0xFFC00400,
559 .end = 0xFFC004FF, 584 .end = 0xFFC004FF,
560 .flags = IORESOURCE_MEM, 585 .flags = IORESOURCE_MEM,
561 }, { 586 },
587#endif
588#ifdef CONFIG_SERIAL_BFIN_UART1
589 {
562 .start = 0xFFC02000, 590 .start = 0xFFC02000,
563 .end = 0xFFC020FF, 591 .end = 0xFFC020FF,
564 .flags = IORESOURCE_MEM, 592 .flags = IORESOURCE_MEM,
565 }, 593 },
594#endif
566}; 595};
567 596
568static struct platform_device bfin_uart_device = { 597static struct platform_device bfin_uart_device = {
@@ -669,6 +698,10 @@ static struct platform_device *stamp_devices[] __initdata = {
669 &dm9000_device, 698 &dm9000_device,
670#endif 699#endif
671 700
701#if defined(CONFIG_AX88180) || defined(CONFIG_AX88180_MODULE)
702 &ax88180_device,
703#endif
704
672#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 705#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
673 &bfin_mac_device, 706 &bfin_mac_device,
674#endif 707#endif
@@ -730,3 +763,14 @@ void native_machine_restart(char *cmd)
730 if ((bfin_read_SYSCR() & 0x7) == 0x3) 763 if ((bfin_read_SYSCR() & 0x7) == 0x3)
731 bfin_gpio_reset_spi0_ssel1(); 764 bfin_gpio_reset_spi0_ssel1();
732} 765}
766
767/*
768 * Currently the MAC address is saved in Flash by U-Boot
769 */
770#define FLASH_MAC 0x203f0000
771void bfin_get_ether_addr(char *addr)
772{
773 *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
774 *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
775}
776EXPORT_SYMBOL(bfin_get_ether_addr);