MTK平台 mt6771 GPIO控制
Posted 偶买噶008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MTK平台 mt6771 GPIO控制相关的知识,希望对你有一定的参考价值。
MTK平台下GPIO控制分为lk和正常模式控制;
lk模式控制GPIO(所用调用必须包含在编译lk的宏定义中)
头文件:
#include <platform/mt_gpio.h>
//使用时必须包含在编译lk的宏定义中
#ifdef BUILD_LK
#include <platform/mt_gpio.h>
#endif
定义GPIO引脚:
#define GPIO_20_lk (GPIO20 | 0x80000000)
定义GPIO控制函数:
ps:控制函数根据功能进行定义,这里定义为通用GPIO输出控制,定义的控制函数必须定义在BUILK_LK的宏定义中,否则会报错。
#ifdef BUILD_LK
static void gpio_output(int output)
mt_set_gpio_mode(GPIO_20_LK, GPIO_MODE_00);//设置gpio模式
mt_set_gpio_dir(GPIO_20_LK, GPIO_DIR_OUT);//设置为输出
mt_set_gpio_out(GPIO_20_LK, (output > 0) ? GPIO_OUT_ONE : GPIO_OUT_ZERO);//gpio控制
#endif
控制GPIO:
ps:重要的事情说三遍,函数调用也必须定义在BUILK_LK的宏定义中,否则会报错
#ifdef BUILD_LK
gpio_output(0);
MDELAY(10);
gpio_output(1);
#endif
正常GPIO控制:
头文件:
#include <linux/gpio.h>
#include <linux/of_gpio.h>
定义GPIO引脚:
#define GPIO_20 (20+320)
(20+230)这里20代表GPIO引脚20
230=512-192(芯片可以配置的GPIO引脚总数,注意引脚从0开始计数,不要漏算一个引脚)
控制GPIO:
gpio_set_value_cansleep(GPIO_20, 0);
MDELAY(10);
gpio_set_value_cansleep(GPIO_20, 1);
以上是关于MTK平台 mt6771 GPIO控制的主要内容,如果未能解决你的问题,请参考以下文章
2022-05-20给MT6765的android8.1系统增加TP驱动ILI9881H