文档说明
本文档以SC826-CN-00(8953平台)为例,说明SPI配置方法。
确定SPI管脚
好,开始,我们现在打算开始配置SC826-CN-00模块的SPI6。
那么我们先看下模块的硬件手册:
![aded8e19f476d8ca74fb601f569f918d.png](https://i-blog.csdnimg.cn/blog_migrate/674bc177714c73da9923a1e8f84a4cb7.jpeg)
可以看到相应的管脚号是247~250,但硬件手册上的管脚号对于配置没啥意义。
先修改 kernel/msm-3.18/arch/arm/boot/dts/qcom/sc826-cn-00-evk/msm8953-pinctrl.dtsi
打开msm8953-pinctrl.dtsi,搜索“SPI” ,能够搜索到SPI3的相关配置。
![e8f2b0b23f7d1011f623b1aa96d62554.png](https://i-blog.csdnimg.cn/blog_migrate/bec48aa767d5b5d03985105fae2ba1a2.jpeg)
很不幸,没有找到SPI6,只能自己动手添加了。
依葫芦画瓢,照着SPI3的配置复制一份。
![c188e59b1644ac1a075bfae6c2f7b5ae.png](https://i-blog.csdnimg.cn/blog_migrate/cfe9b7c2f43187824cdfaa5258769c0e.jpeg)
那么问题来了,pins所对应的gpio管脚怎么确定呢?
这个时候需要查询 GPIO MAP
![a67449e2f5af0f422a405451276f4e96.png](https://i-blog.csdnimg.cn/blog_migrate/c3b624a19956d42c9fd1b7ee412b44ad.jpeg)
上图红圈部分,标明了SPI6对应的管脚,OK,那我们就按照上图配置gpio管脚号。
![0a390cbb8b1502bec378bb37d78d5f51.png](https://i-blog.csdnimg.cn/blog_migrate/3be88310e3d202ea84f9f6a23b664440.jpeg)
其他配置照着SPI3的配置照抄,更改相应的gpio号即可。
添加设备树节点
修改kernel/msm-3.18/arch/arm/boot/dts/qcom/sc826-cn-00-evk/msm8953.dtsi
打开msm8953.dtsi,搜索“SPI” ,能够搜索到SPI3的相关配置。同样的,SPI6的配置需要自己添加。
先增加一个SPI_6的名称。
![89faffb480a19ca132c6c588a3f1236b.png](https://i-blog.csdnimg.cn/blog_migrate/6448e951007d7df286609325433b5944.jpeg)
再照抄SPI3的配置:
![d1fe1bf7e59c94e6c15c7c2c20b3a690.png](https://i-blog.csdnimg.cn/blog_migrate/e41eb7e58b048e9601af8ab468052554.jpeg)
上图红线部分的值,需要查询相应文档。
该文档和SPI6配置有关的Table5-4见下图,SPI6对应BLSP6:
![1e8cf618817278ced2e20020879ee8fd.png](https://i-blog.csdnimg.cn/blog_migrate/af66e16354a41d4cd3641a9e1ba2c0b2.jpeg)
对号入座,修改相应的配置值。修改后的SPI6配置如下:
![6a6b5b7dc8663157b95fc1048337bcba.png](https://i-blog.csdnimg.cn/blog_migrate/8f9025c4d9946ad4310a4fd24e67dc17.jpeg)
配置到这里,实际已经完成了底层有关SPI6的配置。但是还没有生成设备节点,执行:
$ adb shell
$ ls /sys/class/spi_master/
$ls /dev/spi*
是无法看到spi设备的。
要生成设备节点,还需要加载SPI驱动。
配置SPI驱动
设备树增加一个SPI外设(虚拟的,只是为了生成一个节点)
修改msm8953.dtsi,在spi_6的配置下增加如下一段
![d46c2465b3b4b78f722663ff8fc4a3b9.png](https://i-blog.csdnimg.cn/blog_migrate/4e3d5e37fddfdb2d38b9877562d10986.jpeg)
另外修改下面三个文件,加载SPI驱动。
kernel/msm-3.18/arch/arm64/configs/msmcortex_defconfig
kernel/msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig
kernel/msm-3.18/drivers/spi/spidev.c
修改记录见下面链接,/old文件夹为修改之前的文件,/new文件夹为修改之后的文件。
https://uploader.shimo.im/f/nSEUHIzameUm5FBq.rar?attname=SPI6%E9%85%8D%E7%BD%AE%E4%BF%AE%E6%94%B9.rar&download
重新编译make bootimage –j8,烧录boot.img,重新开机,可以看到SPI设备节点。
如本文所提到的文档无法获取,请联系有关部门。