diff options
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r-- | arch/arm/mach-ep93xx/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/adssphere.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/clock.c | 68 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/core.c | 40 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9302.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9302a.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9307.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9307a.c | 68 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9312.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9315.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9315a.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/gesbc9312.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/clkdev.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/dma.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/gpio.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/io.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/memory.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/platform.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/micro9.c | 89 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.c | 21 |
21 files changed, 243 insertions, 137 deletions
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig index 5a1b8c05c958..56bddcef6905 100644 --- a/arch/arm/mach-ep93xx/Kconfig +++ b/arch/arm/mach-ep93xx/Kconfig | |||
@@ -33,6 +33,12 @@ config MACH_EDB9307 | |||
33 | Say 'Y' here if you want your kernel to support the Cirrus | 33 | Say 'Y' here if you want your kernel to support the Cirrus |
34 | Logic EDB9307 Evaluation Board. | 34 | Logic EDB9307 Evaluation Board. |
35 | 35 | ||
36 | config MACH_EDB9307A | ||
37 | bool "Support Cirrus Logic EDB9307A" | ||
38 | help | ||
39 | Say 'Y' here if you want your kernel to support the Cirrus | ||
40 | Logic EDB9307A Evaluation Board. | ||
41 | |||
36 | config MACH_EDB9312 | 42 | config MACH_EDB9312 |
37 | bool "Support Cirrus Logic EDB9312" | 43 | bool "Support Cirrus Logic EDB9312" |
38 | help | 44 | help |
diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile index c1252ca9648e..944e42d51646 100644 --- a/arch/arm/mach-ep93xx/Makefile +++ b/arch/arm/mach-ep93xx/Makefile | |||
@@ -10,6 +10,7 @@ obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o | |||
10 | obj-$(CONFIG_MACH_EDB9302) += edb9302.o | 10 | obj-$(CONFIG_MACH_EDB9302) += edb9302.o |
11 | obj-$(CONFIG_MACH_EDB9302A) += edb9302a.o | 11 | obj-$(CONFIG_MACH_EDB9302A) += edb9302a.o |
12 | obj-$(CONFIG_MACH_EDB9307) += edb9307.o | 12 | obj-$(CONFIG_MACH_EDB9307) += edb9307.o |
13 | obj-$(CONFIG_MACH_EDB9307A) += edb9307a.o | ||
13 | obj-$(CONFIG_MACH_EDB9312) += edb9312.o | 14 | obj-$(CONFIG_MACH_EDB9312) += edb9312.o |
14 | obj-$(CONFIG_MACH_EDB9315) += edb9315.o | 15 | obj-$(CONFIG_MACH_EDB9315) += edb9315.o |
15 | obj-$(CONFIG_MACH_EDB9315A) += edb9315a.o | 16 | obj-$(CONFIG_MACH_EDB9315A) += edb9315a.o |
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c index 561db73ec1ae..3fbd9b0fbe24 100644 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data adssphere_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource adssphere_flash_resource = { | 31 | static struct resource adssphere_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x61ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_32M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -59,7 +60,7 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") | |||
59 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 60 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0x00000100, | 63 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c index 8c9f2491dccc..96049283a10a 100644 --- a/arch/arm/mach-ep93xx/clock.c +++ b/arch/arm/mach-ep93xx/clock.c | |||
@@ -16,11 +16,12 @@ | |||
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/string.h> | 17 | #include <linux/string.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | |||
20 | #include <asm/clkdev.h> | ||
19 | #include <asm/div64.h> | 21 | #include <asm/div64.h> |
20 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
21 | 23 | ||
22 | struct clk { | 24 | struct clk { |
23 | char *name; | ||
24 | unsigned long rate; | 25 | unsigned long rate; |
25 | int users; | 26 | int users; |
26 | u32 enable_reg; | 27 | u32 enable_reg; |
@@ -28,53 +29,33 @@ struct clk { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct clk clk_uart = { | 31 | static struct clk clk_uart = { |
31 | .name = "UARTCLK", | ||
32 | .rate = 14745600, | 32 | .rate = 14745600, |
33 | }; | 33 | }; |
34 | static struct clk clk_pll1 = { | 34 | static struct clk clk_pll1; |
35 | .name = "pll1", | 35 | static struct clk clk_f; |
36 | }; | 36 | static struct clk clk_h; |
37 | static struct clk clk_f = { | 37 | static struct clk clk_p; |
38 | .name = "fclk", | 38 | static struct clk clk_pll2; |
39 | }; | ||
40 | static struct clk clk_h = { | ||
41 | .name = "hclk", | ||
42 | }; | ||
43 | static struct clk clk_p = { | ||
44 | .name = "pclk", | ||
45 | }; | ||
46 | static struct clk clk_pll2 = { | ||
47 | .name = "pll2", | ||
48 | }; | ||
49 | static struct clk clk_usb_host = { | 39 | static struct clk clk_usb_host = { |
50 | .name = "usb_host", | ||
51 | .enable_reg = EP93XX_SYSCON_CLOCK_CONTROL, | 40 | .enable_reg = EP93XX_SYSCON_CLOCK_CONTROL, |
52 | .enable_mask = EP93XX_SYSCON_CLOCK_USH_EN, | 41 | .enable_mask = EP93XX_SYSCON_CLOCK_USH_EN, |
53 | }; | 42 | }; |
54 | 43 | ||
55 | 44 | #define INIT_CK(dev,con,ck) \ | |
56 | static struct clk *clocks[] = { | 45 | { .dev_id = dev, .con_id = con, .clk = ck } |
57 | &clk_uart, | 46 | |
58 | &clk_pll1, | 47 | static struct clk_lookup clocks[] = { |
59 | &clk_f, | 48 | INIT_CK("apb:uart1", NULL, &clk_uart), |
60 | &clk_h, | 49 | INIT_CK("apb:uart2", NULL, &clk_uart), |
61 | &clk_p, | 50 | INIT_CK("apb:uart3", NULL, &clk_uart), |
62 | &clk_pll2, | 51 | INIT_CK(NULL, "pll1", &clk_pll1), |
63 | &clk_usb_host, | 52 | INIT_CK(NULL, "fclk", &clk_f), |
53 | INIT_CK(NULL, "hclk", &clk_h), | ||
54 | INIT_CK(NULL, "pclk", &clk_p), | ||
55 | INIT_CK(NULL, "pll2", &clk_pll2), | ||
56 | INIT_CK(NULL, "usb_host", &clk_usb_host), | ||
64 | }; | 57 | }; |
65 | 58 | ||
66 | struct clk *clk_get(struct device *dev, const char *id) | ||
67 | { | ||
68 | int i; | ||
69 | |||
70 | for (i = 0; i < ARRAY_SIZE(clocks); i++) { | ||
71 | if (!strcmp(clocks[i]->name, id)) | ||
72 | return clocks[i]; | ||
73 | } | ||
74 | |||
75 | return ERR_PTR(-ENOENT); | ||
76 | } | ||
77 | EXPORT_SYMBOL(clk_get); | ||
78 | 59 | ||
79 | int clk_enable(struct clk *clk) | 60 | int clk_enable(struct clk *clk) |
80 | { | 61 | { |
@@ -106,12 +87,6 @@ unsigned long clk_get_rate(struct clk *clk) | |||
106 | } | 87 | } |
107 | EXPORT_SYMBOL(clk_get_rate); | 88 | EXPORT_SYMBOL(clk_get_rate); |
108 | 89 | ||
109 | void clk_put(struct clk *clk) | ||
110 | { | ||
111 | } | ||
112 | EXPORT_SYMBOL(clk_put); | ||
113 | |||
114 | |||
115 | 90 | ||
116 | static char fclk_divisors[] = { 1, 2, 4, 8, 16, 1, 1, 1 }; | 91 | static char fclk_divisors[] = { 1, 2, 4, 8, 16, 1, 1, 1 }; |
117 | static char hclk_divisors[] = { 1, 2, 4, 5, 6, 8, 16, 32 }; | 92 | static char hclk_divisors[] = { 1, 2, 4, 5, 6, 8, 16, 32 }; |
@@ -138,6 +113,7 @@ static unsigned long calc_pll_rate(u32 config_word) | |||
138 | static int __init ep93xx_clock_init(void) | 113 | static int __init ep93xx_clock_init(void) |
139 | { | 114 | { |
140 | u32 value; | 115 | u32 value; |
116 | int i; | ||
141 | 117 | ||
142 | value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1); | 118 | value = __raw_readl(EP93XX_SYSCON_CLOCK_SET1); |
143 | if (!(value & 0x00800000)) { /* PLL1 bypassed? */ | 119 | if (!(value & 0x00800000)) { /* PLL1 bypassed? */ |
@@ -165,6 +141,8 @@ static int __init ep93xx_clock_init(void) | |||
165 | clk_f.rate / 1000000, clk_h.rate / 1000000, | 141 | clk_f.rate / 1000000, clk_h.rate / 1000000, |
166 | clk_p.rate / 1000000); | 142 | clk_p.rate / 1000000); |
167 | 143 | ||
144 | for (i = 0; i < ARRAY_SIZE(clocks); i++) | ||
145 | clkdev_add(&clocks[i]); | ||
168 | return 0; | 146 | return 0; |
169 | } | 147 | } |
170 | arch_initcall(ep93xx_clock_init); | 148 | arch_initcall(ep93xx_clock_init); |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index 48345fb34613..4781f323703b 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -34,6 +34,8 @@ | |||
34 | #include <linux/amba/bus.h> | 34 | #include <linux/amba/bus.h> |
35 | #include <linux/amba/serial.h> | 35 | #include <linux/amba/serial.h> |
36 | #include <linux/io.h> | 36 | #include <linux/io.h> |
37 | #include <linux/i2c.h> | ||
38 | #include <linux/i2c-gpio.h> | ||
37 | 39 | ||
38 | #include <asm/types.h> | 40 | #include <asm/types.h> |
39 | #include <asm/setup.h> | 41 | #include <asm/setup.h> |
@@ -153,12 +155,14 @@ static unsigned char gpio_int_unmasked[3]; | |||
153 | static unsigned char gpio_int_enabled[3]; | 155 | static unsigned char gpio_int_enabled[3]; |
154 | static unsigned char gpio_int_type1[3]; | 156 | static unsigned char gpio_int_type1[3]; |
155 | static unsigned char gpio_int_type2[3]; | 157 | static unsigned char gpio_int_type2[3]; |
158 | static unsigned char gpio_int_debouce[3]; | ||
156 | 159 | ||
157 | /* Port ordering is: A B F */ | 160 | /* Port ordering is: A B F */ |
158 | static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c }; | 161 | static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c }; |
159 | static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 }; | 162 | static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 }; |
160 | static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; | 163 | static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; |
161 | static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x58 }; | 164 | static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x58 }; |
165 | static const u8 int_debounce_register_offset[3] = { 0xa8, 0xc4, 0x64 }; | ||
162 | 166 | ||
163 | void ep93xx_gpio_update_int_params(unsigned port) | 167 | void ep93xx_gpio_update_int_params(unsigned port) |
164 | { | 168 | { |
@@ -181,6 +185,22 @@ void ep93xx_gpio_int_mask(unsigned line) | |||
181 | gpio_int_unmasked[line >> 3] &= ~(1 << (line & 7)); | 185 | gpio_int_unmasked[line >> 3] &= ~(1 << (line & 7)); |
182 | } | 186 | } |
183 | 187 | ||
188 | void ep93xx_gpio_int_debounce(unsigned int irq, int enable) | ||
189 | { | ||
190 | int line = irq_to_gpio(irq); | ||
191 | int port = line >> 3; | ||
192 | int port_mask = 1 << (line & 7); | ||
193 | |||
194 | if (enable) | ||
195 | gpio_int_debouce[port] |= port_mask; | ||
196 | else | ||
197 | gpio_int_debouce[port] &= ~port_mask; | ||
198 | |||
199 | __raw_writeb(gpio_int_debouce[port], | ||
200 | EP93XX_GPIO_REG(int_debounce_register_offset[port])); | ||
201 | } | ||
202 | EXPORT_SYMBOL(ep93xx_gpio_int_debounce); | ||
203 | |||
184 | /************************************************************************* | 204 | /************************************************************************* |
185 | * EP93xx IRQ handling | 205 | * EP93xx IRQ handling |
186 | *************************************************************************/ | 206 | *************************************************************************/ |
@@ -497,6 +517,26 @@ void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr) | |||
497 | platform_device_register(&ep93xx_eth_device); | 517 | platform_device_register(&ep93xx_eth_device); |
498 | } | 518 | } |
499 | 519 | ||
520 | static struct i2c_gpio_platform_data ep93xx_i2c_data = { | ||
521 | .sda_pin = EP93XX_GPIO_LINE_EEDAT, | ||
522 | .sda_is_open_drain = 0, | ||
523 | .scl_pin = EP93XX_GPIO_LINE_EECLK, | ||
524 | .scl_is_open_drain = 0, | ||
525 | .udelay = 2, | ||
526 | }; | ||
527 | |||
528 | static struct platform_device ep93xx_i2c_device = { | ||
529 | .name = "i2c-gpio", | ||
530 | .id = 0, | ||
531 | .dev.platform_data = &ep93xx_i2c_data, | ||
532 | }; | ||
533 | |||
534 | void __init ep93xx_register_i2c(struct i2c_board_info *devices, int num) | ||
535 | { | ||
536 | i2c_register_board_info(0, devices, num); | ||
537 | platform_device_register(&ep93xx_i2c_device); | ||
538 | } | ||
539 | |||
500 | extern void ep93xx_gpio_init(void); | 540 | extern void ep93xx_gpio_init(void); |
501 | 541 | ||
502 | void __init ep93xx_init_devices(void) | 542 | void __init ep93xx_init_devices(void) |
diff --git a/arch/arm/mach-ep93xx/edb9302.c b/arch/arm/mach-ep93xx/edb9302.c index e4add5bdccfd..8bf8d7c78f1a 100644 --- a/arch/arm/mach-ep93xx/edb9302.c +++ b/arch/arm/mach-ep93xx/edb9302.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data edb9302_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource edb9302_flash_resource = { | 31 | static struct resource edb9302_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x60ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -59,7 +60,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") | |||
59 | /* Maintainer: George Kashperko <george@chas.com.ua> */ | 60 | /* Maintainer: George Kashperko <george@chas.com.ua> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0x00000100, | 63 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb9302a.c b/arch/arm/mach-ep93xx/edb9302a.c index 02c4405afed7..a352c57c7b46 100644 --- a/arch/arm/mach-ep93xx/edb9302a.c +++ b/arch/arm/mach-ep93xx/edb9302a.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data edb9302a_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource edb9302a_flash_resource = { | 31 | static struct resource edb9302a_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x60ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -44,7 +45,7 @@ static struct platform_device edb9302a_flash = { | |||
44 | }; | 45 | }; |
45 | 46 | ||
46 | static struct ep93xx_eth_data edb9302a_eth_data = { | 47 | static struct ep93xx_eth_data edb9302a_eth_data = { |
47 | .phy_id = 1, | 48 | .phy_id = 1, |
48 | }; | 49 | }; |
49 | 50 | ||
50 | static void __init edb9302a_init_machine(void) | 51 | static void __init edb9302a_init_machine(void) |
@@ -59,7 +60,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") | |||
59 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 60 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0xc0000100, | 63 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb9307.c b/arch/arm/mach-ep93xx/edb9307.c index 040edbd2ea05..5ab22f63a4eb 100644 --- a/arch/arm/mach-ep93xx/edb9307.c +++ b/arch/arm/mach-ep93xx/edb9307.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data edb9307_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource edb9307_flash_resource = { | 31 | static struct resource edb9307_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x61ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_32M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -44,7 +45,7 @@ static struct platform_device edb9307_flash = { | |||
44 | }; | 45 | }; |
45 | 46 | ||
46 | static struct ep93xx_eth_data edb9307_eth_data = { | 47 | static struct ep93xx_eth_data edb9307_eth_data = { |
47 | .phy_id = 1, | 48 | .phy_id = 1, |
48 | }; | 49 | }; |
49 | 50 | ||
50 | static void __init edb9307_init_machine(void) | 51 | static void __init edb9307_init_machine(void) |
@@ -59,7 +60,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") | |||
59 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 60 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0x00000100, | 63 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb9307a.c b/arch/arm/mach-ep93xx/edb9307a.c new file mode 100644 index 000000000000..5b5c22b681be --- /dev/null +++ b/arch/arm/mach-ep93xx/edb9307a.c | |||
@@ -0,0 +1,68 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-ep93xx/edb9307a.c | ||
3 | * Cirrus Logic EDB9307A support. | ||
4 | * | ||
5 | * Copyright (C) 2008 H Hartley Sweeten <hsweeten@visionengravers.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or (at | ||
10 | * your option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/mm.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/ioport.h> | ||
19 | #include <linux/mtd/physmap.h> | ||
20 | #include <linux/platform_device.h> | ||
21 | #include <linux/io.h> | ||
22 | #include <linux/i2c.h> | ||
23 | #include <mach/hardware.h> | ||
24 | #include <asm/mach-types.h> | ||
25 | #include <asm/mach/arch.h> | ||
26 | |||
27 | static struct physmap_flash_data edb9307a_flash_data = { | ||
28 | .width = 2, | ||
29 | }; | ||
30 | |||
31 | static struct resource edb9307a_flash_resource = { | ||
32 | .start = EP93XX_CS6_PHYS_BASE, | ||
33 | .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, | ||
34 | .flags = IORESOURCE_MEM, | ||
35 | }; | ||
36 | |||
37 | static struct platform_device edb9307a_flash = { | ||
38 | .name = "physmap-flash", | ||
39 | .id = 0, | ||
40 | .dev = { | ||
41 | .platform_data = &edb9307a_flash_data, | ||
42 | }, | ||
43 | .num_resources = 1, | ||
44 | .resource = &edb9307a_flash_resource, | ||
45 | }; | ||
46 | |||
47 | static struct ep93xx_eth_data edb9307a_eth_data = { | ||
48 | .phy_id = 1, | ||
49 | }; | ||
50 | |||
51 | static void __init edb9307a_init_machine(void) | ||
52 | { | ||
53 | ep93xx_init_devices(); | ||
54 | platform_device_register(&edb9307a_flash); | ||
55 | |||
56 | ep93xx_register_eth(&edb9307a_eth_data, 1); | ||
57 | } | ||
58 | |||
59 | MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") | ||
60 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ | ||
61 | .phys_io = EP93XX_APB_PHYS_BASE, | ||
62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | ||
63 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | ||
64 | .map_io = ep93xx_map_io, | ||
65 | .init_irq = ep93xx_init_irq, | ||
66 | .timer = &ep93xx_timer, | ||
67 | .init_machine = edb9307a_init_machine, | ||
68 | MACHINE_END | ||
diff --git a/arch/arm/mach-ep93xx/edb9312.c b/arch/arm/mach-ep93xx/edb9312.c index 6853e302bc3a..d7179f66d804 100644 --- a/arch/arm/mach-ep93xx/edb9312.c +++ b/arch/arm/mach-ep93xx/edb9312.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/mtd/physmap.h> | 20 | #include <linux/mtd/physmap.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/i2c.h> | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
@@ -29,8 +30,8 @@ static struct physmap_flash_data edb9312_flash_data = { | |||
29 | }; | 30 | }; |
30 | 31 | ||
31 | static struct resource edb9312_flash_resource = { | 32 | static struct resource edb9312_flash_resource = { |
32 | .start = 0x60000000, | 33 | .start = EP93XX_CS6_PHYS_BASE, |
33 | .end = 0x61ffffff, | 34 | .end = EP93XX_CS6_PHYS_BASE + SZ_32M - 1, |
34 | .flags = IORESOURCE_MEM, | 35 | .flags = IORESOURCE_MEM, |
35 | }; | 36 | }; |
36 | 37 | ||
@@ -45,7 +46,7 @@ static struct platform_device edb9312_flash = { | |||
45 | }; | 46 | }; |
46 | 47 | ||
47 | static struct ep93xx_eth_data edb9312_eth_data = { | 48 | static struct ep93xx_eth_data edb9312_eth_data = { |
48 | .phy_id = 1, | 49 | .phy_id = 1, |
49 | }; | 50 | }; |
50 | 51 | ||
51 | static void __init edb9312_init_machine(void) | 52 | static void __init edb9312_init_machine(void) |
@@ -60,7 +61,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") | |||
60 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ | 61 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ |
61 | .phys_io = EP93XX_APB_PHYS_BASE, | 62 | .phys_io = EP93XX_APB_PHYS_BASE, |
62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 63 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
63 | .boot_params = 0x00000100, | 64 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
64 | .map_io = ep93xx_map_io, | 65 | .map_io = ep93xx_map_io, |
65 | .init_irq = ep93xx_init_irq, | 66 | .init_irq = ep93xx_init_irq, |
66 | .timer = &ep93xx_timer, | 67 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb9315.c b/arch/arm/mach-ep93xx/edb9315.c index 9469b350d253..025af6eaca10 100644 --- a/arch/arm/mach-ep93xx/edb9315.c +++ b/arch/arm/mach-ep93xx/edb9315.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data edb9315_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource edb9315_flash_resource = { | 31 | static struct resource edb9315_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x61ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_32M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -44,7 +45,7 @@ static struct platform_device edb9315_flash = { | |||
44 | }; | 45 | }; |
45 | 46 | ||
46 | static struct ep93xx_eth_data edb9315_eth_data = { | 47 | static struct ep93xx_eth_data edb9315_eth_data = { |
47 | .phy_id = 1, | 48 | .phy_id = 1, |
48 | }; | 49 | }; |
49 | 50 | ||
50 | static void __init edb9315_init_machine(void) | 51 | static void __init edb9315_init_machine(void) |
@@ -59,7 +60,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") | |||
59 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 60 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0x00000100, | 63 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb9315a.c b/arch/arm/mach-ep93xx/edb9315a.c index 584457ce7c80..4c9cc8a39f5c 100644 --- a/arch/arm/mach-ep93xx/edb9315a.c +++ b/arch/arm/mach-ep93xx/edb9315a.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data edb9315a_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource edb9315a_flash_resource = { | 31 | static struct resource edb9315a_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x60ffffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -44,7 +45,7 @@ static struct platform_device edb9315a_flash = { | |||
44 | }; | 45 | }; |
45 | 46 | ||
46 | static struct ep93xx_eth_data edb9315a_eth_data = { | 47 | static struct ep93xx_eth_data edb9315a_eth_data = { |
47 | .phy_id = 1, | 48 | .phy_id = 1, |
48 | }; | 49 | }; |
49 | 50 | ||
50 | static void __init edb9315a_init_machine(void) | 51 | static void __init edb9315a_init_machine(void) |
@@ -59,7 +60,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") | |||
59 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 60 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0xc0000100, | 63 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 035b24e31b64..3bad500b71b6 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/i2c.h> | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
23 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -28,8 +29,8 @@ static struct physmap_flash_data gesbc9312_flash_data = { | |||
28 | }; | 29 | }; |
29 | 30 | ||
30 | static struct resource gesbc9312_flash_resource = { | 31 | static struct resource gesbc9312_flash_resource = { |
31 | .start = 0x60000000, | 32 | .start = EP93XX_CS6_PHYS_BASE, |
32 | .end = 0x607fffff, | 33 | .end = EP93XX_CS6_PHYS_BASE + SZ_8M - 1, |
33 | .flags = IORESOURCE_MEM, | 34 | .flags = IORESOURCE_MEM, |
34 | }; | 35 | }; |
35 | 36 | ||
@@ -59,7 +60,7 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") | |||
59 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 60 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
60 | .phys_io = EP93XX_APB_PHYS_BASE, | 61 | .phys_io = EP93XX_APB_PHYS_BASE, |
61 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 62 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
62 | .boot_params = 0x00000100, | 63 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
63 | .map_io = ep93xx_map_io, | 64 | .map_io = ep93xx_map_io, |
64 | .init_irq = ep93xx_init_irq, | 65 | .init_irq = ep93xx_init_irq, |
65 | .timer = &ep93xx_timer, | 66 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/include/mach/clkdev.h b/arch/arm/mach-ep93xx/include/mach/clkdev.h new file mode 100644 index 000000000000..04b37a89801c --- /dev/null +++ b/arch/arm/mach-ep93xx/include/mach/clkdev.h | |||
@@ -0,0 +1,7 @@ | |||
1 | #ifndef __ASM_MACH_CLKDEV_H | ||
2 | #define __ASM_MACH_CLKDEV_H | ||
3 | |||
4 | #define __clk_get(clk) ({ 1; }) | ||
5 | #define __clk_put(clk) do { } while (0) | ||
6 | |||
7 | #endif | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/dma.h b/arch/arm/mach-ep93xx/include/mach/dma.h deleted file mode 100644 index d0fa9656e92f..000000000000 --- a/arch/arm/mach-ep93xx/include/mach/dma.h +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-ep93xx/include/mach/dma.h | ||
3 | */ | ||
diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h index f7020414c5df..0a1498ae899a 100644 --- a/arch/arm/mach-ep93xx/include/mach/gpio.h +++ b/arch/arm/mach-ep93xx/include/mach/gpio.h | |||
@@ -99,6 +99,8 @@ | |||
99 | /* maximum value for irq capable line identifiers */ | 99 | /* maximum value for irq capable line identifiers */ |
100 | #define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7) | 100 | #define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7) |
101 | 101 | ||
102 | extern void ep93xx_gpio_int_debounce(unsigned int irq, int enable); | ||
103 | |||
102 | /* new generic GPIO API - see Documentation/gpio.txt */ | 104 | /* new generic GPIO API - see Documentation/gpio.txt */ |
103 | 105 | ||
104 | #include <asm-generic/gpio.h> | 106 | #include <asm-generic/gpio.h> |
diff --git a/arch/arm/mach-ep93xx/include/mach/io.h b/arch/arm/mach-ep93xx/include/mach/io.h index 1ab9a90ad339..fd5f081cc8b7 100644 --- a/arch/arm/mach-ep93xx/include/mach/io.h +++ b/arch/arm/mach-ep93xx/include/mach/io.h | |||
@@ -4,5 +4,5 @@ | |||
4 | 4 | ||
5 | #define IO_SPACE_LIMIT 0xffffffff | 5 | #define IO_SPACE_LIMIT 0xffffffff |
6 | 6 | ||
7 | #define __io(p) ((void __iomem *)(p)) | 7 | #define __io(p) __typesafe_io(p) |
8 | #define __mem_pci(p) (p) | 8 | #define __mem_pci(p) (p) |
diff --git a/arch/arm/mach-ep93xx/include/mach/memory.h b/arch/arm/mach-ep93xx/include/mach/memory.h index f1b633590752..5c80c3c8158d 100644 --- a/arch/arm/mach-ep93xx/include/mach/memory.h +++ b/arch/arm/mach-ep93xx/include/mach/memory.h | |||
@@ -7,8 +7,4 @@ | |||
7 | 7 | ||
8 | #define PHYS_OFFSET UL(0x00000000) | 8 | #define PHYS_OFFSET UL(0x00000000) |
9 | 9 | ||
10 | #define __bus_to_virt(x) __phys_to_virt(x) | ||
11 | #define __virt_to_bus(x) __virt_to_phys(x) | ||
12 | |||
13 | |||
14 | #endif | 10 | #endif |
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index db2489d3bda7..88f7e88f152f 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
@@ -14,6 +14,7 @@ void ep93xx_map_io(void); | |||
14 | void ep93xx_init_irq(void); | 14 | void ep93xx_init_irq(void); |
15 | void ep93xx_init_time(unsigned long); | 15 | void ep93xx_init_time(unsigned long); |
16 | void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr); | 16 | void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr); |
17 | void ep93xx_register_i2c(struct i2c_board_info *devices, int num); | ||
17 | void ep93xx_init_devices(void); | 18 | void ep93xx_init_devices(void); |
18 | extern struct sys_timer ep93xx_timer; | 19 | extern struct sys_timer ep93xx_timer; |
19 | 20 | ||
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index c2197236b632..15d6815d78c4 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/i2c.h> | ||
20 | #include <linux/mtd/physmap.h> | 21 | #include <linux/mtd/physmap.h> |
21 | 22 | ||
22 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
@@ -25,7 +26,7 @@ | |||
25 | #include <asm/mach-types.h> | 26 | #include <asm/mach-types.h> |
26 | 27 | ||
27 | static struct ep93xx_eth_data micro9_eth_data = { | 28 | static struct ep93xx_eth_data micro9_eth_data = { |
28 | .phy_id = 0x1f, | 29 | .phy_id = 0x1f, |
29 | }; | 30 | }; |
30 | 31 | ||
31 | static void __init micro9_init(void) | 32 | static void __init micro9_init(void) |
@@ -38,46 +39,46 @@ static void __init micro9_init(void) | |||
38 | */ | 39 | */ |
39 | #ifdef CONFIG_MACH_MICRO9H | 40 | #ifdef CONFIG_MACH_MICRO9H |
40 | static struct physmap_flash_data micro9h_flash_data = { | 41 | static struct physmap_flash_data micro9h_flash_data = { |
41 | .width = 4, | 42 | .width = 4, |
42 | }; | 43 | }; |
43 | 44 | ||
44 | static struct resource micro9h_flash_resource = { | 45 | static struct resource micro9h_flash_resource = { |
45 | .start = 0x10000000, | 46 | .start = EP93XX_CS1_PHYS_BASE, |
46 | .end = 0x13ffffff, | 47 | .end = EP93XX_CS1_PHYS_BASE + SZ_64M - 1, |
47 | .flags = IORESOURCE_MEM, | 48 | .flags = IORESOURCE_MEM, |
48 | }; | 49 | }; |
49 | 50 | ||
50 | static struct platform_device micro9h_flash = { | 51 | static struct platform_device micro9h_flash = { |
51 | .name = "physmap-flash", | 52 | .name = "physmap-flash", |
52 | .id = 0, | 53 | .id = 0, |
53 | .dev = { | 54 | .dev = { |
54 | .platform_data = µ9h_flash_data, | 55 | .platform_data = µ9h_flash_data, |
55 | }, | 56 | }, |
56 | .num_resources = 1, | 57 | .num_resources = 1, |
57 | .resource = µ9h_flash_resource, | 58 | .resource = µ9h_flash_resource, |
58 | }; | 59 | }; |
59 | 60 | ||
60 | static void __init micro9h_init(void) | 61 | static void __init micro9h_init(void) |
61 | { | 62 | { |
62 | platform_device_register(µ9h_flash); | 63 | platform_device_register(µ9h_flash); |
63 | } | 64 | } |
64 | 65 | ||
65 | static void __init micro9h_init_machine(void) | 66 | static void __init micro9h_init_machine(void) |
66 | { | 67 | { |
67 | ep93xx_init_devices(); | 68 | ep93xx_init_devices(); |
68 | micro9_init(); | 69 | micro9_init(); |
69 | micro9h_init(); | 70 | micro9h_init(); |
70 | } | 71 | } |
71 | 72 | ||
72 | MACHINE_START(MICRO9, "Contec Hypercontrol Micro9-H") | 73 | MACHINE_START(MICRO9, "Contec Hypercontrol Micro9-H") |
73 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ | 74 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ |
74 | .phys_io = EP93XX_APB_PHYS_BASE, | 75 | .phys_io = EP93XX_APB_PHYS_BASE, |
75 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 76 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
76 | .boot_params = 0x00000100, | 77 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
77 | .map_io = ep93xx_map_io, | 78 | .map_io = ep93xx_map_io, |
78 | .init_irq = ep93xx_init_irq, | 79 | .init_irq = ep93xx_init_irq, |
79 | .timer = &ep93xx_timer, | 80 | .timer = &ep93xx_timer, |
80 | .init_machine = micro9h_init_machine, | 81 | .init_machine = micro9h_init_machine, |
81 | MACHINE_END | 82 | MACHINE_END |
82 | #endif | 83 | #endif |
83 | 84 | ||
@@ -87,19 +88,19 @@ MACHINE_END | |||
87 | #ifdef CONFIG_MACH_MICRO9M | 88 | #ifdef CONFIG_MACH_MICRO9M |
88 | static void __init micro9m_init_machine(void) | 89 | static void __init micro9m_init_machine(void) |
89 | { | 90 | { |
90 | ep93xx_init_devices(); | 91 | ep93xx_init_devices(); |
91 | micro9_init(); | 92 | micro9_init(); |
92 | } | 93 | } |
93 | 94 | ||
94 | MACHINE_START(MICRO9M, "Contec Hypercontrol Micro9-M") | 95 | MACHINE_START(MICRO9M, "Contec Hypercontrol Micro9-M") |
95 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ | 96 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ |
96 | .phys_io = EP93XX_APB_PHYS_BASE, | 97 | .phys_io = EP93XX_APB_PHYS_BASE, |
97 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 98 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
98 | .boot_params = 0x00000100, | 99 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
99 | .map_io = ep93xx_map_io, | 100 | .map_io = ep93xx_map_io, |
100 | .init_irq = ep93xx_init_irq, | 101 | .init_irq = ep93xx_init_irq, |
101 | .timer = &ep93xx_timer, | 102 | .timer = &ep93xx_timer, |
102 | .init_machine = micro9m_init_machine, | 103 | .init_machine = micro9m_init_machine, |
103 | MACHINE_END | 104 | MACHINE_END |
104 | #endif | 105 | #endif |
105 | 106 | ||
@@ -109,19 +110,19 @@ MACHINE_END | |||
109 | #ifdef CONFIG_MACH_MICRO9L | 110 | #ifdef CONFIG_MACH_MICRO9L |
110 | static void __init micro9l_init_machine(void) | 111 | static void __init micro9l_init_machine(void) |
111 | { | 112 | { |
112 | ep93xx_init_devices(); | 113 | ep93xx_init_devices(); |
113 | micro9_init(); | 114 | micro9_init(); |
114 | } | 115 | } |
115 | 116 | ||
116 | MACHINE_START(MICRO9L, "Contec Hypercontrol Micro9-L") | 117 | MACHINE_START(MICRO9L, "Contec Hypercontrol Micro9-L") |
117 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ | 118 | /* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */ |
118 | .phys_io = EP93XX_APB_PHYS_BASE, | 119 | .phys_io = EP93XX_APB_PHYS_BASE, |
119 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 120 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
120 | .boot_params = 0x00000100, | 121 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
121 | .map_io = ep93xx_map_io, | 122 | .map_io = ep93xx_map_io, |
122 | .init_irq = ep93xx_init_irq, | 123 | .init_irq = ep93xx_init_irq, |
123 | .timer = &ep93xx_timer, | 124 | .timer = &ep93xx_timer, |
124 | .init_machine = micro9l_init_machine, | 125 | .init_machine = micro9l_init_machine, |
125 | MACHINE_END | 126 | MACHINE_END |
126 | #endif | 127 | #endif |
127 | 128 | ||
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index b4aa4c054276..7ee024d34829 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/m48t86.h> | 21 | #include <linux/m48t86.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/i2c.h> | ||
23 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
24 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
@@ -117,7 +118,7 @@ static struct physmap_flash_data ts72xx_flash_data = { | |||
117 | 118 | ||
118 | static struct resource ts72xx_flash_resource = { | 119 | static struct resource ts72xx_flash_resource = { |
119 | .start = TS72XX_NOR_PHYS_BASE, | 120 | .start = TS72XX_NOR_PHYS_BASE, |
120 | .end = TS72XX_NOR_PHYS_BASE + 0x00ffffff, | 121 | .end = TS72XX_NOR_PHYS_BASE + SZ_16M - 1, |
121 | .flags = IORESOURCE_MEM, | 122 | .flags = IORESOURCE_MEM, |
122 | }; | 123 | }; |
123 | 124 | ||
@@ -144,21 +145,21 @@ static void ts72xx_rtc_writebyte(unsigned char value, unsigned long addr) | |||
144 | } | 145 | } |
145 | 146 | ||
146 | static struct m48t86_ops ts72xx_rtc_ops = { | 147 | static struct m48t86_ops ts72xx_rtc_ops = { |
147 | .readbyte = ts72xx_rtc_readbyte, | 148 | .readbyte = ts72xx_rtc_readbyte, |
148 | .writebyte = ts72xx_rtc_writebyte, | 149 | .writebyte = ts72xx_rtc_writebyte, |
149 | }; | 150 | }; |
150 | 151 | ||
151 | static struct platform_device ts72xx_rtc_device = { | 152 | static struct platform_device ts72xx_rtc_device = { |
152 | .name = "rtc-m48t86", | 153 | .name = "rtc-m48t86", |
153 | .id = -1, | 154 | .id = -1, |
154 | .dev = { | 155 | .dev = { |
155 | .platform_data = &ts72xx_rtc_ops, | 156 | .platform_data = &ts72xx_rtc_ops, |
156 | }, | 157 | }, |
157 | .num_resources = 0, | 158 | .num_resources = 0, |
158 | }; | 159 | }; |
159 | 160 | ||
160 | static struct ep93xx_eth_data ts72xx_eth_data = { | 161 | static struct ep93xx_eth_data ts72xx_eth_data = { |
161 | .phy_id = 1, | 162 | .phy_id = 1, |
162 | }; | 163 | }; |
163 | 164 | ||
164 | static void __init ts72xx_init_machine(void) | 165 | static void __init ts72xx_init_machine(void) |
@@ -175,7 +176,7 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") | |||
175 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 176 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
176 | .phys_io = EP93XX_APB_PHYS_BASE, | 177 | .phys_io = EP93XX_APB_PHYS_BASE, |
177 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, | 178 | .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, |
178 | .boot_params = 0x00000100, | 179 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, |
179 | .map_io = ts72xx_map_io, | 180 | .map_io = ts72xx_map_io, |
180 | .init_irq = ep93xx_init_irq, | 181 | .init_irq = ep93xx_init_irq, |
181 | .timer = &ep93xx_timer, | 182 | .timer = &ep93xx_timer, |