1.. SPDX-License-Identifier: GPL-2.0-only 2 3GPIO Testing Driver 4=================== 5 6The GPIO Testing Driver (gpio-mockup) provides a way to create simulated GPIO 7chips for testing purposes. The lines exposed by these chips can be accessed 8using the standard GPIO character device interface as well as manipulated 9using the dedicated debugfs directory structure. 10 11Creating simulated chips using module params 12-------------------------------------------- 13 14When loading the gpio-mockup driver a number of parameters can be passed to the 15module. 16 17 gpio_mockup_ranges 18 19 This parameter takes an argument in the form of an array of integer 20 pairs. Each pair defines the base GPIO number (if any) and the number 21 of lines exposed by the chip. If the base GPIO is -1, the gpiolib 22 will assign it automatically. 23 24 Example: gpio_mockup_ranges=-1,8,-1,16,405,4 25 26 The line above creates three chips. The first one will expose 8 lines, 27 the second 16 and the third 4. The base GPIO for the third chip is set 28 to 405 while for two first chips it will be assigned automatically. 29 30 gpio_named_lines 31 32 This parameter doesn't take any arguments. It lets the driver know that 33 GPIO lines exposed by it should be named. 34 35 The name format is: gpio-mockup-X-Y where X is mockup chip's ID 36 and Y is the line offset. 37 38Manipulating simulated lines 39---------------------------- 40 41Each mockup chip creates its own subdirectory in /sys/kernel/debug/gpio-mockup/. 42The directory is named after the chip's label. A symlink is also created, named 43after the chip's name, which points to the label directory. 44 45Inside each subdirectory, there's a separate attribute for each GPIO line. The 46name of the attribute represents the line's offset in the chip. 47 48Reading from a line attribute returns the current value. Writing to it (0 or 1) 49changes the configuration of the simulated pull-up/pull-down resistor 50(1 - pull-up, 0 - pull-down). 51