Thread 中讨论的其他器件:TMS320C6746、
工具/软件:Linux
大家好、
我目前正在开发一个定制板、其中包含 ARM 处理器(AM3354)和 DSP (TMS320C6746)。 AM3354的 GPMC 连接到 DSP 的 UHPI 接口 (芯片选择为2)。 此外、AM33P4的 GPIO3[20]引脚连接到 DSP 的 RESETn 引脚。 我当前的目标是在每次电路板上电时自动复位 DSP。 为了为 UHPI 启动做好准备、必须进行此复位。
Linux 3.8.13安装在 ARM 上。 我为 UHPI 编写了驱动程序函数、一切都很好。 (器件读取、写入和 ioctl 函数都运行良好)直到今天上午、我修改了.dts 文件以设置 GPIO3[20]的 PINMUX。 基本上、我在"am33xx_pinmux: pinmux@44e10800"节点下添加了以下代码:
pinctrl-0 =<... &DSP_CTRL_PINS>;
…
DSP_CTRL_PINS:DSP_CTRL_PINS{
pinctrl-single、pins =<0x1A8 0x17>; //偏移为0x1A8、 模式7、输出、内部上拉*/
};
没有做任何其他事情。 生成了 DTB 文件、然后我重新启动了电路板、但 UHPI 器件消失了(不在/dev/folder 下列出)。 我追溯到我的驱动程序函数和 Linux 源代码,发现 GPMC_cs_request()失败。 看起来 CS 已经被其他东西声称了,我发现 没有调用 GPMC_probe ()来清除 GPMC_cs_map。 这真的很尴尬、因为我除了修改驱动程序源代码、配置文件或 Makefile 之外、没有做任何其他事情、除了器件树文件。
我感谢遇到类似问题的任何人提供帮助、或者为我提供有关如何将 GPMC 配置回正确方式的建议/提示。
注意:上周六、我尝试手动复位 DSP (即在/sys/class/gpio 下使用 echo 命令、一切正常)、但我肯定想在每次电路板上电时自动复位 DSP。
谢谢、
Charlie