AM335X 添加 SPI 设备(以添加 spi flash 为例)
来源:互联网 发布:如花照片软件 编辑:程序博客网 时间:2024/06/16 08:38
由于 spi 设备经常用到,而在 myd-am335x 的开发板上没有 spi 设备,所以内核里也没有 spi设备的注册信息,对内核不熟悉的童鞋想要添加自己的 spi 设备时可能会感觉无从下手
折腾了一下下,在myd-am335x的 spi1 上添加了一个 spi 的设备,但由于 myd-am335x 上没有 spi 设备,所以没有验证是否可行,但至少在 /dev/ 目录下有 spidev2.0 出来了,说明 spi设备已经注册成功,接下来就是调试的事了
步骤如下
1. 首先想要用 spidev,就得把 spidev 加载到内核里,在Linux内核源码的根目录下运行:
make ARCH=arm menuconfig
Device Drivers --->
![AM335X <wbr>添加 <wbr>SPI <wbr>设备(以添加 <wbr>spi <wbr>flash <wbr>为例)](http://bbs.myir-tech.com/static/image/hrline/line2.png)
2. 在 arch/arm/mach-omap2/board-am335xevm.c 文件里添加 spi1的引脚配置
1
2
3
4
5
6
7
8
static
struct
pinmux_config spi_pin_mux[] = {
{
"mcasp0_aclkx.spi1_sclk"
, OMAP_MUX_MODE3 | AM33XX_PULL_ENBL |AM33XX_INPUT_EN },
{
"mcasp0_fsx.spi1_d0"
, OMAP_MUX_MODE3 | AM33XX_PULL_ENBL |AM33XX_PULL_UP | AM33XX_INPUT_EN},
{
"mcasp0_axr0.spi1_d1"
, OMAP_MUX_MODE3 | AM33XX_PULL_ENBL |AM33XX_INPUT_EN},
{
"mcasp0_ahclkr.spi1_cs0"
, OMAP_MUX_MODE3 | AM33XX_PULL_ENBL |AM33XX_PULL_UP | AM33XX_INPUT_EN},
{NULL, 0},
};
3. 添加 spi 设备及注册函数
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
static
struct
spi_board_info am335x_spi1_slave_info[] ={
{
.modalias =
"spidev"
,
// 用来匹配 spidev 驱动
.max_speed_hz = 1000000,
// 最大速率
.bus_num = 2,
// 表示该设备在 spi1 总线上
.chip_select =0,
// 表示使用 spi1_cs0
},
};
static
void
spi_init(
int
evm_id,
int
profile)
{
setup_pin_mux(spi_pin_mux);
spi_register_board_info(am335x_spi1_slave_info,
ARRAY_SIZE(am335x_spi1_slave_info));
return
;
}
4. 在设备初始化列表里添加该函数的调用,和注释掉 McASP 函数,如下所示
1
2
3
4
5
6
7
static
struct
evm_dev_cfg myd_am335x_dev_cfg[] = {
// ..............
//{mcasp0_init, DEV_ON_BASEBOARD,PROFILE_ALL},
{spi_init, DEV_ON_BASEBOARD, PROFILE_ALL},
// ..............
{NULL, 0, 0},
};
5. 重新编译内核,并用该内核启动开发板后,就可以在 /dev/ 目录下看到 spidev2.0 设备结点了
![11:52:11.png 11:52:11.png](http://bbs.myir-tech.com/data/attachment/forum/201501/05/115512weaejleyqgr6jag9.png)
0 0
- AM335X 添加 SPI 设备(以添加 spi flash 为例)
- 在am335x添加spi设备
- 为MT7688 SPI添加N个SPI接口
- 为MT7688 SPI添加N个SPI接口
- linux 2.6.36+s3c6410 SPI子系统接口讨论 --添加spi设备节点
- 无限可能!为MT7620添加N个SPI接口
- 设备树学习之(十)spi flash
- 设备树学习之(十)spi flash
- 设备树学习之(十)spi flash
- SPI Flash
- SPI-Flash
- linux设备驱动程序之SPI nor flash
- Linux下SPI和IIC驱动免在设备树上添加设备信息的编写方法
- freescale mx6q平台上添加spi资源
- [Linux] SPI 设备驱动模型(SPI 协议基础)
- [Linux] SPI 设备驱动模型(以 Ad714x CapTouch 驱动分析)
- spi flash驱动代码分析(一)
- spi flash驱动代码分析(二)
- PHP笔记
- static关键字
- vue中如何动态的绑定图片,vue中通过data返回图片路径
- IE兼容性处理实例
- Java入侵检测系统(一)
- AM335X 添加 SPI 设备(以添加 spi flash 为例)
- Python学习笔记1——安装篇
- opencv3.0随机数问题
- NIO:Selector 详解
- CentOS安装pillow报错的解决方法
- SylixOS 网卡驱动netdev_notify函数分析
- java中获取http头信息
- 原码、反码、补码
- 虚拟机对象探秘