GPIO 测试驱动

注意

此模块已被更灵活的 Configfs GPIO 模拟器 所取代。新开发应使用该 API,并鼓励现有开发尽快迁移。此模块将继续维护,但不会添加新功能。

GPIO 测试驱动 (gpio-mockup) 提供了一种创建模拟 GPIO 芯片以用于测试目的的方法。这些芯片暴露的线路可以通过标准 GPIO 字符设备接口访问,也可以通过专用的 debugfs 目录结构进行操作。

使用模块参数创建模拟芯片

加载 gpio-mockup 驱动时,可以向模块传递一些参数。

gpio_mockup_ranges

该参数接受一个由整数对组成的数组。每对定义了基准 GPIO 号(非负整数)和该芯片的最后一个 GPIO 号之后的第一个数字。如果基准 GPIO 为 -1,gpiolib 将自动分配。而后面的参数是芯片暴露的线路数量。

示例:gpio_mockup_ranges=-1,8,-1,16,405,409

上述命令行创建了三个芯片。第一个将暴露 8 条线路,第二个 16 条,第三个 4 条。第三个芯片的基准 GPIO 设置为 405,而前两个芯片将自动分配。

gpio_mockup_named_lines

该参数不接受任何参数。它让驱动知道其暴露的 GPIO 线路应该被命名。

名称格式为:gpio-mockup-X-Y,其中 X 是模拟芯片的 ID,Y 是线路偏移量。

操作模拟线路

每个模拟芯片都会在 /sys/kernel/debug/gpio-mockup/ 中创建自己的子目录。该目录以芯片的标签命名。还会创建一个以芯片名称命名的符号链接,指向标签目录。

在每个子目录中,每条 GPIO 线路都有一个独立的属性。属性的名称表示线路在芯片中的偏移量。

读取线路属性会返回当前值。写入它(0 或 1)会改变模拟上拉/下拉电阻的配置(1 - 上拉,0 - 下拉)。