diff options
author | wdenk <wdenk> | 2002-11-05 00:17:55 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2002-11-05 00:17:55 +0000 |
commit | 384ae02506f0673070a3516b1858f058a07f85f3 (patch) | |
tree | b85a18328375b06df150d630d400eb16c75090f4 /board/csb226/csb226.c | |
parent | e95b61cfb0c7203964c1a3f163e16a65f04d87ec (diff) | |
download | u-boot-imx-384ae02506f0673070a3516b1858f058a07f85f3.zip u-boot-imx-384ae02506f0673070a3516b1858f058a07f85f3.tar.gz u-boot-imx-384ae02506f0673070a3516b1858f058a07f85f3.tar.bz2 |
* Patch by Robert Schwebel, 04 Nov 2002:
- use watchdog to reset PXA250 systems
- added progress callbacks to (some of the) ARM code
- update for Cogent CSB226 board
* Add support for FPS860 board
Diffstat (limited to 'board/csb226/csb226.c')
-rw-r--r-- | board/csb226/csb226.c | 81 |
1 files changed, 79 insertions, 2 deletions
diff --git a/board/csb226/csb226.c b/board/csb226/csb226.c index 1ed4034..0d99aa8 100644 --- a/board/csb226/csb226.c +++ b/board/csb226/csb226.c @@ -24,14 +24,25 @@ */ #include <common.h> +#include <asm/arch/pxa-regs.h> -/* ------------------------------------------------------------------------- */ - +#ifdef CONFIG_SHOW_BOOT_PROGRESS +# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg) +#else +# define SHOW_BOOT_PROGRESS(arg) +#endif /* * Miscelaneous platform dependent initialisations */ + +/** + * board_init: - setup some data structures + * + * @return: 0 in case of success + */ + int board_init (void) { DECLARE_GLOBAL_DATA_PTR; @@ -48,6 +59,13 @@ int board_init (void) return 0; } + +/** + * dram_init: - setup dynamic RAM + * + * @return: 0 in case of success + */ + int dram_init (void) { DECLARE_GLOBAL_DATA_PTR; @@ -57,3 +75,62 @@ int dram_init (void) return 0; } + + +/** + * csb226_set_led: - switch LEDs on or off + * + * @param led: LED to switch (0,1,2) + * @param state: switch on (1) or off (0) + */ + +void csb226_set_led(int led, int state) +{ + switch(led) { + + case 0: if (state==1) { + GPCR0 |= CSB226_USER_LED0; + } else if (state==0) { + GPSR0 |= CSB226_USER_LED0; + } + break; + + case 1: if (state==1) { + GPCR0 |= CSB226_USER_LED1; + } else if (state==0) { + GPSR0 |= CSB226_USER_LED1; + } + break; + + case 2: if (state==1) { + GPCR0 |= CSB226_USER_LED2; + } else if (state==0) { + GPSR0 |= CSB226_USER_LED2; + } + break; + } + + return; +} + + +/** + * show_boot_progress: - indicate state of the boot process + * + * @param status: Status number - see README for details. + * + * The CSB226 does only have 3 LEDs, so we switch them on at the most + * important states (1, 5, 15). + */ + +void show_boot_progress (int status) +{ + switch(status) { + case 1: csb226_set_led(0,1); break; + case 5: csb226_set_led(1,1); break; + case 15: csb226_set_led(2,1); break; + } + + return; +} + |