比较好的源码网站,wordpress采集公众号图片,网站仿站,找工作网站哪个比较好2. 通常会碰到的实际问题 到此#xff0c;问题出现了#xff1a; 1. 当写一个按键驱动#xff0c;应该如何在*.dts或者*.dtsi中操作? 2. 当在串口driver中需要使用到某个pin脚作为普通输出IO#xff0c;该如何操作#xff1f; 3. 当在串口driver中需要使用某个muxpin脚作… 2. 通常会碰到的实际问题 到此问题出现了 1. 当写一个按键驱动应该如何在*.dts或者*.dtsi中操作? 2. 当在串口driver中需要使用到某个pin脚作为普通输出IO该如何操作 3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作 4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中该如何操作 5. 当想向driver中传入一个常数如做delay延时操作等等该如何操作 解答 1. 当写一个按键驱动应该如何在*.dts或者*.dtsi中操作? 1 gpio-keys {2 compatible gpio-keys;3 pinctrl-names default;4 pinctrl-0 pinctrl_gpio_keys;5 6 volume-up {7 label Volume Up;8 gpios gpio1 18 GPIO_ACTIVE_LOW;9 linux,code KEY_VOLUMEUP;
10 };
11
12 volume-down {
13 label Volume Down;
14 gpios gpio1 19 GPIO_ACTIVE_LOW;
15 linux,code KEY_VOLUMEDOWN;
16 };
17 }; 1 pinctrl_gpio_keys: gpio_keysgrp {
2 fsl,pins
3 MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059
4 MX6SX_PAD_CSI_DATA05__GPIO1_IO_19 0x17059
5 ;
6 }; 2. 当在串口driver中需要使用到某个pin脚作为普通输出IO该如何操作 1 sii902x_reset: sii902x-reset {
2 compatible gpio-reset;
3 reset-gpios gpio3 27 1;
4 reset-delay-us 100000;
5 #reset-cells 0;
6 status disabled;
7 }; 最简单的不需要pinctrl来进行pin脚的设置为什么 3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作 这个问题其实上面有提到就像上述的多个pin-names和多个pinctrl在后面的pinctrl中配置这个复用的管脚即可。 4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中该如何操作 1 uart5 {
2 pinctrl-names default;
3 pinctrl-0 pinctrl_uart5;
4 fsl,uart-has-rtscts;
5 status okay;
6
7 }; 只需要在driver中使用of函数读取此属性如果有此字段可以使能某些操作如果没有就失能某些操作。 5. 当想向driver中传入一个常数如做delay延时操作等等该如何操作 1 usdhc3 {2 pinctrl-names default, state_100mhz, state_200mhz;3 pinctrl-0 pinctrl_usdhc3;4 pinctrl-1 pinctrl_usdhc3_100mhz;5 pinctrl-2 pinctrl_usdhc3_200mhz;6 bus-width 8;7 cd-gpios gpio2 10 GPIO_ACTIVE_HIGH;8 wp-gpios gpio2 15 GPIO_ACTIVE_HIGH;9 keep-power-in-suspend;
10 enable-sdio-wakeup;
11 vmmc-supply vcc_sd3;
12 status okay;
13 }; 只需要在driver中读取bus-width字段的值即可获取到8这个常量注意在devicetree中命名字段更多使用-而非下划线_.