1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2019 SiFive, Inc.
4  */
5 
6 #ifndef _GPIO_SIFIVE_H
7 #define _GPIO_SIFIVE_H
8 
9 #define GPIO_INPUT_VAL	0x00
10 #define GPIO_INPUT_EN	0x04
11 #define GPIO_OUTPUT_EN	0x08
12 #define GPIO_OUTPUT_VAL	0x0C
13 #define GPIO_RISE_IE	0x18
14 #define GPIO_RISE_IP	0x1C
15 #define GPIO_FALL_IE	0x20
16 #define GPIO_FALL_IP	0x24
17 #define GPIO_HIGH_IE	0x28
18 #define GPIO_HIGH_IP	0x2C
19 #define GPIO_LOW_IE	0x30
20 #define GPIO_LOW_IP	0x34
21 #define GPIO_OUTPUT_XOR	0x40
22 
23 #define NR_GPIOS	16
24 
25 enum gpio_state {
26 	LOW,
27 	HIGH
28 };
29 
30 /* Details about a GPIO bank */
31 struct sifive_gpio_plat {
32 	void *base;     /* address of registers in physical memory */
33 };
34 
35 #endif /* _GPIO_SIFIVE_H */
36