Firefly开源社区

打印 上一主题 下一主题

[技术讨论] 如何在Linux Kernel 4.4使用spi

9

积分

0

威望

0

贡献

吃瓜的群众

积分
9

如何在Linux Kernel 4.4使用spi

发表于 2022-8-23 11:41:21      浏览:6110 | 回复:1        打印      只看该作者   [复制链接] 楼主
  • 固件类型: 自行编译的固件
  • SDK包名称: kernel-rk3128-firefly
  • SDK更新到哪个COMMIT: 0000-00-00 00:00:00
  • SDK修改内容: kr3128-fireprime.dts &spi0 { status = "okay"; max-freq = <30000000>; spidev@00 { compatible = "rockchip,rk3288-spi"; reg = <0x00>; spi-max-frequency = <30000000>; spi-cpha = <1>; //spi-cpol = <1>; }; }; /drivers/spi/spidev.c #ifdef CONFIG_OF static const struct of_device_id spidev_dt_ids[] = { { .compatible = "rohm,dh2228fv" }, { .compatible = "lineartechnology,ltc2488" }, { .compatible = "rockchip,spidev" }, { .compatible = "rockchip,rk3288-spi" }, {}, }; MODULE_DEVICE_TABLE(of, spidev_dt_ids); #endif
  • Log日志: firefly-rk3128.txt
问题描述及复现步骤:
我想在firefly-rk3128使用spi
dts文件中有新增spi配置,並在/dev目錄有出現設備節點(spidev32766.0 )
使用linux原有測試程式/Documentation/spi/spidev_test.c進行測試
執行命令: ./spidev_test -l -s 30000000 -b 8 -p 12 -v

使用示波器連接SPI_CLK腳位可以測量到其波形,但是無法測量到SPI_TXD腳位的波形
確認過rk312x.dtsi中gpio腳位設定無誤,不知道哪裡出了問題

spi0_clk: spi0-clk {
    rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>;
};
spi0_tx: spi0-tx {
    rockchip,pins = <1 RK_PB1 1 &pcfg_pull_default>;
};

firefly-rk3128.txt

57.1 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

9

积分

0

威望

0

贡献

吃瓜的群众

积分
9
发表于 2022-8-23 16:37:39        只看该作者  沙发
問題已解決,dts設定gpio腳位與其他功能相冲導致spi功能無法使用

過程中碰到另一個問題,spi0_clk配置<1 RK_PB0 1 &pcfg_pull_default>
在rk3128 datasheet中顯示GPIO1_B0如要配置為SPI_CLK應設為<1 RK_PB0 3 &pcfg_pull_default>
以<1 RK_PB0 3 &pcfg_pull_default>進行配置spi0_clk,在示波器量測時無反應,詢問此狀況發生的原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表