openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
gpio.h
1/*
2 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
3 *
4 * this file licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 * http://license.coscl.org.cn/MulanPSL2
8 *
9 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
10 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
11 * PURPOSE.
12 * See the Mulan PSL v2 for more details.
13 *
14 * Create: 2025-07-17
15 */
16
21#ifndef DRIVER_GPIO_H
22#define DRIVER_GPIO_H
23
24#include "driver.h"
25
26namespace DRIVER_GPIO {
27using namespace bcal;
28
29constexpr string_view_t GPIO_TRACE_NAME = "gpio";
30
31struct GpioConfig {
32 uint8_t direction;
33};
34
39class Gpio : public IDriver {
40public:
47 virtual uint8_t read(int32_t index) = 0;
55 virtual int32_t write(int32_t index, uint8_t gpio_level) = 0;
63 virtual void set_interrupt(int32_t index, uint32_t gpio_int_num, uint8_t int_level) = 0;
72 virtual uint32_t get_interrupt(int32_t index, uint32_t gpio_int_num, uint32_t timeout) = 0;
73};
74}
75
76#endif
GPIO 驱动接口
Definition gpio.h:39
virtual void set_interrupt(int32_t index, uint32_t gpio_int_num, uint8_t int_level)=0
配置指定 GPIO 引脚的中断
virtual int32_t write(int32_t index, uint8_t gpio_level)=0
设置指定 GPIO 引脚电平
virtual uint8_t read(int32_t index)=0
读取指定 GPIO 引脚的电平状态
virtual uint32_t get_interrupt(int32_t index, uint32_t gpio_int_num, uint32_t timeout)=0
获取外部中断事件
BCAL层驱动公共接口
Definition driver.h:41
BCAL 驱动公共接口定义
Definition gpio.h:31
uint8_t direction
Definition gpio.h:32