1*52a822edSMichal Simek /* 2*52a822edSMichal Simek * (C) Copyright 2007 Michal Simek 3*52a822edSMichal Simek * 4*52a822edSMichal Simek * Michal SIMEK <monstr@monstr.eu> 5*52a822edSMichal Simek * 6*52a822edSMichal Simek * See file CREDITS for list of people who contributed to this 7*52a822edSMichal Simek * project. 8*52a822edSMichal Simek * 9*52a822edSMichal Simek * This program is free software; you can redistribute it and/or 10*52a822edSMichal Simek * modify it under the terms of the GNU General Public License as 11*52a822edSMichal Simek * published by the Free Software Foundation; either version 2 of 12*52a822edSMichal Simek * the License, or (at your option) any later version. 13*52a822edSMichal Simek * 14*52a822edSMichal Simek * This program is distributed in the hope that it will be useful, 15*52a822edSMichal Simek * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*52a822edSMichal Simek * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*52a822edSMichal Simek * GNU General Public License for more details. 18*52a822edSMichal Simek * 19*52a822edSMichal Simek * You should have received a copy of the GNU General Public License 20*52a822edSMichal Simek * along with this program; if not, write to the Free Software 21*52a822edSMichal Simek * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 22*52a822edSMichal Simek * MA 02111-1307 USA 23*52a822edSMichal Simek */ 24*52a822edSMichal Simek 25*52a822edSMichal Simek /* This is a board specific file. It's OK to include board specific 26*52a822edSMichal Simek * header files */ 27*52a822edSMichal Simek 28*52a822edSMichal Simek #include <common.h> 29*52a822edSMichal Simek #include <config.h> 30*52a822edSMichal Simek #include <asm/microblaze_intc.h> 31*52a822edSMichal Simek #include <asm/asm.h> 32*52a822edSMichal Simek 33*52a822edSMichal Simek void do_reset (void) 34*52a822edSMichal Simek { 35*52a822edSMichal Simek #ifdef CONFIG_SYS_GPIO_0 36*52a822edSMichal Simek *((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR)) = 37*52a822edSMichal Simek ++(*((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR))); 38*52a822edSMichal Simek #endif 39*52a822edSMichal Simek #ifdef CONFIG_SYS_RESET_ADDRESS 40*52a822edSMichal Simek puts ("Reseting board\n"); 41*52a822edSMichal Simek asm ("bra r0"); 42*52a822edSMichal Simek #endif 43*52a822edSMichal Simek } 44*52a822edSMichal Simek 45*52a822edSMichal Simek int gpio_init (void) 46*52a822edSMichal Simek { 47*52a822edSMichal Simek #ifdef CONFIG_SYS_GPIO_0 48*52a822edSMichal Simek *((unsigned long *)(CONFIG_SYS_GPIO_0_ADDR)) = 0xFFFFFFFF; 49*52a822edSMichal Simek #endif 50*52a822edSMichal Simek return 0; 51*52a822edSMichal Simek } 52*52a822edSMichal Simek 53*52a822edSMichal Simek #ifdef CONFIG_SYS_FSL_2 54*52a822edSMichal Simek void fsl_isr2 (void *arg) { 55*52a822edSMichal Simek volatile int num; 56*52a822edSMichal Simek *((unsigned int *)(CONFIG_SYS_GPIO_0_ADDR + 0x4)) = 57*52a822edSMichal Simek ++(*((unsigned int *)(CONFIG_SYS_GPIO_0_ADDR + 0x4))); 58*52a822edSMichal Simek GET (num, 2); 59*52a822edSMichal Simek NGET (num, 2); 60*52a822edSMichal Simek puts("*"); 61*52a822edSMichal Simek } 62*52a822edSMichal Simek 63*52a822edSMichal Simek void fsl_init2 (void) { 64*52a822edSMichal Simek puts("fsl_init2\n"); 65*52a822edSMichal Simek install_interrupt_handler (FSL_INTR_2,\ 66*52a822edSMichal Simek fsl_isr2,\ 67*52a822edSMichal Simek NULL); 68*52a822edSMichal Simek } 69*52a822edSMichal Simek #endif 70