Android kernel dts gpio幾種常見設定的pinctrl配置
阿新 • • 發佈:2019-01-26
pinctrl的配置file是<project>.dts
備註:配置是以mt6735上gpio84舉例的
1.配置成輸入上拉
&pio {
test_pull_up: test_pull_up {
pins_cmd_dat {
pins = <PINMUX_GPIO84__FUNC_GPIO84>;
slew-rate = <0>;
bias-pull-up = <00>;
};
};
};
2.配置成輸入下拉 &pio { test_pull_down: test_pull_down { pins_cmd_dat { pins = <PINMUX_GPIO84__FUNC_GPIO84>; slew-rate = <0>; bias-pull-down = <00>; }; }; }; 3.配置成輸入pull disable &pio { test_pull_none: test_pull_none { pins_cmd_dat { pins = <PINMUX_GPIO84__FUNC_GPIO84>; slew-rate = <0>; bias-disable; }; }; }; 4.配置成輸出high &pio { test_out_high: test_out_high { pins_cmd_dat { pins = <PINMUX_GPIO84__FUNC_GPIO84>; slew-rate = <1>; bias-disable; output-high; }; }; }; 5.配置成輸出low &pio { test_out_low: test_out_low { pins_cmd_dat { pins = <PINMUX_GPIO84__FUNC_GPIO84>; slew-rate = <1>; bias-disable; output-low; }; }; }; 6.配置成特定的mode &pio { test_mode: test_mode { pins_cmd_dat { pins = <PINMUX_GPIO84__FUNC_KCOL0>; }; }; };
高通除錯遇見過幾種坑
1。dts配置不對。導致驅動沒辦法控制。
2。dts裡面引腳被其他佔用。導致控制失敗
3。initrc裡面的某個service啟動的時候用掉了某個引腳。導致剛開始的幾十秒是好的。後面不對。