1*234a0538SKuninori Morimoto // SPDX-License-Identifier: GPL-2.0 20b25b7c8SPhil Edworthy /* 30b25b7c8SPhil Edworthy * SH7269 Setup 40b25b7c8SPhil Edworthy * 50b25b7c8SPhil Edworthy * Copyright (C) 2012 Renesas Electronics Europe Ltd 60b25b7c8SPhil Edworthy * Copyright (C) 2012 Phil Edworthy 70b25b7c8SPhil Edworthy */ 80b25b7c8SPhil Edworthy #include <linux/platform_device.h> 90b25b7c8SPhil Edworthy #include <linux/init.h> 100b25b7c8SPhil Edworthy #include <linux/serial.h> 110b25b7c8SPhil Edworthy #include <linux/serial_sci.h> 120b25b7c8SPhil Edworthy #include <linux/usb/r8a66597.h> 130b25b7c8SPhil Edworthy #include <linux/sh_timer.h> 140b25b7c8SPhil Edworthy #include <linux/io.h> 150b25b7c8SPhil Edworthy 160b25b7c8SPhil Edworthy enum { 170b25b7c8SPhil Edworthy UNUSED = 0, 180b25b7c8SPhil Edworthy 190b25b7c8SPhil Edworthy /* interrupt sources */ 200b25b7c8SPhil Edworthy IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, 210b25b7c8SPhil Edworthy PINT0, PINT1, PINT2, PINT3, PINT4, PINT5, PINT6, PINT7, 220b25b7c8SPhil Edworthy 230b25b7c8SPhil Edworthy DMAC0, DMAC1, DMAC2, DMAC3, DMAC4, DMAC5, DMAC6, DMAC7, 240b25b7c8SPhil Edworthy DMAC8, DMAC9, DMAC10, DMAC11, DMAC12, DMAC13, DMAC14, DMAC15, 250b25b7c8SPhil Edworthy USB, VDC4, CMT0, CMT1, BSC, WDT, 260b25b7c8SPhil Edworthy MTU0_ABCD, MTU0_VEF, MTU1_AB, MTU1_VU, MTU2_AB, MTU2_VU, 270b25b7c8SPhil Edworthy MTU3_ABCD, MTU3_TCI3V, MTU4_ABCD, MTU4_TCI4V, 280b25b7c8SPhil Edworthy PWMT1, PWMT2, ADC_ADI, 290b25b7c8SPhil Edworthy SSIF0, SSII1, SSII2, SSII3, SSII4, SSII5, 300b25b7c8SPhil Edworthy RSPDIF, 310b25b7c8SPhil Edworthy IIC30, IIC31, IIC32, IIC33, 320b25b7c8SPhil Edworthy SCIF0_BRI, SCIF0_ERI, SCIF0_RXI, SCIF0_TXI, 330b25b7c8SPhil Edworthy SCIF1_BRI, SCIF1_ERI, SCIF1_RXI, SCIF1_TXI, 340b25b7c8SPhil Edworthy SCIF2_BRI, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI, 350b25b7c8SPhil Edworthy SCIF3_BRI, SCIF3_ERI, SCIF3_RXI, SCIF3_TXI, 360b25b7c8SPhil Edworthy SCIF4_BRI, SCIF4_ERI, SCIF4_RXI, SCIF4_TXI, 370b25b7c8SPhil Edworthy SCIF5_BRI, SCIF5_ERI, SCIF5_RXI, SCIF5_TXI, 380b25b7c8SPhil Edworthy SCIF6_BRI, SCIF6_ERI, SCIF6_RXI, SCIF6_TXI, 390b25b7c8SPhil Edworthy SCIF7_BRI, SCIF7_ERI, SCIF7_RXI, SCIF7_TXI, 400b25b7c8SPhil Edworthy RCAN0, RCAN1, RCAN2, 410b25b7c8SPhil Edworthy RSPIC0, RSPIC1, 420b25b7c8SPhil Edworthy IEBC, CD_ROMD, 430b25b7c8SPhil Edworthy NFMC, 440b25b7c8SPhil Edworthy SDHI0, SDHI1, 450b25b7c8SPhil Edworthy RTC, 460b25b7c8SPhil Edworthy SRCC0, SRCC1, SRCC2, 470b25b7c8SPhil Edworthy 480b25b7c8SPhil Edworthy /* interrupt groups */ 490b25b7c8SPhil Edworthy PINT, SCIF0, SCIF1, SCIF2, SCIF3, SCIF4, SCIF5, SCIF6, SCIF7, 500b25b7c8SPhil Edworthy }; 510b25b7c8SPhil Edworthy 520b25b7c8SPhil Edworthy static struct intc_vect vectors[] __initdata = { 530b25b7c8SPhil Edworthy INTC_IRQ(IRQ0, 64), INTC_IRQ(IRQ1, 65), 540b25b7c8SPhil Edworthy INTC_IRQ(IRQ2, 66), INTC_IRQ(IRQ3, 67), 550b25b7c8SPhil Edworthy INTC_IRQ(IRQ4, 68), INTC_IRQ(IRQ5, 69), 560b25b7c8SPhil Edworthy INTC_IRQ(IRQ6, 70), INTC_IRQ(IRQ7, 71), 570b25b7c8SPhil Edworthy 580b25b7c8SPhil Edworthy INTC_IRQ(PINT0, 80), INTC_IRQ(PINT1, 81), 590b25b7c8SPhil Edworthy INTC_IRQ(PINT2, 82), INTC_IRQ(PINT3, 83), 600b25b7c8SPhil Edworthy INTC_IRQ(PINT4, 84), INTC_IRQ(PINT5, 85), 610b25b7c8SPhil Edworthy INTC_IRQ(PINT6, 86), INTC_IRQ(PINT7, 87), 620b25b7c8SPhil Edworthy 630b25b7c8SPhil Edworthy INTC_IRQ(DMAC0, 108), INTC_IRQ(DMAC0, 109), 640b25b7c8SPhil Edworthy INTC_IRQ(DMAC1, 112), INTC_IRQ(DMAC1, 113), 650b25b7c8SPhil Edworthy INTC_IRQ(DMAC2, 116), INTC_IRQ(DMAC2, 117), 660b25b7c8SPhil Edworthy INTC_IRQ(DMAC3, 120), INTC_IRQ(DMAC3, 121), 670b25b7c8SPhil Edworthy INTC_IRQ(DMAC4, 124), INTC_IRQ(DMAC4, 125), 680b25b7c8SPhil Edworthy INTC_IRQ(DMAC5, 128), INTC_IRQ(DMAC5, 129), 690b25b7c8SPhil Edworthy INTC_IRQ(DMAC6, 132), INTC_IRQ(DMAC6, 133), 700b25b7c8SPhil Edworthy INTC_IRQ(DMAC7, 136), INTC_IRQ(DMAC7, 137), 710b25b7c8SPhil Edworthy INTC_IRQ(DMAC8, 140), INTC_IRQ(DMAC8, 141), 720b25b7c8SPhil Edworthy INTC_IRQ(DMAC9, 144), INTC_IRQ(DMAC9, 145), 730b25b7c8SPhil Edworthy INTC_IRQ(DMAC10, 148), INTC_IRQ(DMAC10, 149), 740b25b7c8SPhil Edworthy INTC_IRQ(DMAC11, 152), INTC_IRQ(DMAC11, 153), 750b25b7c8SPhil Edworthy INTC_IRQ(DMAC12, 156), INTC_IRQ(DMAC12, 157), 760b25b7c8SPhil Edworthy INTC_IRQ(DMAC13, 160), INTC_IRQ(DMAC13, 161), 770b25b7c8SPhil Edworthy INTC_IRQ(DMAC14, 164), INTC_IRQ(DMAC14, 165), 780b25b7c8SPhil Edworthy INTC_IRQ(DMAC15, 168), INTC_IRQ(DMAC15, 169), 790b25b7c8SPhil Edworthy 800b25b7c8SPhil Edworthy INTC_IRQ(USB, 170), 810b25b7c8SPhil Edworthy 820b25b7c8SPhil Edworthy INTC_IRQ(VDC4, 171), INTC_IRQ(VDC4, 172), 830b25b7c8SPhil Edworthy INTC_IRQ(VDC4, 173), INTC_IRQ(VDC4, 174), 840b25b7c8SPhil Edworthy INTC_IRQ(VDC4, 175), INTC_IRQ(VDC4, 176), 850b25b7c8SPhil Edworthy INTC_IRQ(VDC4, 177), INTC_IRQ(VDC4, 177), 860b25b7c8SPhil Edworthy 870b25b7c8SPhil Edworthy INTC_IRQ(CMT0, 188), INTC_IRQ(CMT1, 189), 880b25b7c8SPhil Edworthy 890b25b7c8SPhil Edworthy INTC_IRQ(BSC, 190), INTC_IRQ(WDT, 191), 900b25b7c8SPhil Edworthy 910b25b7c8SPhil Edworthy INTC_IRQ(MTU0_ABCD, 192), INTC_IRQ(MTU0_ABCD, 193), 920b25b7c8SPhil Edworthy INTC_IRQ(MTU0_ABCD, 194), INTC_IRQ(MTU0_ABCD, 195), 930b25b7c8SPhil Edworthy INTC_IRQ(MTU0_VEF, 196), INTC_IRQ(MTU0_VEF, 197), 940b25b7c8SPhil Edworthy INTC_IRQ(MTU0_VEF, 198), 950b25b7c8SPhil Edworthy INTC_IRQ(MTU1_AB, 199), INTC_IRQ(MTU1_AB, 200), 960b25b7c8SPhil Edworthy INTC_IRQ(MTU1_VU, 201), INTC_IRQ(MTU1_VU, 202), 970b25b7c8SPhil Edworthy INTC_IRQ(MTU2_AB, 203), INTC_IRQ(MTU2_AB, 204), 980b25b7c8SPhil Edworthy INTC_IRQ(MTU2_VU, 205), INTC_IRQ(MTU2_VU, 206), 990b25b7c8SPhil Edworthy INTC_IRQ(MTU3_ABCD, 207), INTC_IRQ(MTU3_ABCD, 208), 1000b25b7c8SPhil Edworthy INTC_IRQ(MTU3_ABCD, 209), INTC_IRQ(MTU3_ABCD, 210), 1010b25b7c8SPhil Edworthy INTC_IRQ(MTU3_TCI3V, 211), 1020b25b7c8SPhil Edworthy INTC_IRQ(MTU4_ABCD, 212), INTC_IRQ(MTU4_ABCD, 213), 1030b25b7c8SPhil Edworthy INTC_IRQ(MTU4_ABCD, 214), INTC_IRQ(MTU4_ABCD, 215), 1040b25b7c8SPhil Edworthy INTC_IRQ(MTU4_TCI4V, 216), 1050b25b7c8SPhil Edworthy 1060b25b7c8SPhil Edworthy INTC_IRQ(PWMT1, 217), INTC_IRQ(PWMT2, 218), 1070b25b7c8SPhil Edworthy 1080b25b7c8SPhil Edworthy INTC_IRQ(ADC_ADI, 223), 1090b25b7c8SPhil Edworthy 1100b25b7c8SPhil Edworthy INTC_IRQ(SSIF0, 224), INTC_IRQ(SSIF0, 225), 1110b25b7c8SPhil Edworthy INTC_IRQ(SSIF0, 226), 1120b25b7c8SPhil Edworthy INTC_IRQ(SSII1, 227), INTC_IRQ(SSII1, 228), 1130b25b7c8SPhil Edworthy INTC_IRQ(SSII2, 229), INTC_IRQ(SSII2, 230), 1140b25b7c8SPhil Edworthy INTC_IRQ(SSII3, 231), INTC_IRQ(SSII3, 232), 1150b25b7c8SPhil Edworthy INTC_IRQ(SSII4, 233), INTC_IRQ(SSII4, 234), 1160b25b7c8SPhil Edworthy INTC_IRQ(SSII5, 235), INTC_IRQ(SSII5, 236), 1170b25b7c8SPhil Edworthy 1180b25b7c8SPhil Edworthy INTC_IRQ(RSPDIF, 237), 1190b25b7c8SPhil Edworthy 1200b25b7c8SPhil Edworthy INTC_IRQ(IIC30, 238), INTC_IRQ(IIC30, 239), 1210b25b7c8SPhil Edworthy INTC_IRQ(IIC30, 240), INTC_IRQ(IIC30, 241), 1220b25b7c8SPhil Edworthy INTC_IRQ(IIC30, 242), 1230b25b7c8SPhil Edworthy INTC_IRQ(IIC31, 243), INTC_IRQ(IIC31, 244), 1240b25b7c8SPhil Edworthy INTC_IRQ(IIC31, 245), INTC_IRQ(IIC31, 246), 1250b25b7c8SPhil Edworthy INTC_IRQ(IIC31, 247), 1260b25b7c8SPhil Edworthy INTC_IRQ(IIC32, 248), INTC_IRQ(IIC32, 249), 1270b25b7c8SPhil Edworthy INTC_IRQ(IIC32, 250), INTC_IRQ(IIC32, 251), 1280b25b7c8SPhil Edworthy INTC_IRQ(IIC32, 252), 1290b25b7c8SPhil Edworthy INTC_IRQ(IIC33, 253), INTC_IRQ(IIC33, 254), 1300b25b7c8SPhil Edworthy INTC_IRQ(IIC33, 255), INTC_IRQ(IIC33, 256), 1310b25b7c8SPhil Edworthy INTC_IRQ(IIC33, 257), 1320b25b7c8SPhil Edworthy 1330b25b7c8SPhil Edworthy INTC_IRQ(SCIF0_BRI, 258), INTC_IRQ(SCIF0_ERI, 259), 1340b25b7c8SPhil Edworthy INTC_IRQ(SCIF0_RXI, 260), INTC_IRQ(SCIF0_TXI, 261), 1350b25b7c8SPhil Edworthy INTC_IRQ(SCIF1_BRI, 262), INTC_IRQ(SCIF1_ERI, 263), 1360b25b7c8SPhil Edworthy INTC_IRQ(SCIF1_RXI, 264), INTC_IRQ(SCIF1_TXI, 265), 1370b25b7c8SPhil Edworthy INTC_IRQ(SCIF2_BRI, 266), INTC_IRQ(SCIF2_ERI, 267), 1380b25b7c8SPhil Edworthy INTC_IRQ(SCIF2_RXI, 268), INTC_IRQ(SCIF2_TXI, 269), 1390b25b7c8SPhil Edworthy INTC_IRQ(SCIF3_BRI, 270), INTC_IRQ(SCIF3_ERI, 271), 1400b25b7c8SPhil Edworthy INTC_IRQ(SCIF3_RXI, 272), INTC_IRQ(SCIF3_TXI, 273), 1410b25b7c8SPhil Edworthy INTC_IRQ(SCIF4_BRI, 274), INTC_IRQ(SCIF4_ERI, 275), 1420b25b7c8SPhil Edworthy INTC_IRQ(SCIF4_RXI, 276), INTC_IRQ(SCIF4_TXI, 277), 1430b25b7c8SPhil Edworthy INTC_IRQ(SCIF5_BRI, 278), INTC_IRQ(SCIF5_ERI, 279), 1440b25b7c8SPhil Edworthy INTC_IRQ(SCIF5_RXI, 280), INTC_IRQ(SCIF5_TXI, 281), 1450b25b7c8SPhil Edworthy INTC_IRQ(SCIF6_BRI, 282), INTC_IRQ(SCIF6_ERI, 283), 1460b25b7c8SPhil Edworthy INTC_IRQ(SCIF6_RXI, 284), INTC_IRQ(SCIF6_TXI, 285), 1470b25b7c8SPhil Edworthy INTC_IRQ(SCIF7_BRI, 286), INTC_IRQ(SCIF7_ERI, 287), 1480b25b7c8SPhil Edworthy INTC_IRQ(SCIF7_RXI, 288), INTC_IRQ(SCIF7_TXI, 289), 1490b25b7c8SPhil Edworthy 1500b25b7c8SPhil Edworthy INTC_IRQ(RCAN0, 291), INTC_IRQ(RCAN0, 292), 1510b25b7c8SPhil Edworthy INTC_IRQ(RCAN0, 293), INTC_IRQ(RCAN0, 294), 1520b25b7c8SPhil Edworthy INTC_IRQ(RCAN0, 295), 1530b25b7c8SPhil Edworthy INTC_IRQ(RCAN1, 296), INTC_IRQ(RCAN1, 297), 1540b25b7c8SPhil Edworthy INTC_IRQ(RCAN1, 298), INTC_IRQ(RCAN1, 299), 1550b25b7c8SPhil Edworthy INTC_IRQ(RCAN1, 300), 1560b25b7c8SPhil Edworthy INTC_IRQ(RCAN2, 301), INTC_IRQ(RCAN2, 302), 1570b25b7c8SPhil Edworthy INTC_IRQ(RCAN2, 303), INTC_IRQ(RCAN2, 304), 1580b25b7c8SPhil Edworthy INTC_IRQ(RCAN2, 305), 1590b25b7c8SPhil Edworthy 1600b25b7c8SPhil Edworthy INTC_IRQ(RSPIC0, 306), INTC_IRQ(RSPIC0, 307), 1610b25b7c8SPhil Edworthy INTC_IRQ(RSPIC0, 308), 1620b25b7c8SPhil Edworthy INTC_IRQ(RSPIC1, 309), INTC_IRQ(RSPIC1, 310), 1630b25b7c8SPhil Edworthy INTC_IRQ(RSPIC1, 311), 1640b25b7c8SPhil Edworthy 1650b25b7c8SPhil Edworthy INTC_IRQ(IEBC, 318), 1660b25b7c8SPhil Edworthy 1670b25b7c8SPhil Edworthy INTC_IRQ(CD_ROMD, 319), INTC_IRQ(CD_ROMD, 320), 1680b25b7c8SPhil Edworthy INTC_IRQ(CD_ROMD, 321), INTC_IRQ(CD_ROMD, 322), 1690b25b7c8SPhil Edworthy INTC_IRQ(CD_ROMD, 323), INTC_IRQ(CD_ROMD, 324), 1700b25b7c8SPhil Edworthy 1710b25b7c8SPhil Edworthy INTC_IRQ(NFMC, 325), INTC_IRQ(NFMC, 326), 1720b25b7c8SPhil Edworthy INTC_IRQ(NFMC, 327), INTC_IRQ(NFMC, 328), 1730b25b7c8SPhil Edworthy 1740b25b7c8SPhil Edworthy INTC_IRQ(SDHI0, 332), INTC_IRQ(SDHI0, 333), 1750b25b7c8SPhil Edworthy INTC_IRQ(SDHI0, 334), 1760b25b7c8SPhil Edworthy INTC_IRQ(SDHI1, 335), INTC_IRQ(SDHI1, 336), 1770b25b7c8SPhil Edworthy INTC_IRQ(SDHI1, 337), 1780b25b7c8SPhil Edworthy 1790b25b7c8SPhil Edworthy INTC_IRQ(RTC, 338), INTC_IRQ(RTC, 339), 1800b25b7c8SPhil Edworthy INTC_IRQ(RTC, 340), 1810b25b7c8SPhil Edworthy 1820b25b7c8SPhil Edworthy INTC_IRQ(SRCC0, 341), INTC_IRQ(SRCC0, 342), 1830b25b7c8SPhil Edworthy INTC_IRQ(SRCC0, 343), INTC_IRQ(SRCC0, 344), 1840b25b7c8SPhil Edworthy INTC_IRQ(SRCC0, 345), 1850b25b7c8SPhil Edworthy INTC_IRQ(SRCC1, 346), INTC_IRQ(SRCC1, 347), 1860b25b7c8SPhil Edworthy INTC_IRQ(SRCC1, 348), INTC_IRQ(SRCC1, 349), 1870b25b7c8SPhil Edworthy INTC_IRQ(SRCC1, 350), 1880b25b7c8SPhil Edworthy INTC_IRQ(SRCC2, 351), INTC_IRQ(SRCC2, 352), 1890b25b7c8SPhil Edworthy INTC_IRQ(SRCC2, 353), INTC_IRQ(SRCC2, 354), 1900b25b7c8SPhil Edworthy INTC_IRQ(SRCC2, 355), 1910b25b7c8SPhil Edworthy }; 1920b25b7c8SPhil Edworthy 1930b25b7c8SPhil Edworthy static struct intc_group groups[] __initdata = { 1940b25b7c8SPhil Edworthy INTC_GROUP(PINT, PINT0, PINT1, PINT2, PINT3, 1950b25b7c8SPhil Edworthy PINT4, PINT5, PINT6, PINT7), 1960b25b7c8SPhil Edworthy INTC_GROUP(SCIF0, SCIF0_BRI, SCIF0_ERI, SCIF0_RXI, SCIF0_TXI), 1970b25b7c8SPhil Edworthy INTC_GROUP(SCIF1, SCIF1_BRI, SCIF1_ERI, SCIF1_RXI, SCIF1_TXI), 1980b25b7c8SPhil Edworthy INTC_GROUP(SCIF2, SCIF2_BRI, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI), 1990b25b7c8SPhil Edworthy INTC_GROUP(SCIF3, SCIF3_BRI, SCIF3_ERI, SCIF3_RXI, SCIF3_TXI), 2000b25b7c8SPhil Edworthy INTC_GROUP(SCIF4, SCIF4_BRI, SCIF4_ERI, SCIF4_RXI, SCIF4_TXI), 2010b25b7c8SPhil Edworthy INTC_GROUP(SCIF5, SCIF5_BRI, SCIF5_ERI, SCIF5_RXI, SCIF5_TXI), 2020b25b7c8SPhil Edworthy INTC_GROUP(SCIF6, SCIF6_BRI, SCIF6_ERI, SCIF6_RXI, SCIF6_TXI), 2030b25b7c8SPhil Edworthy INTC_GROUP(SCIF7, SCIF7_BRI, SCIF7_ERI, SCIF7_RXI, SCIF7_TXI), 2040b25b7c8SPhil Edworthy }; 2050b25b7c8SPhil Edworthy 2060b25b7c8SPhil Edworthy static struct intc_prio_reg prio_registers[] __initdata = { 2070b25b7c8SPhil Edworthy { 0xfffe0818, 0, 16, 4, /* IPR01 */ { IRQ0, IRQ1, IRQ2, IRQ3 } }, 2080b25b7c8SPhil Edworthy { 0xfffe081a, 0, 16, 4, /* IPR02 */ { IRQ4, IRQ5, IRQ6, IRQ7 } }, 2090b25b7c8SPhil Edworthy { 0xfffe0820, 0, 16, 4, /* IPR05 */ { PINT, 0, 0, 0 } }, 2100b25b7c8SPhil Edworthy { 0xfffe0c00, 0, 16, 4, /* IPR06 */ { DMAC0, DMAC1, DMAC2, DMAC3 } }, 2110b25b7c8SPhil Edworthy { 0xfffe0c02, 0, 16, 4, /* IPR07 */ { DMAC4, DMAC5, DMAC6, DMAC7 } }, 2120b25b7c8SPhil Edworthy { 0xfffe0c04, 0, 16, 4, /* IPR08 */ { DMAC8, DMAC9, 2130b25b7c8SPhil Edworthy DMAC10, DMAC11 } }, 2140b25b7c8SPhil Edworthy { 0xfffe0c06, 0, 16, 4, /* IPR09 */ { DMAC12, DMAC13, 2150b25b7c8SPhil Edworthy DMAC14, DMAC15 } }, 2160b25b7c8SPhil Edworthy { 0xfffe0c08, 0, 16, 4, /* IPR10 */ { USB, VDC4, VDC4, VDC4 } }, 2170b25b7c8SPhil Edworthy { 0xfffe0c0a, 0, 16, 4, /* IPR11 */ { 0, 0, 0, 0 } }, 2180b25b7c8SPhil Edworthy { 0xfffe0c0c, 0, 16, 4, /* IPR12 */ { CMT0, CMT1, BSC, WDT } }, 2190b25b7c8SPhil Edworthy { 0xfffe0c0e, 0, 16, 4, /* IPR13 */ { MTU0_ABCD, MTU0_VEF, 2200b25b7c8SPhil Edworthy MTU1_AB, MTU1_VU } }, 2210b25b7c8SPhil Edworthy { 0xfffe0c10, 0, 16, 4, /* IPR14 */ { MTU2_AB, MTU2_VU, 2220b25b7c8SPhil Edworthy MTU3_ABCD, MTU3_TCI3V } }, 2230b25b7c8SPhil Edworthy { 0xfffe0c12, 0, 16, 4, /* IPR15 */ { MTU4_ABCD, MTU4_TCI4V, 2240b25b7c8SPhil Edworthy PWMT1, PWMT2 } }, 2250b25b7c8SPhil Edworthy { 0xfffe0c14, 0, 16, 4, /* IPR16 */ { 0, 0, 0, 0 } }, 2260b25b7c8SPhil Edworthy { 0xfffe0c16, 0, 16, 4, /* IPR17 */ { ADC_ADI, SSIF0, SSII1, SSII2 } }, 2270b25b7c8SPhil Edworthy { 0xfffe0c18, 0, 16, 4, /* IPR18 */ { SSII3, SSII4, SSII5, RSPDIF} }, 2280b25b7c8SPhil Edworthy { 0xfffe0c1a, 0, 16, 4, /* IPR19 */ { IIC30, IIC31, IIC32, IIC33 } }, 2290b25b7c8SPhil Edworthy { 0xfffe0c1c, 0, 16, 4, /* IPR20 */ { SCIF0, SCIF1, SCIF2, SCIF3 } }, 2300b25b7c8SPhil Edworthy { 0xfffe0c1e, 0, 16, 4, /* IPR21 */ { SCIF4, SCIF5, SCIF6, SCIF7 } }, 2310b25b7c8SPhil Edworthy { 0xfffe0c20, 0, 16, 4, /* IPR22 */ { 0, RCAN0, RCAN1, RCAN2 } }, 2320b25b7c8SPhil Edworthy { 0xfffe0c22, 0, 16, 4, /* IPR23 */ { RSPIC0, RSPIC1, 0, 0 } }, 2330b25b7c8SPhil Edworthy { 0xfffe0c24, 0, 16, 4, /* IPR24 */ { IEBC, CD_ROMD, NFMC, 0 } }, 2340b25b7c8SPhil Edworthy { 0xfffe0c26, 0, 16, 4, /* IPR25 */ { SDHI0, SDHI1, RTC, 0 } }, 2350b25b7c8SPhil Edworthy { 0xfffe0c28, 0, 16, 4, /* IPR26 */ { SRCC0, SRCC1, SRCC2, 0 } }, 2360b25b7c8SPhil Edworthy }; 2370b25b7c8SPhil Edworthy 2380b25b7c8SPhil Edworthy static struct intc_mask_reg mask_registers[] __initdata = { 2390b25b7c8SPhil Edworthy { 0xfffe0808, 0, 16, /* PINTER */ 2400b25b7c8SPhil Edworthy { 0, 0, 0, 0, 0, 0, 0, 0, 2410b25b7c8SPhil Edworthy PINT7, PINT6, PINT5, PINT4, PINT3, PINT2, PINT1, PINT0 } }, 2420b25b7c8SPhil Edworthy }; 2430b25b7c8SPhil Edworthy 2440b25b7c8SPhil Edworthy static DECLARE_INTC_DESC(intc_desc, "sh7269", vectors, groups, 2450b25b7c8SPhil Edworthy mask_registers, prio_registers, NULL); 2460b25b7c8SPhil Edworthy 2470b25b7c8SPhil Edworthy static struct plat_sci_port scif0_platform_data = { 2481b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 2490b25b7c8SPhil Edworthy .type = PORT_SCIF, 2500b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 2510b25b7c8SPhil Edworthy }; 2520b25b7c8SPhil Edworthy 253d850acf9SLaurent Pinchart static struct resource scif0_resources[] = { 254d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8007000, 0x100), 255d850acf9SLaurent Pinchart DEFINE_RES_IRQ(259), 256d850acf9SLaurent Pinchart DEFINE_RES_IRQ(260), 257d850acf9SLaurent Pinchart DEFINE_RES_IRQ(261), 258d850acf9SLaurent Pinchart DEFINE_RES_IRQ(258), 259d850acf9SLaurent Pinchart }; 260d850acf9SLaurent Pinchart 2610b25b7c8SPhil Edworthy static struct platform_device scif0_device = { 2620b25b7c8SPhil Edworthy .name = "sh-sci", 2630b25b7c8SPhil Edworthy .id = 0, 264d850acf9SLaurent Pinchart .resource = scif0_resources, 265d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif0_resources), 2660b25b7c8SPhil Edworthy .dev = { 2670b25b7c8SPhil Edworthy .platform_data = &scif0_platform_data, 2680b25b7c8SPhil Edworthy }, 2690b25b7c8SPhil Edworthy }; 2700b25b7c8SPhil Edworthy 2710b25b7c8SPhil Edworthy static struct plat_sci_port scif1_platform_data = { 2721b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 2730b25b7c8SPhil Edworthy .type = PORT_SCIF, 2740b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 2750b25b7c8SPhil Edworthy }; 2760b25b7c8SPhil Edworthy 277d850acf9SLaurent Pinchart static struct resource scif1_resources[] = { 278d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8007800, 0x100), 279d850acf9SLaurent Pinchart DEFINE_RES_IRQ(263), 280d850acf9SLaurent Pinchart DEFINE_RES_IRQ(264), 281d850acf9SLaurent Pinchart DEFINE_RES_IRQ(265), 282d850acf9SLaurent Pinchart DEFINE_RES_IRQ(262), 283d850acf9SLaurent Pinchart }; 284d850acf9SLaurent Pinchart 2850b25b7c8SPhil Edworthy static struct platform_device scif1_device = { 2860b25b7c8SPhil Edworthy .name = "sh-sci", 2870b25b7c8SPhil Edworthy .id = 1, 288d850acf9SLaurent Pinchart .resource = scif1_resources, 289d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif1_resources), 2900b25b7c8SPhil Edworthy .dev = { 2910b25b7c8SPhil Edworthy .platform_data = &scif1_platform_data, 2920b25b7c8SPhil Edworthy }, 2930b25b7c8SPhil Edworthy }; 2940b25b7c8SPhil Edworthy 2950b25b7c8SPhil Edworthy static struct plat_sci_port scif2_platform_data = { 2961b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 2970b25b7c8SPhil Edworthy .type = PORT_SCIF, 2980b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 2990b25b7c8SPhil Edworthy }; 3000b25b7c8SPhil Edworthy 301d850acf9SLaurent Pinchart static struct resource scif2_resources[] = { 302d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8008000, 0x100), 303d850acf9SLaurent Pinchart DEFINE_RES_IRQ(267), 304d850acf9SLaurent Pinchart DEFINE_RES_IRQ(268), 305d850acf9SLaurent Pinchart DEFINE_RES_IRQ(269), 306d850acf9SLaurent Pinchart DEFINE_RES_IRQ(266), 307d850acf9SLaurent Pinchart }; 308d850acf9SLaurent Pinchart 3090b25b7c8SPhil Edworthy static struct platform_device scif2_device = { 3100b25b7c8SPhil Edworthy .name = "sh-sci", 3110b25b7c8SPhil Edworthy .id = 2, 312d850acf9SLaurent Pinchart .resource = scif2_resources, 313d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif2_resources), 3140b25b7c8SPhil Edworthy .dev = { 3150b25b7c8SPhil Edworthy .platform_data = &scif2_platform_data, 3160b25b7c8SPhil Edworthy }, 3170b25b7c8SPhil Edworthy }; 3180b25b7c8SPhil Edworthy 3190b25b7c8SPhil Edworthy static struct plat_sci_port scif3_platform_data = { 3201b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 3210b25b7c8SPhil Edworthy .type = PORT_SCIF, 3220b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 3230b25b7c8SPhil Edworthy }; 3240b25b7c8SPhil Edworthy 325d850acf9SLaurent Pinchart static struct resource scif3_resources[] = { 326d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8008800, 0x100), 327d850acf9SLaurent Pinchart DEFINE_RES_IRQ(271), 328d850acf9SLaurent Pinchart DEFINE_RES_IRQ(272), 329d850acf9SLaurent Pinchart DEFINE_RES_IRQ(273), 330d850acf9SLaurent Pinchart DEFINE_RES_IRQ(270), 331d850acf9SLaurent Pinchart }; 332d850acf9SLaurent Pinchart 3330b25b7c8SPhil Edworthy static struct platform_device scif3_device = { 3340b25b7c8SPhil Edworthy .name = "sh-sci", 3350b25b7c8SPhil Edworthy .id = 3, 336d850acf9SLaurent Pinchart .resource = scif3_resources, 337d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif3_resources), 3380b25b7c8SPhil Edworthy .dev = { 3390b25b7c8SPhil Edworthy .platform_data = &scif3_platform_data, 3400b25b7c8SPhil Edworthy }, 3410b25b7c8SPhil Edworthy }; 3420b25b7c8SPhil Edworthy 3430b25b7c8SPhil Edworthy static struct plat_sci_port scif4_platform_data = { 3441b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 3450b25b7c8SPhil Edworthy .type = PORT_SCIF, 3460b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 3470b25b7c8SPhil Edworthy }; 3480b25b7c8SPhil Edworthy 349d850acf9SLaurent Pinchart static struct resource scif4_resources[] = { 350d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8009000, 0x100), 351d850acf9SLaurent Pinchart DEFINE_RES_IRQ(275), 352d850acf9SLaurent Pinchart DEFINE_RES_IRQ(276), 353d850acf9SLaurent Pinchart DEFINE_RES_IRQ(277), 354d850acf9SLaurent Pinchart DEFINE_RES_IRQ(274), 355d850acf9SLaurent Pinchart }; 356d850acf9SLaurent Pinchart 3570b25b7c8SPhil Edworthy static struct platform_device scif4_device = { 3580b25b7c8SPhil Edworthy .name = "sh-sci", 3590b25b7c8SPhil Edworthy .id = 4, 360d850acf9SLaurent Pinchart .resource = scif4_resources, 361d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif4_resources), 3620b25b7c8SPhil Edworthy .dev = { 3630b25b7c8SPhil Edworthy .platform_data = &scif4_platform_data, 3640b25b7c8SPhil Edworthy }, 3650b25b7c8SPhil Edworthy }; 3660b25b7c8SPhil Edworthy 3670b25b7c8SPhil Edworthy static struct plat_sci_port scif5_platform_data = { 3681b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 3690b25b7c8SPhil Edworthy .type = PORT_SCIF, 3700b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 3710b25b7c8SPhil Edworthy }; 3720b25b7c8SPhil Edworthy 373d850acf9SLaurent Pinchart static struct resource scif5_resources[] = { 374d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe8009800, 0x100), 375d850acf9SLaurent Pinchart DEFINE_RES_IRQ(279), 376d850acf9SLaurent Pinchart DEFINE_RES_IRQ(280), 377d850acf9SLaurent Pinchart DEFINE_RES_IRQ(281), 378d850acf9SLaurent Pinchart DEFINE_RES_IRQ(278), 379d850acf9SLaurent Pinchart }; 380d850acf9SLaurent Pinchart 3810b25b7c8SPhil Edworthy static struct platform_device scif5_device = { 3820b25b7c8SPhil Edworthy .name = "sh-sci", 3830b25b7c8SPhil Edworthy .id = 5, 384d850acf9SLaurent Pinchart .resource = scif5_resources, 385d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif5_resources), 3860b25b7c8SPhil Edworthy .dev = { 3870b25b7c8SPhil Edworthy .platform_data = &scif5_platform_data, 3880b25b7c8SPhil Edworthy }, 3890b25b7c8SPhil Edworthy }; 3900b25b7c8SPhil Edworthy 3910b25b7c8SPhil Edworthy static struct plat_sci_port scif6_platform_data = { 3921b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 3930b25b7c8SPhil Edworthy .type = PORT_SCIF, 3940b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 3950b25b7c8SPhil Edworthy }; 3960b25b7c8SPhil Edworthy 397d850acf9SLaurent Pinchart static struct resource scif6_resources[] = { 398d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe800a000, 0x100), 399d850acf9SLaurent Pinchart DEFINE_RES_IRQ(283), 400d850acf9SLaurent Pinchart DEFINE_RES_IRQ(284), 401d850acf9SLaurent Pinchart DEFINE_RES_IRQ(285), 402d850acf9SLaurent Pinchart DEFINE_RES_IRQ(282), 403d850acf9SLaurent Pinchart }; 404d850acf9SLaurent Pinchart 4050b25b7c8SPhil Edworthy static struct platform_device scif6_device = { 4060b25b7c8SPhil Edworthy .name = "sh-sci", 4070b25b7c8SPhil Edworthy .id = 6, 408d850acf9SLaurent Pinchart .resource = scif6_resources, 409d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif6_resources), 4100b25b7c8SPhil Edworthy .dev = { 4110b25b7c8SPhil Edworthy .platform_data = &scif6_platform_data, 4120b25b7c8SPhil Edworthy }, 4130b25b7c8SPhil Edworthy }; 4140b25b7c8SPhil Edworthy 4150b25b7c8SPhil Edworthy static struct plat_sci_port scif7_platform_data = { 4161b10b885SLaurent Pinchart .scscr = SCSCR_REIE, 4170b25b7c8SPhil Edworthy .type = PORT_SCIF, 4180b25b7c8SPhil Edworthy .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, 4190b25b7c8SPhil Edworthy }; 4200b25b7c8SPhil Edworthy 421d850acf9SLaurent Pinchart static struct resource scif7_resources[] = { 422d850acf9SLaurent Pinchart DEFINE_RES_MEM(0xe800a800, 0x100), 423d850acf9SLaurent Pinchart DEFINE_RES_IRQ(287), 424d850acf9SLaurent Pinchart DEFINE_RES_IRQ(288), 425d850acf9SLaurent Pinchart DEFINE_RES_IRQ(289), 426d850acf9SLaurent Pinchart DEFINE_RES_IRQ(286), 427d850acf9SLaurent Pinchart }; 428d850acf9SLaurent Pinchart 4290b25b7c8SPhil Edworthy static struct platform_device scif7_device = { 4300b25b7c8SPhil Edworthy .name = "sh-sci", 4310b25b7c8SPhil Edworthy .id = 7, 432d850acf9SLaurent Pinchart .resource = scif7_resources, 433d850acf9SLaurent Pinchart .num_resources = ARRAY_SIZE(scif7_resources), 4340b25b7c8SPhil Edworthy .dev = { 4350b25b7c8SPhil Edworthy .platform_data = &scif7_platform_data, 4360b25b7c8SPhil Edworthy }, 4370b25b7c8SPhil Edworthy }; 4380b25b7c8SPhil Edworthy 4399b17e48cSLaurent Pinchart static struct sh_timer_config cmt_platform_data = { 4409b17e48cSLaurent Pinchart .channels_mask = 3, 4410b25b7c8SPhil Edworthy }; 4420b25b7c8SPhil Edworthy 4439b17e48cSLaurent Pinchart static struct resource cmt_resources[] = { 4449b17e48cSLaurent Pinchart DEFINE_RES_MEM(0xfffec000, 0x10), 4459b17e48cSLaurent Pinchart DEFINE_RES_IRQ(188), 4469b17e48cSLaurent Pinchart DEFINE_RES_IRQ(189), 4470b25b7c8SPhil Edworthy }; 4480b25b7c8SPhil Edworthy 4499b17e48cSLaurent Pinchart static struct platform_device cmt_device = { 4509b17e48cSLaurent Pinchart .name = "sh-cmt-16", 4510b25b7c8SPhil Edworthy .id = 0, 4520b25b7c8SPhil Edworthy .dev = { 4539b17e48cSLaurent Pinchart .platform_data = &cmt_platform_data, 4540b25b7c8SPhil Edworthy }, 4559b17e48cSLaurent Pinchart .resource = cmt_resources, 4569b17e48cSLaurent Pinchart .num_resources = ARRAY_SIZE(cmt_resources), 4570b25b7c8SPhil Edworthy }; 4580b25b7c8SPhil Edworthy 4595204601cSLaurent Pinchart static struct resource mtu2_resources[] = { 4605204601cSLaurent Pinchart DEFINE_RES_MEM(0xfffe4000, 0x400), 4615204601cSLaurent Pinchart DEFINE_RES_IRQ_NAMED(192, "tgi0a"), 4625204601cSLaurent Pinchart DEFINE_RES_IRQ_NAMED(203, "tgi1a"), 4630b25b7c8SPhil Edworthy }; 4640b25b7c8SPhil Edworthy 4655204601cSLaurent Pinchart static struct platform_device mtu2_device = { 4665204601cSLaurent Pinchart .name = "sh-mtu2", 4675204601cSLaurent Pinchart .id = -1, 4685204601cSLaurent Pinchart .resource = mtu2_resources, 4695204601cSLaurent Pinchart .num_resources = ARRAY_SIZE(mtu2_resources), 4700b25b7c8SPhil Edworthy }; 4710b25b7c8SPhil Edworthy 4720b25b7c8SPhil Edworthy static struct resource rtc_resources[] = { 4730b25b7c8SPhil Edworthy [0] = { 4740b25b7c8SPhil Edworthy .start = 0xfffe6000, 4750b25b7c8SPhil Edworthy .end = 0xfffe6000 + 0x30 - 1, 4760b25b7c8SPhil Edworthy .flags = IORESOURCE_IO, 4770b25b7c8SPhil Edworthy }, 4780b25b7c8SPhil Edworthy [1] = { 4790b25b7c8SPhil Edworthy /* Shared Period/Carry/Alarm IRQ */ 4800b25b7c8SPhil Edworthy .start = 338, 4810b25b7c8SPhil Edworthy .flags = IORESOURCE_IRQ, 4820b25b7c8SPhil Edworthy }, 4830b25b7c8SPhil Edworthy }; 4840b25b7c8SPhil Edworthy 4850b25b7c8SPhil Edworthy static struct platform_device rtc_device = { 4860b25b7c8SPhil Edworthy .name = "sh-rtc", 4870b25b7c8SPhil Edworthy .id = -1, 4880b25b7c8SPhil Edworthy .num_resources = ARRAY_SIZE(rtc_resources), 4890b25b7c8SPhil Edworthy .resource = rtc_resources, 4900b25b7c8SPhil Edworthy }; 4910b25b7c8SPhil Edworthy 4920b25b7c8SPhil Edworthy /* USB Host */ 4930b25b7c8SPhil Edworthy static struct r8a66597_platdata r8a66597_data = { 4940b25b7c8SPhil Edworthy .on_chip = 1, 4950b25b7c8SPhil Edworthy .endian = 1, 4960b25b7c8SPhil Edworthy }; 4970b25b7c8SPhil Edworthy 4980b25b7c8SPhil Edworthy static struct resource r8a66597_usb_host_resources[] = { 4990b25b7c8SPhil Edworthy [0] = { 5000b25b7c8SPhil Edworthy .start = 0xe8010000, 5010b25b7c8SPhil Edworthy .end = 0xe80100e4, 5020b25b7c8SPhil Edworthy .flags = IORESOURCE_MEM, 5030b25b7c8SPhil Edworthy }, 5040b25b7c8SPhil Edworthy [1] = { 5050b25b7c8SPhil Edworthy .start = 170, 5060b25b7c8SPhil Edworthy .end = 170, 5070b25b7c8SPhil Edworthy .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, 5080b25b7c8SPhil Edworthy }, 5090b25b7c8SPhil Edworthy }; 5100b25b7c8SPhil Edworthy 5110b25b7c8SPhil Edworthy static struct platform_device r8a66597_usb_host_device = { 5120b25b7c8SPhil Edworthy .name = "r8a66597_hcd", 5130b25b7c8SPhil Edworthy .id = 0, 5140b25b7c8SPhil Edworthy .dev = { 5150b25b7c8SPhil Edworthy .dma_mask = NULL, /* not use dma */ 5160b25b7c8SPhil Edworthy .coherent_dma_mask = 0xffffffff, 5170b25b7c8SPhil Edworthy .platform_data = &r8a66597_data, 5180b25b7c8SPhil Edworthy }, 5190b25b7c8SPhil Edworthy .num_resources = ARRAY_SIZE(r8a66597_usb_host_resources), 5200b25b7c8SPhil Edworthy .resource = r8a66597_usb_host_resources, 5210b25b7c8SPhil Edworthy }; 5220b25b7c8SPhil Edworthy 5230b25b7c8SPhil Edworthy static struct platform_device *sh7269_devices[] __initdata = { 5240b25b7c8SPhil Edworthy &scif0_device, 5250b25b7c8SPhil Edworthy &scif1_device, 5260b25b7c8SPhil Edworthy &scif2_device, 5270b25b7c8SPhil Edworthy &scif3_device, 5280b25b7c8SPhil Edworthy &scif4_device, 5290b25b7c8SPhil Edworthy &scif5_device, 5300b25b7c8SPhil Edworthy &scif6_device, 5310b25b7c8SPhil Edworthy &scif7_device, 5329b17e48cSLaurent Pinchart &cmt_device, 5335204601cSLaurent Pinchart &mtu2_device, 5340b25b7c8SPhil Edworthy &rtc_device, 5350b25b7c8SPhil Edworthy &r8a66597_usb_host_device, 5360b25b7c8SPhil Edworthy }; 5370b25b7c8SPhil Edworthy 5380b25b7c8SPhil Edworthy static int __init sh7269_devices_setup(void) 5390b25b7c8SPhil Edworthy { 5400b25b7c8SPhil Edworthy return platform_add_devices(sh7269_devices, 5410b25b7c8SPhil Edworthy ARRAY_SIZE(sh7269_devices)); 5420b25b7c8SPhil Edworthy } 5430b25b7c8SPhil Edworthy arch_initcall(sh7269_devices_setup); 5440b25b7c8SPhil Edworthy 5450b25b7c8SPhil Edworthy void __init plat_irq_setup(void) 5460b25b7c8SPhil Edworthy { 5470b25b7c8SPhil Edworthy register_intc_controller(&intc_desc); 5480b25b7c8SPhil Edworthy } 5490b25b7c8SPhil Edworthy 5500b25b7c8SPhil Edworthy static struct platform_device *sh7269_early_devices[] __initdata = { 5510b25b7c8SPhil Edworthy &scif0_device, 5520b25b7c8SPhil Edworthy &scif1_device, 5530b25b7c8SPhil Edworthy &scif2_device, 5540b25b7c8SPhil Edworthy &scif3_device, 5550b25b7c8SPhil Edworthy &scif4_device, 5560b25b7c8SPhil Edworthy &scif5_device, 5570b25b7c8SPhil Edworthy &scif6_device, 5580b25b7c8SPhil Edworthy &scif7_device, 5599b17e48cSLaurent Pinchart &cmt_device, 5605204601cSLaurent Pinchart &mtu2_device, 5610b25b7c8SPhil Edworthy }; 5620b25b7c8SPhil Edworthy 5630b25b7c8SPhil Edworthy void __init plat_early_device_setup(void) 5640b25b7c8SPhil Edworthy { 5650b25b7c8SPhil Edworthy early_platform_add_devices(sh7269_early_devices, 5660b25b7c8SPhil Edworthy ARRAY_SIZE(sh7269_early_devices)); 5670b25b7c8SPhil Edworthy } 568