spi驱动程序中的基本设备 *** 作

spi驱动程序中的基本设备 *** 作,第1张

概述spi驱动程序中的基本设备 *** 作

我需要从头开始编写omap4的spi驱动程序。 我指的是http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c驱动程序代码。 但是,我无法理解在这个驱动代码中如何处理基本的设备 *** 作。 例如一个字符驱动程序的结构

struct file_operations scull_fops = { .owner = THIS_MODulE,.llseek = scull_llseek,.read = scull_read,.write = scull_write,.ioctl = scull_ioctl,.open = scull_open,.release = scull_release,};

包含指向开放,读取,写入等基本function的指针…

我在http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c找不到这些函数

有人请帮我确定设备是如何打开的,读写是在spi-omap2-mcspi.c代码中提供的。

实时使用linux实时调度优先级(SCHED_FIFO和SCHED_RR)?

linux内核模块通过USB读取GPS设备

TCP内核实现

修改windows磁盘驱动程序以使用更新的控制代码,如IOCTL_disK_GET_DRIVE_GEOMETRY_EX

BIOS是否将512字节的引导程序复制到0x7c00

在内核中获取System32目录

linux内核中的系统调用表在哪里?

用WinDbg设置远程内核deBUGging器

在ACmacros中,“。”和“*”是什么意思?

每个进程都有自己的内核堆栈,对吧?

如果您查看您在帖子中链接的文件的底部,您将看到基本平台驱动程序 *** 作的处理。

static const struct dev_pm_ops omap2_mcspi_pm_ops = { .resume = omap2_mcspi_resume,.runtime_resume = omap_mcspi_runtime_resume,}; static struct platform_driver omap2_mcspi_driver = { .driver = { .name = "omap2_mcspi",.owner = THIS_MODulE,.pm = &omap2_mcspi_pm_ops,.of_match_table = omap_mcspi_of_match,},.probe = omap2_mcspi_probe,.remove = omap2_mcspi_remove,};

在probe *** 作中,您可以看到该驱动程序的spi特定 *** 作的设置:

/* the spi->mode bits understood by this driver: */ master->mode_bits = SPI_CPol | SPI_CPHA | SPI_CS_HIGH; master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4,32); master->setup = omap2_mcspi_setup; master->auto_runtime_pm = true; master->transfer_one_message = omap2_mcspi_transfer_one_message; master->cleanup = omap2_mcspi_cleanup; master->dev.of_node = node;

总结

以上是内存溢出为你收集整理的spi驱动程序中的基本设备 *** 作全部内容,希望文章能够帮你解决spi驱动程序中的基本设备 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1225510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存