xref: /rk3399_ARM-atf/include/drivers/rpi3/gpio/rpi3_gpio.h (revision 0d92745e101b95a19c34dd6e2d1eccc2d9fcb629)
1d604ac48SYing-Chun Liu (PaulLiu) /*
2d604ac48SYing-Chun Liu (PaulLiu)  * Copyright (c) 2019, Linaro Limited
3d604ac48SYing-Chun Liu (PaulLiu)  * Copyright (c) 2019, Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
4d604ac48SYing-Chun Liu (PaulLiu)  *
5d604ac48SYing-Chun Liu (PaulLiu)  * SPDX-License-Identifier: BSD-3-Clause
6d604ac48SYing-Chun Liu (PaulLiu)  */
7d604ac48SYing-Chun Liu (PaulLiu) 
8d604ac48SYing-Chun Liu (PaulLiu) #ifndef RPI3_GPIO_H
9d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_H
10d604ac48SYing-Chun Liu (PaulLiu) 
11d604ac48SYing-Chun Liu (PaulLiu) #include <stdint.h>
12d604ac48SYing-Chun Liu (PaulLiu) #include <drivers/gpio.h>
13d604ac48SYing-Chun Liu (PaulLiu) 
14*0d92745eSAndre Przywara void rpi3_gpio_init(void);
15d604ac48SYing-Chun Liu (PaulLiu) int rpi3_gpio_get_select(int gpio);
16d604ac48SYing-Chun Liu (PaulLiu) void rpi3_gpio_set_select(int gpio, int fsel);
17d604ac48SYing-Chun Liu (PaulLiu) 
18d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPFSEL(n)	((n) * U(0x04))
19d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPSET(n)	(((n) * U(0x04)) + U(0x1C))
20d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPCLR(n)	(((n) * U(0x04)) + U(0x28))
21d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPLEV(n) 	(((n) * U(0x04)) + U(0x34))
22d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPPUD		U(0x94)
23d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_GPPUDCLK(n)	(((n) * U(0x04)) + U(0x98))
24d604ac48SYing-Chun Liu (PaulLiu) 
25d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_INPUT	U(0)
26d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_OUTPUT	U(1)
27d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT0	U(4)
28d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT1	U(5)
29d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT2	U(6)
30d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT3	U(7)
31d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT4	U(3)
32d604ac48SYing-Chun Liu (PaulLiu) #define RPI3_GPIO_FUNC_ALT5	U(2)
33d604ac48SYing-Chun Liu (PaulLiu) 
34d604ac48SYing-Chun Liu (PaulLiu) #endif  /* RPI3_GPIO_H */
35