Lines Matching full:reset

4 Reset controller API
10 Reset controllers are central units that control the reset signals to multiple
12 The reset controller API is split into two parts:
14 <#reset-consumer-api>`__), which allows peripheral drivers to request control
15 over their reset input signals, and the `reset controller driver interface
16 <#reset-controller-driver-interface>`__ (`API reference
17 <#reset-controller-driver-api>`__), which is used by drivers for reset
18 controller devices to register their reset controls to provide them to the
21 While some reset controller hardware units also implement system restart
22 functionality, restart handlers are out of scope for the reset controller API.
27 The reset controller API uses these terms with a specific meaning:
29 Reset line
31 Physical reset line carrying a reset signal from a reset controller
34 Reset control
36 Control method that determines the state of one or multiple reset lines.
37 Most commonly this is a single bit in reset controller register space that
38 either allows direct control over the physical state of the reset line, or
40 reset line.
41 In more complicated reset controls, a single trigger action can launch a
42 carefully timed sequence of pulses on multiple reset lines.
44 Reset controller
46 A hardware module that provides a number of reset controls to control a
47 number of reset lines.
49 Reset consumer
51 Peripheral module or external IC that is put into reset by the signal on a
52 reset line.
58 Consumer drivers use get and put operations to acquire and release reset
60 Functions are provided to assert and deassert the controlled reset lines,
61 trigger reset pulses, or to query reset line status.
63 When requesting reset controls, consumers can use symbolic names for their
64 reset inputs, which are mapped to an actual reset control on an existing reset
67 A stub version of this API is provided when the reset controller framework is
73 The reset controller API provides either reference counted deassertion and
75 The distinction between shared and exclusive reset controls is made at the time
76 the reset control is requested, either via devm_reset_control_get_shared() or
78 This choice determines the behavior of the API calls made with the reset
85 effect on the reset line.
88 That is, an assert causes the reset line to be asserted immediately, and a
89 deassert causes the reset line to be deasserted immediately.
95 functions to assert and deassert reset lines.
96 For shared reset controls, calls to the two functions must be balanced.
98 Note that since multiple consumers may be using a shared reset control, there
99 is no guarantee that calling reset_control_assert() on a shared reset control
100 will actually cause the reset line to be asserted.
101 Consumer drivers using shared reset controls should assume that the reset line
103 The API only guarantees that the reset line can not be asserted as long as any
109 Consumer drivers use reset_control_reset() to trigger a reset pulse on a
110 self-deasserting reset control.
112 requesting a pulse from any consumer driver will reset all connected
115 The reset controller API allows requesting self-deasserting reset controls as
117 be issued on the reset line.
120 For shared reset controls, calls to the two functions must be balanced.
121 This allows devices that only require an initial reset at any point before the
122 driver is probed or resumed to share a pulsed reset line.
127 Only some reset controllers support querying the current status of a reset
130 reset line is asserted.
132 `reset control array <#reset-control-arrays>`__ handle as its input parameter.
137 Often peripherals require a reset line on some platforms but not on others.
138 For this, reset controls can be requested as optional using
142 reset control is not specified in the device tree.
146 Reset control arrays
149 Some drivers need to assert a bunch of reset lines in no particular order.
150 devm_reset_control_array_get() returns an opaque reset control handle that can
151 be used to assert, deassert, or trigger all specified reset controls at once.
152 The reset control API does not guarantee the order in which the individual
155 Reset controller driver interface
158 Drivers for reset controller modules provide the functionality necessary to
159 assert or deassert reset signals, to trigger a reset pulse on a reset line, or
174 The reset controller API is documented here in two parts:
175 the `reset consumer API <#reset-consumer-api>`__ and the `reset controller
176 driver API <#reset-controller-driver-api>`__.
178 Reset consumer API
181 Reset consumers can control a reset line using an opaque reset control handle,
184 Given the reset control, consumers can call reset_control_assert() and
185 reset_control_deassert(), trigger a reset pulse using reset_control_reset(), or
186 query the reset line status using reset_control_status().
188 .. kernel-doc:: include/linux/reset.h
191 .. kernel-doc:: drivers/reset/core.c
205 Reset controller driver API
208 Reset controller drivers are supposed to implement the necessary functions in
213 .. kernel-doc:: include/linux/reset-controller.h
216 .. kernel-doc:: drivers/reset/core.c