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 Iwamatsuint 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 Iwamatsuint 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 Iwamatsuvoid led_set_state(unsigned short value) 35acd3e30dSNobuhiro Iwamatsu { 36acd3e30dSNobuhiro Iwamatsu 37acd3e30dSNobuhiro Iwamatsu } 38acd3e30dSNobuhiro Iwamatsu ide_set_reset(int idereset)39acd3e30dSNobuhiro Iwamatsuvoid 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 Iwamatsuvoid pci_init_board(void) 55acd3e30dSNobuhiro Iwamatsu { 56acd3e30dSNobuhiro Iwamatsu pci_sh7780_init(&hose); 57acd3e30dSNobuhiro Iwamatsu } 58acd3e30dSNobuhiro Iwamatsu board_eth_init(bd_t * bis)59acd3e30dSNobuhiro Iwamatsuint 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