基于RK3399的Linux驱动开发 -- 往内核添加自己板型

说明

平台:RK3399
板型:NanoPC-T4
Host:Ubuntu 16.04
Kernel:https://github.com/friendlyarm/kernel-rockchip
u-boot:https://github.com/friendlyarm/uboot-rockchip
本文档基于友善NanoPC-T4制作,主要是为了记录做Linux板级驱动全过程,以备忘。

创建soc目录

1、在drivers/soc建立自己的板目录,在这里我创建venkeeboard

cd drivers/soc
mkdir venkeeboard

2、在drivers/soc/venkeeboard目录建立自己的一个Kconfig文件

cd venkeeboard
vi Kconfig

内容如下

#
# Machine drivers
#

if ARCH_ROCKCHIP

config MACH_VENKEEBOARD # 这个在编译dts时用到
	bool "Venkee board Machine"
	default y

endif

3、复制原厂的board.c文件到drivers/soc/venkeeboard目录

cp ../friendlyelec/board.c .
vi board.c

修改代码片段

static const struct of_device_id board_sys_of_match[] = {
   
	{
    .compatible = "venkee,board" }, // 设置自己的compatible,跟一会修改的dts的compatible保持一致
	{
   }
};
MODULE_DEVICE_TABLE(of, board_sys_of_match);

static struct platform_driver board_sys_driver = {
   
	.probe = board_sys_probe,
	.driver = {
   
		.name = "venkee-board",
		.of_match_table = board_sys_of_match,
	},
};

static int __init board_sys_init(void)
{
   
	return platform_driver_register(&board_sys_driver);
}
device_initcall(board_sys_init);

4、复制原厂的Makefile文件到drivers/soc/venkeeboard目录

cp ../friendlyelec/Makefile .
vi Makefile

内容修改为

obj-$(CONFIG_MACH_VENKEEBOARD)      += board.o

5、修改drivers/soc目录下的Kconfi

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值