1 /*
2  * Copyright (c) 2016 Linaro Limited.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_DRIVERS_GPIO_GPIO_CMSDK_AHB_H_
7 #define ZEPHYR_DRIVERS_GPIO_GPIO_CMSDK_AHB_H_
8 
9 #include <drivers/gpio.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 /* ARM LTD CMSDK AHB General Purpose Input/Output (GPIO) */
16 struct gpio_cmsdk_ahb {
17 	/* Offset: 0x000 (r/w) data register */
18 	volatile uint32_t data;
19 	/* Offset: 0x004 (r/w) data output latch register */
20 	volatile uint32_t dataout;
21 	volatile uint32_t reserved0[2];
22 	/* Offset: 0x010 (r/w) output enable set register */
23 	volatile uint32_t outenableset;
24 	/* Offset: 0x014 (r/w) output enable clear register */
25 	volatile uint32_t outenableclr;
26 	/* Offset: 0x018 (r/w) alternate function set register */
27 	volatile uint32_t altfuncset;
28 	/* Offset: 0x01c (r/w) alternate function clear register */
29 	volatile uint32_t altfuncclr;
30 	/* Offset: 0x020 (r/w) interrupt enable set register */
31 	volatile uint32_t intenset;
32 	/* Offset: 0x024 (r/w) interrupt enable clear register */
33 	volatile uint32_t intenclr;
34 	/* Offset: 0x028 (r/w) interrupt type set register */
35 	volatile uint32_t inttypeset;
36 	/* Offset: 0x02c (r/w) interrupt type clear register */
37 	volatile uint32_t inttypeclr;
38 	/* Offset: 0x030 (r/w) interrupt polarity set register */
39 	volatile uint32_t intpolset;
40 	/* Offset: 0x034 (r/w) interrupt polarity clear register */
41 	volatile uint32_t intpolclr;
42 	union {
43 		/* Offset: 0x038 (r/ ) interrupt status register */
44 		volatile uint32_t intstatus;
45 		/* Offset: 0x038 ( /w) interrupt clear register */
46 		volatile uint32_t  intclear;
47 	};
48 	volatile uint32_t reserved1[241];
49 	/* Offset: 0x400 - 0x7fc lower byte masked access register (r/w) */
50 	volatile uint32_t lb_masked[256];
51 	/* Offset: 0x800 - 0xbfc upper byte masked access register (r/w) */
52 	volatile uint32_t ub_masked[256];
53 };
54 
55 #ifdef __cplusplus
56 }
57 #endif
58 
59 #endif /* ZEPHYR_DRIVERS_GPIO_GPIO_CMSDK_AHB_H_ */
60