xref: /rk3399_rockchip-uboot/board/renesas/r2dplus/r2dplus.c (revision c1da2a22817ba85b437afa2f4e715e658b219fd1)
1*c1da2a22SNobuhiro Iwamatsu /*
2*c1da2a22SNobuhiro Iwamatsu  * Copyright (C) 2007,2008
3*c1da2a22SNobuhiro Iwamatsu  * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
4*c1da2a22SNobuhiro Iwamatsu  *
5*c1da2a22SNobuhiro Iwamatsu  * See file CREDITS for list of people who contributed to this
6*c1da2a22SNobuhiro Iwamatsu  * project.
7*c1da2a22SNobuhiro Iwamatsu  *
8*c1da2a22SNobuhiro Iwamatsu  * This program is free software; you can redistribute it and/or
9*c1da2a22SNobuhiro Iwamatsu  * modify it under the terms of the GNU General Public License as
10*c1da2a22SNobuhiro Iwamatsu  * published by the Free Software Foundation; either version 2 of
11*c1da2a22SNobuhiro Iwamatsu  * the License, or (at your option) any later version.
12*c1da2a22SNobuhiro Iwamatsu  *
13*c1da2a22SNobuhiro Iwamatsu  * This program is distributed in the hope that it will be useful,
14*c1da2a22SNobuhiro Iwamatsu  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15*c1da2a22SNobuhiro Iwamatsu  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16*c1da2a22SNobuhiro Iwamatsu  * GNU General Public License for more details.
17*c1da2a22SNobuhiro Iwamatsu  *
18*c1da2a22SNobuhiro Iwamatsu  * You should have received a copy of the GNU General Public License
19*c1da2a22SNobuhiro Iwamatsu  * along with this program; if not, write to the Free Software
20*c1da2a22SNobuhiro Iwamatsu  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21*c1da2a22SNobuhiro Iwamatsu  * MA 02111-1307 USA
22*c1da2a22SNobuhiro Iwamatsu  */
23*c1da2a22SNobuhiro Iwamatsu 
24*c1da2a22SNobuhiro Iwamatsu #include <common.h>
25*c1da2a22SNobuhiro Iwamatsu #include <ide.h>
26*c1da2a22SNobuhiro Iwamatsu #include <netdev.h>
27*c1da2a22SNobuhiro Iwamatsu #include <asm/processor.h>
28*c1da2a22SNobuhiro Iwamatsu #include <asm/io.h>
29*c1da2a22SNobuhiro Iwamatsu #include <asm/pci.h>
30*c1da2a22SNobuhiro Iwamatsu 
31*c1da2a22SNobuhiro Iwamatsu int checkboard(void)
32*c1da2a22SNobuhiro Iwamatsu {
33*c1da2a22SNobuhiro Iwamatsu 	puts("BOARD: Renesas Solutions R2D Plus\n");
34*c1da2a22SNobuhiro Iwamatsu 	return 0;
35*c1da2a22SNobuhiro Iwamatsu }
36*c1da2a22SNobuhiro Iwamatsu 
37*c1da2a22SNobuhiro Iwamatsu int board_init(void)
38*c1da2a22SNobuhiro Iwamatsu {
39*c1da2a22SNobuhiro Iwamatsu 	return 0;
40*c1da2a22SNobuhiro Iwamatsu }
41*c1da2a22SNobuhiro Iwamatsu 
42*c1da2a22SNobuhiro Iwamatsu int dram_init(void)
43*c1da2a22SNobuhiro Iwamatsu {
44*c1da2a22SNobuhiro Iwamatsu 	DECLARE_GLOBAL_DATA_PTR;
45*c1da2a22SNobuhiro Iwamatsu 
46*c1da2a22SNobuhiro Iwamatsu 	gd->bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;
47*c1da2a22SNobuhiro Iwamatsu 	gd->bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE;
48*c1da2a22SNobuhiro Iwamatsu 	printf("DRAM:  %dMB\n", CONFIG_SYS_SDRAM_SIZE / (1024 * 1024));
49*c1da2a22SNobuhiro Iwamatsu 	return 0;
50*c1da2a22SNobuhiro Iwamatsu }
51*c1da2a22SNobuhiro Iwamatsu 
52*c1da2a22SNobuhiro Iwamatsu int board_late_init(void)
53*c1da2a22SNobuhiro Iwamatsu {
54*c1da2a22SNobuhiro Iwamatsu 	return 0;
55*c1da2a22SNobuhiro Iwamatsu }
56*c1da2a22SNobuhiro Iwamatsu 
57*c1da2a22SNobuhiro Iwamatsu #define FPGA_BASE		0xA4000000
58*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFCTL		(FPGA_BASE + 0x04)
59*c1da2a22SNobuhiro Iwamatsu #define CFCTL_EN		(0x432)
60*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFPOW		(FPGA_BASE + 0x06)
61*c1da2a22SNobuhiro Iwamatsu #define CFPOW_ON		(0x02)
62*c1da2a22SNobuhiro Iwamatsu #define FPGA_CFCDINTCLR	(FPGA_BASE + 0x2A)
63*c1da2a22SNobuhiro Iwamatsu #define CFCDINTCLR_EN	(0x01)
64*c1da2a22SNobuhiro Iwamatsu 
65*c1da2a22SNobuhiro Iwamatsu void ide_set_reset(int idereset)
66*c1da2a22SNobuhiro Iwamatsu {
67*c1da2a22SNobuhiro Iwamatsu 	/* if reset = 1 IDE reset will be asserted */
68*c1da2a22SNobuhiro Iwamatsu 	if (idereset) {
69*c1da2a22SNobuhiro Iwamatsu 		outw(CFCTL_EN, FPGA_CFCTL);	/* CF enable */
70*c1da2a22SNobuhiro Iwamatsu 		outw(inw(FPGA_CFPOW)|CFPOW_ON, FPGA_CFPOW); /* Power OM */
71*c1da2a22SNobuhiro Iwamatsu 		outw(CFCDINTCLR_EN, FPGA_CFCDINTCLR); /* Int clear */
72*c1da2a22SNobuhiro Iwamatsu 	}
73*c1da2a22SNobuhiro Iwamatsu }
74*c1da2a22SNobuhiro Iwamatsu 
75*c1da2a22SNobuhiro Iwamatsu static struct pci_controller hose;
76*c1da2a22SNobuhiro Iwamatsu void pci_init_board(void)
77*c1da2a22SNobuhiro Iwamatsu {
78*c1da2a22SNobuhiro Iwamatsu 	pci_sh7751_init(&hose);
79*c1da2a22SNobuhiro Iwamatsu }
80*c1da2a22SNobuhiro Iwamatsu 
81*c1da2a22SNobuhiro Iwamatsu int board_eth_init(bd_t *bis)
82*c1da2a22SNobuhiro Iwamatsu {
83*c1da2a22SNobuhiro Iwamatsu 	return pci_eth_init(bis);
84*c1da2a22SNobuhiro Iwamatsu }
85