gpio总结

1、空闲GPIO被申请的步骤
1.1、在dtsi里面申请带如:
gpio-name {
qcom,pins = <&gp X>; X means gpio number
qcom,num-grp-pins = <1>;
qcom,pin-func = <0>;
label = “gpio-name”;
oem_gpio_active: oem_gpio_active {
drive-strength = <8>;
bias-pull-up;
};
oem_gpio_suspend: oem_gpio_suspend {
drive-strength = <2>;
bias-pull-down; // PULL DOWN
//bias-disable = <0>; //No PULL
};
};
..

module-name {

oem-gpio = <&msm_gpio X 0x0>; // X means gpio number
pinctrl-names = “oem_gpio_active”, “oem_gpio_suspend”;
pinctrl-0 = <&oem_gpio_active>;
pinctrl-1 = <&oem_gpio_suspend>;

};
1.2、kernel部分
unsigned gpio_cfg = GPIO_CFG(X, 0, , GPIO_CFG_NO_PULL, GPIO_CFG_2MA);
gpio_tlmm_config(gpio_cfg, GPIO_CFG_ENABLE);
gpio_request(X, “oem-gpio”);————————–请求这个gpio
gpio_direction_output(X, 1); // Output HIGH

int irq = gpio_to_irq(X);
这几个函数对gpio的配置,包括高低状态,输入输出状态,使能状态,中断引脚等。
2、gpio测试
2.1、直接操作寄存器
这里有个自带的程序可以直接读写寄存器状态,我这个程序在system/bin里面的,./r 0x100400 读gpio4的配置,这个寄存器方法需要对应soc的数据手册,
2.2、用户空间查看和操作
adb root
adb shell
cd /sys/class/gpio
ls
export—-下面是空闲的gpio,高通这里是指,没有request的gpio在这里,request了但是没有接设备的,不会出现在这里的。
unexport

echo 911+gpio >export—-申请gpio空闲
可以配置gpio的值,方向,低高

2.3、gpio的logs查看
cd /sys/kernel/debug
cat gpio

你可能感兴趣的:(linux,gpio,linux)