xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-armada100/armada100.h (revision aa0ecfeb9d60d82e095daa0d6271f77b2c25d3fb)
16c08d5dcSPrafulla Wadaskar /*
26c08d5dcSPrafulla Wadaskar  * (C) Copyright 2010
36c08d5dcSPrafulla Wadaskar  * Marvell Semiconductor <www.marvell.com>
46c08d5dcSPrafulla Wadaskar  * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
56c08d5dcSPrafulla Wadaskar  * Contributor: Mahavir Jain <mjain@marvell.com>
66c08d5dcSPrafulla Wadaskar  *
76c08d5dcSPrafulla Wadaskar  * See file CREDITS for list of people who contributed to this
86c08d5dcSPrafulla Wadaskar  * project.
96c08d5dcSPrafulla Wadaskar  *
106c08d5dcSPrafulla Wadaskar  * This program is free software; you can redistribute it and/or
116c08d5dcSPrafulla Wadaskar  * modify it under the terms of the GNU General Public License as
126c08d5dcSPrafulla Wadaskar  * published by the Free Software Foundation; either version 2 of
136c08d5dcSPrafulla Wadaskar  * the License, or (at your option) any later version.
146c08d5dcSPrafulla Wadaskar  *
156c08d5dcSPrafulla Wadaskar  * This program is distributed in the hope that it will be useful,
166c08d5dcSPrafulla Wadaskar  * but WITHOUT ANY WARRANTY; without even the implied warranty of
176c08d5dcSPrafulla Wadaskar  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
186c08d5dcSPrafulla Wadaskar  * GNU General Public License for more details.
196c08d5dcSPrafulla Wadaskar  *
206c08d5dcSPrafulla Wadaskar  * You should have received a copy of the GNU General Public License
216c08d5dcSPrafulla Wadaskar  * along with this program; if not, write to the Free Software
226c08d5dcSPrafulla Wadaskar  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
236c08d5dcSPrafulla Wadaskar  * MA 02110-1301 USA
246c08d5dcSPrafulla Wadaskar  */
256c08d5dcSPrafulla Wadaskar 
266c08d5dcSPrafulla Wadaskar #ifndef _ASM_ARCH_ARMADA100_H
276c08d5dcSPrafulla Wadaskar #define _ASM_ARCH_ARMADA100_H
286c08d5dcSPrafulla Wadaskar 
296c08d5dcSPrafulla Wadaskar #ifndef __ASSEMBLY__
306c08d5dcSPrafulla Wadaskar #include <asm/types.h>
316c08d5dcSPrafulla Wadaskar #include <asm/io.h>
326c08d5dcSPrafulla Wadaskar #endif	/* __ASSEMBLY__ */
336c08d5dcSPrafulla Wadaskar 
346c08d5dcSPrafulla Wadaskar #if defined (CONFIG_ARMADA100)
356c08d5dcSPrafulla Wadaskar #include <asm/arch/cpu.h>
366c08d5dcSPrafulla Wadaskar 
376c08d5dcSPrafulla Wadaskar /* Common APB clock register bit definitions */
386c08d5dcSPrafulla Wadaskar #define APBC_APBCLK     (1<<0)  /* APB Bus Clock Enable */
396c08d5dcSPrafulla Wadaskar #define APBC_FNCLK      (1<<1)  /* Functional Clock Enable */
406c08d5dcSPrafulla Wadaskar #define APBC_RST        (1<<2)  /* Reset Generation */
416c08d5dcSPrafulla Wadaskar /* Functional Clock Selection Mask */
426c08d5dcSPrafulla Wadaskar #define APBC_FNCLKSEL(x)        (((x) & 0xf) << 4)
436c08d5dcSPrafulla Wadaskar 
44*aa0ecfebSAjay Bhargav /* Fast Ethernet Controller Clock register definition */
45*aa0ecfebSAjay Bhargav #define FE_CLK_RST		0x1
46*aa0ecfebSAjay Bhargav #define FE_CLK_ENA		0x8
47*aa0ecfebSAjay Bhargav 
486c08d5dcSPrafulla Wadaskar /* Register Base Addresses */
496c08d5dcSPrafulla Wadaskar #define ARMD1_DRAM_BASE		0xB0000000
5079788bb1SAjay Bhargav #define ARMD1_FEC_BASE		0xC0800000
516c08d5dcSPrafulla Wadaskar #define ARMD1_TIMER_BASE	0xD4014000
526c08d5dcSPrafulla Wadaskar #define ARMD1_APBC1_BASE	0xD4015000
536c08d5dcSPrafulla Wadaskar #define ARMD1_APBC2_BASE	0xD4015800
546c08d5dcSPrafulla Wadaskar #define ARMD1_UART1_BASE	0xD4017000
556c08d5dcSPrafulla Wadaskar #define ARMD1_UART2_BASE	0xD4018000
566c08d5dcSPrafulla Wadaskar #define ARMD1_GPIO_BASE		0xD4019000
576c08d5dcSPrafulla Wadaskar #define ARMD1_SSP1_BASE		0xD401B000
586c08d5dcSPrafulla Wadaskar #define ARMD1_SSP2_BASE		0xD401C000
596c08d5dcSPrafulla Wadaskar #define ARMD1_MFPR_BASE		0xD401E000
606c08d5dcSPrafulla Wadaskar #define ARMD1_SSP3_BASE		0xD401F000
616c08d5dcSPrafulla Wadaskar #define ARMD1_SSP4_BASE		0xD4020000
626c08d5dcSPrafulla Wadaskar #define ARMD1_SSP5_BASE		0xD4021000
636c08d5dcSPrafulla Wadaskar #define ARMD1_UART3_BASE	0xD4026000
646c08d5dcSPrafulla Wadaskar #define ARMD1_MPMU_BASE		0xD4050000
656c08d5dcSPrafulla Wadaskar #define ARMD1_APMU_BASE		0xD4282800
666c08d5dcSPrafulla Wadaskar #define ARMD1_CPU_BASE		0xD4282C00
676c08d5dcSPrafulla Wadaskar 
686c08d5dcSPrafulla Wadaskar /*
696c08d5dcSPrafulla Wadaskar  * Main Power Management (MPMU) Registers
706c08d5dcSPrafulla Wadaskar  * Refer Datasheet Appendix A.8
716c08d5dcSPrafulla Wadaskar  */
726c08d5dcSPrafulla Wadaskar struct armd1mpmu_registers {
736c08d5dcSPrafulla Wadaskar 	u8 pad0[0x08 - 0x00];
746c08d5dcSPrafulla Wadaskar 	u32 fccr;	/*0x0008*/
756c08d5dcSPrafulla Wadaskar 	u32 pocr;	/*0x000c*/
766c08d5dcSPrafulla Wadaskar 	u32 posr;	/*0x0010*/
776c08d5dcSPrafulla Wadaskar 	u32 succr;	/*0x0014*/
786c08d5dcSPrafulla Wadaskar 	u8 pad1[0x030 - 0x014 - 4];
796c08d5dcSPrafulla Wadaskar 	u32 gpcr;	/*0x0030*/
806c08d5dcSPrafulla Wadaskar 	u8 pad2[0x200 - 0x030 - 4];
816c08d5dcSPrafulla Wadaskar 	u32 wdtpcr;	/*0x0200*/
826c08d5dcSPrafulla Wadaskar 	u8 pad3[0x1000 - 0x200 - 4];
836c08d5dcSPrafulla Wadaskar 	u32 apcr;	/*0x1000*/
846c08d5dcSPrafulla Wadaskar 	u32 apsr;	/*0x1004*/
856c08d5dcSPrafulla Wadaskar 	u8 pad4[0x1020 - 0x1004 - 4];
866c08d5dcSPrafulla Wadaskar 	u32 aprr;	/*0x1020*/
876c08d5dcSPrafulla Wadaskar 	u32 acgr;	/*0x1024*/
886c08d5dcSPrafulla Wadaskar 	u32 arsr;	/*0x1028*/
896c08d5dcSPrafulla Wadaskar };
906c08d5dcSPrafulla Wadaskar 
916c08d5dcSPrafulla Wadaskar /*
92*aa0ecfebSAjay Bhargav  * Application Subsystem Power Management
93*aa0ecfebSAjay Bhargav  * Refer Datasheet Appendix A.9
94*aa0ecfebSAjay Bhargav  */
95*aa0ecfebSAjay Bhargav struct armd1apmu_registers {
96*aa0ecfebSAjay Bhargav 	u32 pcr;		/* 0x000 */
97*aa0ecfebSAjay Bhargav 	u32 ccr;		/* 0x004 */
98*aa0ecfebSAjay Bhargav 	u32 pad1;
99*aa0ecfebSAjay Bhargav 	u32 ccsr;		/* 0x00C */
100*aa0ecfebSAjay Bhargav 	u32 fc_timer;		/* 0x010 */
101*aa0ecfebSAjay Bhargav 	u32 pad2;
102*aa0ecfebSAjay Bhargav 	u32 ideal_cfg;		/* 0x018 */
103*aa0ecfebSAjay Bhargav 	u8 pad3[0x04C - 0x018 - 4];
104*aa0ecfebSAjay Bhargav 	u32 lcdcrc;		/* 0x04C */
105*aa0ecfebSAjay Bhargav 	u32 cciccrc;		/* 0x050 */
106*aa0ecfebSAjay Bhargav 	u32 sd1crc;		/* 0x054 */
107*aa0ecfebSAjay Bhargav 	u32 sd2crc;		/* 0x058 */
108*aa0ecfebSAjay Bhargav 	u32 usbcrc;		/* 0x05C */
109*aa0ecfebSAjay Bhargav 	u32 nfccrc;		/* 0x060 */
110*aa0ecfebSAjay Bhargav 	u32 dmacrc;		/* 0x064 */
111*aa0ecfebSAjay Bhargav 	u32 pad4;
112*aa0ecfebSAjay Bhargav 	u32 buscrc;		/* 0x06C */
113*aa0ecfebSAjay Bhargav 	u8 pad5[0x07C - 0x06C - 4];
114*aa0ecfebSAjay Bhargav 	u32 wake_clr;		/* 0x07C */
115*aa0ecfebSAjay Bhargav 	u8 pad6[0x090 - 0x07C - 4];
116*aa0ecfebSAjay Bhargav 	u32 core_status;	/* 0x090 */
117*aa0ecfebSAjay Bhargav 	u32 rfsc;		/* 0x094 */
118*aa0ecfebSAjay Bhargav 	u32 imr;		/* 0x098 */
119*aa0ecfebSAjay Bhargav 	u32 irwc;		/* 0x09C */
120*aa0ecfebSAjay Bhargav 	u32 isr;		/* 0x0A0 */
121*aa0ecfebSAjay Bhargav 	u8 pad7[0x0B0 - 0x0A0 - 4];
122*aa0ecfebSAjay Bhargav 	u32 mhst;		/* 0x0B0 */
123*aa0ecfebSAjay Bhargav 	u32 msr;		/* 0x0B4 */
124*aa0ecfebSAjay Bhargav 	u8 pad8[0x0C0 - 0x0B4 - 4];
125*aa0ecfebSAjay Bhargav 	u32 msst;		/* 0x0C0 */
126*aa0ecfebSAjay Bhargav 	u32 pllss;		/* 0x0C4 */
127*aa0ecfebSAjay Bhargav 	u32 smb;		/* 0x0C8 */
128*aa0ecfebSAjay Bhargav 	u32 gccrc;		/* 0x0CC */
129*aa0ecfebSAjay Bhargav 	u8 pad9[0x0D4 - 0x0CC - 4];
130*aa0ecfebSAjay Bhargav 	u32 smccrc;		/* 0x0D4 */
131*aa0ecfebSAjay Bhargav 	u32 pad10;
132*aa0ecfebSAjay Bhargav 	u32 xdcrc;		/* 0x0DC */
133*aa0ecfebSAjay Bhargav 	u32 sd3crc;		/* 0x0E0 */
134*aa0ecfebSAjay Bhargav 	u32 sd4crc;		/* 0x0E4 */
135*aa0ecfebSAjay Bhargav 	u8 pad11[0x0F0 - 0x0E4 - 4];
136*aa0ecfebSAjay Bhargav 	u32 cfcrc;		/* 0x0F0 */
137*aa0ecfebSAjay Bhargav 	u32 mspcrc;		/* 0x0F4 */
138*aa0ecfebSAjay Bhargav 	u32 cmucrc;		/* 0x0F8 */
139*aa0ecfebSAjay Bhargav 	u32 fecrc;		/* 0x0FC */
140*aa0ecfebSAjay Bhargav 	u32 pciecrc;		/* 0x100 */
141*aa0ecfebSAjay Bhargav 	u32 epdcrc;		/* 0x104 */
142*aa0ecfebSAjay Bhargav };
143*aa0ecfebSAjay Bhargav 
144*aa0ecfebSAjay Bhargav /*
1456c08d5dcSPrafulla Wadaskar  * APB1 Clock Reset/Control Registers
1466c08d5dcSPrafulla Wadaskar  * Refer Datasheet Appendix A.10
1476c08d5dcSPrafulla Wadaskar  */
1486c08d5dcSPrafulla Wadaskar struct armd1apb1_registers {
1496c08d5dcSPrafulla Wadaskar 	u32 uart1;	/*0x000*/
1506c08d5dcSPrafulla Wadaskar 	u32 uart2;	/*0x004*/
1516c08d5dcSPrafulla Wadaskar 	u32 gpio;	/*0x008*/
1526c08d5dcSPrafulla Wadaskar 	u32 pwm1;	/*0x00c*/
1536c08d5dcSPrafulla Wadaskar 	u32 pwm2;	/*0x010*/
1546c08d5dcSPrafulla Wadaskar 	u32 pwm3;	/*0x014*/
1556c08d5dcSPrafulla Wadaskar 	u32 pwm4;	/*0x018*/
1566c08d5dcSPrafulla Wadaskar 	u8 pad0[0x028 - 0x018 - 4];
1576c08d5dcSPrafulla Wadaskar 	u32 rtc;	/*0x028*/
1586c08d5dcSPrafulla Wadaskar 	u32 twsi0;	/*0x02c*/
1596c08d5dcSPrafulla Wadaskar 	u32 kpc;	/*0x030*/
1606c08d5dcSPrafulla Wadaskar 	u32 timers;	/*0x034*/
1616c08d5dcSPrafulla Wadaskar 	u8 pad1[0x03c - 0x034 - 4];
1626c08d5dcSPrafulla Wadaskar 	u32 aib;	/*0x03c*/
1636c08d5dcSPrafulla Wadaskar 	u32 sw_jtag;	/*0x040*/
1646c08d5dcSPrafulla Wadaskar 	u32 timer1;	/*0x044*/
1656c08d5dcSPrafulla Wadaskar 	u32 onewire;	/*0x048*/
1666c08d5dcSPrafulla Wadaskar 	u8 pad2[0x050 - 0x048 - 4];
1676c08d5dcSPrafulla Wadaskar 	u32 asfar;	/*0x050 AIB Secure First Access Reg*/
1686c08d5dcSPrafulla Wadaskar 	u32 assar;	/*0x054 AIB Secure Second Access Reg*/
1696c08d5dcSPrafulla Wadaskar 	u8 pad3[0x06c - 0x054 - 4];
1706c08d5dcSPrafulla Wadaskar 	u32 twsi1;	/*0x06c*/
1716c08d5dcSPrafulla Wadaskar 	u32 uart3;	/*0x070*/
1726c08d5dcSPrafulla Wadaskar 	u8 pad4[0x07c - 0x070 - 4];
1736c08d5dcSPrafulla Wadaskar 	u32 timer2;	/*0x07C*/
1746c08d5dcSPrafulla Wadaskar 	u8 pad5[0x084 - 0x07c - 4];
1756c08d5dcSPrafulla Wadaskar 	u32 ac97;	/*0x084*/
1766c08d5dcSPrafulla Wadaskar };
1776c08d5dcSPrafulla Wadaskar 
1786c08d5dcSPrafulla Wadaskar #endif /* CONFIG_ARMADA100 */
1796c08d5dcSPrafulla Wadaskar #endif /* _ASM_ARCH_ARMADA100_H */
180