aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap1
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap1')
-rw-r--r--arch/arm/mach-omap1/Makefile2
-rw-r--r--arch/arm/mach-omap1/board-fsample.c9
-rw-r--r--arch/arm/mach-omap1/board-h2.c9
-rw-r--r--arch/arm/mach-omap1/board-h3.c9
-rw-r--r--arch/arm/mach-omap1/board-innovator.c9
-rw-r--r--arch/arm/mach-omap1/board-osk.c9
-rw-r--r--arch/arm/mach-omap1/board-palmte.c9
-rw-r--r--arch/arm/mach-omap1/board-palmtt.c9
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c10
-rw-r--r--arch/arm/mach-omap1/board-perseus2.c9
-rw-r--r--arch/arm/mach-omap1/board-sx1.c11
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c9
-rw-r--r--arch/arm/mach-omap1/clock.c25
-rw-r--r--arch/arm/mach-omap1/clock_data.c44
-rw-r--r--arch/arm/mach-omap1/devices.c2
-rw-r--r--arch/arm/mach-omap1/flash.c33
-rw-r--r--arch/arm/mach-omap1/i2c.c6
-rw-r--r--arch/arm/mach-omap1/include/mach/debug-macro.S90
-rw-r--r--arch/arm/mach-omap1/mailbox.c9
-rw-r--r--arch/arm/mach-omap1/mcbsp.c16
-rw-r--r--arch/arm/mach-omap1/serial.c6
21 files changed, 206 insertions, 129 deletions
diff --git a/arch/arm/mach-omap1/Makefile b/arch/arm/mach-omap1/Makefile
index 9ce17f13d3f1..b6a537c875b8 100644
--- a/arch/arm/mach-omap1/Makefile
+++ b/arch/arm/mach-omap1/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5# Common support 5# Common support
6obj-y := io.o id.o sram.o irq.o mux.o serial.o devices.o 6obj-y := io.o id.o sram.o irq.o mux.o flash.o serial.o devices.o
7obj-y += clock.o clock_data.o opp_data.o 7obj-y += clock.o clock_data.o opp_data.o
8 8
9obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o 9obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c
index 7e70c3c08da6..096f2ed102cb 100644
--- a/arch/arm/mach-omap1/board-fsample.c
+++ b/arch/arm/mach-omap1/board-fsample.c
@@ -18,18 +18,19 @@
18#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
19#include <linux/mtd/nand.h> 19#include <linux/mtd/nand.h>
20#include <linux/mtd/partitions.h> 20#include <linux/mtd/partitions.h>
21#include <linux/mtd/physmap.h>
21#include <linux/input.h> 22#include <linux/input.h>
22#include <linux/smc91x.h> 23#include <linux/smc91x.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/mach-types.h> 26#include <asm/mach-types.h>
26#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
27#include <asm/mach/flash.h>
28#include <asm/mach/map.h> 28#include <asm/mach/map.h>
29 29
30#include <plat/tc.h> 30#include <plat/tc.h>
31#include <mach/gpio.h> 31#include <mach/gpio.h>
32#include <plat/mux.h> 32#include <plat/mux.h>
33#include <plat/flash.h>
33#include <plat/fpga.h> 34#include <plat/fpga.h>
34#include <plat/keypad.h> 35#include <plat/keypad.h>
35#include <plat/common.h> 36#include <plat/common.h>
@@ -150,9 +151,9 @@ static struct mtd_partition nor_partitions[] = {
150 }, 151 },
151}; 152};
152 153
153static struct flash_platform_data nor_data = { 154static struct physmap_flash_data nor_data = {
154 .map_name = "cfi_probe",
155 .width = 2, 155 .width = 2,
156 .set_vpp = omap1_set_vpp,
156 .parts = nor_partitions, 157 .parts = nor_partitions,
157 .nr_parts = ARRAY_SIZE(nor_partitions), 158 .nr_parts = ARRAY_SIZE(nor_partitions),
158}; 159};
@@ -164,7 +165,7 @@ static struct resource nor_resource = {
164}; 165};
165 166
166static struct platform_device nor_device = { 167static struct platform_device nor_device = {
167 .name = "omapflash", 168 .name = "physmap-flash",
168 .id = 0, 169 .id = 0,
169 .dev = { 170 .dev = {
170 .platform_data = &nor_data, 171 .platform_data = &nor_data,
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index fa7cecea19f9..d1100e4f65ac 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -26,6 +26,7 @@
26#include <linux/mtd/mtd.h> 26#include <linux/mtd/mtd.h>
27#include <linux/mtd/nand.h> 27#include <linux/mtd/nand.h>
28#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
29#include <linux/mtd/physmap.h>
29#include <linux/input.h> 30#include <linux/input.h>
30#include <linux/i2c/tps65010.h> 31#include <linux/i2c/tps65010.h>
31#include <linux/smc91x.h> 32#include <linux/smc91x.h>
@@ -35,7 +36,6 @@
35 36
36#include <asm/mach-types.h> 37#include <asm/mach-types.h>
37#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
38#include <asm/mach/flash.h>
39#include <asm/mach/map.h> 39#include <asm/mach/map.h>
40 40
41#include <plat/mux.h> 41#include <plat/mux.h>
@@ -45,6 +45,7 @@
45#include <plat/usb.h> 45#include <plat/usb.h>
46#include <plat/keypad.h> 46#include <plat/keypad.h>
47#include <plat/common.h> 47#include <plat/common.h>
48#include <plat/flash.h>
48 49
49#include "board-h2.h" 50#include "board-h2.h"
50 51
@@ -121,9 +122,9 @@ static struct mtd_partition h2_nor_partitions[] = {
121 } 122 }
122}; 123};
123 124
124static struct flash_platform_data h2_nor_data = { 125static struct physmap_flash_data h2_nor_data = {
125 .map_name = "cfi_probe",
126 .width = 2, 126 .width = 2,
127 .set_vpp = omap1_set_vpp,
127 .parts = h2_nor_partitions, 128 .parts = h2_nor_partitions,
128 .nr_parts = ARRAY_SIZE(h2_nor_partitions), 129 .nr_parts = ARRAY_SIZE(h2_nor_partitions),
129}; 130};
@@ -134,7 +135,7 @@ static struct resource h2_nor_resource = {
134}; 135};
135 136
136static struct platform_device h2_nor_device = { 137static struct platform_device h2_nor_device = {
137 .name = "omapflash", 138 .name = "physmap-flash",
138 .id = 0, 139 .id = 0,
139 .dev = { 140 .dev = {
140 .platform_data = &h2_nor_data, 141 .platform_data = &h2_nor_data,
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 6a7f9c391cf1..a53ab8297d25 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -25,6 +25,7 @@
25#include <linux/mtd/mtd.h> 25#include <linux/mtd/mtd.h>
26#include <linux/mtd/nand.h> 26#include <linux/mtd/nand.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/mtd/physmap.h>
28#include <linux/input.h> 29#include <linux/input.h>
29#include <linux/spi/spi.h> 30#include <linux/spi/spi.h>
30#include <linux/i2c/tps65010.h> 31#include <linux/i2c/tps65010.h>
@@ -37,7 +38,6 @@
37 38
38#include <asm/mach-types.h> 39#include <asm/mach-types.h>
39#include <asm/mach/arch.h> 40#include <asm/mach/arch.h>
40#include <asm/mach/flash.h>
41#include <asm/mach/map.h> 41#include <asm/mach/map.h>
42 42
43#include <mach/irqs.h> 43#include <mach/irqs.h>
@@ -47,6 +47,7 @@
47#include <plat/keypad.h> 47#include <plat/keypad.h>
48#include <plat/dma.h> 48#include <plat/dma.h>
49#include <plat/common.h> 49#include <plat/common.h>
50#include <plat/flash.h>
50 51
51#include "board-h3.h" 52#include "board-h3.h"
52 53
@@ -126,9 +127,9 @@ static struct mtd_partition nor_partitions[] = {
126 } 127 }
127}; 128};
128 129
129static struct flash_platform_data nor_data = { 130static struct physmap_flash_data nor_data = {
130 .map_name = "cfi_probe",
131 .width = 2, 131 .width = 2,
132 .set_vpp = omap1_set_vpp,
132 .parts = nor_partitions, 133 .parts = nor_partitions,
133 .nr_parts = ARRAY_SIZE(nor_partitions), 134 .nr_parts = ARRAY_SIZE(nor_partitions),
134}; 135};
@@ -139,7 +140,7 @@ static struct resource nor_resource = {
139}; 140};
140 141
141static struct platform_device nor_device = { 142static struct platform_device nor_device = {
142 .name = "omapflash", 143 .name = "physmap-flash",
143 .id = 0, 144 .id = 0,
144 .dev = { 145 .dev = {
145 .platform_data = &nor_data, 146 .platform_data = &nor_data,
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index 2133b006f6a3..5d12fd35681b 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -22,16 +22,17 @@
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/mtd/mtd.h> 23#include <linux/mtd/mtd.h>
24#include <linux/mtd/partitions.h> 24#include <linux/mtd/partitions.h>
25#include <linux/mtd/physmap.h>
25#include <linux/input.h> 26#include <linux/input.h>
26#include <linux/smc91x.h> 27#include <linux/smc91x.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/mach-types.h> 30#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
31#include <asm/mach/flash.h>
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33 33
34#include <plat/mux.h> 34#include <plat/mux.h>
35#include <plat/flash.h>
35#include <plat/fpga.h> 36#include <plat/fpga.h>
36#include <mach/gpio.h> 37#include <mach/gpio.h>
37#include <plat/tc.h> 38#include <plat/tc.h>
@@ -94,9 +95,9 @@ static struct mtd_partition innovator_partitions[] = {
94 } 95 }
95}; 96};
96 97
97static struct flash_platform_data innovator_flash_data = { 98static struct physmap_flash_data innovator_flash_data = {
98 .map_name = "cfi_probe",
99 .width = 2, 99 .width = 2,
100 .set_vpp = omap1_set_vpp,
100 .parts = innovator_partitions, 101 .parts = innovator_partitions,
101 .nr_parts = ARRAY_SIZE(innovator_partitions), 102 .nr_parts = ARRAY_SIZE(innovator_partitions),
102}; 103};
@@ -108,7 +109,7 @@ static struct resource innovator_flash_resource = {
108}; 109};
109 110
110static struct platform_device innovator_flash_device = { 111static struct platform_device innovator_flash_device = {
111 .name = "omapflash", 112 .name = "physmap-flash",
112 .id = 0, 113 .id = 0,
113 .dev = { 114 .dev = {
114 .platform_data = &innovator_flash_data, 115 .platform_data = &innovator_flash_data,
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index ccea4f448e9a..80d862001def 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -37,6 +37,7 @@
37 37
38#include <linux/mtd/mtd.h> 38#include <linux/mtd/mtd.h>
39#include <linux/mtd/partitions.h> 39#include <linux/mtd/partitions.h>
40#include <linux/mtd/physmap.h>
40 41
41#include <linux/i2c/tps65010.h> 42#include <linux/i2c/tps65010.h>
42 43
@@ -46,8 +47,8 @@
46#include <asm/mach-types.h> 47#include <asm/mach-types.h>
47#include <asm/mach/arch.h> 48#include <asm/mach/arch.h>
48#include <asm/mach/map.h> 49#include <asm/mach/map.h>
49#include <asm/mach/flash.h>
50 50
51#include <plat/flash.h>
51#include <plat/usb.h> 52#include <plat/usb.h>
52#include <plat/mux.h> 53#include <plat/mux.h>
53#include <plat/tc.h> 54#include <plat/tc.h>
@@ -94,9 +95,9 @@ static struct mtd_partition osk_partitions[] = {
94 } 95 }
95}; 96};
96 97
97static struct flash_platform_data osk_flash_data = { 98static struct physmap_flash_data osk_flash_data = {
98 .map_name = "cfi_probe",
99 .width = 2, 99 .width = 2,
100 .set_vpp = omap1_set_vpp,
100 .parts = osk_partitions, 101 .parts = osk_partitions,
101 .nr_parts = ARRAY_SIZE(osk_partitions), 102 .nr_parts = ARRAY_SIZE(osk_partitions),
102}; 103};
@@ -107,7 +108,7 @@ static struct resource osk_flash_resource = {
107}; 108};
108 109
109static struct platform_device osk5912_flash_device = { 110static struct platform_device osk5912_flash_device = {
110 .name = "omapflash", 111 .name = "physmap-flash",
111 .id = 0, 112 .id = 0,
112 .dev = { 113 .dev = {
113 .platform_data = &osk_flash_data, 114 .platform_data = &osk_flash_data,
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 9fe887262bdf..569b4c9085cd 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -23,6 +23,7 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
25#include <linux/mtd/partitions.h> 25#include <linux/mtd/partitions.h>
26#include <linux/mtd/physmap.h>
26#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
27#include <linux/interrupt.h> 28#include <linux/interrupt.h>
28#include <linux/apm-emulation.h> 29#include <linux/apm-emulation.h>
@@ -31,9 +32,9 @@
31#include <asm/mach-types.h> 32#include <asm/mach-types.h>
32#include <asm/mach/arch.h> 33#include <asm/mach/arch.h>
33#include <asm/mach/map.h> 34#include <asm/mach/map.h>
34#include <asm/mach/flash.h>
35 35
36#include <mach/gpio.h> 36#include <mach/gpio.h>
37#include <plat/flash.h>
37#include <plat/mux.h> 38#include <plat/mux.h>
38#include <plat/usb.h> 39#include <plat/usb.h>
39#include <plat/tc.h> 40#include <plat/tc.h>
@@ -126,9 +127,9 @@ static struct mtd_partition palmte_rom_partitions[] = {
126 }, 127 },
127}; 128};
128 129
129static struct flash_platform_data palmte_rom_data = { 130static struct physmap_flash_data palmte_rom_data = {
130 .map_name = "map_rom",
131 .width = 2, 131 .width = 2,
132 .set_vpp = omap1_set_vpp,
132 .parts = palmte_rom_partitions, 133 .parts = palmte_rom_partitions,
133 .nr_parts = ARRAY_SIZE(palmte_rom_partitions), 134 .nr_parts = ARRAY_SIZE(palmte_rom_partitions),
134}; 135};
@@ -140,7 +141,7 @@ static struct resource palmte_rom_resource = {
140}; 141};
141 142
142static struct platform_device palmte_rom_device = { 143static struct platform_device palmte_rom_device = {
143 .name = "omapflash", 144 .name = "physmap-flash",
144 .id = -1, 145 .id = -1,
145 .dev = { 146 .dev = {
146 .platform_data = &palmte_rom_data, 147 .platform_data = &palmte_rom_data,
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c
index af068e3e0fe7..6ad49a2cc1a0 100644
--- a/arch/arm/mach-omap1/board-palmtt.c
+++ b/arch/arm/mach-omap1/board-palmtt.c
@@ -21,16 +21,17 @@
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/mtd/mtd.h> 22#include <linux/mtd/mtd.h>
23#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
24#include <linux/mtd/physmap.h>
24#include <linux/leds.h> 25#include <linux/leds.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/mach-types.h> 28#include <asm/mach-types.h>
28#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
29#include <asm/mach/map.h> 30#include <asm/mach/map.h>
30#include <asm/mach/flash.h>
31 31
32#include <plat/led.h> 32#include <plat/led.h>
33#include <mach/gpio.h> 33#include <mach/gpio.h>
34#include <plat/flash.h>
34#include <plat/mux.h> 35#include <plat/mux.h>
35#include <plat/usb.h> 36#include <plat/usb.h>
36#include <plat/dma.h> 37#include <plat/dma.h>
@@ -104,9 +105,9 @@ static struct mtd_partition palmtt_partitions[] = {
104 } 105 }
105}; 106};
106 107
107static struct flash_platform_data palmtt_flash_data = { 108static struct physmap_flash_data palmtt_flash_data = {
108 .map_name = "cfi_probe",
109 .width = 2, 109 .width = 2,
110 .set_vpp = omap1_set_vpp,
110 .parts = palmtt_partitions, 111 .parts = palmtt_partitions,
111 .nr_parts = ARRAY_SIZE(palmtt_partitions), 112 .nr_parts = ARRAY_SIZE(palmtt_partitions),
112}; 113};
@@ -118,7 +119,7 @@ static struct resource palmtt_flash_resource = {
118}; 119};
119 120
120static struct platform_device palmtt_flash_device = { 121static struct platform_device palmtt_flash_device = {
121 .name = "omapflash", 122 .name = "physmap-flash",
122 .id = 0, 123 .id = 0,
123 .dev = { 124 .dev = {
124 .platform_data = &palmtt_flash_data, 125 .platform_data = &palmtt_flash_data,
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index c7a3b6f36500..6641de9257ef 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -25,14 +25,15 @@
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/mtd/mtd.h> 26#include <linux/mtd/mtd.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/mtd/physmap.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/mach-types.h> 31#include <asm/mach-types.h>
31#include <asm/mach/arch.h> 32#include <asm/mach/arch.h>
32#include <asm/mach/map.h> 33#include <asm/mach/map.h>
33#include <asm/mach/flash.h>
34 34
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <plat/flash.h>
36#include <plat/mux.h> 37#include <plat/mux.h>
37#include <plat/usb.h> 38#include <plat/usb.h>
38#include <plat/dma.h> 39#include <plat/dma.h>
@@ -126,10 +127,9 @@ static struct mtd_partition palmz71_rom_partitions[] = {
126 }, 127 },
127}; 128};
128 129
129static struct flash_platform_data palmz71_rom_data = { 130static struct physmap_flash_data palmz71_rom_data = {
130 .map_name = "map_rom",
131 .name = "onboardrom",
132 .width = 2, 131 .width = 2,
132 .set_vpp = omap1_set_vpp,
133 .parts = palmz71_rom_partitions, 133 .parts = palmz71_rom_partitions,
134 .nr_parts = ARRAY_SIZE(palmz71_rom_partitions), 134 .nr_parts = ARRAY_SIZE(palmz71_rom_partitions),
135}; 135};
@@ -141,7 +141,7 @@ static struct resource palmz71_rom_resource = {
141}; 141};
142 142
143static struct platform_device palmz71_rom_device = { 143static struct platform_device palmz71_rom_device = {
144 .name = "omapflash", 144 .name = "physmap-flash",
145 .id = -1, 145 .id = -1,
146 .dev = { 146 .dev = {
147 .platform_data = &palmz71_rom_data, 147 .platform_data = &palmz71_rom_data,
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c
index 1387a4f15da9..e854d5741c88 100644
--- a/arch/arm/mach-omap1/board-perseus2.c
+++ b/arch/arm/mach-omap1/board-perseus2.c
@@ -18,19 +18,20 @@
18#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
19#include <linux/mtd/nand.h> 19#include <linux/mtd/nand.h>
20#include <linux/mtd/partitions.h> 20#include <linux/mtd/partitions.h>
21#include <linux/mtd/physmap.h>
21#include <linux/input.h> 22#include <linux/input.h>
22#include <linux/smc91x.h> 23#include <linux/smc91x.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/mach-types.h> 26#include <asm/mach-types.h>
26#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
27#include <asm/mach/flash.h>
28#include <asm/mach/map.h> 28#include <asm/mach/map.h>
29 29
30#include <plat/tc.h> 30#include <plat/tc.h>
31#include <mach/gpio.h> 31#include <mach/gpio.h>
32#include <plat/mux.h> 32#include <plat/mux.h>
33#include <plat/fpga.h> 33#include <plat/fpga.h>
34#include <plat/flash.h>
34#include <plat/keypad.h> 35#include <plat/keypad.h>
35#include <plat/common.h> 36#include <plat/common.h>
36#include <plat/board.h> 37#include <plat/board.h>
@@ -117,9 +118,9 @@ static struct mtd_partition nor_partitions[] = {
117 }, 118 },
118}; 119};
119 120
120static struct flash_platform_data nor_data = { 121static struct physmap_flash_data nor_data = {
121 .map_name = "cfi_probe",
122 .width = 2, 122 .width = 2,
123 .set_vpp = omap1_set_vpp,
123 .parts = nor_partitions, 124 .parts = nor_partitions,
124 .nr_parts = ARRAY_SIZE(nor_partitions), 125 .nr_parts = ARRAY_SIZE(nor_partitions),
125}; 126};
@@ -131,7 +132,7 @@ static struct resource nor_resource = {
131}; 132};
132 133
133static struct platform_device nor_device = { 134static struct platform_device nor_device = {
134 .name = "omapflash", 135 .name = "physmap-flash",
135 .id = 0, 136 .id = 0,
136 .dev = { 137 .dev = {
137 .platform_data = &nor_data, 138 .platform_data = &nor_data,
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 7a97fac83d8d..2fb1e5f8e2ec 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -22,6 +22,7 @@
22#include <linux/notifier.h> 22#include <linux/notifier.h>
23#include <linux/mtd/mtd.h> 23#include <linux/mtd/mtd.h>
24#include <linux/mtd/partitions.h> 24#include <linux/mtd/partitions.h>
25#include <linux/mtd/physmap.h>
25#include <linux/types.h> 26#include <linux/types.h>
26#include <linux/i2c.h> 27#include <linux/i2c.h>
27#include <linux/errno.h> 28#include <linux/errno.h>
@@ -29,10 +30,10 @@
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/mach-types.h> 31#include <asm/mach-types.h>
31#include <asm/mach/arch.h> 32#include <asm/mach/arch.h>
32#include <asm/mach/flash.h>
33#include <asm/mach/map.h> 33#include <asm/mach/map.h>
34 34
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <plat/flash.h>
36#include <plat/mux.h> 37#include <plat/mux.h>
37#include <plat/dma.h> 38#include <plat/dma.h>
38#include <plat/irda.h> 39#include <plat/irda.h>
@@ -287,9 +288,9 @@ static struct mtd_partition sx1_partitions[] = {
287 } 288 }
288}; 289};
289 290
290static struct flash_platform_data sx1_flash_data = { 291static struct physmap_flash_data sx1_flash_data = {
291 .map_name = "cfi_probe",
292 .width = 2, 292 .width = 2,
293 .set_vpp = omap1_set_vpp,
293 .parts = sx1_partitions, 294 .parts = sx1_partitions,
294 .nr_parts = ARRAY_SIZE(sx1_partitions), 295 .nr_parts = ARRAY_SIZE(sx1_partitions),
295}; 296};
@@ -310,7 +311,7 @@ static struct resource sx1_old_flash_resource[] = {
310}; 311};
311 312
312static struct platform_device sx1_flash_device = { 313static struct platform_device sx1_flash_device = {
313 .name = "omapflash", 314 .name = "physmap-flash",
314 .id = 0, 315 .id = 0,
315 .dev = { 316 .dev = {
316 .platform_data = &sx1_flash_data, 317 .platform_data = &sx1_flash_data,
@@ -327,7 +328,7 @@ static struct resource sx1_new_flash_resource = {
327}; 328};
328 329
329static struct platform_device sx1_flash_device = { 330static struct platform_device sx1_flash_device = {
330 .name = "omapflash", 331 .name = "physmap-flash",
331 .id = 0, 332 .id = 0,
332 .dev = { 333 .dev = {
333 .platform_data = &sx1_flash_data, 334 .platform_data = &sx1_flash_data,
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index 169183537997..87b9436fe7c0 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -18,6 +18,7 @@
18#include <linux/irq.h> 18#include <linux/irq.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/mtd/physmap.h>
21#include <linux/notifier.h> 22#include <linux/notifier.h>
22#include <linux/reboot.h> 23#include <linux/reboot.h>
23#include <linux/serial_8250.h> 24#include <linux/serial_8250.h>
@@ -27,11 +28,11 @@
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/mach-types.h> 29#include <asm/mach-types.h>
29#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
30#include <asm/mach/flash.h>
31#include <asm/mach/map.h> 31#include <asm/mach/map.h>
32 32
33#include <plat/common.h> 33#include <plat/common.h>
34#include <mach/gpio.h> 34#include <mach/gpio.h>
35#include <plat/flash.h>
35#include <plat/mux.h> 36#include <plat/mux.h>
36#include <plat/tc.h> 37#include <plat/tc.h>
37#include <plat/usb.h> 38#include <plat/usb.h>
@@ -86,9 +87,9 @@ static int __init ext_uart_init(void)
86} 87}
87arch_initcall(ext_uart_init); 88arch_initcall(ext_uart_init);
88 89
89static struct flash_platform_data voiceblue_flash_data = { 90static struct physmap_flash_data voiceblue_flash_data = {
90 .map_name = "cfi_probe",
91 .width = 2, 91 .width = 2,
92 .set_vpp = omap1_set_vpp,
92}; 93};
93 94
94static struct resource voiceblue_flash_resource = { 95static struct resource voiceblue_flash_resource = {
@@ -98,7 +99,7 @@ static struct resource voiceblue_flash_resource = {
98}; 99};
99 100
100static struct platform_device voiceblue_flash_device = { 101static struct platform_device voiceblue_flash_device = {
101 .name = "omapflash", 102 .name = "physmap-flash",
102 .id = 0, 103 .id = 0,
103 .dev = { 104 .dev = {
104 .platform_data = &voiceblue_flash_data, 105 .platform_data = &voiceblue_flash_data,
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c
index 04f1d29cba2c..e0aec1007a0d 100644
--- a/arch/arm/mach-omap1/clock.c
+++ b/arch/arm/mach-omap1/clock.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/mach-omap1/clock.c 2 * linux/arch/arm/mach-omap1/clock.c
3 * 3 *
4 * Copyright (C) 2004 - 2005, 2009 Nokia corporation 4 * Copyright (C) 2004 - 2005, 2009-2010 Nokia Corporation
5 * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> 5 * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
6 * 6 *
7 * Modified to use omap shared clock framework by 7 * Modified to use omap shared clock framework by
@@ -38,26 +38,6 @@ struct clk *api_ck_p, *ck_dpll1_p, *ck_ref_p;
38 * Omap1 specific clock functions 38 * Omap1 specific clock functions
39 *-------------------------------------------------------------------------*/ 39 *-------------------------------------------------------------------------*/
40 40
41static int clk_omap1_dummy_enable(struct clk *clk)
42{
43 return 0;
44}
45
46static void clk_omap1_dummy_disable(struct clk *clk)
47{
48}
49
50const struct clkops clkops_dummy = {
51 .enable = clk_omap1_dummy_enable,
52 .disable = clk_omap1_dummy_disable,
53};
54
55/* XXX can be replaced with a fixed_divisor_recalc */
56unsigned long omap1_watchdog_recalc(struct clk *clk)
57{
58 return clk->parent->rate / 14;
59}
60
61unsigned long omap1_uart_recalc(struct clk *clk) 41unsigned long omap1_uart_recalc(struct clk *clk)
62{ 42{
63 unsigned int val = __raw_readl(clk->enable_reg); 43 unsigned int val = __raw_readl(clk->enable_reg);
@@ -577,9 +557,6 @@ const struct clkops clkops_uart = {
577 557
578long omap1_clk_round_rate(struct clk *clk, unsigned long rate) 558long omap1_clk_round_rate(struct clk *clk, unsigned long rate)
579{ 559{
580 if (clk->flags & RATE_FIXED)
581 return clk->rate;
582
583 if (clk->round_rate != NULL) 560 if (clk->round_rate != NULL)
584 return clk->round_rate(clk, rate); 561 return clk->round_rate(clk, rate);
585 562
diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c
index 65e7b5b85d83..aa8558adbf1c 100644
--- a/arch/arm/mach-omap1/clock_data.c
+++ b/arch/arm/mach-omap1/clock_data.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/mach-omap1/clock_data.c 2 * linux/arch/arm/mach-omap1/clock_data.c
3 * 3 *
4 * Copyright (C) 2004 - 2005, 2009 Nokia corporation 4 * Copyright (C) 2004 - 2005, 2009-2010 Nokia Corporation
5 * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com> 5 * Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
6 * Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc 6 * Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc
7 * 7 *
@@ -27,13 +27,6 @@
27 * Omap1 clocks 27 * Omap1 clocks
28 *-------------------------------------------------------------------------*/ 28 *-------------------------------------------------------------------------*/
29 29
30/* XXX is this necessary? */
31static struct clk dummy_ck = {
32 .name = "dummy",
33 .ops = &clkops_dummy,
34 .flags = RATE_FIXED,
35};
36
37static struct clk ck_ref = { 30static struct clk ck_ref = {
38 .name = "ck_ref", 31 .name = "ck_ref",
39 .ops = &clkops_null, 32 .ops = &clkops_null,
@@ -149,7 +142,8 @@ static struct arm_idlect1_clk armwdt_ck = {
149 .flags = CLOCK_IDLE_CONTROL, 142 .flags = CLOCK_IDLE_CONTROL,
150 .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2), 143 .enable_reg = OMAP1_IO_ADDRESS(ARM_IDLECT2),
151 .enable_bit = EN_WDTCK, 144 .enable_bit = EN_WDTCK,
152 .recalc = &omap1_watchdog_recalc, 145 .fixed_div = 14,
146 .recalc = &omap_fixed_divisor_recalc,
153 }, 147 },
154 .idlect_shift = 0, 148 .idlect_shift = 0,
155}; 149};
@@ -388,8 +382,7 @@ static struct uart_clk uart1_16xx = {
388 /* Direct from ULPD, no real parent */ 382 /* Direct from ULPD, no real parent */
389 .parent = &armper_ck.clk, 383 .parent = &armper_ck.clk,
390 .rate = 48000000, 384 .rate = 48000000,
391 .flags = RATE_FIXED | ENABLE_REG_32BIT | 385 .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
392 CLOCK_NO_IDLE_PARENT,
393 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0), 386 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
394 .enable_bit = 29, 387 .enable_bit = 29,
395 }, 388 },
@@ -429,8 +422,7 @@ static struct uart_clk uart3_16xx = {
429 /* Direct from ULPD, no real parent */ 422 /* Direct from ULPD, no real parent */
430 .parent = &armper_ck.clk, 423 .parent = &armper_ck.clk,
431 .rate = 48000000, 424 .rate = 48000000,
432 .flags = RATE_FIXED | ENABLE_REG_32BIT | 425 .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
433 CLOCK_NO_IDLE_PARENT,
434 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0), 426 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
435 .enable_bit = 31, 427 .enable_bit = 31,
436 }, 428 },
@@ -442,7 +434,7 @@ static struct clk usb_clko = { /* 6 MHz output on W4_USB_CLKO */
442 .ops = &clkops_generic, 434 .ops = &clkops_generic,
443 /* Direct from ULPD, no parent */ 435 /* Direct from ULPD, no parent */
444 .rate = 6000000, 436 .rate = 6000000,
445 .flags = RATE_FIXED | ENABLE_REG_32BIT, 437 .flags = ENABLE_REG_32BIT,
446 .enable_reg = OMAP1_IO_ADDRESS(ULPD_CLOCK_CTRL), 438 .enable_reg = OMAP1_IO_ADDRESS(ULPD_CLOCK_CTRL),
447 .enable_bit = USB_MCLK_EN_BIT, 439 .enable_bit = USB_MCLK_EN_BIT,
448}; 440};
@@ -452,7 +444,7 @@ static struct clk usb_hhc_ck1510 = {
452 .ops = &clkops_generic, 444 .ops = &clkops_generic,
453 /* Direct from ULPD, no parent */ 445 /* Direct from ULPD, no parent */
454 .rate = 48000000, /* Actually 2 clocks, 12MHz and 48MHz */ 446 .rate = 48000000, /* Actually 2 clocks, 12MHz and 48MHz */
455 .flags = RATE_FIXED | ENABLE_REG_32BIT, 447 .flags = ENABLE_REG_32BIT,
456 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0), 448 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
457 .enable_bit = USB_HOST_HHC_UHOST_EN, 449 .enable_bit = USB_HOST_HHC_UHOST_EN,
458}; 450};
@@ -463,7 +455,7 @@ static struct clk usb_hhc_ck16xx = {
463 /* Direct from ULPD, no parent */ 455 /* Direct from ULPD, no parent */
464 .rate = 48000000, 456 .rate = 48000000,
465 /* OTG_SYSCON_2.OTG_PADEN == 0 (not 1510-compatible) */ 457 /* OTG_SYSCON_2.OTG_PADEN == 0 (not 1510-compatible) */
466 .flags = RATE_FIXED | ENABLE_REG_32BIT, 458 .flags = ENABLE_REG_32BIT,
467 .enable_reg = OMAP1_IO_ADDRESS(OTG_BASE + 0x08), /* OTG_SYSCON_2 */ 459 .enable_reg = OMAP1_IO_ADDRESS(OTG_BASE + 0x08), /* OTG_SYSCON_2 */
468 .enable_bit = 8 /* UHOST_EN */, 460 .enable_bit = 8 /* UHOST_EN */,
469}; 461};
@@ -473,7 +465,6 @@ static struct clk usb_dc_ck = {
473 .ops = &clkops_generic, 465 .ops = &clkops_generic,
474 /* Direct from ULPD, no parent */ 466 /* Direct from ULPD, no parent */
475 .rate = 48000000, 467 .rate = 48000000,
476 .flags = RATE_FIXED,
477 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), 468 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
478 .enable_bit = 4, 469 .enable_bit = 4,
479}; 470};
@@ -483,7 +474,6 @@ static struct clk usb_dc_ck7xx = {
483 .ops = &clkops_generic, 474 .ops = &clkops_generic,
484 /* Direct from ULPD, no parent */ 475 /* Direct from ULPD, no parent */
485 .rate = 48000000, 476 .rate = 48000000,
486 .flags = RATE_FIXED,
487 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), 477 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
488 .enable_bit = 8, 478 .enable_bit = 8,
489}; 479};
@@ -493,7 +483,6 @@ static struct clk mclk_1510 = {
493 .ops = &clkops_generic, 483 .ops = &clkops_generic,
494 /* Direct from ULPD, no parent. May be enabled by ext hardware. */ 484 /* Direct from ULPD, no parent. May be enabled by ext hardware. */
495 .rate = 12000000, 485 .rate = 12000000,
496 .flags = RATE_FIXED,
497 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), 486 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
498 .enable_bit = 6, 487 .enable_bit = 6,
499}; 488};
@@ -514,7 +503,6 @@ static struct clk bclk_1510 = {
514 .ops = &clkops_generic, 503 .ops = &clkops_generic,
515 /* Direct from ULPD, no parent. May be enabled by ext hardware. */ 504 /* Direct from ULPD, no parent. May be enabled by ext hardware. */
516 .rate = 12000000, 505 .rate = 12000000,
517 .flags = RATE_FIXED,
518}; 506};
519 507
520static struct clk bclk_16xx = { 508static struct clk bclk_16xx = {
@@ -529,36 +517,34 @@ static struct clk bclk_16xx = {
529}; 517};
530 518
531static struct clk mmc1_ck = { 519static struct clk mmc1_ck = {
532 .name = "mmc_ck", 520 .name = "mmc1_ck",
533 .ops = &clkops_generic, 521 .ops = &clkops_generic,
534 /* Functional clock is direct from ULPD, interface clock is ARMPER */ 522 /* Functional clock is direct from ULPD, interface clock is ARMPER */
535 .parent = &armper_ck.clk, 523 .parent = &armper_ck.clk,
536 .rate = 48000000, 524 .rate = 48000000,
537 .flags = RATE_FIXED | ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT, 525 .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
538 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0), 526 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
539 .enable_bit = 23, 527 .enable_bit = 23,
540}; 528};
541 529
542static struct clk mmc2_ck = { 530static struct clk mmc2_ck = {
543 .name = "mmc_ck", 531 .name = "mmc2_ck",
544 .id = 1,
545 .ops = &clkops_generic, 532 .ops = &clkops_generic,
546 /* Functional clock is direct from ULPD, interface clock is ARMPER */ 533 /* Functional clock is direct from ULPD, interface clock is ARMPER */
547 .parent = &armper_ck.clk, 534 .parent = &armper_ck.clk,
548 .rate = 48000000, 535 .rate = 48000000,
549 .flags = RATE_FIXED | ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT, 536 .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
550 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0), 537 .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
551 .enable_bit = 20, 538 .enable_bit = 20,
552}; 539};
553 540
554static struct clk mmc3_ck = { 541static struct clk mmc3_ck = {
555 .name = "mmc_ck", 542 .name = "mmc3_ck",
556 .id = 2,
557 .ops = &clkops_generic, 543 .ops = &clkops_generic,
558 /* Functional clock is direct from ULPD, interface clock is ARMPER */ 544 /* Functional clock is direct from ULPD, interface clock is ARMPER */
559 .parent = &armper_ck.clk, 545 .parent = &armper_ck.clk,
560 .rate = 48000000, 546 .rate = 48000000,
561 .flags = RATE_FIXED | ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT, 547 .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
562 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), 548 .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
563 .enable_bit = 12, 549 .enable_bit = 12,
564}; 550};
@@ -576,7 +562,6 @@ static struct clk virtual_ck_mpu = {
576remains active during MPU idle whenever this is enabled */ 562remains active during MPU idle whenever this is enabled */
577static struct clk i2c_fck = { 563static struct clk i2c_fck = {
578 .name = "i2c_fck", 564 .name = "i2c_fck",
579 .id = 1,
580 .ops = &clkops_null, 565 .ops = &clkops_null,
581 .flags = CLOCK_NO_IDLE_PARENT, 566 .flags = CLOCK_NO_IDLE_PARENT,
582 .parent = &armxor_ck.clk, 567 .parent = &armxor_ck.clk,
@@ -585,7 +570,6 @@ static struct clk i2c_fck = {
585 570
586static struct clk i2c_ick = { 571static struct clk i2c_ick = {
587 .name = "i2c_ick", 572 .name = "i2c_ick",
588 .id = 1,
589 .ops = &clkops_null, 573 .ops = &clkops_null,
590 .flags = CLOCK_NO_IDLE_PARENT, 574 .flags = CLOCK_NO_IDLE_PARENT,
591 .parent = &armper_ck.clk, 575 .parent = &armper_ck.clk,
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index a2d07aa75c9e..379100c17639 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -73,7 +73,7 @@ static inline void omap_init_rtc(void) {}
73# define INT_DSP_MAILBOX1 INT_1610_DSP_MAILBOX1 73# define INT_DSP_MAILBOX1 INT_1610_DSP_MAILBOX1
74#endif 74#endif
75 75
76#define OMAP1_MBOX_BASE OMAP1_IO_ADDRESS(OMAP16XX_MAILBOX_BASE) 76#define OMAP1_MBOX_BASE OMAP16XX_MAILBOX_BASE
77 77
78static struct resource mbox_resources[] = { 78static struct resource mbox_resources[] = {
79 { 79 {
diff --git a/arch/arm/mach-omap1/flash.c b/arch/arm/mach-omap1/flash.c
new file mode 100644
index 000000000000..0b07a78eeaa7
--- /dev/null
+++ b/arch/arm/mach-omap1/flash.c
@@ -0,0 +1,33 @@
1/*
2 * Flash support for OMAP1
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <linux/mtd/mtd.h>
10#include <linux/mtd/map.h>
11
12#include <plat/io.h>
13#include <plat/tc.h>
14
15void omap1_set_vpp(struct map_info *map, int enable)
16{
17 static int count;
18 u32 l;
19
20 if (enable) {
21 if (count++ == 0) {
22 l = omap_readl(EMIFS_CONFIG);
23 l |= OMAP_EMIFS_CONFIG_WP;
24 omap_writel(l, EMIFS_CONFIG);
25 }
26 } else {
27 if (count && (--count == 0)) {
28 l = omap_readl(EMIFS_CONFIG);
29 l &= ~OMAP_EMIFS_CONFIG_WP;
30 omap_writel(l, EMIFS_CONFIG);
31 }
32 }
33}
diff --git a/arch/arm/mach-omap1/i2c.c b/arch/arm/mach-omap1/i2c.c
index 1bf4735e27a6..5446c9912641 100644
--- a/arch/arm/mach-omap1/i2c.c
+++ b/arch/arm/mach-omap1/i2c.c
@@ -23,9 +23,7 @@
23#include <plat/mux.h> 23#include <plat/mux.h>
24#include <plat/cpu.h> 24#include <plat/cpu.h>
25 25
26int __init omap_register_i2c_bus(int bus_id, u32 clkrate, 26void __init omap1_i2c_mux_pins(int bus_id)
27 struct i2c_board_info const *info,
28 unsigned len)
29{ 27{
30 if (cpu_is_omap7xx()) { 28 if (cpu_is_omap7xx()) {
31 omap_cfg_reg(I2C_7XX_SDA); 29 omap_cfg_reg(I2C_7XX_SDA);
@@ -34,6 +32,4 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate,
34 omap_cfg_reg(I2C_SDA); 32 omap_cfg_reg(I2C_SDA);
35 omap_cfg_reg(I2C_SCL); 33 omap_cfg_reg(I2C_SCL);
36 } 34 }
37
38 return omap_plat_register_i2c_bus(bus_id, clkrate, info, len);
39} 35}
diff --git a/arch/arm/mach-omap1/include/mach/debug-macro.S b/arch/arm/mach-omap1/include/mach/debug-macro.S
index aedb746fc33c..b6d9584544b4 100644
--- a/arch/arm/mach-omap1/include/mach/debug-macro.S
+++ b/arch/arm/mach-omap1/include/mach/debug-macro.S
@@ -11,18 +11,80 @@
11 * 11 *
12*/ 12*/
13 13
14 .macro addruart,rx 14#include <linux/serial_reg.h>
15
16#include <plat/serial.h>
17
18 .pushsection .data
19omap_uart_phys: .word 0x0
20omap_uart_virt: .word 0x0
21 .popsection
22
23 /*
24 * Note that this code won't work if the bootloader passes
25 * a wrong machine ID number in r1. To debug, just hardcode
26 * the desired UART phys and virt addresses temporarily into
27 * the omap_uart_phys and omap_uart_virt above.
28 */
29 .macro addruart, rx, tmp
30
31 /* Use omap_uart_phys/virt if already configured */
329: mrc p15, 0, \rx, c1, c0
33 tst \rx, #1 @ MMU enabled?
34 ldreq \rx, =omap_uart_phys @ physical base address
35 ldrne \rx, =omap_uart_virt @ virtual base
36 ldr \rx, [\rx, #0]
37 cmp \rx, #0 @ is port configured?
38 bne 99f @ already configured
39
40 /* Check 7XX UART1 scratchpad register for uart to use */
41 mrc p15, 0, \rx, c1, c0
42 tst \rx, #1 @ MMU enabled?
43 moveq \rx, #0xff000000 @ physical base address
44 movne \rx, #0xfe000000 @ virtual base
45 orr \rx, \rx, #0x00fb0000 @ OMAP1UART1
46 ldrb \rx, [\rx, #(UART_SCR << OMAP7XX_PORT_SHIFT)]
47 cmp \rx, #0 @ anything in 7XX scratchpad?
48 bne 10f @ found 7XX uart
49
50 /* Check 15xx/16xx UART1 scratchpad register for uart to use */
15 mrc p15, 0, \rx, c1, c0 51 mrc p15, 0, \rx, c1, c0
16 tst \rx, #1 @ MMU enabled? 52 tst \rx, #1 @ MMU enabled?
17 moveq \rx, #0xff000000 @ physical base address 53 moveq \rx, #0xff000000 @ physical base address
18 movne \rx, #0xfe000000 @ virtual base 54 movne \rx, #0xfe000000 @ virtual base
19 orr \rx, \rx, #0x00fb0000 55 orr \rx, \rx, #0x00fb0000 @ OMAP1UART1
20#ifdef CONFIG_OMAP_LL_DEBUG_UART3 56 ldrb \rx, [\rx, #(UART_SCR << OMAP_PORT_SHIFT)]
21 orr \rx, \rx, #0x00009000 @ UART 3 57
22#endif 58 /* Select the UART to use based on the UART1 scratchpad value */
23#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) 5910: cmp \rx, #0 @ no port configured?
24 orr \rx, \rx, #0x00000800 @ UART 2 & 3 60 beq 11f @ if none, try to use UART1
25#endif 61 cmp \rx, #OMAP1UART1
62 beq 11f @ configure OMAP1UART1
63 cmp \rx, #OMAP1UART2
64 beq 12f @ configure OMAP1UART2
65 cmp \rx, #OMAP1UART3
66 beq 13f @ configure OMAP2UART3
67
68 /* Configure the UART offset from the phys/virt base */
6911: mov \rx, #0x00fb0000 @ OMAP1UART1
70 b 98f
7112: mov \rx, #0x00fb0000 @ OMAP1UART1
72 orr \rx, \rx, #0x00000800 @ OMAP1UART2
73 b 98f
7413: mov \rx, #0x00fb0000 @ OMAP1UART1
75 orr \rx, \rx, #0x00000800 @ OMAP1UART2
76 orr \rx, \rx, #0x00009000 @ OMAP1UART3
77
78 /* Store both phys and virt address for the uart */
7998: add \rx, \rx, #0xff000000 @ phys base
80 ldr \tmp, =omap_uart_phys
81 str \rx, [\tmp, #0]
82 sub \rx, \rx, #0xff000000 @ phys base
83 add \rx, \rx, #0xfe000000 @ virt base
84 ldr \tmp, =omap_uart_virt
85 str \rx, [\tmp, #0]
86 b 9b
8799:
26 .endm 88 .endm
27 89
28 .macro senduart,rd,rx 90 .macro senduart,rd,rx
@@ -30,13 +92,13 @@
30 .endm 92 .endm
31 93
32 .macro busyuart,rd,rx 94 .macro busyuart,rd,rx
331001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends 951001: ldrb \rd, [\rx, #(UART_LSR << OMAP_PORT_SHIFT)]
34 and \rd, \rd, #0x60 96 and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
35 teq \rd, #0x60 97 teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
36 beq 1002f 98 beq 1002f
37 ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only 99 ldrb \rd, [\rx, #(UART_LSR << OMAP7XX_PORT_SHIFT)]
38 and \rd, \rd, #0x60 100 and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
39 teq \rd, #0x60 101 teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE)
40 bne 1001b 102 bne 1001b
411002: 1031002:
42 .endm 104 .endm
diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c
index caf889aaa248..4f5b3da3d559 100644
--- a/arch/arm/mach-omap1/mailbox.c
+++ b/arch/arm/mach-omap1/mailbox.c
@@ -146,7 +146,6 @@ EXPORT_SYMBOL(mbox_dsp_info);
146static int __devinit omap1_mbox_probe(struct platform_device *pdev) 146static int __devinit omap1_mbox_probe(struct platform_device *pdev)
147{ 147{
148 struct resource *res; 148 struct resource *res;
149 int ret = 0;
150 149
151 if (pdev->num_resources != 2) { 150 if (pdev->num_resources != 2) {
152 dev_err(&pdev->dev, "invalid number of resources: %d\n", 151 dev_err(&pdev->dev, "invalid number of resources: %d\n",
@@ -160,12 +159,18 @@ static int __devinit omap1_mbox_probe(struct platform_device *pdev)
160 dev_err(&pdev->dev, "invalid mem resource\n"); 159 dev_err(&pdev->dev, "invalid mem resource\n");
161 return -ENODEV; 160 return -ENODEV;
162 } 161 }
163 mbox_base = res->start; 162
163 mbox_base = ioremap(res->start, resource_size(res));
164 if (!mbox_base) {
165 dev_err(&pdev->dev, "ioremap failed\n");
166 return -ENODEV;
167 }
164 168
165 /* DSP IRQ */ 169 /* DSP IRQ */
166 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 170 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
167 if (unlikely(!res)) { 171 if (unlikely(!res)) {
168 dev_err(&pdev->dev, "invalid irq resource\n"); 172 dev_err(&pdev->dev, "invalid irq resource\n");
173 iounmap(mbox_base);
169 return -ENODEV; 174 return -ENODEV;
170 } 175 }
171 mbox_dsp_info.irq = res->start; 176 mbox_dsp_info.irq = res->start;
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 6bddce104ee9..f9a5cf750b59 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -99,9 +99,11 @@ static struct omap_mcbsp_platform_data omap7xx_mcbsp_pdata[] = {
99 }, 99 },
100}; 100};
101#define OMAP7XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap7xx_mcbsp_pdata) 101#define OMAP7XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap7xx_mcbsp_pdata)
102#define OMAP7XX_MCBSP_REG_NUM (OMAP_MCBSP_REG_XCERH / sizeof(u16) + 1)
102#else 103#else
103#define omap7xx_mcbsp_pdata NULL 104#define omap7xx_mcbsp_pdata NULL
104#define OMAP7XX_MCBSP_PDATA_SZ 0 105#define OMAP7XX_MCBSP_PDATA_SZ 0
106#define OMAP7XX_MCBSP_REG_NUM 0
105#endif 107#endif
106 108
107#ifdef CONFIG_ARCH_OMAP15XX 109#ifdef CONFIG_ARCH_OMAP15XX
@@ -132,9 +134,11 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
132 }, 134 },
133}; 135};
134#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata) 136#define OMAP15XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap15xx_mcbsp_pdata)
137#define OMAP15XX_MCBSP_REG_NUM (OMAP_MCBSP_REG_XCERH / sizeof(u16) + 1)
135#else 138#else
136#define omap15xx_mcbsp_pdata NULL 139#define omap15xx_mcbsp_pdata NULL
137#define OMAP15XX_MCBSP_PDATA_SZ 0 140#define OMAP15XX_MCBSP_PDATA_SZ 0
141#define OMAP15XX_MCBSP_REG_NUM 0
138#endif 142#endif
139 143
140#ifdef CONFIG_ARCH_OMAP16XX 144#ifdef CONFIG_ARCH_OMAP16XX
@@ -165,19 +169,25 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
165 }, 169 },
166}; 170};
167#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata) 171#define OMAP16XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap16xx_mcbsp_pdata)
172#define OMAP16XX_MCBSP_REG_NUM (OMAP_MCBSP_REG_XCERH / sizeof(u16) + 1)
168#else 173#else
169#define omap16xx_mcbsp_pdata NULL 174#define omap16xx_mcbsp_pdata NULL
170#define OMAP16XX_MCBSP_PDATA_SZ 0 175#define OMAP16XX_MCBSP_PDATA_SZ 0
176#define OMAP16XX_MCBSP_REG_NUM 0
171#endif 177#endif
172 178
173int __init omap1_mcbsp_init(void) 179int __init omap1_mcbsp_init(void)
174{ 180{
175 if (cpu_is_omap7xx()) 181 if (cpu_is_omap7xx()) {
176 omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ; 182 omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ;
177 if (cpu_is_omap15xx()) 183 omap_mcbsp_cache_size = OMAP7XX_MCBSP_REG_NUM * sizeof(u16);
184 } else if (cpu_is_omap15xx()) {
178 omap_mcbsp_count = OMAP15XX_MCBSP_PDATA_SZ; 185 omap_mcbsp_count = OMAP15XX_MCBSP_PDATA_SZ;
179 if (cpu_is_omap16xx()) 186 omap_mcbsp_cache_size = OMAP15XX_MCBSP_REG_NUM * sizeof(u16);
187 } else if (cpu_is_omap16xx()) {
180 omap_mcbsp_count = OMAP16XX_MCBSP_PDATA_SZ; 188 omap_mcbsp_count = OMAP16XX_MCBSP_PDATA_SZ;
189 omap_mcbsp_cache_size = OMAP16XX_MCBSP_REG_NUM * sizeof(u16);
190 }
181 191
182 mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *), 192 mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *),
183 GFP_KERNEL); 193 GFP_KERNEL);
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c
index 6e5207c81cf4..349de90194e3 100644
--- a/arch/arm/mach-omap1/serial.c
+++ b/arch/arm/mach-omap1/serial.c
@@ -64,7 +64,7 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p)
64 64
65static struct plat_serial8250_port serial_platform_data[] = { 65static struct plat_serial8250_port serial_platform_data[] = {
66 { 66 {
67 .mapbase = OMAP_UART1_BASE, 67 .mapbase = OMAP1_UART1_BASE,
68 .irq = INT_UART1, 68 .irq = INT_UART1,
69 .flags = UPF_BOOT_AUTOCONF, 69 .flags = UPF_BOOT_AUTOCONF,
70 .iotype = UPIO_MEM, 70 .iotype = UPIO_MEM,
@@ -72,7 +72,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
72 .uartclk = OMAP16XX_BASE_BAUD * 16, 72 .uartclk = OMAP16XX_BASE_BAUD * 16,
73 }, 73 },
74 { 74 {
75 .mapbase = OMAP_UART2_BASE, 75 .mapbase = OMAP1_UART2_BASE,
76 .irq = INT_UART2, 76 .irq = INT_UART2,
77 .flags = UPF_BOOT_AUTOCONF, 77 .flags = UPF_BOOT_AUTOCONF,
78 .iotype = UPIO_MEM, 78 .iotype = UPIO_MEM,
@@ -80,7 +80,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
80 .uartclk = OMAP16XX_BASE_BAUD * 16, 80 .uartclk = OMAP16XX_BASE_BAUD * 16,
81 }, 81 },
82 { 82 {
83 .mapbase = OMAP_UART3_BASE, 83 .mapbase = OMAP1_UART3_BASE,
84 .irq = INT_UART3, 84 .irq = INT_UART3,
85 .flags = UPF_BOOT_AUTOCONF, 85 .flags = UPF_BOOT_AUTOCONF,
86 .iotype = UPIO_MEM, 86 .iotype = UPIO_MEM,