blob: 7e442786fb60ca61fd51733e1d444c93f6be980f [file] [log] [blame]
/* ------------------------------------------
* Copyright (c) 2016, Synopsys, Inc. All rights reserved.
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1) Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2) Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
* 3) Neither the name of the Synopsys, Inc., nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* \version 2016.05
* \date 2014-07-31
* \author Wayne Ren(Wei.Ren@synopsys.com)
--------------------------------------------- */
/**
* \file
* \ingroup BOARD_EMSK_DRV_GPIO
* \brief emsk board gpio related functions header
*/
/**
* \addtogroup BOARD_EMSK_DRV_GPIO
* @{
*/
#ifndef _EMSK_GPIO_H_
#define _EMSK_GPIO_H_
#include "device/designware/gpio/dw_gpio.h"
/**
* \name EMSK LED Port Configuration
* @{
*/
#define EMSK_LED_OFFSET (0)
#define EMSK_LED_MASK ((0x1ff) << EMSK_LED_OFFSET)
#define EMSK_LED_PORT (DW_GPIO_PORT_B)
#define EMSK_LED_DIR ((0x1ff) << EMSK_LED_OFFSET)
/** @} end of name */
/**
* \name EMSK Switch Port Configuration
* @{
*/
#define EMSK_SWITCH_OFFSET (0)
#define EMSK_SWITCH_MASK ((0xf) << EMSK_SWITCH_OFFSET)
#define EMSK_SWITCH_PORT (DW_GPIO_PORT_C)
#define EMSK_SWITCH_DIR ((0x0) << EMSK_SWITCH_OFFSET)
/** @} end of name */
/**
* \name EMSK Button Port Configuration
* @{
*/
#define EMSK_BUTTON_OFFSET (0)
#define EMSK_BUTTON_MASK ((0x7) << EMSK_BUTTON_OFFSET)
#define EMSK_BUTTON_PORT (DW_GPIO_PORT_A)
#define EMSK_BUTTON_DIR ((0x0) << EMSK_BUTTON_OFFSET)
/** @} end of name */
#ifdef __cplusplus
extern "C" {
#endif
extern void emsk_led_init(void);
extern void emsk_button_init(void);
extern void emsk_switch_init(void);
extern void emsk_gpio_init(void);
extern void led_write(uint32_t led_val, uint32_t mask);
extern uint32_t led_read(uint32_t mask);
extern uint32_t switch_read(uint32_t mask);
extern uint32_t button_read(uint32_t mask);
#ifdef __cplusplus
}
#endif
#endif /* _EMSK_GPIO_H_ */
/** @} end of group BOARD_EMSK_DRV_GPIO */