xref: /openbmc/u-boot/board/micronas/vct/vct.h (revision e0a0cbf2)
1 /*
2  * (C) Copyright 2008 Stefan Roese <sr@denx.de>, DENX Software Engineering
3  *
4  * Copyright (C) 2006 Micronas GmbH
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
19  * MA 02111-1307 USA
20  */
21 
22 #include <asm/io.h>
23 
24 #include "bcu.h"
25 #include "dcgu.h"
26 #include "ebi.h"
27 #include "scc.h"
28 
29 #ifdef CONFIG_VCT_PREMIUM
30 /* Global start address of all memory mapped registers */
31 #define REG_GLOBAL_START_ADDR	0xbf800000
32 #define TOP_BASE		0x000c8000
33 
34 #include "vcth/reg_ebi.h"
35 #include "vcth/reg_dcgu.h"
36 #include "vcth/reg_wdt.h"
37 #include "vcth/reg_gpio.h"
38 #include "vcth/reg_fwsram.h"
39 #include "vcth/reg_scc.h"
40 #include "vcth/reg_usbh.h"
41 #endif
42 
43 #ifdef CONFIG_VCT_PLATINUM
44 /* Global start address of all memory mapped registers */
45 #define REG_GLOBAL_START_ADDR	0xbf800000
46 #define TOP_BASE		0x000c8000
47 
48 #include "vcth2/reg_ebi.h"
49 #include "vcth/reg_dcgu.h"
50 #include "vcth/reg_wdt.h"
51 #include "vcth/reg_gpio.h"
52 #include "vcth/reg_fwsram.h"
53 #include "vcth/reg_scc.h"
54 #include "vcth/reg_usbh.h"
55 #endif
56 
57 #ifdef CONFIG_VCT_PLATINUMAVC
58 /* Global start address of all memory mapped registers */
59 #define REG_GLOBAL_START_ADDR	0xbdc00000
60 #define TOP_BASE		0x00050000
61 
62 #include "vctv/reg_ebi.h"
63 #include "vctv/reg_dcgu.h"
64 #include "vctv/reg_wdt.h"
65 #include "vctv/reg_gpio.h"
66 #endif
67 
68 #ifndef _VCT_H
69 #define _VCT_H
70 
71 /*
72  * Defines
73  */
74 #define PRID_COMP_LEGACY	0x000000
75 #define PRID_COMP_MIPS		0x010000
76 #define PRID_IMP_LX4280		0xc200
77 #define PRID_IMP_VGC		0x9000
78 
79 /*
80  * Prototypes
81  */
82 int ebi_initialize(void);
83 int ebi_init_nor_flash(void);
84 int ebi_init_onenand(void);
85 int ebi_init_smc911x(void);
86 u32 smc911x_reg_read(u32 addr);
87 void smc911x_reg_write(u32 addr, u32 data);
88 int top_set_pin(int pin, int func);
89 void vct_pin_mux_initialize(void);
90 
91 /*
92  * static inlines
93  */
94 static inline void reg_write(u32 addr, u32 data)
95 {
96 	__raw_writel(data, addr + REG_GLOBAL_START_ADDR);
97 }
98 
99 static inline u32 reg_read(u32 addr)
100 {
101 	return __raw_readl(addr + REG_GLOBAL_START_ADDR);
102 }
103 
104 #endif /* _VCT_H */
105