/* * Copyright (C) 2012 Renesas Solutions Corp. * * SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_ARCH_R8A7740_H #define __ASM_ARCH_R8A7740_H /* * R8A7740 I/O Addresses */ #define MERAM_BASE 0xE5580000 #define DDRP_BASE 0xC12A0000 #define HPB_BASE 0xE6000000 #define RWDT0_BASE 0xE6020000 #define RWDT1_BASE 0xE6030000 #define GPIO_BASE 0xE6050000 #define CMT1_BASE 0xE6138000 #define CPG_BASE 0xE6150000 #define SYSC_BASE 0xE6180000 #define SDHI0_BASE 0xE6850000 #define SDHI1_BASE 0xE6860000 #define MMCIF_BASE 0xE6BD0000 #define SCIF5_BASE 0xE6CB0000 #define SCIF6_BASE 0xE6CC0000 #define DBSC_BASE 0xFE400000 #define BSC_BASE 0xFEC10000 #define I2C0_BASE 0xFFF20000 #define I2C1_BASE 0xE6C20000 #define TMU_BASE 0xFFF80000 #ifndef __ASSEMBLY__ #include /* RWDT */ struct r8a7740_rwdt { u16 rwtcnt0; /* 0x00 */ u16 dummy0; /* 0x02 */ u16 rwtcsra0; /* 0x04 */ u16 dummy1; /* 0x06 */ u16 rwtcsrb0; /* 0x08 */ u16 dummy2; /* 0x0A */ }; /* HPB Semaphore Control Registers */ struct r8a7740_hpb { u32 hpbctrl0; u32 hpbctrl1; u32 hpbctrl2; u32 cccr; u32 dummy0; /* 0x20 */ u32 hpbctrl4; u32 hpbctrl5; }; /* CPG */ struct r8a7740_cpg { u32 frqcra; u32 frqcrb; u32 vclkcr1; u32 vclkcr2; u32 fmsickcr; u32 fmsockcr; u32 fsiackcr; u32 dummy0; /* 0x1c */ u32 rtstbcr; u32 systbcr; u32 pllc01cr; u32 pllc2cr; u32 mstpsr0; u32 dummy1; /* 0x34 */ u32 mstpsr1; u32 mstpsr5; u32 mstpsr2; u32 dummy2; /* 0x44 */ u32 mstpsr3; u32 mstpsr4; u32 dummy3; /* 0x50 */ u32 astat; u32 dummy4[4]; /* 0x58 .. 0x64 */ u32 ztrckcr; u32 dummy5[5]; /* 0x6c .. 0x7c */ u32 subckcr; u32 spuckcr; u32 vouckcr; u32 usbckcr; u32 dummy6[3]; /* 0x90 .. 0x98 */ u32 stprckcr; u32 srcr0; u32 dummy7; /* 0xa4 */ u32 srcr1; u32 dummy8; /* 0xac */ u32 srcr2; u32 dummy9; /* 0xb4 */ u32 srcr3; u32 srcr4; u32 dummy10; /* 0xc0 */ u32 srcr5; u32 pllc01stpcr; u32 dummy11[5]; /* 0xcc .. 0xdc */ u32 frqcrc; u32 frqcrd; u32 dummy12[10]; /* 0xe8 .. 0x10c */ u32 rmstpcr0; u32 rmstpcr1; u32 rmstpcr2; u32 rmstpcr3; u32 rmstpcr4; u32 rmstpcr5; u32 dummy13[2]; /* 0x128 .. 0x12c */ u32 smstpcr0; u32 smstpcr1; u32 smstpcr2; u32 smstpcr3; u32 smstpcr4; u32 smstpcr5; }; /* BSC */ struct r8a7740_bsc { u32 cmncr; u32 cs0bcr; u32 cs2bcr; u32 dummy0; /* 0x0c */ u32 cs4bcr; u32 cs5abcr; u32 cs5bbcr; u32 cs6abcr; u32 dummy1; /* 0x20 */ u32 cs0wcr; u32 cs2wcr; u32 dummy2; /* 0x2c */ u32 cs4wcr; u32 cs5awcr; u32 cs5bwcr; u32 cs6awcr; u32 dummy3[5]; /* 0x40 .. 0x50 */ u32 rbwtcnt; u32 busycr; u32 dummy4[5]; /* 0x5c .. 0x6c */ u32 bromtimcr; u32 dummy5[7]; /* 0x74 .. 0x8c */ u32 bptcr00; u32 bptcr01; u32 bptcr02; u32 bptcr03; u32 bptcr04; u32 bptcr05; u32 bptcr06; u32 bptcr07; u32 bptcr08; u32 bptcr09; u32 bptcr10; u32 bptcr11; u32 bptcr12; u32 bptcr13; u32 bptcr14; u32 bptcr15; u32 bptcr16; u32 bptcr17; u32 bptcr18; u32 bptcr19; u32 bptcr20; u32 bptcr21; u32 bptcr22; u32 bptcr23; u32 bptcr24; u32 bptcr25; u32 bptcr26; u32 bptcr27; u32 bptcr28; u32 bptcr29; u32 bptcr30; u32 bptcr31; u32 bswcr; u32 dummy6[68]; /* 0x114 .. 0x220 */ u32 cs0wcr2; u32 cs2wcr2; u32 dummy7; /* 0x22c */ u32 cs4wcr2; }; #define CS0WCR2 0xFEC10224 #define CS2WCR2 0xFEC10228 #define CS4WCR2 0xFEC10230 /* DDRP */ struct r8a7740_ddrp { u32 funcctrl; u32 dllctrl; u32 zqcalctrl; u32 zqodtctrl; u32 rdctrl; u32 rdtmg; u32 fifoinit; u32 outctrl; u32 dummy0[50]; /* 0x20 .. 0xe4 */ u32 dqcalofs1; u32 dqcalofs2; u32 dummy1[2]; /* 0xf0 .. 0xf4 */ u32 dqcalexp; }; #define DDRPNCNT 0xE605803C #define DDRVREFCNT 0xE61500EC /* DBSC */ struct r8a7740_dbsc { u32 dummy0; u32 dbsvcr; u32 dbstate0; u32 dbstate1; u32 dbacen; u32 dbrfen; u32 dbcmd; u32 dbwait; u32 dbkind; u32 dbconf0; u32 dummy1[2]; /* 0x28 .. 0x2c */ u32 dbphytype; u32 dummy2[3]; /* 0x34 .. 0x3c */ u32 dbtr0; u32 dbtr1; u32 dbtr2; u32 dummy3; /* 0x4c */ u32 dbtr3; u32 dbtr4; u32 dbtr5; u32 dbtr6; u32 dbtr7; u32 dbtr8; u32 dbtr9; u32 dbtr10; u32 dbtr11; u32 dbtr12; u32 dbtr13; u32 dbtr14; u32 dbtr15; u32 dbtr16; u32 dbtr17; u32 dbtr18; u32 dbtr19; u32 dummy4[7]; /* 0x94 .. 0xac */ u32 dbbl; u32 dummy5[3]; /* 0xb4 .. 0xbc */ u32 dbadj0; u32 dbadj1; u32 dbadj2; u32 dummy6[5]; /* 0xcc .. 0xdc */ u32 dbrfcnf0; u32 dbrfcnf1; u32 dbrfcnf2; u32 dbrfcnf3; u32 dummy7; /* 0xf0 */ u32 dbcalcnf; u32 dbcaltr; u32 dummy8; /* 0xfc */; u32 dbrnk0; u32 dummy9[31]; /* 0x104 .. 0x17C */ u32 dbpdncnf; u32 dummy10[7]; /* 0x184 .. 0x19C */ u32 dbmrrdr; u32 dummy11[39]; /* 0x1A4 .. 0x23C */ u32 dbdfistat; u32 dbdficnt; u32 dummy12[46]; /* 0x248 .. 0x2FC */ u32 dbbs0cnt0; u32 dbbs0cnt1; }; #endif #endif /* __ASM_ARCH_R8A7740_H */