Lines Matching full:reset
3 * Reset Controller framework
15 #include <linux/reset.h>
16 #include <linux/reset-controller.h>
26 * struct reset_control - a reset control
27 * @rcdev: a pointer to the reset controller device
28 * this reset control belongs to
29 * @list: list entry for the rcdev's reset controller list
30 * @id: ID of the reset controller in the reset
35 * @array: Is this an array of reset controls (1)?
36 * @deassert_count: Number of times this reset line has been deasserted
37 * @triggered_count: Number of times this reset line has been reset. Currently
54 * struct reset_control_array - an array of reset controls
55 * @base: reset control for compatibility with reset control API functions
56 * @num_rstcs: number of reset controls
57 * @rstc: array of reset controls
77 * of_reset_simple_xlate - translate reset_spec to the reset line number
78 * @rcdev: a pointer to the reset controller device
79 * @reset_spec: reset line specifier as found in the device tree
82 * :c:type:`reset_controller_dev` is not set. It is useful for all reset
83 * controllers with 1:1 mapping, where reset lines can be indexed by number
96 * reset_controller_register - register a reset controller device
97 * @rcdev: a pointer to the initialized reset controller device
117 * reset_controller_unregister - unregister a reset controller device
118 * @rcdev: a pointer to the reset controller device
135 * @dev: device that is registering this reset controller
136 * @rcdev: a pointer to the initialized reset controller device
138 * Managed reset_controller_register(). For reset controllers registered by
168 * @lookup: array of reset lookup entries
182 pr_warn("%s(): reset lookup entry badly specified, skipping\n", in reset_controller_add_lookup()
281 * reset_control_reset - reset the controlled device
282 * @rstc: reset controller
284 * On a shared reset line the actual reset pulse is only triggered once for the
287 * Consumers must not use reset_control_(de)assert on shared reset lines when
290 * If rstc is NULL it is an optional reset and the function will just
306 if (!rstc->rcdev->ops->reset) in reset_control_reset()
320 ret = rstc->rcdev->ops->reset(rstc->rcdev, rstc->id); in reset_control_reset()
329 * reset_control_assert - asserts the reset line
330 * @rstc: reset controller
332 * Calling this on an exclusive reset controller guarantees that the reset
333 * will be asserted. When called on a shared reset controller the line may
336 * For shared reset controls a driver cannot expect the hw's registers and
337 * internal state to be reset, but must be prepared for this to happen.
338 * Consumers must not use reset_control_reset on shared reset lines when
341 * If rstc is NULL it is an optional reset and the function will just
366 * Shared reset controls allow the reset line to be in any state in reset_control_assert()
373 * If the reset controller does not implement .assert(), there in reset_control_assert()
374 * is no way to guarantee that the reset line is asserted after in reset_control_assert()
381 WARN(1, "reset %s (ID: %u) is not acquired\n", in reset_control_assert()
392 * reset_control_deassert - deasserts the reset line
393 * @rstc: reset controller
395 * After calling this function, the reset is guaranteed to be deasserted.
396 * Consumers must not use reset_control_reset on shared reset lines when
399 * If rstc is NULL it is an optional reset and the function will just
421 WARN(1, "reset %s (ID: %u) is not acquired\n", in reset_control_deassert()
428 * If the reset controller does not implement .deassert(), we assume in reset_control_deassert()
429 * that it handles self-deasserting reset lines via .reset(). In that in reset_control_deassert()
430 * case, the reset lines are deasserted by default. If that is not the in reset_control_deassert()
431 * case, the reset controller driver should implement .deassert() and in reset_control_deassert()
443 * positive value if the reset line is asserted, or zero if the reset
444 * line is not asserted or if the desc is NULL (optional reset).
445 * @rstc: reset controller
463 * reset_control_acquire() - acquires a reset control for exclusive use
464 * @rstc: reset control
466 * This is used to explicitly acquire a reset control for exclusive use. Note
468 * second consumer to be able to control the reset, the first consumer has to
470 * reset_control_get_exclusive_released() to obtain an instance of the reset
471 * control. Such reset controls are not acquired by default.
473 * Consumers implementing shared access to an exclusive reset need to follow
475 * a reset they must acquire exclusive access using reset_control_acquire().
476 * After they are done operating the reset, they must release exclusive access
478 * access to the reset as long as another consumer hasn't released a reset.
519 * reset_control_release() - releases exclusive access to a reset control
520 * @rstc: reset control
522 * Releases exclusive access right to a reset control previously obtained by a
553 * controlled reset line. in __reset_control_get_internal()
620 "reset-names", id); in __of_reset_control_get()
627 ret = of_parse_phandle_with_args(node, "resets", "#reset-cells", in __of_reset_control_get()
711 /* Reset provider may not be ready yet. */ in __reset_control_get_from_lookup()
759 * reset_control_put - free the reset controller
760 * @rstc: reset controller
808 * device_reset - find reset controller associated with the device
809 * and perform reset
810 * @dev: device to be reset by the controller
811 * @optional: whether it is optional to reset the device
814 * This is useful for the common case of devices with single, dedicated reset
835 * APIs to manage an array of reset controls.
843 * Returns positive reset count on success, or error number on failure and
853 count = of_count_phandle_with_args(node, "resets", "#reset-cells"); in of_reset_control_get_count()
861 * of_reset_control_array_get - Get a list of reset controls using
864 * @np: device node for the device that requests the reset controls array
865 * @shared: whether reset controls are shared or not
866 * @optional: whether it is optional to get the reset controls
867 * @acquired: only one reset control may be acquired for a given controller
913 * devm_reset_control_array_get - Resource managed reset control array get
915 * @dev: device that requests the list of reset controls
916 * @shared: whether reset controls are shared or not
917 * @optional: whether it is optional to get the reset controls
919 * The reset control array APIs are intended for a list of resets
978 * Returns positive reset count on success, or error number on failure and