一、GPIO驱动:
1.1、注册设备:
1.1.1、创建文件:
1)、在kernel/msm-4.9/drivers/下创建july文件夹。
2)、在july文件夹下创建Kconfig、Makefile、ledctrl.c文件。
3)、修改Kconfine文件:
添加 source "drivers/july/Kconfig"
4)、修改Makefile文件:
添加 obj-y += july/
1.1.2、添加编译选项:
1)、修改kernel/msm-4.9/drivers/leds下Makefile文件:
obj-y +=ledctrl.o
2)、修改kernel/msm-4.9/drivers/leds下Kconfig文件:
config LEDCTRL
bool
help
gpio controls the LED.
1.1.3、修改驱动配置文件,驱动编译进系统:
修改kernel/msm-4.9/arch/arm64/configs下的msm8953_defconfig文件:
CONFGI_LEDCTRL=y
1.2、注册驱动:
1.2.1、修改dts设备树文件:
1)、文件名:msm8953-mtp.dtsi。
2)、文件路径:kernel/msm-4.9/arch/arm64/boot/dts/qcom/msm8953-mtp.dtsi
3)、在&soc下添加:
&soc {
led_ctrl_gpio {
status = "okay";
compatible = "led_ctrl_gpio";
led_ctrl_gpio,gpio = <&tlmm 97 0x1>;
qcom,num-grp-pins = <1>;
qcom,pin-func = <0>;
pinctrl-names = "led_ctrl_gpio";
pinctrl-0 = <&gpio_led_active>;
label = "led_ctrl_gpio";
};
};
1.2.2、修改pinctrl文件:
1)、文件名:msm8953-pinctrl.dtsi。
2)、文件路径:kernel/msm-4.9/arch/arm64/boot/dts/qcom/msm8953-mtp-dtsi
3)、在&soc下添加: