完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我加载adc驱动的时候,怎么不能注册呢?3.14的内核,
按照这个配置的http://processors.wiki.ti.com/index.php/Linux_Core_ADC_User%27s_Guide#Sample_Application 把adc配成模块,手动安装,无法进入到probe函数(没有打印)。 static int tiadc_probe(struct platform_device *pdev) [ printk("------>proben"); ... ... ] root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# lsmod Module Size Used by kfifo_buf 2417 0 industrialio 46890 1 kfifo_buf bufferclass_ti 5396 0 omaplfb 12042 0 snd_soc_evm 5589 0 pvrsrvkm 177007 2 bufferclass_ti,omaplfb cryptodev 32483 0 snd_soc_davinci_mcasp 15606 2 lis3lv02d_i2c 3153 0 lis3lv02d 14936 1 lis3lv02d_i2c snd_soc_tlv320aic3x 40349 1 input_polldev 3345 1 lis3lv02d root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# ls ti_am335x_adc.ko am335x_adc.ko m:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# insmod ti_a root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# root@am335x-evm:/lib/modules/3.14.43-g875c69b/kernel/drivers/iio/adc# lsmod Module Size Used by ti_am335x_adc 4562 0 kfifo_buf 2417 1 ti_am335x_adc industrialio 46890 2 ti_am335x_adc,kfifo_buf bufferclass_ti 5396 0 omaplfb 12042 0 snd_soc_evm 5589 0 pvrsrvkm 177007 2 bufferclass_ti,omaplfb cryptodev 32483 0 snd_soc_davinci_mcasp 15606 2 lis3lv02d_i2c 3153 0 lis3lv02d 14936 1 lis3lv02d_i2c snd_soc_tlv320aic3x 40349 1 input_polldev 3345 1 lis3lv02d root@am335x-evm:~# ls -al /sys/bus/iio/devices/iio:device0/ ls: /sys/bus/iio/devices/iio:device0/: No such file or directory root@am335x-evm:~# ls -al /sys/bus/iio/devices/ drwxr-xr-x 2 root root 0 Jul 6 22:15 . drwxr-xr-x 4 root root 0 Jul 6 22:15 .. root@am335x-evm:~# 下面是dts: 。。 &tscadc [ adc [ ti,adc-channels = <4 5 6 7>; ]; ]; 。。 |
|
相关推荐
6个回答
|
|
是不是printk()这个函数没有打开啊
|
|
|
|
打开了,测试过了printk可以正常打印信息。 insmod后还是没有反应,还找不到对应的文件, root@am335x-evm:~# ls -al /sys/bus/iio/devices/iio:device0 ls: /sys/bus/iio/devices/iio:device0: No such file or directory 这个文件下是空的:/sys/bus/iio/devices/ 另外这个驱动ti_am335x_adc.ko是怎么跟dts匹配的?dts已经按照文档修改了。 如果要读取adc的值有几种操作方法? |
|
|
|
梦中的花不凋零 发表于 2018-5-15 13:01 wiki上面已经写的很详细了,如果你没有设备,先确认adc是否已经被配置,初始化成功。 http://processors.wiki.ti.com/index.php/Linux_Core_ADC_User%27s_Guide http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_ADC |
|
|
|
hwjj940056201 发表于 2018-5-15 13:15 都按照文档做了,该配置的也都配置好了,还是无法生成设备文件,/sys/bus/iio/devices/这个目录还是空的,我的理解是adc驱动在加载的时候会去匹配.DTS里面相对应内容,如果有相同的name,寄存器也是正确的话,驱动程序就会进入到probe函数中执行,不知道我理解对不对。dts还有dtsi对应的内容如下: am-335x-evmsk.dts: &tscadc [ status = "okay"; tsc [ ti,wires = <4>; ti,x-plate-resistance = <200>; ti,coordinate-readouts = <5>; ti,wire-config = <0x00 0x11 0x22 0x33>; ti,charge-delay = <0xb000>; ]; //下面三行是加上去的。 adc [ ti,adc-channels = <4 5 6 7>; ]; ]; ---------------------------------------------------------------------------- am33xx.dtsi: tscadc: tscadc@44e0d000 [ compatible = "ti,am3359-tscadc"; reg = <0x44e0d000 0x1000>; interrupt-parent = <&intc>; interrupts = <16>; ti,hwmods = "adc_tsc"; status = "disabled"; tsc [ compatible = "ti,am3359-tsc"; ]; am335x_adc: adc [ #io-channel-cells = <1>; compatible = "ti,am3359-adc"; ]; ]; ------------------------------- ti_am335x_adc.c: ..... static const struct of_device_id ti_adc_dt_ids[] = [ [ .compatible = "ti,am3359-adc", ], [ ] ]; MODULE_DEVICE_TABLE(of, ti_adc_dt_ids); static struct platform_driver tiadc_driver = [ .driver = [ .name = "TI-am335x-adc", .owner = THIS_MODULE, .pm = TIADC_PM_OPS, .of_match_table = ti_adc_dt_ids, ], .probe = tiadc_probe, .remove = tiadc_remove, ]; module_platform_driver(tiadc_driver); MODULE_DESCRIPTION("TI ADC controller driver"); MODULE_AUTHOR("Rachna Patil MODULE_LICENSE("GPL"); 我不知道怎么回事,应该可以执行probe函数的。不知道我哪里出来问题, 另外我明明选中把adc driver编译进内核,但是启动后还是要手动加载,是不是这里导致的问题? 急等。。。 |
|
|
|
梦中的花不凋零 发表于 2018-5-15 13:30 你好,请问你的tiadc无法创建的问题解决了吗? 我现在也碰到了类似的问题,查代码发现是在devices.c里am33xx_register_mfd_tscadc这个函数导致的,他在查找之后会直接创建ti_tscadc 这个设备,这个设备是否直接进行读取就可以的了还是说需要其他的操作才能读取到数据? |
|
|
|
cmh17 发表于 2018-5-15 13:45 查看一下你的.dts文件。找到 ADC的 我的时这样的:(参考来改) &tscadc [ status = "okay"; compatible = "ti am3359-adc"; am335x_adc:adc[ status = "okay"; ///////////////////这里很重要,默认是disable的,改成okay应该就可以了 compatible = "ti,am3359-adc"; ti,adc-channels = < 4 5 6 7>; ] ] |
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
130浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:29 , Processed in 0.527702 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号