bsp.h

Go to the documentation of this file.
00001 /***************************************************************************/
00035 #ifndef __BSP_H
00036 #define __BSP_H
00037 
00038 #include <stdbool.h>
00039 #include "bspconfig.h"
00040 #if defined( BSP_STK )
00041 #include "em_usart.h"
00042 #endif
00043 
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047  
00050 #define BSP_STATUS_OK                 0     
00051 #define BSP_STATUS_ILLEGAL_PARAM      (-1)  
00052 #define BSP_STATUS_NOT_IMPLEMENTED    (-2)  
00053 #define BSP_STATUS_UNSUPPORTED_MODE   (-3)  
00055 /* Initialization flag bitmasks for BSP_Init(). */
00056 #define BSP_INIT_DK_SPI     0x01  
00057 #define BSP_INIT_DK_EBI     0x02  
00058 #define BSP_INIT_BCC        0x04  
00062 #if defined( BSP_DK )
00063  
00066 typedef enum
00067 {
00068   BSP_Display_EBI,          
00069   BSP_Display_SPI,          
00070   BSP_Display_BC,           
00071   BSP_Display_PowerEnable,  
00072   BSP_Display_PowerDisable, 
00073   BSP_Display_ResetAssert,  
00074   BSP_Display_ResetRelease, 
00075   BSP_Display_Mode8080,     
00076   BSP_Display_ModeGeneric,  
00077 } BSP_Display_TypeDef;
00078 
00080 typedef enum
00081 {
00082   BSP_BusControl_Undefined=0, 
00083   BSP_BusControl_OFF,         
00084   BSP_BusControl_DIRECT,      
00085   BSP_BusControl_SPI,         
00086   BSP_BusControl_EBI,         
00087 } BSP_BusControl_TypeDef;
00088 
00089 #if defined( BSP_DK_3200 )                        /* Gxxx_DK */
00090 
00092 typedef enum
00093 {
00094   BSP_ACCEL          = BC_PERCTRL_ACCEL,          
00095   BSP_AMBIENT        = BC_PERCTRL_AMBIENT,        
00096   BSP_POTMETER       = BC_PERCTRL_POTMETER,       
00097   BSP_RS232A         = BC_PERCTRL_RS232A,         
00098   BSP_RS232B         = BC_PERCTRL_RS232B,         
00099   BSP_SPI            = BC_PERCTRL_SPI,            
00100   BSP_I2C            = BC_PERCTRL_I2C,            
00101   BSP_IRDA           = BC_PERCTRL_IRDA,           
00102   BSP_ANALOG_SE      = BC_PERCTRL_ANALOG_SE,      
00103   BSP_ANALOG_DIFF    = BC_PERCTRL_ANALOG_DIFF,    
00104   BSP_AUDIO_OUT      = BC_PERCTRL_AUDIO_OUT,      
00105   BSP_AUDIO_IN       = BC_PERCTRL_AUDIO_IN,       
00106   BSP_ACCEL_GSEL     = BC_PERCTRL_ACCEL_GSEL,     
00107   BSP_ACCEL_SELFTEST = BC_PERCTRL_ACCEL_SELFTEST, 
00108   BSP_RS232_SHUTDOWN = BC_PERCTRL_RS232_SHUTDOWN, 
00109   BSP_IRDA_SHUTDOWN  = BC_PERCTRL_IRDA_SHUTDOWN   
00110 #ifdef DOXY_DOC_ONLY
00111 } BSP_Peripheral_Typedef;                         /* Hack for doxygen doc ! */
00112 #else
00113 } BSP_Peripheral_TypeDef;
00114 #endif
00115 #endif /* BSP_DK_3200 */
00116 
00117 #if defined( BSP_DK_3201 )                        /* DK3x50 DK's */
00118 
00120 typedef enum
00121 {
00122   BSP_RS232_SHUTDOWN, 
00123   BSP_RS232_UART,     
00124   BSP_RS232_LEUART,   
00125   BSP_I2C,            
00126   BSP_ETH,            
00127   BSP_I2S,            
00128   BSP_TRACE,          
00129   BSP_TOUCH,          
00130   BSP_AUDIO_IN,       
00131   BSP_AUDIO_OUT,      
00132   BSP_ANALOG_DIFF,    
00133   BSP_ANALOG_SE,      
00134   BSP_MICROSD,        
00135   BSP_TFT,            
00136 } BSP_Peripheral_TypeDef;
00137 #endif  /* BSP_DK_3201 */
00138 
00140 #endif  /* BSP_DK */
00141 
00142 /************************** The BSP API *******************************/
00143 
00144 int             BSP_Disable                 ( void );
00145 int             BSP_Init                    ( uint32_t flags );
00146 int             BSP_LedClear                ( int ledNo );
00147 int             BSP_LedGet                  ( int ledNo );
00148 int             BSP_LedSet                  ( int ledNo );
00149 uint32_t        BSP_LedsGet                 ( void );
00150 int             BSP_LedsInit                ( void );
00151 int             BSP_LedsSet                 ( uint32_t leds );
00152 int             BSP_LedToggle               ( int ledNo );
00153 
00154 
00155 #if defined( BSP_DK )
00156 BSP_BusControl_TypeDef BSP_BusControlModeGet( void );
00157 int             BSP_BusControlModeSet       ( BSP_BusControl_TypeDef mode );
00158 uint32_t        BSP_DipSwitchGet            ( void );
00159 int             BSP_DisplayControl          ( BSP_Display_TypeDef option );
00160 int             BSP_EbiExtendedAddressRange ( bool enable );
00161 int             BSP_EnergyModeSet           ( uint16_t energyMode );
00162 int             BSP_InterruptDisable        ( uint16_t flags );
00163 int             BSP_InterruptEnable         ( uint16_t flags );
00164 int             BSP_InterruptFlagsClear     ( uint16_t flags );
00165 uint16_t        BSP_InterruptFlagsGet       ( void );
00166 uint16_t        BSP_JoystickGet             ( void );
00167 int             BSP_McuBoard_DeInit         ( void );
00168 int             BSP_McuBoard_Init           ( void );
00169 int             BSP_McuBoard_UsbStatusLedEnable ( bool enable );
00170 bool            BSP_McuBoard_UsbVbusOcFlagGet   ( void );
00171 int             BSP_McuBoard_UsbVbusPowerEnable ( bool enable );
00172 int             BSP_PeripheralAccess        ( BSP_Peripheral_TypeDef perf, bool enable );
00173 uint16_t        BSP_PushButtonsGet          ( void );
00174 uint16_t        BSP_RegisterRead            ( volatile uint16_t *addr );
00175 int             BSP_RegisterWrite           ( volatile uint16_t *addr, uint16_t data );
00176 #endif
00177 
00178 #if defined( BSP_STK )
00179 int             BSP_BccDeInit               ( void );
00180 int             BSP_BccInit                 ( void );
00181 bool            BSP_BccPacketReceive        ( BCP_Packet *pkt );
00182 int             BSP_BccPacketSend           ( BCP_Packet *pkt );
00183 USART_TypeDef  *BSP_BccUsartGet             ( void );
00184 float           BSP_CurrentGet              ( void );
00185 int             BSP_EbiDeInit               ( void );
00186 int             BSP_EbiInit                 ( void );
00187 float           BSP_VoltageGet              ( void );
00188 #endif
00189 
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193 
00194 #endif  /* __BSP_H */