AM57x SPI驱动问题 - AM57x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3482|回复: 0
打印 上一主题 下一主题

[已解决] AM57x SPI驱动问题

[复制链接]

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
跳转到指定楼层
楼主
发表于 2020-5-29 20:32:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.   我的设备树文件所增加部分如下:spi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi2_gpio_pins_default>;
        #address-cells = <0x01>;
        #size-cells = <0>;
        compatible = "spi-gpio";
        gpio-sck = <&gpio7 14 0>;
        gpio-miso = <&gpio7 15 0>;
        gpio-mosi = <&gpio7 16 0>;
        cs-gpios = <&gpio7 17 0>;
        num-chipselects = <1>;
        ad5781@0 {
            compatible = "spi-gpio";
            spi-max-frequency = <64000000>;
            reg = <0>;
            spi-tx-bus-width = <1>;
            spi-rx-bus-width = <4>;
            #address-cells = <1>;
            #size-cells = <1>;
    };

    spi1_gpio_pins_default: spi1_gpio_pins_default {
        pinctrl-single,pins = <
            DRA7XX_CORE_IOPAD(0x37a4, (INPUT_EN | MUX_MODE14))          /* spi1_sclk.spi1_sclk (C24) */
            DRA7XX_CORE_IOPAD(0x37a8, (INPUT_EN | MUX_MODE14))          /* spi1_d1.spi1_d1 (D24) */
            DRA7XX_CORE_IOPAD(0x37ac, (INPUT_EN | MUX_MODE14))          /* spi1_d0.spi1_d0 (D25) */
            DRA7XX_CORE_IOPAD(0x37b0, (INPUT_EN | MUX_MODE14))        /* spi1_cs0.spi1_cs0 (B24) */
        >;
    };
    spi2_pins_default: spi2_pins_default {
        pinctrl-single,pins = <
            DRA7XX_CORE_IOPAD(0x37c0, (INPUT_EN | MUX_MODE0))          /* spi2_sclk.spi2_sclk (G25) */
            DRA7XX_CORE_IOPAD(0x37c4, (INPUT_EN | MUX_MODE0))          /* spi2_d1.spi2_d1 (F25) */
            DRA7XX_CORE_IOPAD(0x37c8, (INPUT_EN | MUX_MODE0))          /* spi2_d0.spi2_d0 (G24) */
            DRA7XX_CORE_IOPAD(0x37cc, (PIN_OUTPUT_PULLUP | MUX_MODE0)) /* spi2_cs0.spi2_cs0 (F24) */
        >;
    };
    spi2_gpio_pins_default: spi2_gpio_pins_default {
        pinctrl-single,pins = <
            DRA7XX_CORE_IOPAD(0x37C0, (INPUT_EN | MUX_MODE14))          /* spi2_sclk.spi2_sclk (G25) */
            DRA7XX_CORE_IOPAD(0x37c4, (INPUT_EN | MUX_MODE14))          /* spi2_d1.spi2_d1 (F25) */
            DRA7XX_CORE_IOPAD(0x37c8, (INPUT_EN | MUX_MODE14))          /* spi2_d0.spi2_d0 (G24) */
            DRA7XX_CORE_IOPAD(0x37cc, (INPUT_EN | MUX_MODE14))        /* spi2_cs0.spi2_cs0 (F24) */
        >;
    };
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

2.   在/sys相关的目录下可以找到安装的相关的文件
root@AM57xx-Tronlong:/# ls /sys/devices/platform/
44000000.ocp             connector                fixedregulator-aic_dvdd  gpio_keys                opp_table0               reg-dummy                spi2
Fixed MDIO bus.0         display                  fixedregulator-mmcwl     leds                     pmu                      serial8250               ti-cpufreq
alarmtimer               dmtimer-pwm@4            fixedregulator-vdd_3v3   omap_dma_system.0        power                    snd-soc-dummy            timer
backlight                encoder                  fixedregulator-vtt       omapdrm.0                pruss2_eth               soc                      uevent
cmem                     extcon_usb2_0            gpio_fan                 omapdss                  pwm_fan                  sound0
------------------------------------------------------------------------------------------------------------------------------------------------------------------
root@AM57xx-Tronlong:/# ls /sys/devices/platform/spi2/
driver           driver_override  modalias         of_node          power            spi_master       subsystem        uevent
------------------------------------------------------------------------------------------------------------------------------------------------------------------
root@AM57xx-Tronlong:/# ls /sys/devices/platform/spi2/of_node
#address-cells   ad5781@0         cs-gpios         gpio-mosi        name             pinctrl-0
#size-cells      compatible       gpio-miso        gpio-sck         num-chipselects  pinctrl-names
root@AM57xx-Tronlong:/#
------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.  关于LED相关的文件:
root@AM57xx-Tronlong:/# ls /sys/class/leds/
disk       heartbeat  user-led0  user-led1  user-led2
root@AM57xx-Tronlong:/#
使用以下两条指令可以控制LED
Target# echo 0 > /sys/class/leds/user-led0/brightness //控制LED1灭
Target# echo 1 > /sys/class/leds/user-led0/brightness //控制LED1亮
**********************************************************************************************************************************************************



4.    在安装spi驱动过程中,驱动正常安装好,使用lsmod可以看到如下安装的模块
root@AM57xx-Tronlong:/dev# lsmod
Module                  Size  Used by
rpmsg_proto             6870  0
rpmsg_rpc              19706  0
spi_gpio                5857  0
spi_bitbang             3922  1 spi_gpio
snd_soc_simple_card     5844  0
snd_soc_simple_card_utils     5095  1 snd_soc_simple_card
ti_prueth              54847  0
pru_rproc              10520  1 ti_prueth
pruss                   9774  2 pru_rproc,ti_prueth
pwm_fan                 4987  0
pruss_intc              7227  5 pru_rproc
extcon_usb_gpio         3929  0
pwm_omap_dmtimer        4326  1
bc_example              7198  0
snd_soc_omap_hdmi_audio     4609  0
pruss_soc_bus           4207  0
omap_wdt                4634  0
ahci_platform           3474  0
libahci_platform        8821  1 ahci_platform
libahci                28551  2 ahci_platform,libahci_platform
pvrsrvkm              409225  5 bc_example
libata                205790  3 ahci_platform,libahci_platform,libahci
c_can_platform          6604  0
c_can                   9526  1 c_can_platform
ti_vip                 40998  0
ti_vpe                 18634  0
ti_sc                  24305  2 ti_vpe,ti_vip
ti_csc                  2351  2 ti_vpe,ti_vip
ti_vpdma               14974  2 ti_vpe,ti_vip
ti_cpsw                31896  0
can_dev                13099  1 c_can
cpsw_common             1852  1 ti_cpsw
ina2xx                  4692  0
snd_soc_tlv320aic3x    48423  1
ads7846                13258  0
omap_remoteproc        12760  0
virtio_rpmsg_bus        9418  2 rpmsg_rpc,rpmsg_proto
rpmsg_core              7124  3 rpmsg_rpc,rpmsg_proto,virtio_rpmsg_bus
remoteproc             28915  5 pru_rproc,ti_prueth,rpmsg_rpc,omap_remoteproc,rpmsg_proto
sch_fq_codel            8911  4
cryptodev              37775  0
cmemk                  35291  2
root@AM57xx-Tronlong:/dev#



5.      但是在/dev目录下没有生成设备节点(设备文件),所以我就无法在应用程序中调用其资源进行测试。而且在/dev目录下也未找到LED相关的设备节点。
所有设备节点如下所示:
root@AM57xx-Tronlong:/dev# ls
autofs              ptyb2               ptyq0               ptyue               ptyzc               tty51               ttyd3               ttys1               ttywf
bc_example          ptyb3               ptyq1               ptyuf               ptyzd               tty52               ttyd4               ttys2               ttyx0
block               ptyb4               ptyq2               ptyv0               ptyze               tty53               ttyd5               ttys3               ttyx1
bus                 ptyb5               ptyq3               ptyv1               ptyzf               tty54               ttyd6               ttys4               ttyx2
char                ptyb6               ptyq4               ptyv2               ram0                tty55               ttyd7               ttys5               ttyx3
cmem                ptyb7               ptyq5               ptyv3               ram1                tty56               ttyd8               ttys6               ttyx4
console             ptyb8               ptyq6               ptyv4               ram10               tty57               ttyd9               ttys7               ttyx5
cpu_dma_latency     ptyb9               ptyq7               ptyv5               ram11               tty58               ttyda               ttys8               ttyx6



6.    SPI驱动程序并非我自己写的,是我根据贵公司给的教学视频中的操作,使用的是贵公司所提供的内核中自带的驱动,我只是修改了设备树文件。现在我该采取如何措施可以生成设备节点,或者应用程序可以调用其他的文件可以和操作设备节点一样操作我的硬件设备。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-4-19 11:18 , Processed in 0.034736 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表