/**
******************************************************************************
* @file gpio_reg.h
* @version V1.0
* @date 2022-08-03
* @brief This file is the description of.IP register
******************************************************************************
* @attention
*
*
© COPYRIGHT(c) 2020 Bouffalo Lab
*
* 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 Bouffalo Lab 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.
*
******************************************************************************
*/
#ifndef __HARDWARE_GPIO_H__
#define __HARDWARE_GPIO_H__
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Register offsets *********************************************************/
#if defined(BL616) || defined(BL808) || defined(BL606P) || defined(BL628)
#define GLB_GPIO_CFG0_OFFSET (0x8C4)/* gpio_cfg0 */
#define GLB_GPIO_CFG1_OFFSET (0x8C8)/* gpio_cfg1 */
#define GLB_GPIO_CFG2_OFFSET (0x8CC)/* gpio_cfg2 */
#define GLB_GPIO_CFG3_OFFSET (0x8D0)/* gpio_cfg3 */
#define GLB_GPIO_CFG4_OFFSET (0x8D4)/* gpio_cfg4 */
#define GLB_GPIO_CFG5_OFFSET (0x8D8)/* gpio_cfg5 */
#define GLB_GPIO_CFG6_OFFSET (0x8DC)/* gpio_cfg6 */
#define GLB_GPIO_CFG7_OFFSET (0x8E0)/* gpio_cfg7 */
#define GLB_GPIO_CFG8_OFFSET (0x8E4)/* gpio_cfg8 */
#define GLB_GPIO_CFG9_OFFSET (0x8E8)/* gpio_cfg9 */
#define GLB_GPIO_CFG10_OFFSET (0x8EC)/* gpio_cfg10 */
#define GLB_GPIO_CFG11_OFFSET (0x8F0)/* gpio_cfg11 */
#define GLB_GPIO_CFG12_OFFSET (0x8F4)/* gpio_cfg12 */
#define GLB_GPIO_CFG13_OFFSET (0x8F8)/* gpio_cfg13 */
#define GLB_GPIO_CFG14_OFFSET (0x8FC)/* gpio_cfg14 */
#define GLB_GPIO_CFG15_OFFSET (0x900)/* gpio_cfg15 */
#define GLB_GPIO_CFG16_OFFSET (0x904)/* gpio_cfg16 */
#define GLB_GPIO_CFG17_OFFSET (0x908)/* gpio_cfg17 */
#define GLB_GPIO_CFG18_OFFSET (0x90C)/* gpio_cfg18 */
#define GLB_GPIO_CFG19_OFFSET (0x910)/* gpio_cfg19 */
#define GLB_GPIO_CFG20_OFFSET (0x914)/* gpio_cfg20 */
#define GLB_GPIO_CFG21_OFFSET (0x918)/* gpio_cfg21 */
#define GLB_GPIO_CFG22_OFFSET (0x91C)/* gpio_cfg22 */
#define GLB_GPIO_CFG23_OFFSET (0x920)/* gpio_cfg23 */
#define GLB_GPIO_CFG24_OFFSET (0x924)/* gpio_cfg24 */
#define GLB_GPIO_CFG25_OFFSET (0x928)/* gpio_cfg25 */
#define GLB_GPIO_CFG26_OFFSET (0x92C)/* gpio_cfg26 */
#define GLB_GPIO_CFG27_OFFSET (0x930)/* gpio_cfg27 */
#define GLB_GPIO_CFG28_OFFSET (0x934)/* gpio_cfg28 */
#define GLB_GPIO_CFG29_OFFSET (0x938)/* gpio_cfg29 */
#define GLB_GPIO_CFG30_OFFSET (0x93C)/* gpio_cfg30 */
#define GLB_GPIO_CFG31_OFFSET (0x940)/* gpio_cfg31 */
#define GLB_GPIO_CFG32_OFFSET (0x944)/* gpio_cfg32 */
#define GLB_GPIO_CFG33_OFFSET (0x948)/* gpio_cfg33 */
#define GLB_GPIO_CFG34_OFFSET (0x94C)/* gpio_cfg34 */
#define GLB_GPIO_CFG35_OFFSET (0x950)/* gpio_cfg35 */
#define GLB_GPIO_CFG36_OFFSET (0x954)/* gpio_cfg36 */
#define GLB_GPIO_CFG37_OFFSET (0x958)/* gpio_cfg37 */
#define GLB_GPIO_CFG38_OFFSET (0x95C)/* gpio_cfg38 */
#define GLB_GPIO_CFG39_OFFSET (0x960)/* gpio_cfg39 */
#define GLB_GPIO_CFG40_OFFSET (0x964)/* gpio_cfg40 */
#define GLB_GPIO_CFG41_OFFSET (0x968)/* gpio_cfg41 */
#define GLB_GPIO_CFG42_OFFSET (0x96C)/* gpio_cfg42 */
#define GLB_GPIO_CFG43_OFFSET (0x970)/* gpio_cfg43 */
#define GLB_GPIO_CFG44_OFFSET (0x974)/* gpio_cfg44 */
#define GLB_GPIO_CFG45_OFFSET (0x978)/* gpio_cfg45 */
#define GLB_GPIO_CFG46_OFFSET (0x97C)/* gpio_cfg46 */
#define GLB_GPIO_CFG47_OFFSET (0x980)/* gpio_cfg47 */
#define GLB_GPIO_CFG48_OFFSET (0x984)/* gpio_cfg48 */
#define GLB_GPIO_CFG49_OFFSET (0x988)/* gpio_cfg49 */
#define GLB_GPIO_CFG50_OFFSET (0x98C)/* gpio_cfg50 */
#define GLB_GPIO_CFG51_OFFSET (0x990)/* gpio_cfg51 */
#define GLB_GPIO_CFG52_OFFSET (0x994)/* gpio_cfg52 */
#define GLB_GPIO_CFG53_OFFSET (0x998)/* gpio_cfg53 */
#define GLB_GPIO_CFG54_OFFSET (0x99C)/* gpio_cfg54 */
#define GLB_GPIO_CFG55_OFFSET (0x9A0)/* gpio_cfg55 */
#define GLB_GPIO_CFG56_OFFSET (0x9A4)/* gpio_cfg56 */
#define GLB_GPIO_CFG57_OFFSET (0x9A8)/* gpio_cfg57 */
#define GLB_GPIO_CFG58_OFFSET (0x9AC)/* gpio_cfg58 */
#define GLB_GPIO_CFG59_OFFSET (0x9B0)/* gpio_cfg59 */
#define GLB_GPIO_CFG60_OFFSET (0x9B4)/* gpio_cfg60 */
#define GLB_GPIO_CFG61_OFFSET (0x9B8)/* gpio_cfg61 */
#define GLB_GPIO_CFG62_OFFSET (0x9BC)/* gpio_cfg62 */
#define GLB_GPIO_CFG63_OFFSET (0x9C0)/* gpio_cfg63 */
#define GLB_GPIO_CFG128_OFFSET (0xAC4)/* gpio_cfg128 */
#define GLB_GPIO_CFG129_OFFSET (0xAC8)/* gpio_cfg129 */
#define GLB_GPIO_CFG136_OFFSET (0xAE4)/* gpio_cfg136 */
#define GLB_GPIO_CFG137_OFFSET (0xAE8)/* gpio_cfg137 */
#define GLB_GPIO_CFG138_OFFSET (0xAEC)/* gpio_cfg138 */
#define GLB_GPIO_CFG139_OFFSET (0xAF0)/* gpio_cfg139 */
#define GLB_GPIO_CFG140_OFFSET (0xAF4)/* gpio_cfg140 */
#define GLB_GPIO_CFG141_OFFSET (0xAF8)/* gpio_cfg141 */
#define GLB_GPIO_CFG142_OFFSET (0xAFC)/* gpio_cfg142 */
#define GLB_GPIO_CFG143_OFFSET (0xB00)/* gpio_cfg143 */
#define GLB_GPIO_CFG144_OFFSET (0xB04)/* gpio_cfg144 */
/* Register Bitfield definitions *****************************************************/
/* 0x8C4 : gpio_cfg0 */
#define GLB_REG_GPIO_0_IE (1<<0U)
#define GLB_REG_GPIO_0_SMT (1<<1U)
#define GLB_REG_GPIO_0_DRV_SHIFT (2U)
#define GLB_REG_GPIO_0_DRV_MASK (0x3<