主题中讨论的其他器件:AM4372
工具/软件:Linux
您好!
我在器件树中定义了以下 GPIO:
GPIO5_mux_Pins:GPIO5_mux_Pins{
pinctrl-single、pins =<
/* GPIO 5_8以选择 LCD / HDMI */
AM4372_IOPAD (0xa38、PIN_OUTPUT 上拉| MUX_MODE7)
/* GPIO 5_4以重置 LCD */
AM4372_IOPAD (0xa50、PIN_OUTPUT 上拉| MUX_MODE7)
>;
};
GPIO5{&G
pinctrl-names ="default";
pinctrl-0 =<&GPIO5_mux_pines>;
状态="正常";
TI、no-reset-on-init;
P8{
/*
* SelLCDorHDMI 在显示和音频路径之间进行选择:
*低:通过 HDMI 显示音频
*高:通过 aic3111编解码器显示模拟音频的 LCD
*
GPIO-hog;
GPIO =<8 GPIO_ACTIVE_HIGH_>;
输出高电平;
线路名称="SelLCDorHDMI";
};
P4{
/*
* LCD_Reset
*
GPIO-hog;
GPIO =<4 GPIO_ACTIVE_LOW>;
输出高电平;
line-name ="lcdReset";
};
};
在 c 代码中、devm_gpiod_get 函数返回错误。 这意味着 lcdReset 未在器件树中定义。
结构 GPIO_desc * GPIO;
GPIO = devm_gpiod_get (&SPI->dev、"lcdReset"、GPIOD_OUT_HIGH);
IF (IT_ERR (GPIO))
{
dev_err (&spi->dev、"无法获取 lcdReset GPIO\n");
printk ("开始探测:**** lcdreset_gpios 在设备树中未定义! ****\n");
printk ("SPI dev 是%x\n"、&SPI->dev);
返回 PTR_ERR (GPIO);
}
这种方法有什么问题?
另一方面、我尝试在 AM437X-gp-evm.dts 文件中添加以下行、我在行中遇到语法错误。 为什么?
lcdReset-GPIO =<&GPIO5 4 GPIO_ACTIVE_LOW>;