Lines Matching +full:in +full:- +full:functions
12 that depend on GPIOLIB or select GPIOLIB. The functions that allow a driver to
17 There are static inline stubs for all functions in the header file in the case
21 - Simple compile coverage with e.g. COMPILE_TEST - it does not matter that
25 - Truly optional GPIOLIB support - where the driver does not really make use
26 of the GPIOs on certain compile-time configurations for certain systems, but
27 will use it under other compile-time configurations. In this case the
28 consumer must make sure not to call into these functions, or the user will
31 ``[devm_]gpiod_get_optional()`` is a *bad idea*, and will result in weird
32 error messages. Use the ordinary getter functions with optional GPIOLIB:
35 All the functions that work with the descriptor-based GPIO interface are
37 interface. No other function in the kernel should use these prefixes. The use
38 of the legacy functions is strongly discouraged, new code should use
45 With the descriptor-based interface, GPIOs are identified with an opaque,
46 non-forgeable handler that must be obtained through a call to one of the
47 gpiod_get() functions. Like many other kernel subsystems, gpiod_get() takes the
61 For a more detailed description of the con_id parameter in the DeviceTree case
62 see Documentation/driver-api/gpio/board.rst
68 later with one of the dedicated functions.
82 as I2C: if the line is not already configured as open drain in the mappings
86 Both functions return either a valid GPIO descriptor, or an error code checkable
87 with IS_ERR() (they will never return a NULL pointer). -ENOENT will be returned
93 gpiod_get_index_optional() functions can be used. These functions return NULL
94 instead of -ENOENT if no GPIO has been assigned to the requested function::
105 Note that gpio_get*_optional() functions (and their managed variants), unlike
108 -ENOSYS return codes. System integrators should however be careful to enable
119 if passed back to get/set array functions, may speed up I/O processing::
127 The following function returns NULL instead of -ENOENT if no GPIOs have been
134 Device-managed variants of these functions are also defined::
169 It is strictly forbidden to use a descriptor after calling these functions.
173 The device-managed variants are, unsurprisingly::
184 -----------------
186 direction-setting flags have been given to gpiod_get*(), this is done by
187 invoking one of the gpiod_direction_*() functions::
195 for spinlock-safe GPIOs it is OK to use them before tasking is enabled, as part
205 This function returns 0 for output, 1 for input, or an error code in case of error.
208 without setting its direction first is illegal and will result in undefined
212 Spinlock-Safe GPIO Access
213 -------------------------
215 don't need to sleep, and can safely be done from inside hard (non-threaded) IRQ
226 open-drain signaling and output latencies.
236 --------------------------
253 IRQ handler, and those accessors must be used instead of spinlock-safe
258 spinlock-safe calls.
264 ---------------------------------------
266 gpiod_set_value_xxx() or gpiod_set_array_value_xxx() functions operate with
275 care. (For details read about open drain in driver.rst.)
277 With this, all the gpiod_set_(array)_value_xxx() functions interpret the
299 It is possible to override these semantics using the set_raw/get_raw functions
300 but it should be avoided as much as possible, especially by system-agnostic drivers
306 -------------------------
311 The following set of calls ignore the active-low or open drain property of a GPIO and
326 Note that these functions should only be used with great moderation; a driver
331 -------------------------------------------------
332 The following functions get or set the values of an array of GPIOs::
368 The array can be an arbitrary set of GPIOs. The functions will try to access
370 corresponding chip driver. In that case a significantly improved performance
374 The functions take four arguments:
376 * array_size - the number of array elements
377 * desc_array - an array of GPIO descriptors
378 * array_info - optional information obtained from gpiod_get_array()
379 * value_bitmap - a bitmap to store the GPIOs' values (get) or
388 gpiod_set_array_value(my_gpio_descs->ndescs, my_gpio_descs->desc,
389 my_gpio_descs->info, my_gpio_value_bitmap);
394 manually before it can be passed to one of the above functions. In that case,
410 0 or 1 on success to convey the GPIO value. With the array functions, the GPIO
411 values are stored in value_array rather than passed back as return value.
415 --------------------
427 Non-error values returned from gpiod_to_irq() can be passed to request_irq() or
429 by the board-specific initialization code. Note that IRQ trigger options are
444 GPIOs described by the GpioIo()/GpioInt() resources in _CRS. If that is the
449 For details refer to Documentation/firmware-guide/acpi/gpio-properties.rst
455 integer-based interface. It is strongly recommended to update these to the new
457 two functions allow to convert a GPIO descriptor into the GPIO integer namespace
458 and vice-versa::
464 the gpio\_*() functions for as long as the GPIO descriptor `desc` is not freed.