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 驱动程序插入在 clk 生成过程中无法正常工作

Guru**** 2465890 points
Other Parts Discussed in Thread: TLV320ADC3140

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1270021/linux-driver-insert-doesn-t-work-correctly-in-clk-generation

主题中讨论的其他器件:TLV320ADC3140

您好!  

我们有一个适合我们环境的工作脚本。 我们修改了 DTS 和驱动程序、以便按照寄存器设置进行操作。 但在驱动程序初始化之后、我们看不到 ADC 在工作。 fysnc 引脚中未生成 clk、寄存器0x15的状态为0xff。 下面是我的寄存器转储:

adsdev@MMDAQ1:~$ sudo cat /sys/kernel/debug/regmap/1-004c/registers
000:00
001:00
002:81
003:00
004:00
005:05
006:00
007:70
008: 00
009:00
00a:00
00b:00
00C:01
00d:02
00e:03
00F:04
010:05
011:06
012:07
013:81
014:44
015:FF
016:00
017:00
018:00
019:00
01a:00
01b:00
01C:00
01d:00
01E:00
01f:40
020:00
第021章:你是谁
022:00
023:00
024:00
025:00
026:00
027:00
028:00
029:00
02A:00
02b:00
02C:00
02d:00
02E:00
02f:00
030:00
031:00
032:00
第033章:你是谁
034:00
035:00
036:00
037:00
038:00
039:00
03A:00
03b:60
03C:00
03D:A0
03e:C9
03f:80
040:00
041:00
042:00
043:C9
044:80
045:00
046:00
047:00
048:C9
049:80
04a:00
04b:00
04C:00
04d:C9
04e:80
04f:00
050:00
051:00
052:C9
053:80
054:00
055:00
056:00
057:C9
058:80
059:00
05A:00
05b:00
05C:C9
05d:80
05e:00
05f:00
060:00
061:C9
062:80
063:00
064:00
065:00
066:00
067:00
068:00
069:00
06a:00
06b:01
06c:40
06d:7B
06e:00
06F:00
070:E7
071:00
072:00
073:80
074:80
075:E0
076:00
077:C0
078:00
079:00

下面是我们的工作脚本:

i2cset -y 1 0x4c 0x00 0x00
i2cset -y 1 0x4c 0x01 0x01
睡眠1
i2cset -y 1 0x4c 0x00 0x00
i2cset -y 1 0x4c 0x02 0x81
睡眠1
i2cset -y 1 0x4c 0x07 0x70
#enable PLL auto clock//选择12.288Mhz MCLK
i2cset -y 1 0x4c 0x13 0x81
# FS = 44.1/48K BCLK/fsync 比率=64
i2cset -y 1 0x4c 0x14 0x44
i2cset -y 1 0x4c 0x16 0x00

i2cset -y 1 0x4c 0x21 0xA0

i2cset -y 1 0x4c 0x3b 0x60
i2cset -y 1 0x4c 0x73 0x80
i2cset -y 1 0x4c 0x74 0x80
i2cset -y 1 0x4c 0x00 0x00
i2cset -y 1 0x4c 0x75 0xe0


 请提供帮助。 谢谢。

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

    尊敬的 Yang:

    请提供更多信息-您在此设计中使用什么 TI 器件?

    谢谢!

    ~伦纳德   

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

    您好!

    它是 tlv320adc3140

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

    借助该脚本、我可以使所有时钟都正确无误、DOUT 现在可以正常运行。

    但使用 Linux 驱动程序时、时钟和 DOUT 都无法正常工作。 我比较了寄存器。 他们看起来和脚本一样

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

    这似乎是驱动程序和您的平台的顺序问题。   在运行脚本之前、我想知道器件上有什么?

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

    在 conf-Call 后、我们解决了这个问题。 我想我们可以解决这个问题。

    在结束本期之前、让我做一个简短的总结。

    1) 1)使用 i2cdump 时不要忘记添加-f、i2cset、i2cget 和-f 表示强制访问器件

    2) 2)对于主模式、MCLK 为12MHz、Register0x13应为0x81。