nanopi 2 fire s5p4418 初次体验 (3)编写一个简单的gpio驱动控制GPIOB30输出高低电平

本文介绍了如何在nanopi 2 fire S5P4418上进行GPIO驱动开发,包括修改设备树、编写GPIO驱动程序、测试程序的编写以及最终的测试,成功实现了GPIOB30的高低电平控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

(一)修改设备树

(二)编写GPIO驱动程序

(三)编写测试程序

(四)测试


(一)修改设备树

.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 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethan_LiuQuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值