This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/LINUXSDK-OMAPL138:从内核空间和用户空间进行 SPI 访问

Guru**** 2595800 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642792/linux-linuxsdk-omapl138-spi-access-from-kernel-space-and-user-space

器件型号:LINUXSDK-OMAPL138
主题中讨论的其他器件:DA8XX

工具/软件:Linux

你(们)好

我想从用户空间和内核 spcae 访问 SPI。

使用 /dev/spidev0.2.从用户空间运行良好

在某些情况下、我还希望从内核访问此 SPI 总线。

我知道我必须使用 spi.c 方法、例如 spidev.c 与 spi_asynync ()或 spi_sync ()一起使用。

但它需要提供:struct spi_device *spi   ,即指向 board_omapl130-hawk.c 中打开并注册的 SPI 设备的指针  

通过 da8xx_register_SPI ()调用 platform_device_register ()。

我了解  到 Linux 启动器在 spidev_init()和 spidev_prob()的初始化阶段打开的器件。

我看到 spidev 通过 struct 文件*filp 在以下 位置通过用户空间 ioctl 调用获得:spidev_ioctl (struct 文件*filp、unsigned int cmd、unsigned long arg):

spidev = filp->private_data;
spin_lock_IRQ (&spidev->spi_lock);
SPI = SPI_DEV_GET (spidev->SPI);

那么,我需要知道如何获得这个指针?

使用的 SDK 为:ti-sdk-omapl138-lcdk-01.00.00

Linux OMAP 版本为:3.1.10-gf6fe6d8-m脏。

BR

Yehuda

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们将对此进行研究。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yehuda、您好!

    我正在研究这一问题,并将在星期五作出答复。

    此致、
    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yehuda、您好!

    查看此博客[1]-如果我理解您的问题、我认为这将引导您完成想要做的事情。 查看他如何使用 BUS_FIND_DEVICE__BY_NAME 函数。

    此致、
    Mike

    [1] sites.google.com/.../multipledevicesonspibusviagpios