linux_own_driver
linux kernel 自带驱动的编写,都只需要配置设备树dts,一般有led, key等等
led
leds节点的compatible属性必须是"gpio-leds",每一个led作为leds节点的子节点,如led1子节点。
led1子节点,必须有gpios属性,用于指定控制led的gpio编号
leds {
compatible = "gpio-leds"; // 必须
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;
led1{
label = "led1"; // 可选
gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; // 必须
linux,default-trigger = "heartbeat";// 可选,默认是none模式
default-state = "on"; // 可选,默认是off
};
};
key
keys节点的compatible属性必须是"gpio-keys",每一个key作为keys节点的子节点,如key0子节点。
key0子节点,必须有linux,code属性,用于指定上报linux系统的按键值
必须有gpios属性,用于指定控制key的gpio编号
keys {
compatible = "gpio-keys"; // 必须
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
autorepeat; // 可选, 按住key时,重复上报标志
key0 {
label = "KEY0_ENTER"; // 可选
linux,code = <KEY_ENTER>; // 必须
gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; // 必须
};
};