/******************************************************************************\ * Copyright (C) 2000 Texas Instruments Incorporated. * All Rights Reserved *------------------------------------------------------------------------------ * FILENAME...... bsl_led.c * DATE CREATED.. Thu 06/15/2001 * LAST MODIFIED. Thu 06/15/2001 * \******************************************************************************/ #define _LED_MOD_ #define _BOARD_MOD_ /****************************************\ * include files \****************************************/ #include "bsl_led.h" #if (LED_SUPPORT) /******************************************************************************\ * L O C A L S E C T I O N \******************************************************************************/ /****************************************\ * LED static macro declarations \****************************************/ #if (BOARD_6711DSK | BOARD_6211DSK) /* LED memory mapped address */ #define LED_PORT _BOARD_IOPORT /* LED left shift */ #define LED_SHIFT(x) ( (LED_PORT & (~(0x0F000000))) |(x<<24) ) #endif #if (BOARD_6201EVM) /* LED memory mapped address */ #define LED_PORT _BOARD_LED_REG /* LED no shift */ #define LED_SHIFT(x) ( (LED_PORT & (~0x0003)) | x ) #endif /****************************************\ * LED static typedef declarations \****************************************/ /****************************************\ * LED static function declarations \****************************************/ /****************************************\ * LED static variable definitions \****************************************/ static int ledVal = 0; /****************************************\ * LED static function definitions \****************************************/ /*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ /******************************************************************************\ * G L O B A L S E C T I O N \******************************************************************************/ /****************************************\ * LED global variable definitions \****************************************/ /****************************************\ * LED global function definitions \****************************************/ /*----------------------------------------------------------------------------*/ void _LED_init(){ static int initialized = 0; Uint32 oldCECTL1 = EMIF_RGET(CECTL1); if (!initialized) { #if (BOARD_6711DSK | BOARD_6211DSK |BOARD_6201EVM) /* set CE1 space to 32-bit async mode */ EMIF_RSET(CECTL1,(oldCECTL1 & (~0x000000F0)) | 0x00000020); while((EMIF_RGET(CECTL1) & 0x00F0) != 0x20) ; #endif #if (BOARD_6711DSK | BOARD_6211DSK) ledVal = 0xf; /* LEDs off by default */ #endif #if (BOARD_6201EVM) ledVal = 0x0; /* LEDs off by default */ #endif LED_PORT = LED_SHIFT(ledVal); /* shut off LEDs */ asm(" NOP 9"); /* delay slots */ asm(" NOP 3"); EMIF_RSET(CECTL1,oldCECTL1); /* restore CE1 space */ _BOARD_init(); initialized = 1; } } /*----------------------------------------------------------------------------*/ void LED_off(Uint32 ledNum){ Uint32 oldCECTL1 = EMIF_RGET(CECTL1); #if (BOARD_6711DSK | BOARD_6211DSK |BOARD_6201EVM) /* set CE1 space to 32-bit async mode */ EMIF_RSET(CECTL1,(oldCECTL1 & (~0x000000F0)) | 0x00000020); while((EMIF_RGET(CECTL1) & 0x00F0) != 0x20) ; #endif #if (BOARD_6711DSK | BOARD_6211DSK) ledVal |= ledNum; #endif #if (BOARD_6201EVM) ledVal &= ~ledNum; #endif LED_PORT = LED_SHIFT(ledVal); /* shut off LEDs */ asm(" NOP 9"); /* delay slots */ asm(" NOP 3"); EMIF_RSET(CECTL1,oldCECTL1); /* restore CE1 space */ } /*----------------------------------------------------------------------------*/ void LED_on(Uint32 ledNum){ Uint32 oldCECTL1 = EMIF_RGET(CECTL1); #if (BOARD_6711DSK | BOARD_6211DSK |BOARD_6201EVM) /* set CE1 space to 32-bit async mode */ EMIF_RSET(CECTL1,(oldCECTL1 & (~0x000000F0)) | 0x00000020); while((EMIF_RGET(CECTL1) & 0x00F0) != 0x20) ; #endif #if (BOARD_6711DSK | BOARD_6211DSK) ledVal &= ~ledNum; #endif #if (BOARD_6201EVM) ledVal |= ledNum; #endif LED_PORT = LED_SHIFT(ledVal); /* shut off LEDs */ asm(" NOP 9"); /* delay slots */ asm(" NOP 3"); EMIF_RSET(CECTL1,oldCECTL1); /* restore CE1 space */ } /*----------------------------------------------------------------------------*/ void LED_toggle(Uint32 ledNum){ Uint32 oldCECTL1 = EMIF_RGET(CECTL1); #if (BOARD_6711DSK | BOARD_6211DSK |BOARD_6201EVM) /* set CE1 space to 32-bit async mode */ EMIF_RSET(CECTL1,(oldCECTL1 & (~0x000000F0)) | 0x00000020); while((EMIF_RGET(CECTL1) & 0x00F0) != 0x20) ; #endif #if (BOARD_6711DSK | BOARD_6211DSK | BOARD_6201EVM) ledVal ^= ledNum; #endif LED_PORT = LED_SHIFT(ledVal); /* shut off LEDs */ asm(" NOP 9"); /* delay slots */ asm(" NOP 3"); EMIF_RSET(CECTL1,oldCECTL1); /* restore CE1 space */ } /*----------------------------------------------------------------------------*/ #endif /* LED_SUPPORT */ /******************************************************************************\ * End of bsl_led.c \******************************************************************************/