aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Horman <horms+renesas@verge.net.au>2013-07-21 21:23:09 -0400
committerSimon Horman <horms+renesas@verge.net.au>2013-07-24 03:35:23 -0400
commit5fa6d27612635f4b3e6c19d763c0a65275933898 (patch)
treecf6241512eb44289d1def189ca577f40cad904d8
parent4431374926363df1d907d9c8783f473eb7facf42 (diff)
ARCH: ARM: shmobile: Remove kota2 board support
Remove support for the sh73a0 based kota2 board. The sh73a0 SoC is continued to be supported using the kzm9g board. Acked-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r--arch/arm/configs/kota2_defconfig121
-rw-r--r--arch/arm/mach-shmobile/Kconfig6
-rw-r--r--arch/arm/mach-shmobile/Makefile1
-rw-r--r--arch/arm/mach-shmobile/Makefile.boot1
-rw-r--r--arch/arm/mach-shmobile/board-kota2.c550
5 files changed, 0 insertions, 679 deletions
diff --git a/arch/arm/configs/kota2_defconfig b/arch/arm/configs/kota2_defconfig
deleted file mode 100644
index 57ad3d47de70..000000000000
--- a/arch/arm/configs/kota2_defconfig
+++ /dev/null
@@ -1,121 +0,0 @@
1# CONFIG_ARM_PATCH_PHYS_VIRT is not set
2CONFIG_EXPERIMENTAL=y
3CONFIG_SYSVIPC=y
4CONFIG_IKCONFIG=y
5CONFIG_IKCONFIG_PROC=y
6CONFIG_LOG_BUF_SHIFT=16
7CONFIG_CGROUPS=y
8CONFIG_CPUSETS=y
9CONFIG_NAMESPACES=y
10# CONFIG_UTS_NS is not set
11# CONFIG_IPC_NS is not set
12# CONFIG_USER_NS is not set
13# CONFIG_PID_NS is not set
14CONFIG_SYSCTL_SYSCALL=y
15CONFIG_EMBEDDED=y
16CONFIG_SLAB=y
17# CONFIG_BLK_DEV_BSG is not set
18# CONFIG_IOSCHED_DEADLINE is not set
19# CONFIG_IOSCHED_CFQ is not set
20CONFIG_ARCH_SHMOBILE=y
21CONFIG_KEYBOARD_GPIO_POLLED=y
22CONFIG_ARCH_SH73A0=y
23CONFIG_MACH_KOTA2=y
24CONFIG_MEMORY_SIZE=0x1e000000
25# CONFIG_SH_TIMER_TMU is not set
26# CONFIG_SWP_EMULATE is not set
27CONFIG_CPU_BPREDICT_DISABLE=y
28CONFIG_ARM_ERRATA_460075=y
29CONFIG_ARM_ERRATA_742230=y
30CONFIG_ARM_ERRATA_742231=y
31CONFIG_PL310_ERRATA_588369=y
32CONFIG_ARM_ERRATA_720789=y
33CONFIG_PL310_ERRATA_727915=y
34CONFIG_ARM_ERRATA_743622=y
35CONFIG_ARM_ERRATA_751472=y
36CONFIG_PL310_ERRATA_753970=y
37CONFIG_ARM_ERRATA_754322=y
38CONFIG_PL310_ERRATA_769419=y
39CONFIG_NO_HZ=y
40CONFIG_SMP=y
41CONFIG_AEABI=y
42# CONFIG_OABI_COMPAT is not set
43CONFIG_HIGHMEM=y
44CONFIG_ZBOOT_ROM_TEXT=0x0
45CONFIG_ZBOOT_ROM_BSS=0x0
46CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel"
47CONFIG_CMDLINE_FORCE=y
48CONFIG_KEXEC=y
49CONFIG_CPU_IDLE=y
50# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
51CONFIG_PM_RUNTIME=y
52CONFIG_NET=y
53CONFIG_PACKET=y
54CONFIG_UNIX=y
55CONFIG_INET=y
56CONFIG_IP_PNP=y
57CONFIG_IP_PNP_DHCP=y
58# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
59# CONFIG_INET_XFRM_MODE_TUNNEL is not set
60# CONFIG_INET_XFRM_MODE_BEET is not set
61# CONFIG_INET_LRO is not set
62# CONFIG_INET_DIAG is not set
63# CONFIG_IPV6 is not set
64CONFIG_CFG80211=y
65CONFIG_WIRELESS_EXT_SYSFS=y
66CONFIG_MAC80211=y
67CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
68# CONFIG_BLK_DEV is not set
69CONFIG_NETDEVICES=y
70# CONFIG_NET_VENDOR_BROADCOM is not set
71# CONFIG_NET_VENDOR_CHELSIO is not set
72# CONFIG_NET_VENDOR_FARADAY is not set
73# CONFIG_NET_VENDOR_INTEL is not set
74# CONFIG_NET_VENDOR_MARVELL is not set
75# CONFIG_NET_VENDOR_MICREL is not set
76# CONFIG_NET_VENDOR_NATSEMI is not set
77# CONFIG_NET_VENDOR_SEEQ is not set
78CONFIG_SMSC911X=y
79# CONFIG_NET_VENDOR_STMICRO is not set
80CONFIG_B43=y
81CONFIG_B43_PHY_N=y
82CONFIG_B43_DEBUG=y
83CONFIG_INPUT_SPARSEKMAP=y
84# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
85CONFIG_INPUT_EVDEV=y
86# CONFIG_KEYBOARD_ATKBD is not set
87CONFIG_KEYBOARD_GPIO=y
88CONFIG_KEYBOARD_SH_KEYSC=y
89# CONFIG_INPUT_MOUSE is not set
90# CONFIG_LEGACY_PTYS is not set
91CONFIG_SERIAL_SH_SCI=y
92CONFIG_SERIAL_SH_SCI_NR_UARTS=9
93CONFIG_SERIAL_SH_SCI_CONSOLE=y
94# CONFIG_HW_RANDOM is not set
95CONFIG_I2C_SH_MOBILE=y
96# CONFIG_HWMON is not set
97CONFIG_BCMA=y
98CONFIG_BCMA_DEBUG=y
99CONFIG_FB=y
100CONFIG_FB_SH_MOBILE_LCDC=y
101CONFIG_LCD_PLATFORM=y
102CONFIG_FRAMEBUFFER_CONSOLE=y
103CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
104# CONFIG_HID_SUPPORT is not set
105# CONFIG_USB_SUPPORT is not set
106CONFIG_MMC=y
107CONFIG_MMC_SDHI=y
108CONFIG_MMC_SH_MMCIF=y
109CONFIG_NEW_LEDS=y
110CONFIG_LEDS_CLASS=y
111CONFIG_LEDS_GPIO=y
112CONFIG_LEDS_RENESAS_TPU=y
113CONFIG_LEDS_TRIGGERS=y
114# CONFIG_DNOTIFY is not set
115CONFIG_TMPFS=y
116# CONFIG_MISC_FILESYSTEMS is not set
117CONFIG_MAGIC_SYSRQ=y
118CONFIG_DEBUG_INFO=y
119CONFIG_DEBUG_INFO_REDUCED=y
120# CONFIG_FTRACE is not set
121CONFIG_DEBUG_USER=y
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index dd80f215feeb..c536cca9fdcb 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -91,12 +91,6 @@ config MACH_MACKEREL
91 select SND_SOC_AK4642 if SND_SIMPLE_CARD 91 select SND_SOC_AK4642 if SND_SIMPLE_CARD
92 select USE_OF 92 select USE_OF
93 93
94config MACH_KOTA2
95 bool "KOTA2 board"
96 depends on ARCH_SH73A0
97 select ARCH_REQUIRE_GPIOLIB
98 select REGULATOR_FIXED_VOLTAGE if REGULATOR
99
100config MACH_ARMADILLO800EVA 94config MACH_ARMADILLO800EVA
101 bool "Armadillo-800 EVA board" 95 bool "Armadillo-800 EVA board"
102 depends on ARCH_R8A7740 96 depends on ARCH_R8A7740
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile
index e8d0a2c904a0..857a09d3ea11 100644
--- a/arch/arm/mach-shmobile/Makefile
+++ b/arch/arm/mach-shmobile/Makefile
@@ -38,7 +38,6 @@ obj-$(CONFIG_ARCH_SH73A0) += pm-sh73a0.o
38obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o 38obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o
39obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o 39obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o
40obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o 40obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o
41obj-$(CONFIG_MACH_KOTA2) += board-kota2.o
42obj-$(CONFIG_MACH_BOCKW) += board-bockw.o 41obj-$(CONFIG_MACH_BOCKW) += board-bockw.o
43obj-$(CONFIG_MACH_MARZEN) += board-marzen.o 42obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
44obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o 43obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
index 7785c52b5cfd..9156c56aee80 100644
--- a/arch/arm/mach-shmobile/Makefile.boot
+++ b/arch/arm/mach-shmobile/Makefile.boot
@@ -5,7 +5,6 @@ loadaddr-$(CONFIG_MACH_APE6EVM) += 0x40008000
5loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000 5loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000
6loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000 6loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000
7loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 7loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
8loadaddr-$(CONFIG_MACH_KOTA2) += 0x41008000
9loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000 8loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000
10loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000 9loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000
11loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 10loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
diff --git a/arch/arm/mach-shmobile/board-kota2.c b/arch/arm/mach-shmobile/board-kota2.c
deleted file mode 100644
index 6af20d909bdb..000000000000
--- a/arch/arm/mach-shmobile/board-kota2.c
+++ /dev/null
@@ -1,550 +0,0 @@
1/*
2 * kota2 board support
3 *
4 * Copyright (C) 2011 Renesas Solutions Corp.
5 * Copyright (C) 2011 Magnus Damm
6 * Copyright (C) 2010 Takashi Yoshii <yoshii.takashi.zj@renesas.com>
7 * Copyright (C) 2009 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; version 2 of the License.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23#include <linux/kernel.h>
24#include <linux/init.h>
25#include <linux/interrupt.h>
26#include <linux/irq.h>
27#include <linux/pinctrl/machine.h>
28#include <linux/pinctrl/pinconf-generic.h>
29#include <linux/platform_data/pwm-renesas-tpu.h>
30#include <linux/platform_device.h>
31#include <linux/delay.h>
32#include <linux/io.h>
33#include <linux/regulator/fixed.h>
34#include <linux/regulator/machine.h>
35#include <linux/smsc911x.h>
36#include <linux/gpio.h>
37#include <linux/input.h>
38#include <linux/input/sh_keysc.h>
39#include <linux/gpio_keys.h>
40#include <linux/leds.h>
41#include <linux/leds_pwm.h>
42#include <linux/irqchip/arm-gic.h>
43#include <linux/mmc/host.h>
44#include <linux/mmc/sh_mmcif.h>
45#include <linux/mfd/tmio.h>
46#include <linux/mmc/sh_mobile_sdhi.h>
47#include <mach/hardware.h>
48#include <mach/irqs.h>
49#include <mach/sh73a0.h>
50#include <mach/common.h>
51#include <asm/mach-types.h>
52#include <asm/mach/arch.h>
53#include <asm/mach/time.h>
54#include <asm/hardware/cache-l2x0.h>
55#include <asm/traps.h>
56
57/* Dummy supplies, where voltage doesn't matter */
58static struct regulator_consumer_supply dummy_supplies[] = {
59 REGULATOR_SUPPLY("vddvario", "smsc911x"),
60 REGULATOR_SUPPLY("vdd33a", "smsc911x"),
61};
62
63/* SMSC 9220 */
64static struct resource smsc9220_resources[] = {
65 [0] = {
66 .start = 0x14000000, /* CS5A */
67 .end = 0x140000ff, /* A1->A7 */
68 .flags = IORESOURCE_MEM,
69 },
70 [1] = {
71 .start = SH73A0_PINT0_IRQ(2), /* PINTA2 */
72 .flags = IORESOURCE_IRQ,
73 },
74};
75
76static struct smsc911x_platform_config smsc9220_platdata = {
77 .flags = SMSC911X_USE_32BIT, /* 32-bit SW on 16-bit HW bus */
78 .phy_interface = PHY_INTERFACE_MODE_MII,
79 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
80 .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
81};
82
83static struct platform_device eth_device = {
84 .name = "smsc911x",
85 .id = 0,
86 .dev = {
87 .platform_data = &smsc9220_platdata,
88 },
89 .resource = smsc9220_resources,
90 .num_resources = ARRAY_SIZE(smsc9220_resources),
91};
92
93/* KEYSC */
94static struct sh_keysc_info keysc_platdata = {
95 .mode = SH_KEYSC_MODE_6,
96 .scan_timing = 3,
97 .delay = 100,
98 .keycodes = {
99 KEY_NUMERIC_STAR, KEY_NUMERIC_0, KEY_NUMERIC_POUND,
100 0, 0, 0, 0, 0,
101 KEY_NUMERIC_7, KEY_NUMERIC_8, KEY_NUMERIC_9,
102 0, KEY_DOWN, 0, 0, 0,
103 KEY_NUMERIC_4, KEY_NUMERIC_5, KEY_NUMERIC_6,
104 KEY_LEFT, KEY_ENTER, KEY_RIGHT, 0, 0,
105 KEY_NUMERIC_1, KEY_NUMERIC_2, KEY_NUMERIC_3,
106 0, KEY_UP, 0, 0, 0,
107 0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0, 0, 0, 0, 0, 0, 0,
109 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0,
111 },
112};
113
114static struct resource keysc_resources[] = {
115 [0] = {
116 .name = "KEYSC",
117 .start = 0xe61b0000,
118 .end = 0xe61b0098 - 1,
119 .flags = IORESOURCE_MEM,
120 },
121 [1] = {
122 .start = gic_spi(71),
123 .flags = IORESOURCE_IRQ,
124 },
125};
126
127static struct platform_device keysc_device = {
128 .name = "sh_keysc",
129 .id = 0,
130 .num_resources = ARRAY_SIZE(keysc_resources),
131 .resource = keysc_resources,
132 .dev = {
133 .platform_data = &keysc_platdata,
134 },
135};
136
137/* GPIO KEY */
138#define GPIO_KEY(c, g, d) { .code = c, .gpio = g, .desc = d, .active_low = 1 }
139
140static struct gpio_keys_button gpio_buttons[] = {
141 GPIO_KEY(KEY_VOLUMEUP, 56, "+"), /* S2: VOL+ [IRQ9] */
142 GPIO_KEY(KEY_VOLUMEDOWN, 54, "-"), /* S3: VOL- [IRQ10] */
143 GPIO_KEY(KEY_MENU, 27, "Menu"), /* S4: MENU [IRQ30] */
144 GPIO_KEY(KEY_HOMEPAGE, 26, "Home"), /* S5: HOME [IRQ31] */
145 GPIO_KEY(KEY_BACK, 11, "Back"), /* S6: BACK [IRQ0] */
146 GPIO_KEY(KEY_PHONE, 238, "Tel"), /* S7: TEL [IRQ11] */
147 GPIO_KEY(KEY_POWER, 239, "C1"), /* S8: CAM [IRQ13] */
148 GPIO_KEY(KEY_MAIL, 224, "Mail"), /* S9: MAIL [IRQ3] */
149 /* Omitted button "C3?": 223 - S10: CUST [IRQ8] */
150 GPIO_KEY(KEY_CAMERA, 164, "C2"), /* S11: CAM_HALF [IRQ25] */
151 /* Omitted button "?": 152 - S12: CAM_FULL [No IRQ] */
152};
153
154static struct gpio_keys_platform_data gpio_key_info = {
155 .buttons = gpio_buttons,
156 .nbuttons = ARRAY_SIZE(gpio_buttons),
157};
158
159static struct platform_device gpio_keys_device = {
160 .name = "gpio-keys",
161 .id = -1,
162 .dev = {
163 .platform_data = &gpio_key_info,
164 },
165};
166
167/* GPIO LED */
168#define GPIO_LED(n, g) { .name = n, .gpio = g }
169
170static struct gpio_led gpio_leds[] = {
171 GPIO_LED("G", 20), /* PORT20 [GPO0] -> LED7 -> "G" */
172 GPIO_LED("H", 21), /* PORT21 [GPO1] -> LED8 -> "H" */
173 GPIO_LED("J", 22), /* PORT22 [GPO2] -> LED9 -> "J" */
174};
175
176static struct gpio_led_platform_data gpio_leds_info = {
177 .leds = gpio_leds,
178 .num_leds = ARRAY_SIZE(gpio_leds),
179};
180
181static struct platform_device gpio_leds_device = {
182 .name = "leds-gpio",
183 .id = -1,
184 .dev = {
185 .platform_data = &gpio_leds_info,
186 },
187};
188
189/* TPU LED */
190static struct resource tpu1_pwm_resources[] = {
191 [0] = {
192 .start = 0xe6610000,
193 .end = 0xe66100ff,
194 .flags = IORESOURCE_MEM,
195 },
196};
197
198static struct platform_device tpu1_pwm_device = {
199 .name = "renesas-tpu-pwm",
200 .id = 1,
201 .num_resources = ARRAY_SIZE(tpu1_pwm_resources),
202 .resource = tpu1_pwm_resources,
203};
204
205static struct resource tpu2_pwm_resources[] = {
206 [0] = {
207 .start = 0xe6620000,
208 .end = 0xe66200ff,
209 .flags = IORESOURCE_MEM,
210 },
211};
212
213static struct platform_device tpu2_pwm_device = {
214 .name = "renesas-tpu-pwm",
215 .id = 2,
216 .num_resources = ARRAY_SIZE(tpu2_pwm_resources),
217 .resource = tpu2_pwm_resources,
218};
219
220static struct resource tpu3_pwm_resources[] = {
221 [0] = {
222 .start = 0xe6630000,
223 .end = 0xe66300ff,
224 .flags = IORESOURCE_MEM,
225 },
226};
227
228static struct platform_device tpu3_pwm_device = {
229 .name = "renesas-tpu-pwm",
230 .id = 3,
231 .num_resources = ARRAY_SIZE(tpu3_pwm_resources),
232 .resource = tpu3_pwm_resources,
233};
234
235static struct resource tpu4_pwm_resources[] = {
236 [0] = {
237 .start = 0xe6640000,
238 .end = 0xe66400ff,
239 .flags = IORESOURCE_MEM,
240 },
241};
242
243static struct platform_device tpu4_pwm_device = {
244 .name = "renesas-tpu-pwm",
245 .id = 4,
246 .num_resources = ARRAY_SIZE(tpu4_pwm_resources),
247 .resource = tpu4_pwm_resources,
248};
249
250static struct pwm_lookup pwm_lookup[] = {
251 PWM_LOOKUP("renesas-tpu-pwm.1", 2, "leds-pwm.0", "V2513"),
252 PWM_LOOKUP("renesas-tpu-pwm.2", 1, "leds-pwm.0", "V2515"),
253 PWM_LOOKUP("renesas-tpu-pwm.3", 0, "leds-pwm.0", "KEYLED"),
254 PWM_LOOKUP("renesas-tpu-pwm.4", 1, "leds-pwm.0", "V2514"),
255};
256
257static struct led_pwm tpu_pwm_leds[] = {
258 {
259 .name = "V2513",
260 .max_brightness = 1000,
261 }, {
262 .name = "V2515",
263 .max_brightness = 1000,
264 }, {
265 .name = "KEYLED",
266 .max_brightness = 1000,
267 }, {
268 .name = "V2514",
269 .max_brightness = 1000,
270 },
271};
272
273static struct led_pwm_platform_data leds_pwm_pdata = {
274 .num_leds = ARRAY_SIZE(tpu_pwm_leds),
275 .leds = tpu_pwm_leds,
276};
277
278static struct platform_device leds_pwm_device = {
279 .name = "leds-pwm",
280 .id = 0,
281 .dev = {
282 .platform_data = &leds_pwm_pdata,
283 },
284};
285
286/* Fixed 1.8V regulator to be used by MMCIF */
287static struct regulator_consumer_supply fixed1v8_power_consumers[] =
288{
289 REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
290 REGULATOR_SUPPLY("vqmmc", "sh_mmcif.0"),
291};
292
293/* MMCIF */
294static struct resource mmcif_resources[] = {
295 [0] = {
296 .name = "MMCIF",
297 .start = 0xe6bd0000,
298 .end = 0xe6bd00ff,
299 .flags = IORESOURCE_MEM,
300 },
301 [1] = {
302 .start = gic_spi(140),
303 .flags = IORESOURCE_IRQ,
304 },
305 [2] = {
306 .start = gic_spi(141),
307 .flags = IORESOURCE_IRQ,
308 },
309};
310
311static struct sh_mmcif_plat_data mmcif_info = {
312 .ocr = MMC_VDD_165_195,
313 .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
314};
315
316static struct platform_device mmcif_device = {
317 .name = "sh_mmcif",
318 .id = 0,
319 .dev = {
320 .platform_data = &mmcif_info,
321 },
322 .num_resources = ARRAY_SIZE(mmcif_resources),
323 .resource = mmcif_resources,
324};
325
326/* Fixed 3.3V regulator to be used by SDHI0 and SDHI1 */
327static struct regulator_consumer_supply fixed3v3_power_consumers[] =
328{
329 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
330 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
331 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
332 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
333};
334
335/* SDHI0 */
336static struct sh_mobile_sdhi_info sdhi0_info = {
337 .tmio_caps = MMC_CAP_SD_HIGHSPEED,
338 .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_HAS_IDLE_WAIT,
339};
340
341static struct resource sdhi0_resources[] = {
342 [0] = {
343 .name = "SDHI0",
344 .start = 0xee100000,
345 .end = 0xee1000ff,
346 .flags = IORESOURCE_MEM,
347 },
348 [1] = {
349 .start = gic_spi(83),
350 .flags = IORESOURCE_IRQ,
351 },
352 [2] = {
353 .start = gic_spi(84),
354 .flags = IORESOURCE_IRQ,
355 },
356 [3] = {
357 .start = gic_spi(85),
358 .flags = IORESOURCE_IRQ,
359 },
360};
361
362static struct platform_device sdhi0_device = {
363 .name = "sh_mobile_sdhi",
364 .id = 0,
365 .num_resources = ARRAY_SIZE(sdhi0_resources),
366 .resource = sdhi0_resources,
367 .dev = {
368 .platform_data = &sdhi0_info,
369 },
370};
371
372/* SDHI1 */
373static struct sh_mobile_sdhi_info sdhi1_info = {
374 .tmio_caps = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ,
375 .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE | TMIO_MMC_HAS_IDLE_WAIT,
376};
377
378static struct resource sdhi1_resources[] = {
379 [0] = {
380 .name = "SDHI1",
381 .start = 0xee120000,
382 .end = 0xee1200ff,
383 .flags = IORESOURCE_MEM,
384 },
385 [1] = {
386 .start = gic_spi(87),
387 .flags = IORESOURCE_IRQ,
388 },
389 [2] = {
390 .start = gic_spi(88),
391 .flags = IORESOURCE_IRQ,
392 },
393 [3] = {
394 .start = gic_spi(89),
395 .flags = IORESOURCE_IRQ,
396 },
397};
398
399static struct platform_device sdhi1_device = {
400 .name = "sh_mobile_sdhi",
401 .id = 1,
402 .num_resources = ARRAY_SIZE(sdhi1_resources),
403 .resource = sdhi1_resources,
404 .dev = {
405 .platform_data = &sdhi1_info,
406 },
407};
408
409static struct platform_device *kota2_devices[] __initdata = {
410 &eth_device,
411 &keysc_device,
412 &gpio_keys_device,
413 &gpio_leds_device,
414 &tpu1_pwm_device,
415 &tpu2_pwm_device,
416 &tpu3_pwm_device,
417 &tpu4_pwm_device,
418 &leds_pwm_device,
419 &mmcif_device,
420 &sdhi0_device,
421 &sdhi1_device,
422};
423
424static unsigned long pin_pullup_conf[] = {
425 PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
426};
427
428static const struct pinctrl_map kota2_pinctrl_map[] = {
429 /* KEYSC */
430 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
431 "keysc_in8", "keysc"),
432 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
433 "keysc_out04", "keysc"),
434 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
435 "keysc_out5", "keysc"),
436 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
437 "keysc_out6_0", "keysc"),
438 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
439 "keysc_out7_0", "keysc"),
440 PIN_MAP_MUX_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
441 "keysc_out8_0", "keysc"),
442 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_keysc.0", "pfc-sh73a0",
443 "keysc_in8", pin_pullup_conf),
444 /* MMCIF */
445 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
446 "mmc0_data8_0", "mmc0"),
447 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
448 "mmc0_ctrl_0", "mmc0"),
449 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
450 "PORT279", pin_pullup_conf),
451 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mmcif.0", "pfc-sh73a0",
452 "mmc0_data8_0", pin_pullup_conf),
453 /* SCIFA2 (UART2) */
454 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0",
455 "scifa2_data_0", "scifa2"),
456 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-sh73a0",
457 "scifa2_ctrl_0", "scifa2"),
458 /* SCIFA4 (UART1) */
459 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
460 "scifa4_data", "scifa4"),
461 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
462 "scifa4_ctrl", "scifa4"),
463 /* SCIFB (BT) */
464 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.8", "pfc-sh73a0",
465 "scifb_data_0", "scifb"),
466 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.8", "pfc-sh73a0",
467 "scifb_clk_0", "scifb"),
468 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.8", "pfc-sh73a0",
469 "scifb_ctrl_0", "scifb"),
470 /* SDHI0 (microSD) */
471 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
472 "sdhi0_data4", "sdhi0"),
473 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
474 "sdhi0_ctrl", "sdhi0"),
475 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
476 "sdhi0_cd", "sdhi0"),
477 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
478 "sdhi0_data4", pin_pullup_conf),
479 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
480 "PORT256", pin_pullup_conf),
481 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mobile_sdhi.0", "pfc-sh73a0",
482 "PORT251", pin_pullup_conf),
483 /* SDHI1 (BCM4330) */
484 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
485 "sdhi1_data4", "sdhi1"),
486 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
487 "sdhi1_ctrl", "sdhi1"),
488 PIN_MAP_CONFIGS_GROUP_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
489 "sdhi1_data4", pin_pullup_conf),
490 PIN_MAP_CONFIGS_PIN_DEFAULT("sh_mobile_sdhi.1", "pfc-sh73a0",
491 "PORT263", pin_pullup_conf),
492 /* SMSC911X */
493 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x.0", "pfc-sh73a0",
494 "bsc_data_0_7", "bsc"),
495 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x.0", "pfc-sh73a0",
496 "bsc_data_8_15", "bsc"),
497 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x.0", "pfc-sh73a0",
498 "bsc_cs5_a", "bsc"),
499 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x.0", "pfc-sh73a0",
500 "bsc_we0", "bsc"),
501 /* TPU */
502 PIN_MAP_MUX_GROUP_DEFAULT("renesas-tpu-pwm.1", "pfc-sh73a0",
503 "tpu1_to2", "tpu1"),
504 PIN_MAP_MUX_GROUP_DEFAULT("renesas-tpu-pwm.2", "pfc-sh73a0",
505 "tpu2_to1", "tpu2"),
506 PIN_MAP_MUX_GROUP_DEFAULT("renesas-tpu-pwm.3", "pfc-sh73a0",
507 "tpu3_to0", "tpu3"),
508 PIN_MAP_MUX_GROUP_DEFAULT("renesas-tpu-pwm.4", "pfc-sh73a0",
509 "tpu4_to1", "tpu4"),
510};
511
512static void __init kota2_init(void)
513{
514 regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers,
515 ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
516 regulator_register_always_on(1, "fixed-3.3V", fixed3v3_power_consumers,
517 ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
518 regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));
519
520 pinctrl_register_mappings(kota2_pinctrl_map,
521 ARRAY_SIZE(kota2_pinctrl_map));
522 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
523
524 sh73a0_pinmux_init();
525
526 /* SMSC911X */
527 gpio_request_one(144, GPIOF_IN, NULL); /* PINTA2 */
528 gpio_request_one(145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
529
530 /* MMCIF */
531 gpio_request_one(208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
532
533#ifdef CONFIG_CACHE_L2X0
534 /* Early BRESP enable, Shared attribute override enable, 64K*8way */
535 l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
536#endif
537 sh73a0_add_standard_devices();
538 platform_add_devices(kota2_devices, ARRAY_SIZE(kota2_devices));
539}
540
541MACHINE_START(KOTA2, "kota2")
542 .smp = smp_ops(sh73a0_smp_ops),
543 .map_io = sh73a0_map_io,
544 .init_early = sh73a0_add_early_devices,
545 .nr_irqs = NR_IRQS_LEGACY,
546 .init_irq = sh73a0_init_irq,
547 .init_machine = kota2_init,
548 .init_late = shmobile_init_late,
549 .init_time = sh73a0_earlytimer_init,
550MACHINE_END