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>; // 必须
        };
    };

Last updated

Was this helpful?