MTK开发之—添加aw21024 i2c设备驱动

从供应商处拿到一驱动led模块的 i2c设备驱动,人家驱动已经基本给我们写好,我们需要做的就是将驱动添加进我们的内核,烧录进我们的板子为我们所用,aw21024驱动与资料:https://download.csdn.net/download/maodewen11/18171562

第一步:修改设备树

首先按要求将设备树信息添加进我们的设备树文件:/kernel/arch/arm64/boot/dts下的dts文件
相应的gpio需要改为我们板子对应的gpio口,例如我的板子aw21024挂载到的是i2c-2总线上,所以将设备树信息添加到&i2c2 节点下,并且修改成对应的gpio口

aw21024_led@1c {
		compatible = "awinic,aw21024_led";
		reg = <0x1c>;//boardcast address:0x1c
		reset-head-gpio = <&pio 52 0>;
		reset-chest-gpio = <&pio 51 0>;
		aw21024,led {
			aw21024,name = "aw21024_led";
			/* 0:16M 1:8M 2:1M 3:512K 4:256K 5:125K 6:62K 7:31K */
			aw21024,clk_pwm = <2>;
			aw21024,brightness = <128>;
			aw21024,max_brightness = <255>;
		};
	};

第二步:添加驱动文件

将aw21024驱动文件添加到misc文件下,因为MTK的驱动大多都是在这个文件下,具体路径:/kernel-3.18/drivers/misc

第三步:修改编译配置

修改/kernel-3.18/drivers/misc下的makefile文件,向其中添加:obj-$(CONFIG_LEDS_AW21024) += aw21024
以后就可以根据CONFIG_LEDS_AW21024开关来进行选择是否将这个模块编译进内核
CONFIG_LEDS_AW21024可以设置为y或者n,如下所示:
obj-y就是编译进内核
obj-n就不编译进内核
可在.config文件中添加CONFIG_LEDS_AW21024=y,就可以将该模块编译进内核

有人比喻Kconfig文件是菜单,makefile是菜谱(做菜的方法),.config文件是你所点的菜,我觉得挺形象的

第四步:编译内核

source build/envsetup.sh
lunch [选项]
make bootimage -j8

结果验证

将编译出来的程序刷进板子,然后重启

首先我们可以通过串口打印信息看到驱动是否加载成功,因为代码中在probe函数中有pr_info("%s probe completed successfully!\n", func);l 如果看到这条log信息说明驱动正常编译进了内核并且正常加载。

其次进入adb查看,进入目录/sys/class/i2c-c/i2c-2/device下查看,因为我们的设备i2c地址是2-001c,所以进入如下目录:
在这里插入图片描述
说明驱动匹配成功,而目录下的这些文件是驱动程序中如下代码所产生的:

static DEVICE_ATTR(reg, S_IWUSR | S_IRUGO, aw21024_reg_show, aw21024_reg_store);
static DEVICE_ATTR(hwen, S_IWUSR | S_IRUGO, aw21024_hwen_show, aw21024_hwen_store);
static DEVICE_ATTR(rgbcolor, S_IWUSR | S_IRUGO, NULL, aw21024_rgbcolor_store);
static DEVICE_ATTR(effect, S_IWUSR | S_IRUGO, aw21024_effect_show, aw21024_effect_store);

static struct attribute *aw21024_attributes[] = {
	&dev_attr_reg.attr,
	&dev_attr_hwen.attr,
	&dev_attr_rgbcolor.attr,
	&dev_attr_effect.attr,
	NULL
};

static struct attribute_group aw21024_attribute_group = {
	.attrs = aw21024_attributes
};
sysfs_create_group(&aw21024->cdev.dev->kobj, &aw21024_attribute_group);

关于该宏的使用可以参考:
https://www.cnblogs.com/lifexy/p/9799778.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东皇※太一

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

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

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

打赏作者

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

抵扣说明:

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

余额充值