aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Frysinger <michael.frysinger@analog.com>2007-12-24 03:54:48 -0500
committerBryan Wu <bryan.wu@analog.com>2007-12-24 03:54:48 -0500
commit1545a1111a02b5aafe6f141e133a6269c5741285 (patch)
treef018c4b0c074c3e9ed72d887d74948a88165a9c5
parent54a1668ce53fe701f1d36651b591ced388e97275 (diff)
[Blackfin] arch: add support for BF523/BF524/BF526
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
-rw-r--r--arch/blackfin/Kconfig26
-rw-r--r--arch/blackfin/Makefile6
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c34
3 files changed, 63 insertions, 3 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index e4ccdcdb4639..a241a0a27de2 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -85,11 +85,26 @@ config BF522
85 help 85 help
86 BF522 Processor Support. 86 BF522 Processor Support.
87 87
88config BF523
89 bool "BF523"
90 help
91 BF523 Processor Support.
92
93config BF524
94 bool "BF524"
95 help
96 BF524 Processor Support.
97
88config BF525 98config BF525
89 bool "BF525" 99 bool "BF525"
90 help 100 help
91 BF525 Processor Support. 101 BF525 Processor Support.
92 102
103config BF526
104 bool "BF526"
105 help
106 BF526 Processor Support.
107
93config BF527 108config BF527
94 bool "BF527" 109 bool "BF527"
95 help 110 help
@@ -198,7 +213,7 @@ endchoice
198 213
199config BF52x 214config BF52x
200 bool 215 bool
201 depends on (BF522 || BF525 || BF527) 216 depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
202 default y 217 default y
203 218
204config BF53x 219config BF53x
@@ -371,7 +386,10 @@ config SCLK_DIV
371config MAX_VCO_HZ 386config MAX_VCO_HZ
372 int 387 int
373 default 600000000 if BF522 388 default 600000000 if BF522
389 default 400000000 if BF523
390 default 400000000 if BF524
374 default 600000000 if BF525 391 default 600000000 if BF525
392 default 400000000 if BF526
375 default 600000000 if BF527 393 default 600000000 if BF527
376 default 400000000 if BF531 394 default 400000000 if BF531
377 default 400000000 if BF532 395 default 400000000 if BF532
@@ -383,6 +401,8 @@ config MAX_VCO_HZ
383 default 533333333 if BF539 401 default 533333333 if BF539
384 default 600000000 if BF542 402 default 600000000 if BF542
385 default 533333333 if BF544 403 default 533333333 if BF544
404 default 600000000 if BF547
405 default 600000000 if BF548
386 default 533333333 if BF549 406 default 533333333 if BF549
387 default 600000000 if BF561 407 default 600000000 if BF561
388 408
@@ -897,8 +917,8 @@ config PM_WAKEUP_SIC_IWR
897 depends on PM_WAKEUP_GPIO_BY_SIC_IWR 917 depends on PM_WAKEUP_GPIO_BY_SIC_IWR
898 default 0x80000000 if (BF537 || BF536 || BF534) 918 default 0x80000000 if (BF537 || BF536 || BF534)
899 default 0x100000 if (BF533 || BF532 || BF531) 919 default 0x100000 if (BF533 || BF532 || BF531)
900 default 0x800000 if (BF549 || BF548 || BF547 || BF542) 920 default 0x800000 if (BF54x)
901 default 0x800000 if (BF527 || BF524 || BF522) 921 default 0x800000 if (BF52x)
902 922
903config PM_WAKEUP_GPIO_NUMBER 923config PM_WAKEUP_GPIO_NUMBER
904 int "Wakeup GPIO number" 924 int "Wakeup GPIO number"
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index c47e000f8324..0c9680eac8ef 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -21,7 +21,10 @@ KBUILD_DEFCONFIG := BF537-STAMP_defconfig
21 21
22# setup the machine name and the machine dependent settings 22# setup the machine name and the machine dependent settings
23machine-$(CONFIG_BF522) := bf527 23machine-$(CONFIG_BF522) := bf527
24machine-$(CONFIG_BF523) := bf527
25machine-$(CONFIG_BF524) := bf527
24machine-$(CONFIG_BF525) := bf527 26machine-$(CONFIG_BF525) := bf527
27machine-$(CONFIG_BF526) := bf527
25machine-$(CONFIG_BF527) := bf527 28machine-$(CONFIG_BF527) := bf527
26machine-$(CONFIG_BF531) := bf533 29machine-$(CONFIG_BF531) := bf533
27machine-$(CONFIG_BF532) := bf533 30machine-$(CONFIG_BF532) := bf533
@@ -39,7 +42,10 @@ MACHINE := $(machine-y)
39export MACHINE 42export MACHINE
40 43
41cpu-$(CONFIG_BF522) := bf522 44cpu-$(CONFIG_BF522) := bf522
45cpu-$(CONFIG_BF523) := bf523
46cpu-$(CONFIG_BF524) := bf524
42cpu-$(CONFIG_BF525) := bf525 47cpu-$(CONFIG_BF525) := bf525
48cpu-$(CONFIG_BF526) := bf526
43cpu-$(CONFIG_BF527) := bf527 49cpu-$(CONFIG_BF527) := bf527
44cpu-$(CONFIG_BF531) := bf531 50cpu-$(CONFIG_BF531) := bf531
45cpu-$(CONFIG_BF532) := bf532 51cpu-$(CONFIG_BF532) := bf532
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index ce85d4bf34ca..ea13d2a22d69 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -83,6 +83,7 @@
83#include <linux/delay.h> 83#include <linux/delay.h>
84#include <linux/module.h> 84#include <linux/module.h>
85#include <linux/err.h> 85#include <linux/err.h>
86#include <linux/proc_fs.h>
86#include <asm/blackfin.h> 87#include <asm/blackfin.h>
87#include <asm/gpio.h> 88#include <asm/gpio.h>
88#include <asm/portmux.h> 89#include <asm/portmux.h>
@@ -1194,3 +1195,36 @@ void bfin_gpio_reset_spi0_ssel1(void)
1194} 1195}
1195 1196
1196#endif /*BF548_FAMILY */ 1197#endif /*BF548_FAMILY */
1198
1199#if defined(CONFIG_PROC_FS)
1200static int gpio_proc_read(char *buf, char **start, off_t offset,
1201 int len, int *unused_i, void *unused_v)
1202{
1203 int c, outlen = 0;
1204
1205 for (c = 0; c < MAX_RESOURCES; c++) {
1206 if (!check_gpio(c) && (reserved_gpio_map[gpio_bank(c)] & gpio_bit(c)))
1207 len = sprintf(buf, "GPIO_%d: %s \tGPIO %s\n", c,
1208 get_label(c), get_gpio_dir(c) ? "OUTPUT" : "INPUT");
1209 else if (reserved_peri_map[gpio_bank(c)] & gpio_bit(c))
1210 len = sprintf(buf, "GPIO_%d: %s \tPeripheral\n", c, get_label(c));
1211 else
1212 continue;
1213 buf += len;
1214 outlen += len;
1215 }
1216 return outlen;
1217}
1218
1219static __init int gpio_register_proc(void)
1220{
1221 struct proc_dir_entry *proc_gpio;
1222
1223 proc_gpio = create_proc_entry("gpio", S_IRUGO, NULL);
1224 if (proc_gpio)
1225 proc_gpio->read_proc = gpio_proc_read;
1226 return proc_gpio != NULL;
1227}
1228
1229__initcall(gpio_register_proc);
1230#endif