X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=board%2Fbf533-stamp%2Fbf533-stamp.c;h=585f5f14d422ab83d62a7bc93bb137005e565e71;hb=9e2b0c2d72fe44776e645de0bf0060953fcd8178;hp=4abad08cd9d9db8751859c742ec1740e40606332;hpb=a7709d926dbc7cb1541034fcf2b21ce3e838cb12;p=u-boot diff --git a/board/bf533-stamp/bf533-stamp.c b/board/bf533-stamp/bf533-stamp.c index 4abad08cd9..585f5f14d4 100644 --- a/board/bf533-stamp/bf533-stamp.c +++ b/board/bf533-stamp/bf533-stamp.c @@ -6,29 +6,12 @@ * (C) Copyright 2000-2004 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - * MA 02110-1301 USA + * SPDX-License-Identifier: GPL-2.0+ */ #include #include -#include -#include "bf533-stamp.h" +#include DECLARE_GLOBAL_DATA_PTR; @@ -46,15 +29,10 @@ int checkboard(void) */ void swap_to(int device_id) { - bfin_write_FIO_DIR(bfin_read_FIO_DIR() | PF1 | PF0); - SSYNC(); - bfin_write_FIO_FLAG_C(PF1); - if (device_id == ETHERNET) - bfin_write_FIO_FLAG_S(PF0); - else if (device_id == FLASH) - bfin_write_FIO_FLAG_C(PF0); - else - printf("Unknown device to switch\n"); + gpio_request(GPIO_PF0, "eth_flash_swap"); + gpio_request(GPIO_PF1, "eth_flash_swap"); + gpio_direction_output(GPIO_PF0, device_id == ETHERNET); + gpio_direction_output(GPIO_PF1, 0); SSYNC(); } @@ -75,56 +53,55 @@ int misc_init_r(void) #define STATUS_LED_OFF 0 #define STATUS_LED_ON 1 +static int gpio_setup; + static void stamp_led_set(int LED1, int LED2, int LED3) { - bfin_write_FIO_INEN(bfin_read_FIO_INEN() & ~(PF2 | PF3 | PF4)); - bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (PF2 | PF3 | PF4)); - - if (LED1 == STATUS_LED_OFF) - *pFIO_FLAG_S = PF2; - else - *pFIO_FLAG_C = PF2; - if (LED2 == STATUS_LED_OFF) - *pFIO_FLAG_S = PF3; - else - *pFIO_FLAG_C = PF3; - if (LED3 == STATUS_LED_OFF) - *pFIO_FLAG_S = PF4; - else - *pFIO_FLAG_C = PF4; - SSYNC(); + if (!gpio_setup) { + gpio_request(GPIO_PF2, "boot_progress"); + gpio_request(GPIO_PF3, "boot_progress"); + gpio_request(GPIO_PF4, "boot_progress"); + gpio_direction_output(GPIO_PF2, LED1); + gpio_direction_output(GPIO_PF3, LED2); + gpio_direction_output(GPIO_PF4, LED3); + gpio_setup = 1; + } else { + gpio_set_value(GPIO_PF2, LED1); + gpio_set_value(GPIO_PF3, LED2); + gpio_set_value(GPIO_PF4, LED3); + } } void show_boot_progress(int status) { switch (status) { - case 1: + case BOOTSTAGE_ID_CHECK_MAGIC: stamp_led_set(STATUS_LED_OFF, STATUS_LED_OFF, STATUS_LED_ON); break; - case 2: + case BOOTSTAGE_ID_CHECK_HEADER: stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_OFF); break; - case 3: + case BOOTSTAGE_ID_CHECK_CHECKSUM: stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_ON); break; - case 4: + case BOOTSTAGE_ID_CHECK_ARCH: stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_OFF); break; - case 5: - case 6: + case BOOTSTAGE_ID_CHECK_IMAGETYPE: + case BOOTSTAGE_ID_DECOMP_IMAGE: stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_ON); break; - case 7: - case 8: + case BOOTSTAGE_ID_KERNEL_LOADED: + case BOOTSTAGE_ID_CHECK_BOOT_OS: stamp_led_set(STATUS_LED_ON, STATUS_LED_ON, STATUS_LED_OFF); break; - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: + case BOOTSTAGE_ID_BOOT_OS_RETURNED: + case BOOTSTAGE_ID_RD_MAGIC: + case BOOTSTAGE_ID_RD_HDR_CHECKSUM: + case BOOTSTAGE_ID_RD_CHECKSUM: + case BOOTSTAGE_ID_RAMDISK: + case BOOTSTAGE_ID_NO_RAMDISK: + case BOOTSTAGE_ID_RUN_OS: stamp_led_set(STATUS_LED_OFF, STATUS_LED_OFF, STATUS_LED_OFF); break; default: @@ -134,43 +111,6 @@ void show_boot_progress(int status) } #endif -#ifdef CONFIG_STATUS_LED -#include - -static void set_led(int pf, int state) -{ - switch (state) { - case STATUS_LED_OFF: bfin_write_FIO_FLAG_S(pf); break; - case STATUS_LED_BLINKING: bfin_write_FIO_FLAG_T(pf); break; - case STATUS_LED_ON: bfin_write_FIO_FLAG_C(pf); break; - } -} - -static void set_leds(led_id_t mask, int state) -{ - if (mask & 0x1) set_led(PF2, state); - if (mask & 0x2) set_led(PF3, state); - if (mask & 0x4) set_led(PF4, state); -} - -void __led_init(led_id_t mask, int state) -{ - bfin_write_FIO_INEN(bfin_read_FIO_INEN() & ~(PF2 | PF3 | PF4)); - bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (PF2 | PF3 | PF4)); -} - -void __led_set(led_id_t mask, int state) -{ - set_leds(mask, state); -} - -void __led_toggle(led_id_t mask) -{ - set_leds(mask, STATUS_LED_BLINKING); -} - -#endif - #ifdef CONFIG_SMC91111 int board_eth_init(bd_t *bis) {