~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/gpio/drivers-on-gpio.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/gpio/drivers-on-gpio.rst (Version linux-6.12-rc7) and /Documentation/driver-api/gpio/drivers-on-gpio.rst (Version linux-4.16.18)


  1 ============================                      
  2 Subsystem drivers using GPIO                      
  3 ============================                      
  4                                                   
  5 Note that standard kernel drivers exist for co    
  6 the right in-kernel and userspace APIs/ABIs fo    
  7 drivers can quite easily interconnect with oth    
  8 hardware descriptions such as device tree or A    
  9                                                   
 10 - leds-gpio: drivers/leds/leds-gpio.c will han    
 11   lines, giving you the LED sysfs interface       
 12                                                   
 13 - ledtrig-gpio: drivers/leds/trigger/ledtrig-g    
 14   i.e. a LED will turn on/off in response to a    
 15   (and that LED may in turn use the leds-gpio     
 16                                                   
 17 - gpio-keys: drivers/input/keyboard/gpio_keys.    
 18   can generate interrupts in response to a key    
 19                                                   
 20 - gpio-keys-polled: drivers/input/keyboard/gpi    
 21   GPIO line cannot generate interrupts, so it     
 22   by a timer.                                     
 23                                                   
 24 - gpio_mouse: drivers/input/mouse/gpio_mouse.c    
 25   up to three buttons by simply using GPIOs an    
 26   mouse cable and connect the wires to GPIO li    
 27   to the lines for a more permanent solution o    
 28                                                   
 29 - gpio-beeper: drivers/input/misc/gpio-beeper.    
 30   an external speaker connected to a GPIO line    
 31   off/on, for an actual PWM waveform, see pwm-    
 32                                                   
 33 - pwm-gpio: drivers/pwm/pwm-gpio.c is used to     
 34   resolution timer producing a PWM waveform on    
 35   Linux high resolution timers can do.            
 36                                                   
 37 - extcon-gpio: drivers/extcon/extcon-gpio.c is    
 38   external connector status, such as a headset    
 39   HDMI connector. It will provide a better use    
 40                                                   
 41 - restart-gpio: drivers/power/reset/gpio-resta    
 42   the system by pulling a GPIO line and will r    
 43   userspace can issue the right system call to    
 44                                                   
 45 - poweroff-gpio: drivers/power/reset/gpio-powe    
 46   system down by pulling a GPIO line and will     
 47   callback so that userspace can issue the rig    
 48   system.                                         
 49                                                   
 50 - gpio-gate-clock: drivers/clk/clk-gpio.c is u    
 51   (off/on) that uses a GPIO, and integrated wi    
 52                                                   
 53 - i2c-gpio: drivers/i2c/busses/i2c-gpio.c is u    
 54   (two wires, SDA and SCL lines) by hammering     
 55   appear as any other I2C bus to the system an    
 56   drivers for the I2C devices on the bus like     
 57                                                   
 58 - spi_gpio: drivers/spi/spi-gpio.c is used to     
 59   of wires, at least SCK and optionally MISO,     
 60   GPIO hammering (bitbang). It will appear as     
 61   and makes it possible to connect drivers for    
 62   any other SPI bus driver. For example any MM    
 63   to this SPI by using the mmc_spi host from t    
 64                                                   
 65 - w1-gpio: drivers/w1/masters/w1-gpio.c is use    
 66   a GPIO line, integrating with the W1 subsyst    
 67   the bus like any other W1 device.               
 68                                                   
 69 - gpio-fan: drivers/hwmon/gpio-fan.c is used t    
 70   system, connected to a GPIO line (and option    
 71   presenting all the right in-kernel and sysfs    
 72   not overheat.                                   
 73                                                   
 74 - gpio-regulator: drivers/regulator/gpio-regul    
 75   regulator providing a certain voltage by pul    
 76   with the regulator subsystem and giving you     
 77                                                   
 78 - gpio-wdt: drivers/watchdog/gpio_wdt.c is use    
 79   that will periodically "ping" a hardware con    
 80   it from 1-to-0-to-1. If that hardware does n    
 81   periodically, it will reset the system.         
 82                                                   
 83 - gpio-nand: drivers/mtd/nand/raw/gpio.c is us    
 84   to a set of simple GPIO lines: RDY, NCE, ALE    
 85   NAND flash MTD subsystem and provides chip a    
 86   any other NAND driving hardware.                
 87                                                   
 88 - ps2-gpio: drivers/input/serio/ps2-gpio.c is     
 89   bus, data and clock line, by bit banging two    
 90   any other serio bus to the system and makes     
 91   for e.g. keyboards and other PS/2 protocol b    
 92                                                   
 93 - cec-gpio: drivers/media/platform/cec-gpio/ i    
 94   Consumer Electronics Control bus using only     
 95   with devices on the HDMI bus.                   
 96                                                   
 97 - gpio-charger: drivers/power/supply/gpio-char    
 98   battery charging and all you have to go by t    
 99   AC charger or more complex tasks such as ind    
100   nothing but GPIO lines, this driver provides    
101   way to pass the charging parameters from har    
102   device tree.                                    
103                                                   
104 - gpio-mux: drivers/mux/gpio.c is used for con    
105   n GPIO lines such that you can mux in 2^n di    
106   different GPIO lines. Often the GPIOs are on    
107   some SoC-external entities, such as differen    
108   can be selectively enabled.                     
109                                                   
110 Apart from this there are special GPIO drivers    
111 read card detect and write protect GPIO lines,    
112 to emulate MCTRL (modem control) signals CTS/R    
113 MTD NOR flash has add-ons for extra GPIO lines    
114 usually connected directly to the flash.          
115                                                   
116 Use those instead of talking directly to the G    
117 integrate with kernel frameworks better than y    
118 Needless to say, just using the appropriate ke    
119 speed up your embedded hacking in particular b    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php