aboutsummaryrefslogtreecommitdiff
path: root/core/include/drivers/pl061_gpio.h
blob: da155f307b170f3987a8ca7e40b20ccc83fd9623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2016, Linaro Limited
 * All rights reserved.
 */

#ifndef __PL061_GPIO_H__
#define __PL061_GPIO_H__

#include <gpio.h>
#include <types_ext.h>

#define PL061_REG_SIZE	0x1000

enum pl061_mode_control {
	PL061_MC_SW,
	PL061_MC_HW
};

struct pl061_data {
	struct gpio_chip chip;
};

void pl061_register(vaddr_t base_addr, unsigned int gpio_dev);
void pl061_init(struct pl061_data *pd);
enum pl061_mode_control pl061_get_mode_control(unsigned int gpio_pin);
void pl061_set_mode_control(unsigned int gpio_pin,
	enum pl061_mode_control hw_sw);

#endif	/* __PL061_GPIO_H__ */