mcp2515 linux 设备树,mcp2515驱动的实现
1、在配置Linux 编译选项时,开启相应的SPI 选项,如下所示
-> Device Drivers
-> SPI support
SPI support
*** SPI Master Controller Drivers ***
-*- Bitbanging SPI master
Samsung S3C24XX series SPI
< > Samsung S3C24XX series SPI by GPIO
*** SPI Protocol Masters ***
< > SPI EEPROMs from most vendors
User mode SPI device driver support
< > Infineon TLE62X0 (for power switching)设置完成保存。
2.驱动文件mcp251x.c mcp251x.h can.h
文件mcp251x.c放在目录drivers/net/can/下;
文件mcp251x.h放在目录include/linux/can/platform/下;
文件can.h放在目录include/linux/can/下
3.添加配置文件drivers/net/can/Kconfig
在文件中添加
config CAN_MCP251X
tristate "Microchip 251x series SPI CAN Controller"
depends on CAN && SPI
default N
---help---
Say Y here if you want support for the Microchip 251x series of
SPI based CAN controllers.
4.在drivers/net/can/Makefile文件中添加编译文件obj-$(CONFIG_CAN_MCP251X) += mcp251x.o
5. 修改文件arch/arm/mach-s3c2410/mach-smdk2410.c中添加spi板级启动信息#include #include //包含s3c2410_spi_info结构体
#include //包含struct mcp251x_platform_data结构体
static struct mcp251x_platform_data mcp251x_info = {
.f_osc = 16000000,
//.oscillator_frequency = 19000000,
//.board_specific_setup = myboard_mcp251x_initfunc,
//.device_reset = myboard_mcp251x_reset,
//.transceiver_enable = NULL,
};
static struct spi_board_info spi_board_info[] __initdata = {
[0]=
{
.modalias = "mcp251x", //这个名称一定要与mcp251x.c驱动中
//proc函数中的.name要一致
.platform_data = &mcp251x_info, //上面的结构体
.irq = IRQ_EINT3, 中断端口号
.max_speed_hz = 8000000, //spi最大的速度
.bus_num = 0, //spi0,1中选择spi0口
.chip_select = 0, //多个芯片选择
},
};
static struct s3c2410_spi_info s3c2410_spi0_platdata = {
.pin_cs = S3C2410_GPG2, //片选端口指定
.num_cs = 1, //总共端口数
// .bus_num = 0,
};
smdk2410_devices数组中添加&s3c_device_spi0,
mcp2515 linux 设备树,mcp2515驱动的实现相关推荐
- mcp2515 linux 设备树,MCP2515在Hi3521D上的调试
近期要在板子上要用到SPI接口的mcp2515,hi3521d采用了linux3.18.20的内核,使用了设备树的方式加载驱动.不算复杂,调了2天搞完了. 内核修改 1.注意RESET脚控制,为海思的 ...
- linux 设备树i2驱动,TX2i设备树SPI驱动
默认/dev下是没有spi设备的@H_301_1@ JetPack版本@H_301_1@ JetPack-L4T-3.2.1-linux-x64_b23.run@H_301_1@ 下载Kernel@H ...
- 【正点原子MP157连载】第二十三章 Linux设备树-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- Linux设备树语法详解【转】
转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...
- linux spidev 应用_嵌入式Linux设备树语法总结
1 设备树的说明 在写完嵌入式驱动总结后,对于设备树相关的语法和使用一直都想进行系统的描述,但是因为最近比较忙碌,所以一直拖到现在才完成初版,对于整个嵌入式Linux驱动开发中,设备树语法和构建是其中 ...
- Linux设备树OF API 中OF的含义
* 前言 读Linux内核源码或者开源GPL程序源码时,看到各种英文首字母缩写满天飞,英文单词首字母缩写是Unix/Linux C 编程的一个历史习惯,部分英文首字母缩写结合上下文可以找到理解含义,但 ...
- Linux 设备树的使用技巧
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写.引入了设备树之后,驱动代码只负 ...
- linux 设备树详解
2 Linux 设备树 2.1 什么是设备树? 设备树(Device Tree),将这个词分开就是"设备"和"树",描述设备树的文件叫做DTS(Device T ...
最新文章
- 【c++】23.【函数指针】定义? 为什么不直接调用函数而要使用函数指针?
- 把整形数据格式化为指定长度的字符串
- JavaScript实现permutate With Repetitions重复排列算法(附完整源码)
- 在HTML文档内引入CSS
- 阿里妈妈是如何做品牌风险管理的
- android init.d脚本,◇添加init.d脚本支持教程贴◇
- CheckBox as Image use button
- Dubbo(十一)dubbo的超时重试配置以及启动检查
- 【华为云技术分享】数据湖数据库,别再傻傻分不清了
- 边缘设备上的实时AI人员检测:使用预先训练的SSD模型检测人员
- 网络协议收发数据问题
- c++时间函数及转换
- MLT-type渲染算法review(笔记)
- JDBC下载,使用,访问数据库
- 别催了,医药行业数字化转型真的“急不得”
- Others13_在黑市里,苹果iPhone是这样被解锁的
- 卡马克在光线追踪,id tech6,射线跟踪,控制台,物理学等的谈话 第一部分
- 1-乙基-3-甲基咪唑四氟硼酸盐/[C2MIm]BF4/cas:143314-16-3/分子量:197.97/离子液体
- TDengine与InfluxDB对比测试
- python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库