imx6q 下为 c20 写gpio的驱动,在上层调用 open() 函数时总是报错,返回 -1 。
之后分析 gpio_request 函数,并查找 IMX_GPIO_NR(1, 17) 在board-mx6q_sabresd.c 中
的定义,发现有两处定义了, (1, 17) 并且在 mx6_sabresd_board_init() 中进行了使用。
gpio_request(SABRESD_FT5X06_RST, "ft5x06-rst")
由于画的PCB板中该管脚为 专用管脚,那么在内核中将该语句注释掉,重新烧写内核后,再进行测试就OK了。
实验证明,gpio_request 只能使用一次,当在其它地方调用同一地址的 gpio_request 就会报错,返回-1,
意为该地址已被申请。在 /proc/mem 应该会有地址占用表描述。
时间: 2024-12-28 11:24:15