1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef INTERNAL_GPIO_H
9 #define INTERNAL_GPIO_H
10 
11 #include "synquacer_mmap.h"
12 
13 #include <stdint.h>
14 
15 #define PRMUX_MAX_IDX CONFIG_SOC_PRMUX_MAX_IDX
16 #define GPIO_MAX_IDX 3
17 
18 void fw_gpio_init(void);
19 void prmux_set_pingrp(void *prmux_base_addr, uint32_t idx, uint32_t pingrp);
20 void gpio_set_data(void *gpio_base_addr, uint32_t idx, uint8_t value);
21 uint8_t gpio_get_data(void *gpio_base_addr, uint32_t idx);
22 void gpio_set_direction(void *gpio_base_addr, uint32_t idx, uint8_t value);
23 uint8_t gpio_get_direction(void *gpio_base_addr, uint32_t idx);
24 void gpio_set_function(void *gpio_base_addr, uint32_t idx, uint8_t value);
25 uint8_t gpio_get_function(void *gpio_base_addr, uint32_t idx);
26 
27 #endif /* INTERNAL_GPIO_H */
28