22 #include <linux/kernel.h>
34 #include <mach/common.h>
35 #include <mach/irqs.h>
47 .virtual = 0xe6000000,
50 .type = MT_DEVICE_NONSHARED
52 #ifdef CONFIG_CACHE_L2X0
58 .virtual = 0xf0002000,
61 .type = MT_DEVICE_NONSHARED
74 init_consistent_dma_size(12 << 20);
79 .mapbase = 0xe6c40000,
91 .platform_data = &scif0_platform_data,
97 .mapbase = 0xe6c50000,
109 .platform_data = &scif1_platform_data,
115 .mapbase = 0xe6c60000,
127 .platform_data = &scif2_platform_data,
133 .mapbase = 0xe6c70000,
145 .platform_data = &scif3_platform_data,
151 .mapbase = 0xe6c80000,
163 .platform_data = &scif4_platform_data,
169 .mapbase = 0xe6cb0000,
181 .platform_data = &scif5_platform_data,
187 .mapbase = 0xe6cc0000,
199 .platform_data = &scif6_platform_data,
205 .mapbase = 0xe6cd0000,
217 .platform_data = &scif7_platform_data,
223 .mapbase = 0xe6c30000,
235 .platform_data = &scifb_platform_data,
242 .channel_offset = 0x10,
244 .clockevent_rating = 125,
245 .clocksource_rating = 125,
248 static struct resource cmt10_resources[] = {
265 .platform_data = &cmt10_platform_data,
267 .resource = cmt10_resources,
334 #define DMA_CHANNEL(a, b, c) \
339 .chclr_offset = (0x220 - 0x20) + a \
352 .slave = r8a7740_dmae_slaves,
354 .channel = r8a7740_dmae_channels,
355 .channel_num =
ARRAY_SIZE(r8a7740_dmae_channels),
360 .ts_shift = dma_ts_shift,
367 static struct resource r8a7740_dmae0_resources[] = {
395 static struct resource r8a7740_dmae1_resources[] = {
423 static struct resource r8a7740_dmae2_resources[] = {
451 .name =
"sh-dma-engine",
453 .resource = r8a7740_dmae0_resources,
454 .num_resources =
ARRAY_SIZE(r8a7740_dmae0_resources),
456 .platform_data = &dma_platform_data,
461 .name =
"sh-dma-engine",
463 .resource = r8a7740_dmae1_resources,
464 .num_resources =
ARRAY_SIZE(r8a7740_dmae1_resources),
466 .platform_data = &dma_platform_data,
471 .name =
"sh-dma-engine",
473 .resource = r8a7740_dmae2_resources,
474 .num_resources =
ARRAY_SIZE(r8a7740_dmae2_resources),
476 .platform_data = &dma_platform_data,
500 .slave = r8a7740_usb_dma_slaves,
501 .slave_num =
ARRAY_SIZE(r8a7740_usb_dma_slaves),
502 .channel = r8a7740_usb_dma_channels,
503 .channel_num =
ARRAY_SIZE(r8a7740_usb_dma_channels),
508 .ts_shift = dma_usbts_shift,
512 .chcr_ie_bit = 1 << 5,
519 static struct resource r8a7740_usb_dma_resources[] = {
523 .end = 0xe68a0064 - 1,
529 .end = 0xe68a0014 - 1,
541 .name =
"sh-dma-engine",
543 .resource = r8a7740_usb_dma_resources,
544 .num_resources =
ARRAY_SIZE(r8a7740_usb_dma_resources),
546 .platform_data = &usb_dma_platform_data,
551 static struct resource i2c0_resources[] = {
555 .end = 0xfff20425 - 1,
565 static struct resource i2c1_resources[] = {
569 .end = 0xe6c20425 - 1,
580 .name =
"i2c-sh_mobile",
582 .resource = i2c0_resources,
587 .name =
"i2c-sh_mobile",
589 .resource = i2c1_resources,
608 #define MEBUFCNTR 0xFE950098
621 #define ICSTART 0x0070
623 #define i2c_read(reg, offset) ioread8(reg + offset)
624 #define i2c_write(reg, offset, data) iowrite8(data, reg + offset)
637 pr_err(
"r8a7740 i2c workaround fail (cannot find resource)\n");
643 pr_err(
"r8a7740 i2c workaround fail (cannot map IO)\n");
673 r8a7740_i2c_workaround(&i2c0_device);
674 r8a7740_i2c_workaround(&i2c1_device);
676 r8a7740_init_pm_domains();
698 static void __init r8a7740_earlytimer_init(
void)
718 void __init r8a7740_add_early_devices_dt(
void)
729 static const struct of_dev_auxdata r8a7740_auxdata_lookup[]
__initconst = {
733 void __init r8a7740_add_standard_devices_dt(
void)
742 r8a7740_auxdata_lookup,
NULL);
745 static const char *r8a7740_boards_compat_dt[] __initdata = {
752 .init_early = r8a7740_add_early_devices_dt,
755 .init_machine = r8a7740_add_standard_devices_dt,
757 .dt_compat = r8a7740_boards_compat_dt,