diff options
Diffstat (limited to 'arch/arm/mach-shmobile/setup-r8a7779.c')
| -rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7779.c | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c index 7a1ad4f38539..c54ff9b29fe5 100644 --- a/arch/arm/mach-shmobile/setup-r8a7779.c +++ b/arch/arm/mach-shmobile/setup-r8a7779.c | |||
| @@ -60,14 +60,38 @@ void __init r8a7779_map_io(void) | |||
| 60 | iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc)); | 60 | iotable_init(r8a7779_io_desc, ARRAY_SIZE(r8a7779_io_desc)); |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | static struct resource r8a7779_pfc_resources[] = { | ||
| 64 | [0] = { | ||
| 65 | .start = 0xfffc0000, | ||
| 66 | .end = 0xfffc023b, | ||
| 67 | .flags = IORESOURCE_MEM, | ||
| 68 | }, | ||
| 69 | [1] = { | ||
| 70 | .start = 0xffc40000, | ||
| 71 | .end = 0xffc46fff, | ||
| 72 | .flags = IORESOURCE_MEM, | ||
| 73 | } | ||
| 74 | }; | ||
| 75 | |||
| 76 | static struct platform_device r8a7779_pfc_device = { | ||
| 77 | .name = "pfc-r8a7779", | ||
| 78 | .id = -1, | ||
| 79 | .resource = r8a7779_pfc_resources, | ||
| 80 | .num_resources = ARRAY_SIZE(r8a7779_pfc_resources), | ||
| 81 | }; | ||
| 82 | |||
| 83 | void __init r8a7779_pinmux_init(void) | ||
| 84 | { | ||
| 85 | platform_device_register(&r8a7779_pfc_device); | ||
| 86 | } | ||
| 87 | |||
| 63 | static struct plat_sci_port scif0_platform_data = { | 88 | static struct plat_sci_port scif0_platform_data = { |
| 64 | .mapbase = 0xffe40000, | 89 | .mapbase = 0xffe40000, |
| 65 | .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, | 90 | .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, |
| 66 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 91 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 67 | .scbrr_algo_id = SCBRR_ALGO_2, | 92 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 68 | .type = PORT_SCIF, | 93 | .type = PORT_SCIF, |
| 69 | .irqs = { gic_spi(88), gic_spi(88), | 94 | .irqs = SCIx_IRQ_MUXED(gic_spi(88)), |
| 70 | gic_spi(88), gic_spi(88) }, | ||
| 71 | }; | 95 | }; |
| 72 | 96 | ||
| 73 | static struct platform_device scif0_device = { | 97 | static struct platform_device scif0_device = { |
| @@ -84,8 +108,7 @@ static struct plat_sci_port scif1_platform_data = { | |||
| 84 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 108 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 85 | .scbrr_algo_id = SCBRR_ALGO_2, | 109 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 86 | .type = PORT_SCIF, | 110 | .type = PORT_SCIF, |
| 87 | .irqs = { gic_spi(89), gic_spi(89), | 111 | .irqs = SCIx_IRQ_MUXED(gic_spi(89)), |
| 88 | gic_spi(89), gic_spi(89) }, | ||
| 89 | }; | 112 | }; |
| 90 | 113 | ||
| 91 | static struct platform_device scif1_device = { | 114 | static struct platform_device scif1_device = { |
| @@ -102,8 +125,7 @@ static struct plat_sci_port scif2_platform_data = { | |||
| 102 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 125 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 103 | .scbrr_algo_id = SCBRR_ALGO_2, | 126 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 104 | .type = PORT_SCIF, | 127 | .type = PORT_SCIF, |
| 105 | .irqs = { gic_spi(90), gic_spi(90), | 128 | .irqs = SCIx_IRQ_MUXED(gic_spi(90)), |
| 106 | gic_spi(90), gic_spi(90) }, | ||
| 107 | }; | 129 | }; |
| 108 | 130 | ||
| 109 | static struct platform_device scif2_device = { | 131 | static struct platform_device scif2_device = { |
| @@ -120,8 +142,7 @@ static struct plat_sci_port scif3_platform_data = { | |||
| 120 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 142 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 121 | .scbrr_algo_id = SCBRR_ALGO_2, | 143 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 122 | .type = PORT_SCIF, | 144 | .type = PORT_SCIF, |
| 123 | .irqs = { gic_spi(91), gic_spi(91), | 145 | .irqs = SCIx_IRQ_MUXED(gic_spi(91)), |
| 124 | gic_spi(91), gic_spi(91) }, | ||
| 125 | }; | 146 | }; |
| 126 | 147 | ||
| 127 | static struct platform_device scif3_device = { | 148 | static struct platform_device scif3_device = { |
| @@ -138,8 +159,7 @@ static struct plat_sci_port scif4_platform_data = { | |||
| 138 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 159 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 139 | .scbrr_algo_id = SCBRR_ALGO_2, | 160 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 140 | .type = PORT_SCIF, | 161 | .type = PORT_SCIF, |
| 141 | .irqs = { gic_spi(92), gic_spi(92), | 162 | .irqs = SCIx_IRQ_MUXED(gic_spi(92)), |
| 142 | gic_spi(92), gic_spi(92) }, | ||
| 143 | }; | 163 | }; |
| 144 | 164 | ||
| 145 | static struct platform_device scif4_device = { | 165 | static struct platform_device scif4_device = { |
| @@ -156,8 +176,7 @@ static struct plat_sci_port scif5_platform_data = { | |||
| 156 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, | 176 | .scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1, |
| 157 | .scbrr_algo_id = SCBRR_ALGO_2, | 177 | .scbrr_algo_id = SCBRR_ALGO_2, |
| 158 | .type = PORT_SCIF, | 178 | .type = PORT_SCIF, |
| 159 | .irqs = { gic_spi(93), gic_spi(93), | 179 | .irqs = SCIx_IRQ_MUXED(gic_spi(93)), |
| 160 | gic_spi(93), gic_spi(93) }, | ||
| 161 | }; | 180 | }; |
| 162 | 181 | ||
| 163 | static struct platform_device scif5_device = { | 182 | static struct platform_device scif5_device = { |
| @@ -339,7 +358,7 @@ void __init r8a7779_add_standard_devices(void) | |||
| 339 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ | 358 | /* do nothing for !CONFIG_SMP or !CONFIG_HAVE_TWD */ |
| 340 | void __init __weak r8a7779_register_twd(void) { } | 359 | void __init __weak r8a7779_register_twd(void) { } |
| 341 | 360 | ||
| 342 | static void __init r8a7779_earlytimer_init(void) | 361 | void __init r8a7779_earlytimer_init(void) |
| 343 | { | 362 | { |
| 344 | r8a7779_clock_init(); | 363 | r8a7779_clock_init(); |
| 345 | shmobile_earlytimer_init(); | 364 | shmobile_earlytimer_init(); |
| @@ -366,7 +385,4 @@ void __init r8a7779_add_early_devices(void) | |||
| 366 | * As a final step pass earlyprint=sh-sci.2,115200 on the kernel | 385 | * As a final step pass earlyprint=sh-sci.2,115200 on the kernel |
| 367 | * command line in case of the marzen board. | 386 | * command line in case of the marzen board. |
| 368 | */ | 387 | */ |
| 369 | |||
| 370 | /* override timer setup with soc-specific code */ | ||
| 371 | shmobile_timer.init = r8a7779_earlytimer_init; | ||
| 372 | } | 388 | } |
