8148芯片,跑的是8127 appro ipnc rdk 3.5的包,psp版本是04.04.00.02
我们使用其中一个脚用于rs485的片选cs脚,想复用为gpio输出。但是怎么搞都无法其作用,该脚一直为高电平..gpio无法控制它变低,所以485只能发送,接收不了。
代码我放到了/home/tracyone/work/dm8127/Source/ti_tools/ipnc_psp_arago/kernel/arch/arm/mach-omap2/devices.c
中的omap2_init_devices(void)的最后...该函数看起来应该是内核对管脚进行复用设置的顶层函数..所以放在最后应该能保证不被重写
omap_mux_init_signal("uart0_dcdn.gpio1_2", 0);
/*omap_writel(0x80, 0x48140924);*/
error = gpio_request(34, "rs485");
if (error) {
printk(KERN_ERR "%s: failed to request GPIO for rs485_cs"
": %d\n", __func__, error);
return;
}
gpio_direction_output(34,0); /*默认接收状态*/
gpio_export(34, true);
然后我有又全局搜索下面这个宏定义所有复用模式,确保没被重写
_TI814X_MUXENTRY(UART0_DCDN, 0,
"uart0_dcdn", "uart3_rxd_mux0", NULL, NULL, "spi0_cs3",
"i2c2_scl_mux0", "mmc1_pow", "gpio1_2", NULL, NULL,
NULL, NULL),
结果还是无法控制该GPIO,求思路!!