xref: /rk3399_rockchip-uboot/board/renesas/r7780mp/r7780mp.c (revision cdbb0cf8ecf30d5dbbfa500e8939a32ef45896c5)
1acd3e30dSNobuhiro Iwamatsu /*
2acd3e30dSNobuhiro Iwamatsu  * Copyright (C) 2007,2008 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
3acd3e30dSNobuhiro Iwamatsu  * Copyright (C) 2008 Yusuke Goda <goda.yusuke@renesas.com>
4acd3e30dSNobuhiro Iwamatsu  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
6acd3e30dSNobuhiro Iwamatsu  */
7acd3e30dSNobuhiro Iwamatsu 
8acd3e30dSNobuhiro Iwamatsu #include <common.h>
9acd3e30dSNobuhiro Iwamatsu #include <ide.h>
10acd3e30dSNobuhiro Iwamatsu #include <asm/processor.h>
11acd3e30dSNobuhiro Iwamatsu #include <asm/io.h>
12acd3e30dSNobuhiro Iwamatsu #include <asm/pci.h>
13acd3e30dSNobuhiro Iwamatsu #include <netdev.h>
14acd3e30dSNobuhiro Iwamatsu #include "r7780mp.h"
15acd3e30dSNobuhiro Iwamatsu 
checkboard(void)16acd3e30dSNobuhiro Iwamatsu int checkboard(void)
17acd3e30dSNobuhiro Iwamatsu {
18acd3e30dSNobuhiro Iwamatsu #if defined(CONFIG_R7780MP)
19acd3e30dSNobuhiro Iwamatsu 	puts("BOARD: Renesas Solutions R7780MP\n");
20acd3e30dSNobuhiro Iwamatsu #else
21acd3e30dSNobuhiro Iwamatsu 	puts("BOARD: Renesas Solutions R7780RP\n");
22acd3e30dSNobuhiro Iwamatsu #endif
23acd3e30dSNobuhiro Iwamatsu 	return 0;
24acd3e30dSNobuhiro Iwamatsu }
25acd3e30dSNobuhiro Iwamatsu 
board_init(void)26acd3e30dSNobuhiro Iwamatsu int board_init(void)
27acd3e30dSNobuhiro Iwamatsu {
28acd3e30dSNobuhiro Iwamatsu 	/* SCIF Enable */
29acd3e30dSNobuhiro Iwamatsu 	writew(0x0, PHCR);
30acd3e30dSNobuhiro Iwamatsu 
31acd3e30dSNobuhiro Iwamatsu 	return 0;
32acd3e30dSNobuhiro Iwamatsu }
33acd3e30dSNobuhiro Iwamatsu 
led_set_state(unsigned short value)34acd3e30dSNobuhiro Iwamatsu void led_set_state(unsigned short value)
35acd3e30dSNobuhiro Iwamatsu {
36acd3e30dSNobuhiro Iwamatsu 
37acd3e30dSNobuhiro Iwamatsu }
38acd3e30dSNobuhiro Iwamatsu 
ide_set_reset(int idereset)39acd3e30dSNobuhiro Iwamatsu void ide_set_reset(int idereset)
40acd3e30dSNobuhiro Iwamatsu {
41acd3e30dSNobuhiro Iwamatsu 	/* if reset = 1 IDE reset will be asserted */
42acd3e30dSNobuhiro Iwamatsu 	if (idereset) {
43acd3e30dSNobuhiro Iwamatsu 		writew(0x432, FPGA_CFCTL);
44acd3e30dSNobuhiro Iwamatsu #if defined(CONFIG_R7780MP)
45acd3e30dSNobuhiro Iwamatsu 		writew(inw(FPGA_CFPOW)|0x01, FPGA_CFPOW);
46acd3e30dSNobuhiro Iwamatsu #else
47acd3e30dSNobuhiro Iwamatsu 		writew(inw(FPGA_CFPOW)|0x02, FPGA_CFPOW);
48acd3e30dSNobuhiro Iwamatsu #endif
49acd3e30dSNobuhiro Iwamatsu 		writew(0x01, FPGA_CFCDINTCLR);
50acd3e30dSNobuhiro Iwamatsu 	}
51acd3e30dSNobuhiro Iwamatsu }
52acd3e30dSNobuhiro Iwamatsu 
53acd3e30dSNobuhiro Iwamatsu static struct pci_controller hose;
pci_init_board(void)54acd3e30dSNobuhiro Iwamatsu void pci_init_board(void)
55acd3e30dSNobuhiro Iwamatsu {
56acd3e30dSNobuhiro Iwamatsu 	pci_sh7780_init(&hose);
57acd3e30dSNobuhiro Iwamatsu }
58acd3e30dSNobuhiro Iwamatsu 
board_eth_init(bd_t * bis)59acd3e30dSNobuhiro Iwamatsu int board_eth_init(bd_t *bis)
60acd3e30dSNobuhiro Iwamatsu {
61d0201692SBernhard Kaindl 	/* return >= 0 if a chip is found, the board's AX88796L is n2k-based */
62d0201692SBernhard Kaindl 	return ne2k_register() + pci_eth_init(bis);
63acd3e30dSNobuhiro Iwamatsu }
64