1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0 */ 27a7d246dSNobuhiro Iwamatsu /* 37a7d246dSNobuhiro Iwamatsu * Copyright (C) 2012 Renesas Solutions Corp. 47a7d246dSNobuhiro Iwamatsu */ 57a7d246dSNobuhiro Iwamatsu 67a7d246dSNobuhiro Iwamatsu #ifndef __ASM_ARCH_R8A7740_H 77a7d246dSNobuhiro Iwamatsu #define __ASM_ARCH_R8A7740_H 87a7d246dSNobuhiro Iwamatsu 97a7d246dSNobuhiro Iwamatsu /* 107a7d246dSNobuhiro Iwamatsu * R8A7740 I/O Addresses 117a7d246dSNobuhiro Iwamatsu */ 127a7d246dSNobuhiro Iwamatsu 137a7d246dSNobuhiro Iwamatsu #define MERAM_BASE 0xE5580000 147a7d246dSNobuhiro Iwamatsu #define DDRP_BASE 0xC12A0000 157a7d246dSNobuhiro Iwamatsu #define HPB_BASE 0xE6000000 167a7d246dSNobuhiro Iwamatsu #define RWDT0_BASE 0xE6020000 177a7d246dSNobuhiro Iwamatsu #define RWDT1_BASE 0xE6030000 187a7d246dSNobuhiro Iwamatsu #define GPIO_BASE 0xE6050000 197a7d246dSNobuhiro Iwamatsu #define CMT1_BASE 0xE6138000 207a7d246dSNobuhiro Iwamatsu #define CPG_BASE 0xE6150000 217a7d246dSNobuhiro Iwamatsu #define SYSC_BASE 0xE6180000 227a7d246dSNobuhiro Iwamatsu #define SDHI0_BASE 0xE6850000 237a7d246dSNobuhiro Iwamatsu #define SDHI1_BASE 0xE6860000 247a7d246dSNobuhiro Iwamatsu #define MMCIF_BASE 0xE6BD0000 257a7d246dSNobuhiro Iwamatsu #define SCIF5_BASE 0xE6CB0000 267a7d246dSNobuhiro Iwamatsu #define SCIF6_BASE 0xE6CC0000 277a7d246dSNobuhiro Iwamatsu #define DBSC_BASE 0xFE400000 287a7d246dSNobuhiro Iwamatsu #define BSC_BASE 0xFEC10000 297a7d246dSNobuhiro Iwamatsu #define I2C0_BASE 0xFFF20000 307a7d246dSNobuhiro Iwamatsu #define I2C1_BASE 0xE6C20000 317a7d246dSNobuhiro Iwamatsu #define TMU_BASE 0xFFF80000 327a7d246dSNobuhiro Iwamatsu 337a7d246dSNobuhiro Iwamatsu #ifndef __ASSEMBLY__ 347a7d246dSNobuhiro Iwamatsu #include <asm/types.h> 357a7d246dSNobuhiro Iwamatsu 367a7d246dSNobuhiro Iwamatsu /* RWDT */ 377a7d246dSNobuhiro Iwamatsu struct r8a7740_rwdt { 387a7d246dSNobuhiro Iwamatsu u16 rwtcnt0; /* 0x00 */ 397a7d246dSNobuhiro Iwamatsu u16 dummy0; /* 0x02 */ 407a7d246dSNobuhiro Iwamatsu u16 rwtcsra0; /* 0x04 */ 417a7d246dSNobuhiro Iwamatsu u16 dummy1; /* 0x06 */ 427a7d246dSNobuhiro Iwamatsu u16 rwtcsrb0; /* 0x08 */ 437a7d246dSNobuhiro Iwamatsu u16 dummy2; /* 0x0A */ 447a7d246dSNobuhiro Iwamatsu }; 457a7d246dSNobuhiro Iwamatsu 467a7d246dSNobuhiro Iwamatsu /* HPB Semaphore Control Registers */ 477a7d246dSNobuhiro Iwamatsu struct r8a7740_hpb { 487a7d246dSNobuhiro Iwamatsu u32 hpbctrl0; 497a7d246dSNobuhiro Iwamatsu u32 hpbctrl1; 507a7d246dSNobuhiro Iwamatsu u32 hpbctrl2; 517a7d246dSNobuhiro Iwamatsu u32 cccr; 527a7d246dSNobuhiro Iwamatsu u32 dummy0; /* 0x20 */ 537a7d246dSNobuhiro Iwamatsu u32 hpbctrl4; 547a7d246dSNobuhiro Iwamatsu u32 hpbctrl5; 557a7d246dSNobuhiro Iwamatsu }; 567a7d246dSNobuhiro Iwamatsu 577a7d246dSNobuhiro Iwamatsu /* CPG */ 587a7d246dSNobuhiro Iwamatsu struct r8a7740_cpg { 597a7d246dSNobuhiro Iwamatsu u32 frqcra; 607a7d246dSNobuhiro Iwamatsu u32 frqcrb; 617a7d246dSNobuhiro Iwamatsu u32 vclkcr1; 627a7d246dSNobuhiro Iwamatsu u32 vclkcr2; 637a7d246dSNobuhiro Iwamatsu u32 fmsickcr; 647a7d246dSNobuhiro Iwamatsu u32 fmsockcr; 657a7d246dSNobuhiro Iwamatsu u32 fsiackcr; 667a7d246dSNobuhiro Iwamatsu u32 dummy0; /* 0x1c */ 677a7d246dSNobuhiro Iwamatsu u32 rtstbcr; 687a7d246dSNobuhiro Iwamatsu u32 systbcr; 697a7d246dSNobuhiro Iwamatsu u32 pllc01cr; 707a7d246dSNobuhiro Iwamatsu u32 pllc2cr; 717a7d246dSNobuhiro Iwamatsu u32 mstpsr0; 727a7d246dSNobuhiro Iwamatsu u32 dummy1; /* 0x34 */ 737a7d246dSNobuhiro Iwamatsu u32 mstpsr1; 747a7d246dSNobuhiro Iwamatsu u32 mstpsr5; 757a7d246dSNobuhiro Iwamatsu u32 mstpsr2; 767a7d246dSNobuhiro Iwamatsu u32 dummy2; /* 0x44 */ 777a7d246dSNobuhiro Iwamatsu u32 mstpsr3; 787a7d246dSNobuhiro Iwamatsu u32 mstpsr4; 797a7d246dSNobuhiro Iwamatsu u32 dummy3; /* 0x50 */ 807a7d246dSNobuhiro Iwamatsu u32 astat; 817a7d246dSNobuhiro Iwamatsu u32 dummy4[4]; /* 0x58 .. 0x64 */ 827a7d246dSNobuhiro Iwamatsu u32 ztrckcr; 837a7d246dSNobuhiro Iwamatsu u32 dummy5[5]; /* 0x6c .. 0x7c */ 847a7d246dSNobuhiro Iwamatsu u32 subckcr; 857a7d246dSNobuhiro Iwamatsu u32 spuckcr; 867a7d246dSNobuhiro Iwamatsu u32 vouckcr; 877a7d246dSNobuhiro Iwamatsu u32 usbckcr; 887a7d246dSNobuhiro Iwamatsu u32 dummy6[3]; /* 0x90 .. 0x98 */ 897a7d246dSNobuhiro Iwamatsu u32 stprckcr; 907a7d246dSNobuhiro Iwamatsu u32 srcr0; 917a7d246dSNobuhiro Iwamatsu u32 dummy7; /* 0xa4 */ 927a7d246dSNobuhiro Iwamatsu u32 srcr1; 937a7d246dSNobuhiro Iwamatsu u32 dummy8; /* 0xac */ 947a7d246dSNobuhiro Iwamatsu u32 srcr2; 957a7d246dSNobuhiro Iwamatsu u32 dummy9; /* 0xb4 */ 967a7d246dSNobuhiro Iwamatsu u32 srcr3; 977a7d246dSNobuhiro Iwamatsu u32 srcr4; 987a7d246dSNobuhiro Iwamatsu u32 dummy10; /* 0xc0 */ 997a7d246dSNobuhiro Iwamatsu u32 srcr5; 1007a7d246dSNobuhiro Iwamatsu u32 pllc01stpcr; 1017a7d246dSNobuhiro Iwamatsu u32 dummy11[5]; /* 0xcc .. 0xdc */ 1027a7d246dSNobuhiro Iwamatsu u32 frqcrc; 1037a7d246dSNobuhiro Iwamatsu u32 frqcrd; 1047a7d246dSNobuhiro Iwamatsu u32 dummy12[10]; /* 0xe8 .. 0x10c */ 1057a7d246dSNobuhiro Iwamatsu u32 rmstpcr0; 1067a7d246dSNobuhiro Iwamatsu u32 rmstpcr1; 1077a7d246dSNobuhiro Iwamatsu u32 rmstpcr2; 1087a7d246dSNobuhiro Iwamatsu u32 rmstpcr3; 1097a7d246dSNobuhiro Iwamatsu u32 rmstpcr4; 1107a7d246dSNobuhiro Iwamatsu u32 rmstpcr5; 1117a7d246dSNobuhiro Iwamatsu u32 dummy13[2]; /* 0x128 .. 0x12c */ 1127a7d246dSNobuhiro Iwamatsu u32 smstpcr0; 1137a7d246dSNobuhiro Iwamatsu u32 smstpcr1; 1147a7d246dSNobuhiro Iwamatsu u32 smstpcr2; 1157a7d246dSNobuhiro Iwamatsu u32 smstpcr3; 1167a7d246dSNobuhiro Iwamatsu u32 smstpcr4; 1177a7d246dSNobuhiro Iwamatsu u32 smstpcr5; 1187a7d246dSNobuhiro Iwamatsu }; 1197a7d246dSNobuhiro Iwamatsu 1207a7d246dSNobuhiro Iwamatsu /* BSC */ 1217a7d246dSNobuhiro Iwamatsu struct r8a7740_bsc { 1227a7d246dSNobuhiro Iwamatsu u32 cmncr; 1237a7d246dSNobuhiro Iwamatsu u32 cs0bcr; 1247a7d246dSNobuhiro Iwamatsu u32 cs2bcr; 1257a7d246dSNobuhiro Iwamatsu u32 dummy0; /* 0x0c */ 1267a7d246dSNobuhiro Iwamatsu u32 cs4bcr; 1277a7d246dSNobuhiro Iwamatsu u32 cs5abcr; 1287a7d246dSNobuhiro Iwamatsu u32 cs5bbcr; 1297a7d246dSNobuhiro Iwamatsu u32 cs6abcr; 1307a7d246dSNobuhiro Iwamatsu u32 dummy1; /* 0x20 */ 1317a7d246dSNobuhiro Iwamatsu u32 cs0wcr; 1327a7d246dSNobuhiro Iwamatsu u32 cs2wcr; 1337a7d246dSNobuhiro Iwamatsu u32 dummy2; /* 0x2c */ 1347a7d246dSNobuhiro Iwamatsu u32 cs4wcr; 1357a7d246dSNobuhiro Iwamatsu u32 cs5awcr; 1367a7d246dSNobuhiro Iwamatsu u32 cs5bwcr; 1377a7d246dSNobuhiro Iwamatsu u32 cs6awcr; 1387a7d246dSNobuhiro Iwamatsu u32 dummy3[5]; /* 0x40 .. 0x50 */ 1397a7d246dSNobuhiro Iwamatsu u32 rbwtcnt; 1407a7d246dSNobuhiro Iwamatsu u32 busycr; 1417a7d246dSNobuhiro Iwamatsu u32 dummy4[5]; /* 0x5c .. 0x6c */ 1427a7d246dSNobuhiro Iwamatsu u32 bromtimcr; 1437a7d246dSNobuhiro Iwamatsu u32 dummy5[7]; /* 0x74 .. 0x8c */ 1447a7d246dSNobuhiro Iwamatsu u32 bptcr00; 1457a7d246dSNobuhiro Iwamatsu u32 bptcr01; 1467a7d246dSNobuhiro Iwamatsu u32 bptcr02; 1477a7d246dSNobuhiro Iwamatsu u32 bptcr03; 1487a7d246dSNobuhiro Iwamatsu u32 bptcr04; 1497a7d246dSNobuhiro Iwamatsu u32 bptcr05; 1507a7d246dSNobuhiro Iwamatsu u32 bptcr06; 1517a7d246dSNobuhiro Iwamatsu u32 bptcr07; 1527a7d246dSNobuhiro Iwamatsu u32 bptcr08; 1537a7d246dSNobuhiro Iwamatsu u32 bptcr09; 1547a7d246dSNobuhiro Iwamatsu u32 bptcr10; 1557a7d246dSNobuhiro Iwamatsu u32 bptcr11; 1567a7d246dSNobuhiro Iwamatsu u32 bptcr12; 1577a7d246dSNobuhiro Iwamatsu u32 bptcr13; 1587a7d246dSNobuhiro Iwamatsu u32 bptcr14; 1597a7d246dSNobuhiro Iwamatsu u32 bptcr15; 1607a7d246dSNobuhiro Iwamatsu u32 bptcr16; 1617a7d246dSNobuhiro Iwamatsu u32 bptcr17; 1627a7d246dSNobuhiro Iwamatsu u32 bptcr18; 1637a7d246dSNobuhiro Iwamatsu u32 bptcr19; 1647a7d246dSNobuhiro Iwamatsu u32 bptcr20; 1657a7d246dSNobuhiro Iwamatsu u32 bptcr21; 1667a7d246dSNobuhiro Iwamatsu u32 bptcr22; 1677a7d246dSNobuhiro Iwamatsu u32 bptcr23; 1687a7d246dSNobuhiro Iwamatsu u32 bptcr24; 1697a7d246dSNobuhiro Iwamatsu u32 bptcr25; 1707a7d246dSNobuhiro Iwamatsu u32 bptcr26; 1717a7d246dSNobuhiro Iwamatsu u32 bptcr27; 1727a7d246dSNobuhiro Iwamatsu u32 bptcr28; 1737a7d246dSNobuhiro Iwamatsu u32 bptcr29; 1747a7d246dSNobuhiro Iwamatsu u32 bptcr30; 1757a7d246dSNobuhiro Iwamatsu u32 bptcr31; 1767a7d246dSNobuhiro Iwamatsu u32 bswcr; 1777a7d246dSNobuhiro Iwamatsu u32 dummy6[68]; /* 0x114 .. 0x220 */ 1787a7d246dSNobuhiro Iwamatsu u32 cs0wcr2; 1797a7d246dSNobuhiro Iwamatsu u32 cs2wcr2; 1807a7d246dSNobuhiro Iwamatsu u32 dummy7; /* 0x22c */ 1817a7d246dSNobuhiro Iwamatsu u32 cs4wcr2; 1827a7d246dSNobuhiro Iwamatsu }; 1837a7d246dSNobuhiro Iwamatsu 1847a7d246dSNobuhiro Iwamatsu #define CS0WCR2 0xFEC10224 1857a7d246dSNobuhiro Iwamatsu #define CS2WCR2 0xFEC10228 1867a7d246dSNobuhiro Iwamatsu #define CS4WCR2 0xFEC10230 1877a7d246dSNobuhiro Iwamatsu 1887a7d246dSNobuhiro Iwamatsu /* DDRP */ 1897a7d246dSNobuhiro Iwamatsu struct r8a7740_ddrp { 1907a7d246dSNobuhiro Iwamatsu u32 funcctrl; 1917a7d246dSNobuhiro Iwamatsu u32 dllctrl; 1927a7d246dSNobuhiro Iwamatsu u32 zqcalctrl; 1937a7d246dSNobuhiro Iwamatsu u32 zqodtctrl; 1947a7d246dSNobuhiro Iwamatsu u32 rdctrl; 1957a7d246dSNobuhiro Iwamatsu u32 rdtmg; 1967a7d246dSNobuhiro Iwamatsu u32 fifoinit; 1977a7d246dSNobuhiro Iwamatsu u32 outctrl; 1987a7d246dSNobuhiro Iwamatsu u32 dummy0[50]; /* 0x20 .. 0xe4 */ 1997a7d246dSNobuhiro Iwamatsu u32 dqcalofs1; 2007a7d246dSNobuhiro Iwamatsu u32 dqcalofs2; 2017a7d246dSNobuhiro Iwamatsu u32 dummy1[2]; /* 0xf0 .. 0xf4 */ 2027a7d246dSNobuhiro Iwamatsu u32 dqcalexp; 2037a7d246dSNobuhiro Iwamatsu }; 2047a7d246dSNobuhiro Iwamatsu 2057a7d246dSNobuhiro Iwamatsu #define DDRPNCNT 0xE605803C 2067a7d246dSNobuhiro Iwamatsu #define DDRVREFCNT 0xE61500EC 2077a7d246dSNobuhiro Iwamatsu 2087a7d246dSNobuhiro Iwamatsu /* DBSC */ 2097a7d246dSNobuhiro Iwamatsu struct r8a7740_dbsc { 2107a7d246dSNobuhiro Iwamatsu u32 dummy0; 2117a7d246dSNobuhiro Iwamatsu u32 dbsvcr; 2127a7d246dSNobuhiro Iwamatsu u32 dbstate0; 2137a7d246dSNobuhiro Iwamatsu u32 dbstate1; 2147a7d246dSNobuhiro Iwamatsu u32 dbacen; 2157a7d246dSNobuhiro Iwamatsu u32 dbrfen; 2167a7d246dSNobuhiro Iwamatsu u32 dbcmd; 2177a7d246dSNobuhiro Iwamatsu u32 dbwait; 2187a7d246dSNobuhiro Iwamatsu u32 dbkind; 2197a7d246dSNobuhiro Iwamatsu u32 dbconf0; 2207a7d246dSNobuhiro Iwamatsu u32 dummy1[2]; /* 0x28 .. 0x2c */ 2217a7d246dSNobuhiro Iwamatsu u32 dbphytype; 2227a7d246dSNobuhiro Iwamatsu u32 dummy2[3]; /* 0x34 .. 0x3c */ 2237a7d246dSNobuhiro Iwamatsu u32 dbtr0; 2247a7d246dSNobuhiro Iwamatsu u32 dbtr1; 2257a7d246dSNobuhiro Iwamatsu u32 dbtr2; 2267a7d246dSNobuhiro Iwamatsu u32 dummy3; /* 0x4c */ 2277a7d246dSNobuhiro Iwamatsu u32 dbtr3; 2287a7d246dSNobuhiro Iwamatsu u32 dbtr4; 2297a7d246dSNobuhiro Iwamatsu u32 dbtr5; 2307a7d246dSNobuhiro Iwamatsu u32 dbtr6; 2317a7d246dSNobuhiro Iwamatsu u32 dbtr7; 2327a7d246dSNobuhiro Iwamatsu u32 dbtr8; 2337a7d246dSNobuhiro Iwamatsu u32 dbtr9; 2347a7d246dSNobuhiro Iwamatsu u32 dbtr10; 2357a7d246dSNobuhiro Iwamatsu u32 dbtr11; 2367a7d246dSNobuhiro Iwamatsu u32 dbtr12; 2377a7d246dSNobuhiro Iwamatsu u32 dbtr13; 2387a7d246dSNobuhiro Iwamatsu u32 dbtr14; 2397a7d246dSNobuhiro Iwamatsu u32 dbtr15; 2407a7d246dSNobuhiro Iwamatsu u32 dbtr16; 2417a7d246dSNobuhiro Iwamatsu u32 dbtr17; 2427a7d246dSNobuhiro Iwamatsu u32 dbtr18; 2437a7d246dSNobuhiro Iwamatsu u32 dbtr19; 2447a7d246dSNobuhiro Iwamatsu u32 dummy4[7]; /* 0x94 .. 0xac */ 2457a7d246dSNobuhiro Iwamatsu u32 dbbl; 2467a7d246dSNobuhiro Iwamatsu u32 dummy5[3]; /* 0xb4 .. 0xbc */ 2477a7d246dSNobuhiro Iwamatsu u32 dbadj0; 2487a7d246dSNobuhiro Iwamatsu u32 dbadj1; 2497a7d246dSNobuhiro Iwamatsu u32 dbadj2; 2507a7d246dSNobuhiro Iwamatsu u32 dummy6[5]; /* 0xcc .. 0xdc */ 2517a7d246dSNobuhiro Iwamatsu u32 dbrfcnf0; 2527a7d246dSNobuhiro Iwamatsu u32 dbrfcnf1; 2537a7d246dSNobuhiro Iwamatsu u32 dbrfcnf2; 2547a7d246dSNobuhiro Iwamatsu u32 dbrfcnf3; 2557a7d246dSNobuhiro Iwamatsu u32 dummy7; /* 0xf0 */ 2567a7d246dSNobuhiro Iwamatsu u32 dbcalcnf; 2577a7d246dSNobuhiro Iwamatsu u32 dbcaltr; 2587a7d246dSNobuhiro Iwamatsu u32 dummy8; /* 0xfc */; 2597a7d246dSNobuhiro Iwamatsu u32 dbrnk0; 2607a7d246dSNobuhiro Iwamatsu u32 dummy9[31]; /* 0x104 .. 0x17C */ 2617a7d246dSNobuhiro Iwamatsu u32 dbpdncnf; 2627a7d246dSNobuhiro Iwamatsu u32 dummy10[7]; /* 0x184 .. 0x19C */ 2637a7d246dSNobuhiro Iwamatsu u32 dbmrrdr; 2647a7d246dSNobuhiro Iwamatsu u32 dummy11[39]; /* 0x1A4 .. 0x23C */ 2657a7d246dSNobuhiro Iwamatsu u32 dbdfistat; 2667a7d246dSNobuhiro Iwamatsu u32 dbdficnt; 2677a7d246dSNobuhiro Iwamatsu u32 dummy12[46]; /* 0x248 .. 0x2FC */ 2687a7d246dSNobuhiro Iwamatsu u32 dbbs0cnt0; 2697a7d246dSNobuhiro Iwamatsu u32 dbbs0cnt1; 2707a7d246dSNobuhiro Iwamatsu }; 2717a7d246dSNobuhiro Iwamatsu 2727a7d246dSNobuhiro Iwamatsu #endif 2737a7d246dSNobuhiro Iwamatsu 2747a7d246dSNobuhiro Iwamatsu #endif /* __ASM_ARCH_R8A7740_H */ 275