1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2016, Linaro Limited
4  */
5 
6 #ifndef __PL061_GPIO_H__
7 #define __PL061_GPIO_H__
8 
9 #include <gpio.h>
10 #include <types_ext.h>
11 
12 #define PL061_REG_SIZE	0x1000
13 
14 enum pl061_mode_control {
15 	PL061_MC_SW,
16 	PL061_MC_HW
17 };
18 
19 struct pl061_data {
20 	struct gpio_chip chip;
21 };
22 
23 void pl061_register(vaddr_t base_addr, unsigned int gpio_dev);
24 void pl061_init(struct pl061_data *pd);
25 enum pl061_mode_control pl061_get_mode_control(unsigned int gpio_pin);
26 void pl061_set_mode_control(unsigned int gpio_pin,
27 	enum pl061_mode_control hw_sw);
28 
29 #endif	/* __PL061_GPIO_H__ */
30