linux配置GPIO的方式
1. Bootloader阶段的控制
\bootable\bootloader\lk\platform\msm8909\gpio.c
/* configure rx gpio */
gpio_tlmm_config(21,3, GPIO_INPUT, GPIO_NO_PULL,
GPIO_8MA,GPIO_DISABLE);
这里的21是指GPIO_21,3表示function配置项,普通GPIO对应0,如下图:
图1
2. Kernel阶段的控制
2.1 使用Pinctrl框架控制
(1) 设备树文件相关节点
sn7326_power_pin {
qcom,pins = ;
qcom,num-grp-pins = <1>;
qcom,pin-func = <0>;
label ="sn7326-power-pin";
sn7326_power_active:sn7326_power_active {
drive-strength =<6>;
bias-pull-up;
output-high;
};
sn7326_power_sleep:sn7326_power_sleep {