Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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