Other Parts Discussed in Thread: TPS65910
主题中讨论的其他器件:TMDSSK3358、 TPS65910
工具/软件:Linux
我们的一个应用要求将 GPMC_be1n 用作 GPIO 引脚、最初引脚多路复用器详细信息反映引脚模式设置为0x00000008、这意味着它未配置为 GPIO (MUX 模式0x7)。 因此、我修改了 DTS 文件以在引脚复用器中将引脚启用为 GPIO。 完成此操作后、pinmux 详细信息反映了我们的更改、即模式更改为0x00000037。 (CAT 引脚(sys/kernel/debug/pinctrl/44e1087.pinmux))
我执行了以下操作:(使用 sysfs)
echo 60 >导出
回声"out"> gpio60/方向
回波0 > gpio60/值
但在探测引脚时、它始终处于高电平状态。 DTS 更改后,我可以使用 sysfs 接口控制其他引脚(GPIO3_13、GPIO3_20等,默认引脚复用设置为0x00000020,修改后的 DTS 为0x00000037)
我也能够使用 GPIO 命令从 Uboot 控制引脚。 (此处是使用 MW 0x44e10878 w 0x00000037修改的 pinmux)
在 Linux 中,我尝试使用 devmem2来写入 GPIO 寄存器
devmem2 0x4804c134 w 0xEFFDFFFF
devmem2 0x4804c13C w 0x00000000
这使得引脚能够在探测时将状态更改为低电平。
那么、有人能帮我找出引脚上的 sysfs 接口问题吗? 下面是我所做的 DTS 修改
am33xx_pinmux:pinmux@44e10800{
pinctrl-names ="default";
(笑声)
GPIO1_Pins:pinmux_GPIO1_Pins{
pinctrl-single、pins =<
0x78 (0x37) /* GPIO1_28,conf_GPMC_BEN1*/
>;
};
GPIO3_Pins:pinmux_gpio3_pins{/*由 SVR*/添加
pinctrl-single、pins =<
0x1A8 (0x37) /* GPIO3_20、conf_McASP0 */
0x234 (0x37)/* GPIO3_13、conf_USB1_drvbu */
>;
};
(笑声)
};
(笑声)
GPIO1{&gpio1}
pinctrl-names ="default";
pinctrl-0 =<&GPIO1_PINs>;
状态="正常";
};
GPIO3{&G
pinctrl-names ="default";
pinctrl-0 =<&GPIO3_PINs>;
状态="正常";
};