/* * Copyright (c) 2016 Linaro Limited. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef _DRIVERS_GPIO_CMSDK_AHB_ #define _DRIVERS_GPIO_CMSDK_AHB_ #include #ifdef __cplusplus extern "C" { #endif /* ARM LTD CMSDK AHB General Purpose Input/Output (GPIO) */ struct gpio_cmsdk_ahb { /* Offset: 0x000 (r/w) data register */ volatile uint32_t data; /* Offset: 0x004 (r/w) data output latch register */ volatile uint32_t dataout; volatile uint32_t reserved0[2]; /* Offset: 0x010 (r/w) output enable set register */ volatile uint32_t outenableset; /* Offset: 0x014 (r/w) output enable clear register */ volatile uint32_t outenableclr; /* Offset: 0x018 (r/w) alternate function set register */ volatile uint32_t altfuncset; /* Offset: 0x01c (r/w) alternate function clear register */ volatile uint32_t altfuncclr; /* Offset: 0x020 (r/w) interrupt enable set register */ volatile uint32_t intenset; /* Offset: 0x024 (r/w) interrupt enable clear register */ volatile uint32_t intenclr; /* Offset: 0x028 (r/w) interrupt type set register */ volatile uint32_t inttypeset; /* Offset: 0x02c (r/w) interrupt type clear register */ volatile uint32_t inttypeclr; /* Offset: 0x030 (r/w) interrupt polarity set register */ volatile uint32_t intpolset; /* Offset: 0x034 (r/w) interrupt polarity clear register */ volatile uint32_t intpolclr; union { /* Offset: 0x038 (r/ ) interrupt status register */ volatile uint32_t intstatus; /* Offset: 0x038 ( /w) interrupt clear register */ volatile uint32_t intclear; }; volatile uint32_t reserved1[241]; /* Offset: 0x400 - 0x7fc lower byte masked access register (r/w) */ volatile uint32_t lb_masked[256]; /* Offset: 0x800 - 0xbfc upper byte masked access register (r/w) */ volatile uint32_t ub_masked[256]; }; #ifdef __cplusplus } #endif #endif /* _DRIVERS_GPIO_CMSDK_AHB_ */