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