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