20 #include <linux/types.h>
22 #include <linux/i2c.h>
29 #include <asm/machvec.h>
31 #include <asm/clock.h>
41 static struct resource r8a66597_usb_host_resources[] = {
55 .name =
"r8a66597_hcd",
59 .coherent_dma_mask = 0xffffffff,
60 .platform_data = &r8a66597_data,
62 .num_resources =
ARRAY_SIZE(r8a66597_usb_host_resources),
63 .resource = r8a66597_usb_host_resources,
71 static struct resource m66592_usb_peripheral_resources[] = {
91 .coherent_dma_mask = 0xffffffff,
92 .platform_data = &usbf_platdata,
94 .num_resources =
ARRAY_SIZE(m66592_usb_peripheral_resources),
95 .resource = m66592_usb_peripheral_resources,
98 static struct resource cf_ide_resources[] = {
120 .name =
"pata_platform",
122 .num_resources =
ARRAY_SIZE(cf_ide_resources),
123 .resource = cf_ide_resources,
125 .platform_data = &pata_info,
129 static struct resource heartbeat_resources[] = {
137 #ifndef CONFIG_SH_R7785RP
138 static unsigned char heartbeat_bit_pos[] = { 2, 1, 0, 3, 6, 5, 4, 7 };
151 #ifndef CONFIG_SH_R7785RP
153 .platform_data = &heartbeat_data,
156 .num_resources =
ARRAY_SIZE(heartbeat_resources),
157 .resource = heartbeat_resources,
167 static struct resource ax88796_resources[] = {
169 #ifdef CONFIG_SH_R7780RP
171 .end = 0xa5800400 + (0x20 * 0x2) - 1,
174 .
end = 0xa4100400 + (0x20 * 0x2) - 1,
190 .platform_data = &ax88796_platdata,
193 .num_resources =
ARRAY_SIZE(ax88796_resources),
194 .resource = ax88796_resources,
200 .offset = 0x00000000,
211 .size = 4 * 1024 * 1024,
222 .parts = nor_flash_partitions,
227 static struct resource nor_flash_resources[] = {
236 .name =
"physmap-flash",
238 .platform_data = &nor_flash_data,
240 .num_resources =
ARRAY_SIZE(nor_flash_resources),
241 .resource = nor_flash_resources,
244 static struct resource smbus_resources[] = {
247 .end = PA_SMCR + 0x100 - 1,
258 .name =
"i2c-highlander",
261 .resource = smbus_resources,
271 &r8a66597_usb_host_device,
272 &m66592_usb_peripheral_device,
276 #ifndef CONFIG_SH_R7780RP
287 .resource = cf_ide_resources,
289 .minimum_bus_width = 16,
292 static int __init r7780rp_devices_setup(
void)
296 #ifndef CONFIG_SH_R7780RP
314 static int ivdr_clk_enable(
struct clk *
clk)
320 static void ivdr_clk_disable(
struct clk *clk)
326 .enable = ivdr_clk_enable,
327 .disable = ivdr_clk_disable,
330 static struct clk ivdr_clk = {
331 .ops = &ivdr_clk_ops,
334 static struct clk *r7780rp_clocks[] = {
343 static void r7780rp_power_off(
void)
345 if (mach_is_r7780mp() || mach_is_r7785rp())
352 static void __init highlander_setup(
char **cmdline_p)
358 mach_is_r7780rp() ?
"R7780RP-1" :
359 mach_is_r7780mp() ?
"R7780MP" :
363 "FPGA version: %d (revision %d)\n",
364 (ver >> 12) & 0xf, (ver >> 8) & 0xf,
365 (ver >> 4) & 0xf, ver & 0xf);
372 for (i = 0; i <
ARRAY_SIZE(r7780rp_clocks); i++) {
373 struct clk *clk = r7780rp_clocks[
i];
383 if (mach_is_r7780rp())
393 static int highlander_irq_demux(
int irq)
395 if (irq >=
HL_NR_IRL || irq < 0 || !irl2irq[irq])
401 static void __init highlander_init_irq(
void)
415 .mv_name =
"Highlander",
416 .mv_setup = highlander_setup,
417 .mv_init_irq = highlander_init_irq,
418 .mv_irq_demux = highlander_irq_demux,