目录
(一)修改设备树
.dts: device tree source
.dtsi: device tree sourceinclude
.dts比作源文件,.dtsi比作头文件。
linux/arch/arm/boot/dts/s5p4418-nanopi2-common.dtsi :nanopi2 设备树文件共同的头文件
linux/arch/arm/boot/dts/s5p4418-nanopi2-rev04.dts :nanopi2 fire设备树源文件
linux/arch/arm/boot/dts/include/dt-bindings/soc/s5p4418-base.h :记录着s5p4418引脚信息
在s5p4418-nanopi2-common.dtsi中添加
gpioTest_gpio: gpioTest-gpio {
nexell,pins ="gpiob-30";
nexell,pin-function = <2>;
nexell,pin-pull = <2>;
nexell,pin-strength = <0>;
};
gpioTest: gpio-gpioTest {
compatible = "gpio-gpioTest";
pinctrl-names = "default";
pinctrl-0 =<&gpioTest_gpio>;
test-gpios = <&gpio_b 30 GPIO_ACTIVE_LOW>;
};
编译设备树:make dtbs ARCH=arm
编译后得到:s5p4418-nanopi2-rev04.dtb
使用新设备树启动
(二)编写GPIO驱动程序
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/ide.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/gpio.h>
#include <linux/cdev.h>
#include <