xref: /linux/arch/sh/kernel/cpu/sh2a/setup-sh7269.c (revision 5204601c0877b3ffc90e417bf30fccc9bdf47962)
10b25b7c8SPhil Edworthy /*
20b25b7c8SPhil Edworthy  * SH7269 Setup
30b25b7c8SPhil Edworthy  *
40b25b7c8SPhil Edworthy  * Copyright (C) 2012  Renesas Electronics Europe Ltd
50b25b7c8SPhil Edworthy  * Copyright (C) 2012  Phil Edworthy
60b25b7c8SPhil Edworthy  *
70b25b7c8SPhil Edworthy  * This file is subject to the terms and conditions of the GNU General Public
80b25b7c8SPhil Edworthy  * License.  See the file "COPYING" in the main directory of this archive
90b25b7c8SPhil Edworthy  * for more details.
100b25b7c8SPhil Edworthy  */
110b25b7c8SPhil Edworthy #include <linux/platform_device.h>
120b25b7c8SPhil Edworthy #include <linux/init.h>
130b25b7c8SPhil Edworthy #include <linux/serial.h>
140b25b7c8SPhil Edworthy #include <linux/serial_sci.h>
150b25b7c8SPhil Edworthy #include <linux/usb/r8a66597.h>
160b25b7c8SPhil Edworthy #include <linux/sh_timer.h>
170b25b7c8SPhil Edworthy #include <linux/io.h>
180b25b7c8SPhil Edworthy 
190b25b7c8SPhil Edworthy enum {
200b25b7c8SPhil Edworthy 	UNUSED = 0,
210b25b7c8SPhil Edworthy 
220b25b7c8SPhil Edworthy 	/* interrupt sources */
230b25b7c8SPhil Edworthy 	IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7,
240b25b7c8SPhil Edworthy 	PINT0, PINT1, PINT2, PINT3, PINT4, PINT5, PINT6, PINT7,
250b25b7c8SPhil Edworthy 
260b25b7c8SPhil Edworthy 	DMAC0, DMAC1, DMAC2, DMAC3, DMAC4, DMAC5, DMAC6, DMAC7,
270b25b7c8SPhil Edworthy 	DMAC8, DMAC9, DMAC10, DMAC11, DMAC12, DMAC13, DMAC14, DMAC15,
280b25b7c8SPhil Edworthy 	USB, VDC4, CMT0, CMT1, BSC, WDT,
290b25b7c8SPhil Edworthy 	MTU0_ABCD, MTU0_VEF, MTU1_AB, MTU1_VU, MTU2_AB, MTU2_VU,
300b25b7c8SPhil Edworthy 	MTU3_ABCD, MTU3_TCI3V, MTU4_ABCD, MTU4_TCI4V,
310b25b7c8SPhil Edworthy 	PWMT1, PWMT2, ADC_ADI,
320b25b7c8SPhil Edworthy 	SSIF0, SSII1, SSII2, SSII3, SSII4, SSII5,
330b25b7c8SPhil Edworthy 	RSPDIF,
340b25b7c8SPhil Edworthy 	IIC30, IIC31, IIC32, IIC33,
350b25b7c8SPhil Edworthy 	SCIF0_BRI, SCIF0_ERI, SCIF0_RXI, SCIF0_TXI,
360b25b7c8SPhil Edworthy 	SCIF1_BRI, SCIF1_ERI, SCIF1_RXI, SCIF1_TXI,
370b25b7c8SPhil Edworthy 	SCIF2_BRI, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI,
380b25b7c8SPhil Edworthy 	SCIF3_BRI, SCIF3_ERI, SCIF3_RXI, SCIF3_TXI,
390b25b7c8SPhil Edworthy 	SCIF4_BRI, SCIF4_ERI, SCIF4_RXI, SCIF4_TXI,
400b25b7c8SPhil Edworthy 	SCIF5_BRI, SCIF5_ERI, SCIF5_RXI, SCIF5_TXI,
410b25b7c8SPhil Edworthy 	SCIF6_BRI, SCIF6_ERI, SCIF6_RXI, SCIF6_TXI,
420b25b7c8SPhil Edworthy 	SCIF7_BRI, SCIF7_ERI, SCIF7_RXI, SCIF7_TXI,
430b25b7c8SPhil Edworthy 	RCAN0, RCAN1, RCAN2,
440b25b7c8SPhil Edworthy 	RSPIC0, RSPIC1,
450b25b7c8SPhil Edworthy 	IEBC, CD_ROMD,
460b25b7c8SPhil Edworthy 	NFMC,
470b25b7c8SPhil Edworthy 	SDHI0, SDHI1,
480b25b7c8SPhil Edworthy 	RTC,
490b25b7c8SPhil Edworthy 	SRCC0, SRCC1, SRCC2,
500b25b7c8SPhil Edworthy 
510b25b7c8SPhil Edworthy 	/* interrupt groups */
520b25b7c8SPhil Edworthy 	PINT, SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7,
530b25b7c8SPhil Edworthy };
540b25b7c8SPhil Edworthy 
550b25b7c8SPhil Edworthy static struct intc_vect vectors[] __initdata = {
560b25b7c8SPhil Edworthy 	INTC_IRQ(IRQ0, 64), INTC_IRQ(IRQ1, 65),
570b25b7c8SPhil Edworthy 	INTC_IRQ(IRQ2, 66), INTC_IRQ(IRQ3, 67),
580b25b7c8SPhil Edworthy 	INTC_IRQ(IRQ4, 68), INTC_IRQ(IRQ5, 69),
590b25b7c8SPhil Edworthy 	INTC_IRQ(IRQ6, 70), INTC_IRQ(IRQ7, 71),
600b25b7c8SPhil Edworthy 
610b25b7c8SPhil Edworthy 	INTC_IRQ(PINT0, 80), INTC_IRQ(PINT1, 81),
620b25b7c8SPhil Edworthy 	INTC_IRQ(PINT2, 82), INTC_IRQ(PINT3, 83),
630b25b7c8SPhil Edworthy 	INTC_IRQ(PINT4, 84), INTC_IRQ(PINT5, 85),
640b25b7c8SPhil Edworthy 	INTC_IRQ(PINT6, 86), INTC_IRQ(PINT7, 87),
650b25b7c8SPhil Edworthy 
660b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC0, 108), INTC_IRQ(DMAC0, 109),
670b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC1, 112), INTC_IRQ(DMAC1, 113),
680b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC2, 116), INTC_IRQ(DMAC2, 117),
690b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC3, 120), INTC_IRQ(DMAC3, 121),
700b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC4, 124), INTC_IRQ(DMAC4, 125),
710b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC5, 128), INTC_IRQ(DMAC5, 129),
720b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC6, 132), INTC_IRQ(DMAC6, 133),
730b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC7, 136), INTC_IRQ(DMAC7, 137),
740b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC8, 140), INTC_IRQ(DMAC8, 141),
750b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC9, 144), INTC_IRQ(DMAC9, 145),
760b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC10, 148), INTC_IRQ(DMAC10, 149),
770b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC11, 152), INTC_IRQ(DMAC11, 153),
780b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC12, 156), INTC_IRQ(DMAC12, 157),
790b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC13, 160), INTC_IRQ(DMAC13, 161),
800b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC14, 164), INTC_IRQ(DMAC14, 165),
810b25b7c8SPhil Edworthy 	INTC_IRQ(DMAC15, 168), INTC_IRQ(DMAC15, 169),
820b25b7c8SPhil Edworthy 
830b25b7c8SPhil Edworthy 	INTC_IRQ(USB, 170),
840b25b7c8SPhil Edworthy 
850b25b7c8SPhil Edworthy 	INTC_IRQ(VDC4, 171), INTC_IRQ(VDC4, 172),
860b25b7c8SPhil Edworthy 	INTC_IRQ(VDC4, 173), INTC_IRQ(VDC4, 174),
870b25b7c8SPhil Edworthy 	INTC_IRQ(VDC4, 175), INTC_IRQ(VDC4, 176),
880b25b7c8SPhil Edworthy 	INTC_IRQ(VDC4, 177), INTC_IRQ(VDC4, 177),
890b25b7c8SPhil Edworthy 
900b25b7c8SPhil Edworthy 	INTC_IRQ(CMT0, 188), INTC_IRQ(CMT1, 189),
910b25b7c8SPhil Edworthy 
920b25b7c8SPhil Edworthy 	INTC_IRQ(BSC, 190), INTC_IRQ(WDT, 191),
930b25b7c8SPhil Edworthy 
940b25b7c8SPhil Edworthy 	INTC_IRQ(MTU0_ABCD, 192), INTC_IRQ(MTU0_ABCD, 193),
950b25b7c8SPhil Edworthy 	INTC_IRQ(MTU0_ABCD, 194), INTC_IRQ(MTU0_ABCD, 195),
960b25b7c8SPhil Edworthy 	INTC_IRQ(MTU0_VEF, 196), INTC_IRQ(MTU0_VEF, 197),
970b25b7c8SPhil Edworthy 	INTC_IRQ(MTU0_VEF, 198),
980b25b7c8SPhil Edworthy 	INTC_IRQ(MTU1_AB, 199), INTC_IRQ(MTU1_AB, 200),
990b25b7c8SPhil Edworthy 	INTC_IRQ(MTU1_VU, 201), INTC_IRQ(MTU1_VU, 202),
1000b25b7c8SPhil Edworthy 	INTC_IRQ(MTU2_AB, 203), INTC_IRQ(MTU2_AB, 204),
1010b25b7c8SPhil Edworthy 	INTC_IRQ(MTU2_VU, 205), INTC_IRQ(MTU2_VU, 206),
1020b25b7c8SPhil Edworthy 	INTC_IRQ(MTU3_ABCD, 207), INTC_IRQ(MTU3_ABCD, 208),
1030b25b7c8SPhil Edworthy 	INTC_IRQ(MTU3_ABCD, 209), INTC_IRQ(MTU3_ABCD, 210),
1040b25b7c8SPhil Edworthy 	INTC_IRQ(MTU3_TCI3V, 211),
1050b25b7c8SPhil Edworthy 	INTC_IRQ(MTU4_ABCD, 212), INTC_IRQ(MTU4_ABCD, 213),
1060b25b7c8SPhil Edworthy 	INTC_IRQ(MTU4_ABCD, 214), INTC_IRQ(MTU4_ABCD, 215),
1070b25b7c8SPhil Edworthy 	INTC_IRQ(MTU4_TCI4V, 216),
1080b25b7c8SPhil Edworthy 
1090b25b7c8SPhil Edworthy 	INTC_IRQ(PWMT1, 217), INTC_IRQ(PWMT2, 218),
1100b25b7c8SPhil Edworthy 
1110b25b7c8SPhil Edworthy 	INTC_IRQ(ADC_ADI, 223),
1120b25b7c8SPhil Edworthy 
1130b25b7c8SPhil Edworthy 	INTC_IRQ(SSIF0, 224), INTC_IRQ(SSIF0, 225),
1140b25b7c8SPhil Edworthy 	INTC_IRQ(SSIF0, 226),
1150b25b7c8SPhil Edworthy 	INTC_IRQ(SSII1, 227), INTC_IRQ(SSII1, 228),
1160b25b7c8SPhil Edworthy 	INTC_IRQ(SSII2, 229), INTC_IRQ(SSII2, 230),
1170b25b7c8SPhil Edworthy 	INTC_IRQ(SSII3, 231), INTC_IRQ(SSII3, 232),
1180b25b7c8SPhil Edworthy 	INTC_IRQ(SSII4, 233), INTC_IRQ(SSII4, 234),
1190b25b7c8SPhil Edworthy 	INTC_IRQ(SSII5, 235), INTC_IRQ(SSII5, 236),
1200b25b7c8SPhil Edworthy 
1210b25b7c8SPhil Edworthy 	INTC_IRQ(RSPDIF, 237),
1220b25b7c8SPhil Edworthy 
1230b25b7c8SPhil Edworthy 	INTC_IRQ(IIC30, 238), INTC_IRQ(IIC30, 239),
1240b25b7c8SPhil Edworthy 	INTC_IRQ(IIC30, 240), INTC_IRQ(IIC30, 241),
1250b25b7c8SPhil Edworthy 	INTC_IRQ(IIC30, 242),
1260b25b7c8SPhil Edworthy 	INTC_IRQ(IIC31, 243), INTC_IRQ(IIC31, 244),
1270b25b7c8SPhil Edworthy 	INTC_IRQ(IIC31, 245), INTC_IRQ(IIC31, 246),
1280b25b7c8SPhil Edworthy 	INTC_IRQ(IIC31, 247),
1290b25b7c8SPhil Edworthy 	INTC_IRQ(IIC32, 248), INTC_IRQ(IIC32, 249),
1300b25b7c8SPhil Edworthy 	INTC_IRQ(IIC32, 250), INTC_IRQ(IIC32, 251),
1310b25b7c8SPhil Edworthy 	INTC_IRQ(IIC32, 252),
1320b25b7c8SPhil Edworthy 	INTC_IRQ(IIC33, 253), INTC_IRQ(IIC33, 254),
1330b25b7c8SPhil Edworthy 	INTC_IRQ(IIC33, 255), INTC_IRQ(IIC33, 256),
1340b25b7c8SPhil Edworthy 	INTC_IRQ(IIC33, 257),
1350b25b7c8SPhil Edworthy 
1360b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF0_BRI, 258), INTC_IRQ(SCIF0_ERI, 259),
1370b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF0_RXI, 260), INTC_IRQ(SCIF0_TXI, 261),
1380b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF1_BRI, 262), INTC_IRQ(SCIF1_ERI, 263),
1390b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF1_RXI, 264), INTC_IRQ(SCIF1_TXI, 265),
1400b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF2_BRI, 266), INTC_IRQ(SCIF2_ERI, 267),
1410b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF2_RXI, 268), INTC_IRQ(SCIF2_TXI, 269),
1420b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF3_BRI, 270), INTC_IRQ(SCIF3_ERI, 271),
1430b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF3_RXI, 272), INTC_IRQ(SCIF3_TXI, 273),
1440b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF4_BRI, 274), INTC_IRQ(SCIF4_ERI, 275),
1450b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF4_RXI, 276), INTC_IRQ(SCIF4_TXI, 277),
1460b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF5_BRI, 278), INTC_IRQ(SCIF5_ERI, 279),
1470b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF5_RXI, 280), INTC_IRQ(SCIF5_TXI, 281),
1480b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF6_BRI, 282), INTC_IRQ(SCIF6_ERI, 283),
1490b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF6_RXI, 284), INTC_IRQ(SCIF6_TXI, 285),
1500b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF7_BRI, 286), INTC_IRQ(SCIF7_ERI, 287),
1510b25b7c8SPhil Edworthy 	INTC_IRQ(SCIF7_RXI, 288), INTC_IRQ(SCIF7_TXI, 289),
1520b25b7c8SPhil Edworthy 
1530b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN0, 291), INTC_IRQ(RCAN0, 292),
1540b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN0, 293), INTC_IRQ(RCAN0, 294),
1550b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN0, 295),
1560b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN1, 296), INTC_IRQ(RCAN1, 297),
1570b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN1, 298), INTC_IRQ(RCAN1, 299),
1580b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN1, 300),
1590b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN2, 301), INTC_IRQ(RCAN2, 302),
1600b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN2, 303), INTC_IRQ(RCAN2, 304),
1610b25b7c8SPhil Edworthy 	INTC_IRQ(RCAN2, 305),
1620b25b7c8SPhil Edworthy 
1630b25b7c8SPhil Edworthy 	INTC_IRQ(RSPIC0, 306), INTC_IRQ(RSPIC0, 307),
1640b25b7c8SPhil Edworthy 	INTC_IRQ(RSPIC0, 308),
1650b25b7c8SPhil Edworthy 	INTC_IRQ(RSPIC1, 309), INTC_IRQ(RSPIC1, 310),
1660b25b7c8SPhil Edworthy 	INTC_IRQ(RSPIC1, 311),
1670b25b7c8SPhil Edworthy 
1680b25b7c8SPhil Edworthy 	INTC_IRQ(IEBC, 318),
1690b25b7c8SPhil Edworthy 
1700b25b7c8SPhil Edworthy 	INTC_IRQ(CD_ROMD, 319), INTC_IRQ(CD_ROMD, 320),
1710b25b7c8SPhil Edworthy 	INTC_IRQ(CD_ROMD, 321), INTC_IRQ(CD_ROMD, 322),
1720b25b7c8SPhil Edworthy 	INTC_IRQ(CD_ROMD, 323), INTC_IRQ(CD_ROMD, 324),
1730b25b7c8SPhil Edworthy 
1740b25b7c8SPhil Edworthy 	INTC_IRQ(NFMC, 325), INTC_IRQ(NFMC, 326),
1750b25b7c8SPhil Edworthy 	INTC_IRQ(NFMC, 327), INTC_IRQ(NFMC, 328),
1760b25b7c8SPhil Edworthy 
1770b25b7c8SPhil Edworthy 	INTC_IRQ(SDHI0, 332), INTC_IRQ(SDHI0, 333),
1780b25b7c8SPhil Edworthy 	INTC_IRQ(SDHI0, 334),
1790b25b7c8SPhil Edworthy 	INTC_IRQ(SDHI1, 335), INTC_IRQ(SDHI1, 336),
1800b25b7c8SPhil Edworthy 	INTC_IRQ(SDHI1, 337),
1810b25b7c8SPhil Edworthy 
1820b25b7c8SPhil Edworthy 	INTC_IRQ(RTC, 338), INTC_IRQ(RTC, 339),
1830b25b7c8SPhil Edworthy 	INTC_IRQ(RTC, 340),
1840b25b7c8SPhil Edworthy 
1850b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC0, 341), INTC_IRQ(SRCC0, 342),
1860b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC0, 343), INTC_IRQ(SRCC0, 344),
1870b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC0, 345),
1880b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC1, 346), INTC_IRQ(SRCC1, 347),
1890b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC1, 348), INTC_IRQ(SRCC1, 349),
1900b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC1, 350),
1910b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC2, 351), INTC_IRQ(SRCC2, 352),
1920b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC2, 353), INTC_IRQ(SRCC2, 354),
1930b25b7c8SPhil Edworthy 	INTC_IRQ(SRCC2, 355),
1940b25b7c8SPhil Edworthy };
1950b25b7c8SPhil Edworthy 
1960b25b7c8SPhil Edworthy static struct intc_group groups[] __initdata = {
1970b25b7c8SPhil Edworthy 	INTC_GROUP(PINT, PINT0, PINT1, PINT2, PINT3,
1980b25b7c8SPhil Edworthy 		   PINT4, PINT5, PINT6, PINT7),
1990b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF0, SCIF0_BRI, SCIF0_ERI, SCIF0_RXI, SCIF0_TXI),
2000b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF1, SCIF1_BRI, SCIF1_ERI, SCIF1_RXI, SCIF1_TXI),
2010b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF2, SCIF2_BRI, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI),
2020b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF3, SCIF3_BRI, SCIF3_ERI, SCIF3_RXI, SCIF3_TXI),
2030b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF4, SCIF4_BRI, SCIF4_ERI, SCIF4_RXI, SCIF4_TXI),
2040b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF5, SCIF5_BRI, SCIF5_ERI, SCIF5_RXI, SCIF5_TXI),
2050b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF6, SCIF6_BRI, SCIF6_ERI, SCIF6_RXI, SCIF6_TXI),
2060b25b7c8SPhil Edworthy 	INTC_GROUP(SCIF7, SCIF7_BRI, SCIF7_ERI, SCIF7_RXI, SCIF7_TXI),
2070b25b7c8SPhil Edworthy };
2080b25b7c8SPhil Edworthy 
2090b25b7c8SPhil Edworthy static struct intc_prio_reg prio_registers[] __initdata = {
2100b25b7c8SPhil Edworthy 	{ 0xfffe0818, 0, 16, 4, /* IPR01 */ { IRQ0, IRQ1, IRQ2, IRQ3 } },
2110b25b7c8SPhil Edworthy 	{ 0xfffe081a, 0, 16, 4, /* IPR02 */ { IRQ4, IRQ5, IRQ6, IRQ7 } },
2120b25b7c8SPhil Edworthy 	{ 0xfffe0820, 0, 16, 4, /* IPR05 */ { PINT, 0, 0, 0 } },
2130b25b7c8SPhil Edworthy 	{ 0xfffe0c00, 0, 16, 4, /* IPR06 */ { DMAC0,  DMAC1, DMAC2,  DMAC3 } },
2140b25b7c8SPhil Edworthy 	{ 0xfffe0c02, 0, 16, 4, /* IPR07 */ { DMAC4,  DMAC5, DMAC6,  DMAC7 } },
2150b25b7c8SPhil Edworthy 	{ 0xfffe0c04, 0, 16, 4, /* IPR08 */ { DMAC8,  DMAC9,
2160b25b7c8SPhil Edworthy 					      DMAC10, DMAC11 } },
2170b25b7c8SPhil Edworthy 	{ 0xfffe0c06, 0, 16, 4, /* IPR09 */ { DMAC12, DMAC13,
2180b25b7c8SPhil Edworthy 					      DMAC14, DMAC15 } },
2190b25b7c8SPhil Edworthy 	{ 0xfffe0c08, 0, 16, 4, /* IPR10 */ { USB, VDC4, VDC4, VDC4 } },
2200b25b7c8SPhil Edworthy 	{ 0xfffe0c0a, 0, 16, 4, /* IPR11 */ { 0, 0, 0, 0 } },
2210b25b7c8SPhil Edworthy 	{ 0xfffe0c0c, 0, 16, 4, /* IPR12 */ { CMT0, CMT1, BSC, WDT } },
2220b25b7c8SPhil Edworthy 	{ 0xfffe0c0e, 0, 16, 4, /* IPR13 */ { MTU0_ABCD, MTU0_VEF,
2230b25b7c8SPhil Edworthy 					      MTU1_AB, MTU1_VU } },
2240b25b7c8SPhil Edworthy 	{ 0xfffe0c10, 0, 16, 4, /* IPR14 */ { MTU2_AB, MTU2_VU,
2250b25b7c8SPhil Edworthy 					      MTU3_ABCD, MTU3_TCI3V } },
2260b25b7c8SPhil Edworthy 	{ 0xfffe0c12, 0, 16, 4, /* IPR15 */ { MTU4_ABCD, MTU4_TCI4V,
2270b25b7c8SPhil Edworthy 					      PWMT1, PWMT2 } },
2280b25b7c8SPhil Edworthy 	{ 0xfffe0c14, 0, 16, 4, /* IPR16 */ { 0, 0, 0, 0 } },
2290b25b7c8SPhil Edworthy 	{ 0xfffe0c16, 0, 16, 4, /* IPR17 */ { ADC_ADI, SSIF0, SSII1, SSII2 } },
2300b25b7c8SPhil Edworthy 	{ 0xfffe0c18, 0, 16, 4, /* IPR18 */ { SSII3, SSII4, SSII5,  RSPDIF} },
2310b25b7c8SPhil Edworthy 	{ 0xfffe0c1a, 0, 16, 4, /* IPR19 */ { IIC30, IIC31, IIC32, IIC33 } },
2320b25b7c8SPhil Edworthy 	{ 0xfffe0c1c, 0, 16, 4, /* IPR20 */ { SCIF0, SCIF1, SCIF2, SCIF3 } },
2330b25b7c8SPhil Edworthy 	{ 0xfffe0c1e, 0, 16, 4, /* IPR21 */ { SCIF4, SCIF5, SCIF6, SCIF7 } },
2340b25b7c8SPhil Edworthy 	{ 0xfffe0c20, 0, 16, 4, /* IPR22 */ { 0, RCAN0, RCAN1, RCAN2 } },
2350b25b7c8SPhil Edworthy 	{ 0xfffe0c22, 0, 16, 4, /* IPR23 */ { RSPIC0, RSPIC1, 0, 0 } },
2360b25b7c8SPhil Edworthy 	{ 0xfffe0c24, 0, 16, 4, /* IPR24 */ { IEBC, CD_ROMD, NFMC, 0 } },
2370b25b7c8SPhil Edworthy 	{ 0xfffe0c26, 0, 16, 4, /* IPR25 */ { SDHI0, SDHI1, RTC, 0 } },
2380b25b7c8SPhil Edworthy 	{ 0xfffe0c28, 0, 16, 4, /* IPR26 */ { SRCC0, SRCC1, SRCC2, 0 } },
2390b25b7c8SPhil Edworthy };
2400b25b7c8SPhil Edworthy 
2410b25b7c8SPhil Edworthy static struct intc_mask_reg mask_registers[] __initdata = {
2420b25b7c8SPhil Edworthy 	{ 0xfffe0808, 0, 16, /* PINTER */
2430b25b7c8SPhil Edworthy 	  { 0, 0, 0, 0, 0, 0, 0, 0,
2440b25b7c8SPhil Edworthy 	    PINT7, PINT6, PINT5, PINT4, PINT3, PINT2, PINT1, PINT0 } },
2450b25b7c8SPhil Edworthy };
2460b25b7c8SPhil Edworthy 
2470b25b7c8SPhil Edworthy static DECLARE_INTC_DESC(intc_desc, "sh7269", vectors, groups,
2480b25b7c8SPhil Edworthy 			 mask_registers, prio_registers, NULL);
2490b25b7c8SPhil Edworthy 
2500b25b7c8SPhil Edworthy static struct plat_sci_port scif0_platform_data = {
2510b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
2520b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
2530b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
2540b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
2550b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
2560b25b7c8SPhil Edworthy };
2570b25b7c8SPhil Edworthy 
258d850acf9SLaurent Pinchart static struct resource scif0_resources[] = {
259d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8007000, 0x100),
260d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(259),
261d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(260),
262d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(261),
263d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(258),
264d850acf9SLaurent Pinchart };
265d850acf9SLaurent Pinchart 
2660b25b7c8SPhil Edworthy static struct platform_device scif0_device = {
2670b25b7c8SPhil Edworthy 	.name		= "sh-sci",
2680b25b7c8SPhil Edworthy 	.id		= 0,
269d850acf9SLaurent Pinchart 	.resource	= scif0_resources,
270d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif0_resources),
2710b25b7c8SPhil Edworthy 	.dev		= {
2720b25b7c8SPhil Edworthy 		.platform_data	= &scif0_platform_data,
2730b25b7c8SPhil Edworthy 	},
2740b25b7c8SPhil Edworthy };
2750b25b7c8SPhil Edworthy 
2760b25b7c8SPhil Edworthy static struct plat_sci_port scif1_platform_data = {
2770b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
2780b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
2790b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
2800b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
2810b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
2820b25b7c8SPhil Edworthy };
2830b25b7c8SPhil Edworthy 
284d850acf9SLaurent Pinchart static struct resource scif1_resources[] = {
285d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8007800, 0x100),
286d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(263),
287d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(264),
288d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(265),
289d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(262),
290d850acf9SLaurent Pinchart };
291d850acf9SLaurent Pinchart 
2920b25b7c8SPhil Edworthy static struct platform_device scif1_device = {
2930b25b7c8SPhil Edworthy 	.name		= "sh-sci",
2940b25b7c8SPhil Edworthy 	.id		= 1,
295d850acf9SLaurent Pinchart 	.resource	= scif1_resources,
296d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif1_resources),
2970b25b7c8SPhil Edworthy 	.dev		= {
2980b25b7c8SPhil Edworthy 		.platform_data	= &scif1_platform_data,
2990b25b7c8SPhil Edworthy 	},
3000b25b7c8SPhil Edworthy };
3010b25b7c8SPhil Edworthy 
3020b25b7c8SPhil Edworthy static struct plat_sci_port scif2_platform_data = {
3030b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
3040b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
3050b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
3060b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
3070b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
3080b25b7c8SPhil Edworthy };
3090b25b7c8SPhil Edworthy 
310d850acf9SLaurent Pinchart static struct resource scif2_resources[] = {
311d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8008000, 0x100),
312d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(267),
313d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(268),
314d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(269),
315d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(266),
316d850acf9SLaurent Pinchart };
317d850acf9SLaurent Pinchart 
3180b25b7c8SPhil Edworthy static struct platform_device scif2_device = {
3190b25b7c8SPhil Edworthy 	.name		= "sh-sci",
3200b25b7c8SPhil Edworthy 	.id		= 2,
321d850acf9SLaurent Pinchart 	.resource	= scif2_resources,
322d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif2_resources),
3230b25b7c8SPhil Edworthy 	.dev		= {
3240b25b7c8SPhil Edworthy 		.platform_data	= &scif2_platform_data,
3250b25b7c8SPhil Edworthy 	},
3260b25b7c8SPhil Edworthy };
3270b25b7c8SPhil Edworthy 
3280b25b7c8SPhil Edworthy static struct plat_sci_port scif3_platform_data = {
3290b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
3300b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
3310b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
3320b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
3330b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
3340b25b7c8SPhil Edworthy };
3350b25b7c8SPhil Edworthy 
336d850acf9SLaurent Pinchart static struct resource scif3_resources[] = {
337d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8008800, 0x100),
338d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(271),
339d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(272),
340d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(273),
341d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(270),
342d850acf9SLaurent Pinchart };
343d850acf9SLaurent Pinchart 
3440b25b7c8SPhil Edworthy static struct platform_device scif3_device = {
3450b25b7c8SPhil Edworthy 	.name		= "sh-sci",
3460b25b7c8SPhil Edworthy 	.id		= 3,
347d850acf9SLaurent Pinchart 	.resource	= scif3_resources,
348d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif3_resources),
3490b25b7c8SPhil Edworthy 	.dev		= {
3500b25b7c8SPhil Edworthy 		.platform_data	= &scif3_platform_data,
3510b25b7c8SPhil Edworthy 	},
3520b25b7c8SPhil Edworthy };
3530b25b7c8SPhil Edworthy 
3540b25b7c8SPhil Edworthy static struct plat_sci_port scif4_platform_data = {
3550b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
3560b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
3570b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
3580b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
3590b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
3600b25b7c8SPhil Edworthy };
3610b25b7c8SPhil Edworthy 
362d850acf9SLaurent Pinchart static struct resource scif4_resources[] = {
363d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8009000, 0x100),
364d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(275),
365d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(276),
366d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(277),
367d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(274),
368d850acf9SLaurent Pinchart };
369d850acf9SLaurent Pinchart 
3700b25b7c8SPhil Edworthy static struct platform_device scif4_device = {
3710b25b7c8SPhil Edworthy 	.name		= "sh-sci",
3720b25b7c8SPhil Edworthy 	.id		= 4,
373d850acf9SLaurent Pinchart 	.resource	= scif4_resources,
374d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif4_resources),
3750b25b7c8SPhil Edworthy 	.dev		= {
3760b25b7c8SPhil Edworthy 		.platform_data	= &scif4_platform_data,
3770b25b7c8SPhil Edworthy 	},
3780b25b7c8SPhil Edworthy };
3790b25b7c8SPhil Edworthy 
3800b25b7c8SPhil Edworthy static struct plat_sci_port scif5_platform_data = {
3810b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
3820b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
3830b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
3840b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
3850b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
3860b25b7c8SPhil Edworthy };
3870b25b7c8SPhil Edworthy 
388d850acf9SLaurent Pinchart static struct resource scif5_resources[] = {
389d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe8009800, 0x100),
390d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(279),
391d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(280),
392d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(281),
393d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(278),
394d850acf9SLaurent Pinchart };
395d850acf9SLaurent Pinchart 
3960b25b7c8SPhil Edworthy static struct platform_device scif5_device = {
3970b25b7c8SPhil Edworthy 	.name		= "sh-sci",
3980b25b7c8SPhil Edworthy 	.id		= 5,
399d850acf9SLaurent Pinchart 	.resource	= scif5_resources,
400d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif5_resources),
4010b25b7c8SPhil Edworthy 	.dev		= {
4020b25b7c8SPhil Edworthy 		.platform_data	= &scif5_platform_data,
4030b25b7c8SPhil Edworthy 	},
4040b25b7c8SPhil Edworthy };
4050b25b7c8SPhil Edworthy 
4060b25b7c8SPhil Edworthy static struct plat_sci_port scif6_platform_data = {
4070b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
4080b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
4090b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
4100b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
4110b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
4120b25b7c8SPhil Edworthy };
4130b25b7c8SPhil Edworthy 
414d850acf9SLaurent Pinchart static struct resource scif6_resources[] = {
415d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe800a000, 0x100),
416d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(283),
417d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(284),
418d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(285),
419d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(282),
420d850acf9SLaurent Pinchart };
421d850acf9SLaurent Pinchart 
4220b25b7c8SPhil Edworthy static struct platform_device scif6_device = {
4230b25b7c8SPhil Edworthy 	.name		= "sh-sci",
4240b25b7c8SPhil Edworthy 	.id		= 6,
425d850acf9SLaurent Pinchart 	.resource	= scif6_resources,
426d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif6_resources),
4270b25b7c8SPhil Edworthy 	.dev		= {
4280b25b7c8SPhil Edworthy 		.platform_data	= &scif6_platform_data,
4290b25b7c8SPhil Edworthy 	},
4300b25b7c8SPhil Edworthy };
4310b25b7c8SPhil Edworthy 
4320b25b7c8SPhil Edworthy static struct plat_sci_port scif7_platform_data = {
4330b25b7c8SPhil Edworthy 	.flags		= UPF_BOOT_AUTOCONF,
4340b25b7c8SPhil Edworthy 	.scscr		= SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE |
4350b25b7c8SPhil Edworthy 			  SCSCR_REIE | SCSCR_TOIE,
4360b25b7c8SPhil Edworthy 	.type		= PORT_SCIF,
4370b25b7c8SPhil Edworthy 	.regtype	= SCIx_SH2_SCIF_FIFODATA_REGTYPE,
4380b25b7c8SPhil Edworthy };
4390b25b7c8SPhil Edworthy 
440d850acf9SLaurent Pinchart static struct resource scif7_resources[] = {
441d850acf9SLaurent Pinchart 	DEFINE_RES_MEM(0xe800a800, 0x100),
442d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(287),
443d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(288),
444d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(289),
445d850acf9SLaurent Pinchart 	DEFINE_RES_IRQ(286),
446d850acf9SLaurent Pinchart };
447d850acf9SLaurent Pinchart 
4480b25b7c8SPhil Edworthy static struct platform_device scif7_device = {
4490b25b7c8SPhil Edworthy 	.name		= "sh-sci",
4500b25b7c8SPhil Edworthy 	.id		= 7,
451d850acf9SLaurent Pinchart 	.resource	= scif7_resources,
452d850acf9SLaurent Pinchart 	.num_resources	= ARRAY_SIZE(scif7_resources),
4530b25b7c8SPhil Edworthy 	.dev		= {
4540b25b7c8SPhil Edworthy 		.platform_data	= &scif7_platform_data,
4550b25b7c8SPhil Edworthy 	},
4560b25b7c8SPhil Edworthy };
4570b25b7c8SPhil Edworthy 
4589b17e48cSLaurent Pinchart static struct sh_timer_config cmt_platform_data = {
4599b17e48cSLaurent Pinchart 	.channels_mask = 3,
4600b25b7c8SPhil Edworthy };
4610b25b7c8SPhil Edworthy 
4629b17e48cSLaurent Pinchart static struct resource cmt_resources[] = {
4639b17e48cSLaurent Pinchart 	DEFINE_RES_MEM(0xfffec000, 0x10),
4649b17e48cSLaurent Pinchart 	DEFINE_RES_IRQ(188),
4659b17e48cSLaurent Pinchart 	DEFINE_RES_IRQ(189),
4660b25b7c8SPhil Edworthy };
4670b25b7c8SPhil Edworthy 
4689b17e48cSLaurent Pinchart static struct platform_device cmt_device = {
4699b17e48cSLaurent Pinchart 	.name		= "sh-cmt-16",
4700b25b7c8SPhil Edworthy 	.id		= 0,
4710b25b7c8SPhil Edworthy 	.dev = {
4729b17e48cSLaurent Pinchart 		.platform_data	= &cmt_platform_data,
4730b25b7c8SPhil Edworthy 	},
4749b17e48cSLaurent Pinchart 	.resource	= cmt_resources,
4759b17e48cSLaurent Pinchart 	.num_resources	= ARRAY_SIZE(cmt_resources),
4760b25b7c8SPhil Edworthy };
4770b25b7c8SPhil Edworthy 
478*5204601cSLaurent Pinchart static struct resource mtu2_resources[] = {
479*5204601cSLaurent Pinchart 	DEFINE_RES_MEM(0xfffe4000, 0x400),
480*5204601cSLaurent Pinchart 	DEFINE_RES_IRQ_NAMED(192, "tgi0a"),
481*5204601cSLaurent Pinchart 	DEFINE_RES_IRQ_NAMED(203, "tgi1a"),
4820b25b7c8SPhil Edworthy };
4830b25b7c8SPhil Edworthy 
484*5204601cSLaurent Pinchart static struct platform_device mtu2_device = {
485*5204601cSLaurent Pinchart 	.name		= "sh-mtu2",
486*5204601cSLaurent Pinchart 	.id		= -1,
487*5204601cSLaurent Pinchart 	.resource	= mtu2_resources,
488*5204601cSLaurent Pinchart 	.num_resources	= ARRAY_SIZE(mtu2_resources),
4890b25b7c8SPhil Edworthy };
4900b25b7c8SPhil Edworthy 
4910b25b7c8SPhil Edworthy static struct resource rtc_resources[] = {
4920b25b7c8SPhil Edworthy 	[0] = {
4930b25b7c8SPhil Edworthy 		.start	= 0xfffe6000,
4940b25b7c8SPhil Edworthy 		.end	= 0xfffe6000 + 0x30 - 1,
4950b25b7c8SPhil Edworthy 		.flags	= IORESOURCE_IO,
4960b25b7c8SPhil Edworthy 	},
4970b25b7c8SPhil Edworthy 	[1] = {
4980b25b7c8SPhil Edworthy 		/* Shared Period/Carry/Alarm IRQ */
4990b25b7c8SPhil Edworthy 		.start	= 338,
5000b25b7c8SPhil Edworthy 		.flags	= IORESOURCE_IRQ,
5010b25b7c8SPhil Edworthy 	},
5020b25b7c8SPhil Edworthy };
5030b25b7c8SPhil Edworthy 
5040b25b7c8SPhil Edworthy static struct platform_device rtc_device = {
5050b25b7c8SPhil Edworthy 	.name		= "sh-rtc",
5060b25b7c8SPhil Edworthy 	.id		= -1,
5070b25b7c8SPhil Edworthy 	.num_resources	= ARRAY_SIZE(rtc_resources),
5080b25b7c8SPhil Edworthy 	.resource	= rtc_resources,
5090b25b7c8SPhil Edworthy };
5100b25b7c8SPhil Edworthy 
5110b25b7c8SPhil Edworthy /* USB Host */
5120b25b7c8SPhil Edworthy static struct r8a66597_platdata r8a66597_data = {
5130b25b7c8SPhil Edworthy 	.on_chip = 1,
5140b25b7c8SPhil Edworthy 	.endian = 1,
5150b25b7c8SPhil Edworthy };
5160b25b7c8SPhil Edworthy 
5170b25b7c8SPhil Edworthy static struct resource r8a66597_usb_host_resources[] = {
5180b25b7c8SPhil Edworthy 	[0] = {
5190b25b7c8SPhil Edworthy 		.start	= 0xe8010000,
5200b25b7c8SPhil Edworthy 		.end	= 0xe80100e4,
5210b25b7c8SPhil Edworthy 		.flags	= IORESOURCE_MEM,
5220b25b7c8SPhil Edworthy 	},
5230b25b7c8SPhil Edworthy 	[1] = {
5240b25b7c8SPhil Edworthy 		.start	= 170,
5250b25b7c8SPhil Edworthy 		.end	= 170,
5260b25b7c8SPhil Edworthy 		.flags	= IORESOURCE_IRQ | IRQF_TRIGGER_LOW,
5270b25b7c8SPhil Edworthy 	},
5280b25b7c8SPhil Edworthy };
5290b25b7c8SPhil Edworthy 
5300b25b7c8SPhil Edworthy static struct platform_device r8a66597_usb_host_device = {
5310b25b7c8SPhil Edworthy 	.name		= "r8a66597_hcd",
5320b25b7c8SPhil Edworthy 	.id		= 0,
5330b25b7c8SPhil Edworthy 	.dev = {
5340b25b7c8SPhil Edworthy 		.dma_mask		= NULL,         /*  not use dma */
5350b25b7c8SPhil Edworthy 		.coherent_dma_mask	= 0xffffffff,
5360b25b7c8SPhil Edworthy 		.platform_data		= &r8a66597_data,
5370b25b7c8SPhil Edworthy 	},
5380b25b7c8SPhil Edworthy 	.num_resources	= ARRAY_SIZE(r8a66597_usb_host_resources),
5390b25b7c8SPhil Edworthy 	.resource	= r8a66597_usb_host_resources,
5400b25b7c8SPhil Edworthy };
5410b25b7c8SPhil Edworthy 
5420b25b7c8SPhil Edworthy static struct platform_device *sh7269_devices[] __initdata = {
5430b25b7c8SPhil Edworthy 	&scif0_device,
5440b25b7c8SPhil Edworthy 	&scif1_device,
5450b25b7c8SPhil Edworthy 	&scif2_device,
5460b25b7c8SPhil Edworthy 	&scif3_device,
5470b25b7c8SPhil Edworthy 	&scif4_device,
5480b25b7c8SPhil Edworthy 	&scif5_device,
5490b25b7c8SPhil Edworthy 	&scif6_device,
5500b25b7c8SPhil Edworthy 	&scif7_device,
5519b17e48cSLaurent Pinchart 	&cmt_device,
552*5204601cSLaurent Pinchart 	&mtu2_device,
5530b25b7c8SPhil Edworthy 	&rtc_device,
5540b25b7c8SPhil Edworthy 	&r8a66597_usb_host_device,
5550b25b7c8SPhil Edworthy };
5560b25b7c8SPhil Edworthy 
5570b25b7c8SPhil Edworthy static int __init sh7269_devices_setup(void)
5580b25b7c8SPhil Edworthy {
5590b25b7c8SPhil Edworthy 	return platform_add_devices(sh7269_devices,
5600b25b7c8SPhil Edworthy 				    ARRAY_SIZE(sh7269_devices));
5610b25b7c8SPhil Edworthy }
5620b25b7c8SPhil Edworthy arch_initcall(sh7269_devices_setup);
5630b25b7c8SPhil Edworthy 
5640b25b7c8SPhil Edworthy void __init plat_irq_setup(void)
5650b25b7c8SPhil Edworthy {
5660b25b7c8SPhil Edworthy 	register_intc_controller(&intc_desc);
5670b25b7c8SPhil Edworthy }
5680b25b7c8SPhil Edworthy 
5690b25b7c8SPhil Edworthy static struct platform_device *sh7269_early_devices[] __initdata = {
5700b25b7c8SPhil Edworthy 	&scif0_device,
5710b25b7c8SPhil Edworthy 	&scif1_device,
5720b25b7c8SPhil Edworthy 	&scif2_device,
5730b25b7c8SPhil Edworthy 	&scif3_device,
5740b25b7c8SPhil Edworthy 	&scif4_device,
5750b25b7c8SPhil Edworthy 	&scif5_device,
5760b25b7c8SPhil Edworthy 	&scif6_device,
5770b25b7c8SPhil Edworthy 	&scif7_device,
5789b17e48cSLaurent Pinchart 	&cmt_device,
579*5204601cSLaurent Pinchart 	&mtu2_device,
5800b25b7c8SPhil Edworthy };
5810b25b7c8SPhil Edworthy 
5820b25b7c8SPhil Edworthy void __init plat_early_device_setup(void)
5830b25b7c8SPhil Edworthy {
5840b25b7c8SPhil Edworthy 	early_platform_add_devices(sh7269_early_devices,
5850b25b7c8SPhil Edworthy 				   ARRAY_SIZE(sh7269_early_devices));
5860b25b7c8SPhil Edworthy }
587