sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget$/translations/zh_CN/driver-api/resetmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/zh_TW/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/it_IT/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ja_JP/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ko_KR/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/sp_SP/driver-api/resetmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h%SPDX-License-Identifier: GPL-2.0-onlyh]h%SPDX-License-Identifier: GPL-2.0-only}(hhhhubah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh>/var/lib/git/docbuild/linux/Documentation/driver-api/reset.rsthKubhsection)}(hhh](htitle)}(hReset controller APIh]hReset controller API}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXJReset controllers are central units that control the reset signals to multiple peripherals. The reset controller API is split into two parts: the `consumer driver interface <#consumer-driver-interface>`__ (`API reference <#reset-consumer-api>`__), which allows peripheral drivers to request control over their reset input signals, and the `reset controller driver interface <#reset-controller-driver-interface>`__ (`API reference <#reset-controller-driver-api>`__), which is used by drivers for reset controller devices to register their reset controls to provide them to the consumers.h](hReset controllers are central units that control the reset signals to multiple peripherals. The reset controller API is split into two parts: the }(hReset controllers are central units that control the reset signals to multiple peripherals. The reset controller API is split into two parts: the hhhhhNhNubh reference)}(h:`consumer driver interface <#consumer-driver-interface>`__h]hconsumer driver interface}(hconsumer driver interfacehhhhhNhNubah}(h]h ]h"]h$]h&]nameconsumer driver interfacerefuri#consumer-driver-interfaceuh1hhhubh (}(h (hhhhhNhNubh)}(h'`API reference <#reset-consumer-api>`__h]h API reference}(h API referencehhhhhNhNubah}(h]h ]h"]h$]h&]name API referenceh#reset-consumer-apiuh1hhhubh^), which allows peripheral drivers to request control over their reset input signals, and the }(h^), which allows peripheral drivers to request control over their reset input signals, and the hhhhhNhNubh)}(hJ`reset controller driver interface <#reset-controller-driver-interface>`__h]h!reset controller driver interface}(h!reset controller driver interfacehjhhhNhNubah}(h]h ]h"]h$]h&]name!reset controller driver interfaceh"#reset-controller-driver-interfaceuh1hhhubh (}(hhhhubh)}(h0`API reference <#reset-controller-driver-api>`__h]h API reference}(h API referencehj,hhhNhNubah}(h]h ]h"]h$]h&]name API referenceh#reset-controller-driver-apiuh1hhhubh{), which is used by drivers for reset controller devices to register their reset controls to provide them to the consumers.}(h{), which is used by drivers for reset controller devices to register their reset controls to provide them to the consumers.hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hWhile some reset controller hardware units also implement system restart functionality, restart handlers are out of scope for the reset controller API.h]hWhile some reset controller hardware units also implement system restart functionality, restart handlers are out of scope for the reset controller API.}(hjKhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hGlossaryh]hGlossary}(hj\hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhKubh)}(hBThe reset controller API uses these terms with a specific meaning:h]hBThe reset controller API uses these terms with a specific meaning:}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjWhhubh)}(h Reset lineh]h Reset line}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjWhhubh block_quote)}(hhh]h)}(hiPhysical reset line carrying a reset signal from a reset controller hardware unit to a peripheral module.h]hiPhysical reset line carrying a reset signal from a reset controller hardware unit to a peripheral module.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjWhhhhhNubh)}(h Reset controlh]h Reset control}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjWhhubj)}(hhh]h)}(hXControl method that determines the state of one or multiple reset lines. Most commonly this is a single bit in reset controller register space that either allows direct control over the physical state of the reset line, or is self-clearing and can be used to trigger a predetermined pulse on the reset line. In more complicated reset controls, a single trigger action can launch a carefully timed sequence of pulses on multiple reset lines.h]hXControl method that determines the state of one or multiple reset lines. Most commonly this is a single bit in reset controller register space that either allows direct control over the physical state of the reset line, or is self-clearing and can be used to trigger a predetermined pulse on the reset line. In more complicated reset controls, a single trigger action can launch a carefully timed sequence of pulses on multiple reset lines.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjWhhhhhNubh)}(hReset controllerh]hReset controller}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjWhhubj)}(hhh]h)}(h^A hardware module that provides a number of reset controls to control a number of reset lines.h]h^A hardware module that provides a number of reset controls to control a number of reset lines.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jhjWhhhhhNubh)}(hReset consumerh]hReset consumer}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjWhhubj)}(hhh]h)}(hVPeripheral module or external IC that is put into reset by the signal on a reset line.h]hVPeripheral module or external IC that is put into reset by the signal on a reset line.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jhjWhhhhhNubeh}(h]glossaryah ]h"]glossaryah$]h&]uh1hhhhhhhhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hConsumer driver interfaceh]hConsumer driver interface}(hj!hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK7ubh)}(hXThis interface provides an API that is similar to the kernel clock framework. Consumer drivers use get and put operations to acquire and release reset controls. Functions are provided to assert and deassert the controlled reset lines, trigger reset pulses, or to query reset line status.h]hXThis interface provides an API that is similar to the kernel clock framework. Consumer drivers use get and put operations to acquire and release reset controls. Functions are provided to assert and deassert the controlled reset lines, trigger reset pulses, or to query reset line status.}(hj/hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjhhubh)}(hWhen requesting reset controls, consumers can use symbolic names for their reset inputs, which are mapped to an actual reset control on an existing reset controller device by the core.h]hWhen requesting reset controls, consumers can use symbolic names for their reset inputs, which are mapped to an actual reset control on an existing reset controller device by the core.}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjhhubh)}(hA stub version of this API is provided when the reset controller framework is not in use in order to minimize the need to use ifdefs.h]hA stub version of this API is provided when the reset controller framework is not in use in order to minimize the need to use ifdefs.}(hjKhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjhhubh)}(hhh](h)}(hShared and exclusive resetsh]hShared and exclusive resets}(hj\hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhKGubh)}(hXThe reset controller API provides either reference counted deassertion and assertion or direct, exclusive control. The distinction between shared and exclusive reset controls is made at the time the reset control is requested, either via devm_reset_control_get_shared() or via devm_reset_control_get_exclusive(). This choice determines the behavior of the API calls made with the reset control.h]hXThe reset controller API provides either reference counted deassertion and assertion or direct, exclusive control. The distinction between shared and exclusive reset controls is made at the time the reset control is requested, either via devm_reset_control_get_shared() or via devm_reset_control_get_exclusive(). This choice determines the behavior of the API calls made with the reset control.}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjWhhubh)}(hXHShared resets behave similarly to clocks in the kernel clock framework. They provide reference counted deassertion, where only the first deassert, which increments the deassertion reference count to one, and the last assert which decrements the deassertion reference count back to zero, have a physical effect on the reset line.h]hXHShared resets behave similarly to clocks in the kernel clock framework. They provide reference counted deassertion, where only the first deassert, which increments the deassertion reference count to one, and the last assert which decrements the deassertion reference count back to zero, have a physical effect on the reset line.}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjWhhubh)}(hExclusive resets on the other hand guarantee direct control. That is, an assert causes the reset line to be asserted immediately, and a deassert causes the reset line to be deasserted immediately.h]hExclusive resets on the other hand guarantee direct control. That is, an assert causes the reset line to be asserted immediately, and a deassert causes the reset line to be deasserted immediately.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjWhhubeh}(h]shared-and-exclusive-resetsah ]h"]shared and exclusive resetsah$]h&]uh1hhjhhhhhKGubh)}(hhh](h)}(hAssertion and deassertionh]hAssertion and deassertion}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK\ubh)}(hConsumer drivers use the reset_control_assert() and reset_control_deassert() functions to assert and deassert reset lines. For shared reset controls, calls to the two functions must be balanced.h]hConsumer drivers use the reset_control_assert() and reset_control_deassert() functions to assert and deassert reset lines. For shared reset controls, calls to the two functions must be balanced.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjhhubh)}(hXNote that since multiple consumers may be using a shared reset control, there is no guarantee that calling reset_control_assert() on a shared reset control will actually cause the reset line to be asserted. Consumer drivers using shared reset controls should assume that the reset line may be kept deasserted at all times. The API only guarantees that the reset line can not be asserted as long as any consumer has requested it to be deasserted.h]hXNote that since multiple consumers may be using a shared reset control, there is no guarantee that calling reset_control_assert() on a shared reset control will actually cause the reset line to be asserted. Consumer drivers using shared reset controls should assume that the reset line may be kept deasserted at all times. The API only guarantees that the reset line can not be asserted as long as any consumer has requested it to be deasserted.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjhhubeh}(h]assertion-and-deassertionah ]h"]assertion and deassertionah$]h&]uh1hhjhhhhhK\ubh)}(hhh](h)}(h Triggeringh]h Triggering}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKkubh)}(hXConsumer drivers use reset_control_reset() to trigger a reset pulse on a self-deasserting reset control. In general, these resets can not be shared between multiple consumers, since requesting a pulse from any consumer driver will reset all connected peripherals.h]hXConsumer drivers use reset_control_reset() to trigger a reset pulse on a self-deasserting reset control. In general, these resets can not be shared between multiple consumers, since requesting a pulse from any consumer driver will reset all connected peripherals.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjhhubh)}(hXThe reset controller API allows requesting self-deasserting reset controls as shared, but for those only the first trigger request causes an actual pulse to be issued on the reset line. All further calls to this function have no effect until all consumers have called reset_control_rearm(). For shared reset controls, calls to the two functions must be balanced. This allows devices that only require an initial reset at any point before the driver is probed or resumed to share a pulsed reset line.h]hXThe reset controller API allows requesting self-deasserting reset controls as shared, but for those only the first trigger request causes an actual pulse to be issued on the reset line. All further calls to this function have no effect until all consumers have called reset_control_rearm(). For shared reset controls, calls to the two functions must be balanced. This allows devices that only require an initial reset at any point before the driver is probed or resumed to share a pulsed reset line.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjhhubeh}(h] triggeringah ]h"] triggeringah$]h&]uh1hhjhhhhhKkubh)}(hhh](h)}(hQueryingh]hQuerying}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK}ubh)}(hXTOnly some reset controllers support querying the current status of a reset line, via reset_control_status(). If supported, this function returns a positive non-zero value if the given reset line is asserted. The reset_control_status() function does not accept a `reset control array <#reset-control-arrays>`__ handle as its input parameter.h](hXOnly some reset controllers support querying the current status of a reset line, via reset_control_status(). If supported, this function returns a positive non-zero value if the given reset line is asserted. The reset_control_status() function does not accept a }(hXOnly some reset controllers support querying the current status of a reset line, via reset_control_status(). If supported, this function returns a positive non-zero value if the given reset line is asserted. The reset_control_status() function does not accept a hjhhhNhNubh)}(h/`reset control array <#reset-control-arrays>`__h]hreset control array}(hreset control arrayhjhhhNhNubah}(h]h ]h"]h$]h&]namereset control arrayh#reset-control-arraysuh1hhjubh handle as its input parameter.}(h handle as its input parameter.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]queryingah ]h"]queryingah$]h&]uh1hhjhhhhhK}ubh)}(hhh](h)}(hOptional resetsh]hOptional resets}(hjHhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChhhhhKubh)}(hXOften peripherals require a reset line on some platforms but not on others. For this, reset controls can be requested as optional using devm_reset_control_get_optional_exclusive() or devm_reset_control_get_optional_shared(). These functions return a NULL pointer instead of an error when the requested reset control is not specified in the device tree. Passing a NULL pointer to the reset_control functions causes them to return quietly without an error.h]hXOften peripherals require a reset line on some platforms but not on others. For this, reset controls can be requested as optional using devm_reset_control_get_optional_exclusive() or devm_reset_control_get_optional_shared(). These functions return a NULL pointer instead of an error when the requested reset control is not specified in the device tree. Passing a NULL pointer to the reset_control functions causes them to return quietly without an error.}(hjVhjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjChhubeh}(h]optional-resetsah ]h"]optional resetsah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hReset control arraysh]hReset control arrays}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhhhhhKubh)}(hXPSome drivers need to assert a bunch of reset lines in no particular order. devm_reset_control_array_get() returns an opaque reset control handle that can be used to assert, deassert, or trigger all specified reset controls at once. The reset control API does not guarantee the order in which the individual controls therein are handled.h]hXPSome drivers need to assert a bunch of reset lines in no particular order. devm_reset_control_array_get() returns an opaque reset control handle that can be used to assert, deassert, or trigger all specified reset controls at once. The reset control API does not guarantee the order in which the individual controls therein are handled.}(hj}hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjhhubeh}(h]reset-control-arraysah ]h"]reset control arraysah$]h&]uh1hhjhhhhhKubeh}(h]consumer-driver-interfaceah ]h"]consumer driver interfaceah$]h&]uh1hhhhhhhhK7ubh)}(hhh](h)}(h!Reset controller driver interfaceh]h!Reset controller driver interface}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hDrivers for reset controller modules provide the functionality necessary to assert or deassert reset signals, to trigger a reset pulse on a reset line, or to query its current state. All functions are optional.h]hDrivers for reset controller modules provide the functionality necessary to assert or deassert reset signals, to trigger a reset pulse on a reset line, or to query its current state. All functions are optional.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hInitializationh]hInitialization}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hDrivers fill a struct :c:type:`reset_controller_dev` and register it with reset_controller_register() in their probe function. The actual functionality is implemented in callback functions via a struct :c:type:`reset_control_ops`.h](hDrivers fill a struct }(hDrivers fill a struct hjhhhNhNubh)}(h:c:type:`reset_controller_dev`h]hliteral)}(hjh]hreset_controller_dev}(hhhjhhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocdriver-api/reset refdomainjreftypetype refexplicitrefwarn reftargetreset_controller_devuh1hhhhKhjubh and register it with reset_controller_register() in their probe function. The actual functionality is implemented in callback functions via a struct }(h and register it with reset_controller_register() in their probe function. The actual functionality is implemented in callback functions via a struct hjhhhNhNubh)}(h:c:type:`reset_control_ops`h]j)}(hjh]hreset_control_ops}(hhhjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjreset_control_opsuh1hhhhKhjubh.}(h.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]initializationah ]h"]initializationah$]h&]uh1hhjhhhhhKubeh}(h]!reset-controller-driver-interfaceah ]h"]!reset controller driver interfaceah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h API referenceh]h API reference}(hj;hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKubh)}(hThe reset controller API is documented here in two parts: the `reset consumer API <#reset-consumer-api>`__ and the `reset controller driver API <#reset-controller-driver-api>`__.h](h>The reset controller API is documented here in two parts: the }(h>The reset controller API is documented here in two parts: the hjGhhhNhNubh)}(h,`reset consumer API <#reset-consumer-api>`__h]hreset consumer API}(hreset consumer APIhjPhhhNhNubah}(h]h ]h"]h$]h&]namereset consumer APIh#reset-consumer-apiuh1hhjGubh and the }(h and the hjGhhhNhNubh)}(h>`reset controller driver API <#reset-controller-driver-api>`__h]hreset controller driver API}(hreset controller driver APIhjghhhNhNubah}(h]h ]h"]h$]h&]namereset controller driver APIh#reset-controller-driver-apiuh1hhjGubh.}(hjhjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj6hhubh)}(hhh](h)}(hReset consumer APIh]hReset consumer API}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXReset consumers can control a reset line using an opaque reset control handle, which can be obtained from devm_reset_control_get_exclusive() or devm_reset_control_get_shared(). Given the reset control, consumers can call reset_control_assert() and reset_control_deassert(), trigger a reset pulse using reset_control_reset(), or query the reset line status using reset_control_status().h]hXReset consumers can control a reset line using an opaque reset control handle, which can be obtained from devm_reset_control_get_exclusive() or devm_reset_control_get_shared(). Given the reset control, consumers can call reset_control_assert() and reset_control_deassert(), trigger a reset pulse using reset_control_reset(), or query the reset line status using reset_control_status().}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single"reset_control_bulk_data (C struct)c.reset_control_bulk_datahNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(hreset_control_bulk_datah]hdesc_signature_line)}(hstruct reset_control_bulk_datah](hdesc_sig_keyword)}(hstructh]hstruct}(hhhjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKubhdesc_sig_space)}(h h]h }(hhhjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hreset_control_bulk_datah]h desc_sig_name)}(hjh]hreset_control_bulk_data}(hhhjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multilineuh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjhhubh desc_content)}(hhh]h)}(h,Data used for bulk reset control operations.h]h,Data used for bulk reset control operations.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]domainjobjtypej5desctypej5noindexuh1jhhhjhNhNubh container)}(hX **Definition**:: struct reset_control_bulk_data { const char *id; struct reset_control *rstc; }; **Members** ``id`` reset control consumer ID ``rstc`` struct reset_control * to store the associated reset controlh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjCubh:}(h:hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj?ubh literal_block)}(hwstruct reset_control_bulk_data { const char *id; struct reset_control *rstc; };h]hwstruct reset_control_bulk_data { const char *id; struct reset_control *rstc; };}(hhhjeubah}(h]h ]h"]h$]h&]hhuh1jchW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj?ubh)}(h **Members**h]jH)}(hjvh]hMembers}(hhhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjtubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj?ubhdefinition_list)}(hhh](hdefinition_list_item)}(h!``id`` reset control consumer ID h](hterm)}(h``id``h]j)}(hjh]hid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubh definition)}(hhh]h)}(hreset control consumer IDh]hreset control consumer ID}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hE``rstc`` struct reset_control * to store the associated reset controlh](j)}(h``rstc``h]j)}(hjh]hrstc}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubj)}(hhh]h)}(h)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Returns a struct reset_control or IS_ERR() condition containing errno. If this function is called more than once for the same reset_control it will return -EBUSY. See reset_control_get_shared() for details on shared references to reset-controls. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj>h]hconst char *id}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj8ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjYhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShKhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hjyh]h Description}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjwubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubh)}(hReturns a struct reset_control or IS_ERR() condition containing errno. If this function is called more than once for the same reset_control it will return -EBUSY.h]hReturns a struct reset_control or IS_ERR() condition containing errno. If this function is called more than once for the same reset_control it will return -EBUSY.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubh)}(hRSee reset_control_get_shared() for details on shared references to reset-controls.h]hRSee reset_control_get_shared() for details on shared references to reset-controls.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-reset_control_bulk_get_exclusive (C function)"c.reset_control_bulk_get_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(hoint reset_control_bulk_get_exclusive (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hnint reset_control_bulk_get_exclusive(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h reset_control_bulk_get_exclusiveh]j)}(h reset_control_bulk_get_exclusiveh]h reset_control_bulk_get_exclusive}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj& hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9 modnameN classnameNjj)}j]j)}jjsb"c.reset_control_bulk_get_exclusiveasbuh1hhj ubj)}(h h]h }(hhhjW hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhje hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hdevh]hdev}(hhhjr hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h num_rstcsh]h num_rstcs}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jS "c.reset_control_bulk_get_exclusiveasbuh1hhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hrstcsh]hrstcs}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjhhubj)}(hhh]h)}(hELookup and obtain exclusive references to multiple reset controllers.h]hELookup and obtain exclusive references to multiple reset controllers.}(hjD hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj? hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jZ j;jZ j<uh1jhhhjhNhNubj>)}(hX~**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Fills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno.h](h)}(h**Parameters**h]jH)}(hjd h]h Parameters}(hhhjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjb ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj^ ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj} ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj} ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjz ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hj h]h int num_rstcs}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjz ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hj h]h%struct reset_control_bulk_data *rstcs}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj ubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjz ubeh}(h]h ]h"]h$]h&]uh1jhj^ ubh)}(h**Description**h]jH)}(hj0 h]h Description}(hhhj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj. ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj^ ubh)}(hyFills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno.h]hyFills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno.}(hjH hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj^ ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1reset_control_get_exclusive_released (C function)&c.reset_control_get_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(h`struct reset_control * reset_control_get_exclusive_released (struct device *dev, const char *id)h]j)}(h^struct reset_control *reset_control_get_exclusive_released(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhju hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq hhhj hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}j$reset_control_get_exclusive_releasedsb&c.reset_control_get_exclusive_releasedasbuh1hhjq hhhj hMubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq hhhj hMubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq hhhj hMubj)}(h$reset_control_get_exclusive_releasedh]j)}(hj h]h$reset_control_get_exclusive_released}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjq hhhj hMubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j &c.reset_control_get_exclusive_releasedasbuh1hhj ubj)}(h h]h }(hhhj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hdevh]hdev}(hhhjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj_ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubj)}(h h]h }(hhhjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubjn)}(hcharh]hchar}(hhhjz hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj[ ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubj)}(hidh]hid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhjq hhhj hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjm hhhj hMubah}(h]jh ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjj hhubj)}(hhh]h)}(hJLookup and obtain a temoprarily exclusive reference to a reset controller.h]hJLookup and obtain a temoprarily exclusive reference to a reset controller.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj hhubah}(h]h ]h"]h$]h&]uh1jhjj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j j;j j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Returns a struct reset_control or IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_acquire() before they can be used and should be released via reset_control_release() afterwards. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hj h]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj* hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ hMhj% ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$ hMhj ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjH h]hconst char *id}(hhhjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjB ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjc hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj] hMhj^ ubah}(h]h ]h"]h$]h&]uh1jhjB ubeh}(h]h ]h"]h$]h&]uh1jhj] hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]jH)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hj ubh)}(hReturns a struct reset_control or IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_acquire() before they can be used and should be released via reset_control_release() afterwards.h]hReturns a struct reset_control or IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_acquire() before they can be used and should be released via reset_control_release() afterwards.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hj ubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6reset_control_bulk_get_exclusive_released (C function)+c.reset_control_bulk_get_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hxint reset_control_bulk_get_exclusive_released (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hwint reset_control_bulk_get_exclusive_released(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhj hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMubj)}(h)reset_control_bulk_get_exclusive_releasedh]j)}(h)reset_control_bulk_get_exclusive_releasedh]h)reset_control_bulk_get_exclusive_released}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jj sb+c.reset_control_bulk_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_rstcsh]h num_rstcs}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jN+c.reset_control_bulk_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrstcsh]hrstcs}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj hhhj hMubah}(h]j ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM&hj hhubj)}(hhh]h)}(hQLookup and obtain temporarily exclusive references to multiple reset controllers.h]hQLookup and obtain temporarily exclusive references to multiple reset controllers.}(hj?hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj:hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jUj;jUj<uh1jhhhjhNhNubj>)}(hX5**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Fills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_bulk_acquire() before they can be used and should be released via reset_control_bulk_release() afterwards.h](h)}(h**Parameters**h]jH)}(hj_h]h Parameters}(hhhjahhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj]ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj~h]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjxubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjh]h int num_rstcs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjh]h%struct reset_control_bulk_data *rstcs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h**Description**h]jH)}(hj+h]h Description}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj)ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjYubh)}(hX0Fills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_bulk_acquire() before they can be used and should be released via reset_control_bulk_release() afterwards.h]hX0Fills the rstcs array with pointers to exclusive reset controls and returns 0, or an IS_ERR() condition containing errno. reset-controls returned by this function must be acquired via reset_control_bulk_acquire() before they can be used and should be released via reset_control_bulk_release() afterwards.}(hjChjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjYubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j?reset_control_bulk_get_optional_exclusive_released (C function)4c.reset_control_bulk_get_optional_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hint reset_control_bulk_get_optional_exclusive_released (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hint reset_control_bulk_get_optional_exclusive_released(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjphhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjlhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM/ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhj~hM/ubj)}(h2reset_control_bulk_get_optional_exclusive_releasedh]j)}(h2reset_control_bulk_get_optional_exclusive_releasedh]h2reset_control_bulk_get_optional_exclusive_released}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjlhhhj~hM/ubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjubj)}(h h]h }(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_rstcsh]h num_rstcs}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjPubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hrstcsh]hrstcs}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjlhhhj~hM/ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhhj~hM/ubah}(h]jcah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM;hjehhubj)}(hhh]h)}(hZLookup and obtain optional temporarily exclusive references to multiple reset controllers.h]hZLookup and obtain optional temporarily exclusive references to multiple reset controllers.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM.hjhhubah}(h]h ]h"]h$]h&]uh1jhjehhhj~hM/ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jj;jj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Optional variant of reset_control_bulk_get_exclusive_released(). If the requested reset is not specified in the device tree, this function returns 0 instead of an error and missing rtsc is set to NULL. See reset_control_bulk_get_exclusive_released() for more information.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM2hjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM1hjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj2hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hM1hj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hM1hjubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjPh]h int num_rstcs}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM2hjJubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjkhjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehM2hjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehM2hjubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjh]h%struct reset_control_bulk_data *rstcs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM3hjubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM3hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM5hjubh)}(hOptional variant of reset_control_bulk_get_exclusive_released(). If the requested reset is not specified in the device tree, this function returns 0 instead of an error and missing rtsc is set to NULL.h]hOptional variant of reset_control_bulk_get_exclusive_released(). If the requested reset is not specified in the device tree, this function returns 0 instead of an error and missing rtsc is set to NULL.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM5hjubh)}(hESee reset_control_bulk_get_exclusive_released() for more information.h]hESee reset_control_bulk_get_exclusive_released() for more information.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM9hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%reset_control_get_shared (C function)c.reset_control_get_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hTstruct reset_control * reset_control_get_shared (struct device *dev, const char *id)h]j)}(hRstruct reset_control *reset_control_get_shared(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMDubj)}(h h]h }(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj%hMDubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]j)}jreset_control_get_sharedsbc.reset_control_get_sharedasbuh1hhjhhhj%hMDubj)}(h h]h }(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj%hMDubj)}(hjh]h*}(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj%hMDubj)}(hreset_control_get_sharedh]j)}(hjUh]hreset_control_get_shared}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj%hMDubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jSc.reset_control_get_sharedasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjn)}(hcharh]hchar}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hidh]hid}(hhhjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj%hMDubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhj%hMDubah}(h]j ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMXhj hhubj)}(hhh]h)}(h;Lookup and obtain a shared reference to a reset controller.h]h;Lookup and obtain a shared reference to a reset controller.}(hjshjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMChjnhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj%hMDubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jj;jj<uh1jhhhjhNhNubj>)}(hXj**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Returns a struct reset_control or IS_ERR() condition containing errno. This function is intended for use with reset-controls which are shared between hardware blocks. When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs. Calling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMGhjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMEhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMEhjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjh]hconst char *id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMFhjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMFhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hj&h]h Description}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj$ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMHhjubh)}(hReturns a struct reset_control or IS_ERR() condition containing errno. This function is intended for use with reset-controls which are shared between hardware blocks.h]hReturns a struct reset_control or IS_ERR() condition containing errno. This function is intended for use with reset-controls which are shared between hardware blocks.}(hj>hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMHhjubh)}(hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.h]hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.}(hjMhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMLhjubh)}(hCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control.h]hCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control.}(hj\hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMRhjubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjkhjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMVhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*reset_control_bulk_get_shared (C function)c.reset_control_bulk_get_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hlint reset_control_bulk_get_shared (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hkint reset_control_bulk_get_shared(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM`ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM`ubj)}(hreset_control_bulk_get_sharedh]j)}(hreset_control_bulk_get_sharedh]hreset_control_bulk_get_shared}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM`ubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.reset_control_bulk_get_sharedasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhjGhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjCubj)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h num_rstcsh]h num_rstcs}(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.reset_control_bulk_get_sharedasbuh1hhjxubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(hrstcsh]hrstcs}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM`ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhjhM`ubah}(h]jah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhhjhhubj)}(hhh]h)}(hBLookup and obtain shared references to multiple reset controllers.h]hBLookup and obtain shared references to multiple reset controllers.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM_hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM`ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jj;jj<uh1jhhhjhNhNubj>)}(hX{**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Fills the rstcs array with pointers to shared reset controls and returns 0, or an IS_ERR() condition containing errno.h](h)}(h**Parameters**h]jH)}(hj h]h Parameters}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMchjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj?h]hstruct device *dev}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMahj9ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjZhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMahjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMahj6ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjxh]h int num_rstcs}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMbhjrubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMbhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMbhj6ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjh]h%struct reset_control_bulk_data *rstcs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMchjubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMchjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMchj6ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMehjubh)}(hvFills the rstcs array with pointers to shared reset controls and returns 0, or an IS_ERR() condition containing errno.h]hvFills the rstcs array with pointers to shared reset controls and returns 0, or an IS_ERR() condition containing errno.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMehjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1reset_control_get_optional_exclusive (C function)&c.reset_control_get_optional_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(h`struct reset_control * reset_control_get_optional_exclusive (struct device *dev, const char *id)h]j)}(h^struct reset_control *reset_control_get_optional_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMqubj)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj>hMqubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}j$reset_control_get_optional_exclusivesb&c.reset_control_get_optional_exclusiveasbuh1hhj-hhhj>hMqubj)}(h h]h }(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj>hMqubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj>hMqubj)}(h$reset_control_get_optional_exclusiveh]j)}(hjnh]h$reset_control_get_optional_exclusive}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj-hhhj>hMqubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jl&c.reset_control_get_optional_exclusiveasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjn)}(hcharh]hchar}(hhhj6hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjubj)}(h h]h }(hhhjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hidh]hid}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj-hhhj>hMqubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj)hhhj>hMqubah}(h]j$ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMzhj&hhubj)}(hhh]h)}(h&optional reset_control_get_exclusive()h]h&optional reset_control_get_exclusive()}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMphjhhubah}(h]h ]h"]h$]h&]uh1jhj&hhhj>hMqubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jj;jj<uh1jhhhjhNhNubj>)}(hX]**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Optional variant of reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error. See reset_control_get_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMthjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMqhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjh]hconst char *id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMrhjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMrhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMrhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hj?h]h Description}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj=ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMthjubh)}(hOptional variant of reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.h]hOptional variant of reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.}(hjWhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMthjubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hjfhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMxhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6reset_control_bulk_get_optional_exclusive (C function)+c.reset_control_bulk_get_optional_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(hxint reset_control_bulk_get_optional_exclusive (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hwint reset_control_bulk_get_optional_exclusive(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h)reset_control_bulk_get_optional_exclusiveh]j)}(h)reset_control_bulk_get_optional_exclusiveh]h)reset_control_bulk_get_optional_exclusive}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb+c.reset_control_bulk_get_optional_exclusiveasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhjBhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj>ubj)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h num_rstcsh]h num_rstcs}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j +c.reset_control_bulk_get_optional_exclusiveasbuh1hhjsubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(hrstcsh]hrstcs}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjhhubj)}(hhh]h)}(h+optional reset_control_bulk_get_exclusive()h]h+optional reset_control_bulk_get_exclusive()}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jj;jj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Optional variant of reset_control_bulk_get_exclusive(). If any of the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error. See reset_control_bulk_get_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj:h]hstruct device *dev}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj4ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjUhjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhMhj1ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjsh]h int num_rstcs}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjmubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhj1ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjh]h%struct reset_control_bulk_data *rstcs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj1ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(hOptional variant of reset_control_bulk_get_exclusive(). If any of the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error.h]hOptional variant of reset_control_bulk_get_exclusive(). If any of the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(h)}(hXW**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Optional variant of reset_control_get_shared(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error. See reset_control_get_shared() for more information.h](h)}(h**Parameters**h]jH)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjh]hconst char *id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj)hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jH)}(hjIh]h Description}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjGubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(hOptional variant of reset_control_get_shared(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.h]hOptional variant of reset_control_get_shared(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.}(hjahj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(h4See reset_control_get_shared() for more information.h]h4See reset_control_get_shared() for more information.}(hjphjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j3reset_control_bulk_get_optional_shared (C function)(c.reset_control_bulk_get_optional_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(huint reset_control_bulk_get_optional_shared (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(htint reset_control_bulk_get_optional_shared(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h&reset_control_bulk_get_optional_sharedh]j)}(h&reset_control_bulk_get_optional_sharedh]h&reset_control_bulk_get_optional_shared}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb(c.reset_control_bulk_get_optional_sharedasbuh1hhjubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj& hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hhhj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhjL hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjH ubj)}(h h]h }(hhhjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH ubj)}(h num_rstcsh]h num_rstcs}(hhhjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j (c.reset_control_bulk_get_optional_sharedasbuh1hhj} ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(hrstcsh]hrstcs}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjhhhjhMubah}(h]jah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjhhubj)}(hhh]h)}(h(optional reset_control_bulk_get_shared()h]h(optional reset_control_bulk_get_shared()}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j!j;j!j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Optional variant of reset_control_bulk_get_shared(). If the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error. See reset_control_bulk_get_shared() for more information.h](h)}(h**Parameters**h]jH)}(hj%!h]h Parameters}(hhhj'!hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj#!ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjD!h]hstruct device *dev}(hhhjF!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB!ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>!ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj_!hj]!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY!hMhjZ!ubah}(h]h ]h"]h$]h&]uh1jhj>!ubeh}(h]h ]h"]h$]h&]uh1jhjY!hMhj;!ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hj}!h]h int num_rstcs}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{!ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjw!ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjw!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj;!ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hj!h]h%struct reset_control_bulk_data *rstcs}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!ubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj;!ubeh}(h]h ]h"]h$]h&]uh1jhj!ubh)}(h**Description**h]jH)}(hj!h]h Description}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj!ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!ubh)}(hOptional variant of reset_control_bulk_get_shared(). If the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error.h]hOptional variant of reset_control_bulk_get_shared(). If the requested resets are not specified in the device tree, this function sets them to NULL instead of returning an error.}(hj "hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!ubh)}(h9See reset_control_bulk_get_shared() for more information.h]h9See reset_control_bulk_get_shared() for more information.}(hj"hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+of_reset_control_get_exclusive (C function) c.of_reset_control_get_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(h`struct reset_control * of_reset_control_get_exclusive (struct device_node *node, const char *id)h]j)}(h^struct reset_control *of_reset_control_get_exclusive(struct device_node *node, const char *id)h](j)}(hjh]hstruct}(hhhjE"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA"hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhjS"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA"hhhjR"hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjd"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf"modnameN classnameNjj)}j]j)}jof_reset_control_get_exclusivesb c.of_reset_control_get_exclusiveasbuh1hhjA"hhhjR"hMubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA"hhhjR"hMubj)}(hjh]h*}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA"hhhjR"hMubj)}(hof_reset_control_get_exclusiveh]j)}(hj"h]hof_reset_control_get_exclusive}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjA"hhhjR"hMubj)}(h*(struct device_node *node, const char *id)h](j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j" c.of_reset_control_get_exclusiveasbuh1hhj"ubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hjh]h*}(hhhj #hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hnodeh]hnode}(hhhj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj"ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj/#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+#ubj)}(h h]h }(hhhj<#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+#ubjn)}(hcharh]hchar}(hhhjJ#hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj+#ubj)}(h h]h }(hhhjX#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+#ubj)}(hjh]h*}(hhhjf#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+#ubj)}(hidh]hid}(hhhjs#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj"ubeh}(h]h ]h"]h$]h&]hhuh1jhjA"hhhjR"hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj="hhhjR"hMubah}(h]j8"ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj:"hhubj)}(hhh]h)}(h?Lookup and obtain an exclusive reference to a reset controller.h]h?Lookup and obtain an exclusive reference to a reset controller.}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#hhubah}(h]h ]h"]h$]h&]uh1jhj:"hhhjR"hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j#j;j#j<uh1jhhhjhNhNubj>)}(h**Parameters** ``struct device_node *node`` device to be reset by the controller ``const char *id`` reset line name **Description** Returns a struct reset_control or IS_ERR() condition containing errno. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hj#h]h Parameters}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj#ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hj#h]hstruct device_node *node}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhj#ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj$h]hconst char *id}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj$ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj3$hj1$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-$hMhj.$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj-$hMhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubh)}(h**Description**h]jH)}(hjS$h]h Description}(hhhjU$hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjQ$ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#ubh)}(hFReturns a struct reset_control or IS_ERR() condition containing errno.h]hFReturns a struct reset_control or IS_ERR() condition containing errno.}(hjk$hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#ubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjz$hjx$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j4of_reset_control_get_optional_exclusive (C function))c.of_reset_control_get_optional_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(histruct reset_control * of_reset_control_get_optional_exclusive (struct device_node *node, const char *id)h]j)}(hgstruct reset_control *of_reset_control_get_optional_exclusive(struct device_node *node, const char *id)h](j)}(hjh]hstruct}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}j'of_reset_control_get_optional_exclusivesb)c.of_reset_control_get_optional_exclusiveasbuh1hhj$hhhj$hMubj)}(h h]h }(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hMubj)}(hjh]h*}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hMubj)}(h'of_reset_control_get_optional_exclusiveh]j)}(hj$h]h'of_reset_control_get_optional_exclusive}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj$hhhj$hMubj)}(h*(struct device_node *node, const char *id)h](j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj!%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(h h]h }(hhhj.%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhj?%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjA%modnameN classnameNjj)}j]j$)c.of_reset_control_get_optional_exclusiveasbuh1hhj%ubj)}(h h]h }(hhhj]%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hjh]h*}(hhhjk%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hnodeh]hnode}(hhhjx%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(h h]h }(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjn)}(hcharh]hchar}(hhhj%hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj%ubj)}(h h]h }(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hjh]h*}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hidh]hid}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%ubeh}(h]h ]h"]h$]h&]hhuh1jhj$hhhj$hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj$hhhj$hMubah}(h]j$ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj$hhubj)}(hhh]h)}(hHLookup and obtain an optional exclusive reference to a reset controller.h]hHLookup and obtain an optional exclusive reference to a reset controller.}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj%hhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j&j;j&j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device_node *node`` device to be reset by the controller ``const char *id`` reset line name **Description** Optional variant of of_reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error. Returns a struct reset_control or IS_ERR() condition containing errno. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hj"&h]h Parameters}(hhhj$&hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj &ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj&ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hjA&h]hstruct device_node *node}(hhhjC&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?&ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;&ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj\&hjZ&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV&hMhjW&ubah}(h]h ]h"]h$]h&]uh1jhj;&ubeh}(h]h ]h"]h$]h&]uh1jhjV&hMhj8&ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjz&h]hconst char *id}(hhhj|&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx&ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjt&ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhjt&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj8&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubh)}(h**Description**h]jH)}(hj&h]h Description}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj&ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj&ubh)}(hOptional variant of of_reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.h]hOptional variant of of_reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj&ubh)}(hFReturns a struct reset_control or IS_ERR() condition containing errno.h]hFReturns a struct reset_control or IS_ERR() condition containing errno.}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj&ubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(of_reset_control_get_shared (C function)c.of_reset_control_get_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(h]struct reset_control * of_reset_control_get_shared (struct device_node *node, const char *id)h]j)}(h[struct reset_control *of_reset_control_get_shared(struct device_node *node, const char *id)h](j)}(hjh]hstruct}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj&'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj%'hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj7'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9'modnameN classnameNjj)}j]j)}jof_reset_control_get_sharedsbc.of_reset_control_get_sharedasbuh1hhj'hhhj%'hMubj)}(h h]h }(hhhjX'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj%'hMubj)}(hjh]h*}(hhhjf'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj%'hMubj)}(hof_reset_control_get_sharedh]j)}(hjU'h]hof_reset_control_get_shared}(hhhjw'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs'ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj'hhhj%'hMubj)}(h*(struct device_node *node, const char *id)h](j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]jS'c.of_reset_control_get_sharedasbuh1hhj'ubj)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hnodeh]hnode}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(h h]h }(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjn)}(hcharh]hchar}(hhhj(hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj'ubj)}(h h]h }(hhhj+(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hhhj9(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hidh]hid}(hhhjF(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubeh}(h]h ]h"]h$]h&]hhuh1jhj'hhhj%'hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj'hhhj%'hMubah}(h]j 'ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj 'hhubj)}(hhh]h)}(h;Lookup and obtain a shared reference to a reset controller.h]h;Lookup and obtain a shared reference to a reset controller.}(hjs(hjq(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjn(hhubah}(h]h ]h"]h$]h&]uh1jhj 'hhhj%'hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j(j;j(j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device_node *node`` device to be reset by the controller ``const char *id`` reset line name **Description** When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs. Calling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno. Use of id names is optional.h](h)}(h**Parameters**h]jH)}(hj(h]h Parameters}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj(ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hj(h]hstruct device_node *node}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhj(ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj(h]hconst char *id}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj)hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMhj)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj)hMhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(ubh)}(h**Description**h]jH)}(hj&)h]h Description}(hhhj()hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj$)ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubh)}(hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.h]hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.}(hj>)hj<)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubh)}(hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.h]hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.}(hjM)hjK)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hj\)hjZ)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j4of_reset_control_get_exclusive_by_index (C function))c.of_reset_control_get_exclusive_by_indexhNtauh1jhjhhhNhNubj)}(hhh](j)}(hdstruct reset_control * of_reset_control_get_exclusive_by_index (struct device_node *node, int index)h]j)}(hbstruct reset_control *of_reset_control_get_exclusive_by_index(struct device_node *node, int index)h](j)}(hjh]hstruct}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}j'of_reset_control_get_exclusive_by_indexsb)c.of_reset_control_get_exclusive_by_indexasbuh1hhj)hhhj)hMubj)}(h h]h }(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hMubj)}(hjh]h*}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hMubj)}(h'of_reset_control_get_exclusive_by_indexh]j)}(hj)h]h'of_reset_control_get_exclusive_by_index}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj)hhhj)hMubj)}(h%(struct device_node *node, int index)h](j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhj!*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#*modnameN classnameNjj)}j]j))c.of_reset_control_get_exclusive_by_indexasbuh1hhj)ubj)}(h h]h }(hhhj?*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hjh]h*}(hhhjM*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hnodeh]hnode}(hhhjZ*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubj)}(h int indexh](jn)}(hinth]hint}(hhhjs*hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjo*ubj)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo*ubj)}(hindexh]hindex}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubeh}(h]h ]h"]h$]h&]hhuh1jhj)hhhj)hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj)hhhj)hMubah}(h]j|)ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj~)hhubj)}(hhh]h)}(hHLookup and obtain an exclusive reference to a reset controller by index.h]hHLookup and obtain an exclusive reference to a reset controller by index.}(hj*hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj*hhubah}(h]h ]h"]h$]h&]uh1jhj~)hhhj)hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j*j;j*j<uh1jhhhjhNhNubj>)}(hX:**Parameters** ``struct device_node *node`` device to be reset by the controller ``int index`` index of the reset controller **Description** This is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h](h)}(h**Parameters**h]jH)}(hj*h]h Parameters}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj*ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj*ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hj*h]hstruct device_node *node}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj*ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj+hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMhj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj+hMhj*ubj)}(h,``int index`` index of the reset controller h](j)}(h ``int index``h]j)}(hj4+h]h int index}(hhhj6+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2+ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj.+ubj)}(hhh]h)}(hindex of the reset controllerh]hindex of the reset controller}(hjO+hjM+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI+hMhjJ+ubah}(h]h ]h"]h$]h&]uh1jhj.+ubeh}(h]h ]h"]h$]h&]uh1jhjI+hMhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubh)}(h**Description**h]jH)}(hjo+h]h Description}(hhhjq+hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjm+ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj*ubh)}(hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h]hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj+hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1of_reset_control_get_shared_by_index (C function)&c.of_reset_control_get_shared_by_indexhNtauh1jhjhhhNhNubj)}(hhh](j)}(hastruct reset_control * of_reset_control_get_shared_by_index (struct device_node *node, int index)h]j)}(h_struct reset_control *of_reset_control_get_shared_by_index(struct device_node *node, int index)h](j)}(hjh]hstruct}(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM ubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hM ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}j$of_reset_control_get_shared_by_indexsb&c.of_reset_control_get_shared_by_indexasbuh1hhj+hhhj+hM ubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hM ubj)}(hjh]h*}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hM ubj)}(h$of_reset_control_get_shared_by_indexh]j)}(hj+h]h$of_reset_control_get_shared_by_index}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj+hhhj+hM ubj)}(h%(struct device_node *node, int index)h](j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj.,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*,ubj)}(h h]h }(hhhj;,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*,ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhjL,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjN,modnameN classnameNjj)}j]j+&c.of_reset_control_get_shared_by_indexasbuh1hhj*,ubj)}(h h]h }(hhhjj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*,ubj)}(hjh]h*}(hhhjx,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*,ubj)}(hnodeh]hnode}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&,ubj)}(h int indexh](jn)}(hinth]hint}(hhhj,hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj,ubj)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hindexh]hindex}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&,ubeh}(h]h ]h"]h$]h&]hhuh1jhj+hhhj+hM ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj+hhhj+hM ubah}(h]j+ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj+hhubj)}(hhh]h)}(hDLookup and obtain a shared reference to a reset controller by index.h]hDLookup and obtain a shared reference to a reset controller by index.}(hj,hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj,hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj+hM ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j,j;j,j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device_node *node`` device to be reset by the controller ``int index`` index of the reset controller **Description** When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs. Calling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno. This is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h](h)}(h**Parameters**h]jH)}(hj-h]h Parameters}(hhhj -hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj-ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hj-ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hj&-h]hstruct device_node *node}(hhhj(-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$-ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hj -ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjA-hj?-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;-hM hj<-ubah}(h]h ]h"]h$]h&]uh1jhj -ubeh}(h]h ]h"]h$]h&]uh1jhj;-hM hj-ubj)}(h,``int index`` index of the reset controller h](j)}(h ``int index``h]j)}(hj_-h]h int index}(hhhja-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]-ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjY-ubj)}(hhh]h)}(hindex of the reset controllerh]hindex of the reset controller}(hjz-hjx-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt-hM hju-ubah}(h]h ]h"]h$]h&]uh1jhjY-ubeh}(h]h ]h"]h$]h&]uh1jhjt-hM hj-ubeh}(h]h ]h"]h$]h&]uh1jhj-ubh)}(h**Description**h]jH)}(hj-h]h Description}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj-ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj-ubh)}(hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.h]hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj-ubh)}(hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.h]hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj-ubh)}(hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h]hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-devm_reset_control_get_exclusive (C function)"c.devm_reset_control_get_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(h\struct reset_control * devm_reset_control_get_exclusive (struct device *dev, const char *id)h]j)}(hZstruct reset_control *devm_reset_control_get_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM%ubj)}(h h]h }(hhhj .hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj .hM%ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}j devm_reset_control_get_exclusivesb"c.devm_reset_control_get_exclusiveasbuh1hhj-hhhj .hM%ubj)}(h h]h }(hhhj=.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj .hM%ubj)}(hjh]h*}(hhhjK.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj .hM%ubj)}(h devm_reset_control_get_exclusiveh]j)}(hj:.h]h devm_reset_control_get_exclusive}(hhhj\.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX.ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj-hhhj .hM%ubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjw.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs.ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs.ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j8."c.devm_reset_control_get_exclusiveasbuh1hhjs.ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs.ubj)}(hjh]h*}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs.ubj)}(hdevh]hdev}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjo.ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjn)}(hcharh]hchar}(hhhj/hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj.ubj)}(h h]h }(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hjh]h*}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hidh]hid}(hhhj+/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjo.ubeh}(h]h ]h"]h$]h&]hhuh1jhj-hhhj .hM%ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj-hhhj .hM%ubah}(h]j-ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM/hj-hhubj)}(hhh]h)}(h.resource managed reset_control_get_exclusive()h]h.resource managed reset_control_get_exclusive()}(hjX/hjV/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM$hjS/hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj .hM%ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jn/j;jn/j<uh1jhhhjhNhNubj>)}(hXV**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hjx/h]h Parameters}(hhhjz/hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjv/ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM(hjr/ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj/h]hstruct device *dev}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM&hj/ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj/hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM&hj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hM&hj/ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj/h]hconst char *id}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM'hj/ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj/hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM'hj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hM'hj/ubeh}(h]h ]h"]h$]h&]uh1jhjr/ubh)}(h**Description**h]jH)}(hj 0h]h Description}(hhhj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj 0ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM)hjr/ubh)}(hManaged reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj#0hj!0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM)hjr/ubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hj20hj00hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM-hjr/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j2devm_reset_control_bulk_get_exclusive (C function)'c.devm_reset_control_bulk_get_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(htint devm_reset_control_bulk_get_exclusive (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hsint devm_reset_control_bulk_get_exclusive(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhj_0hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj[0hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM8ubj)}(h h]h }(hhhjn0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[0hhhjm0hM8ubj)}(h%devm_reset_control_bulk_get_exclusiveh]j)}(h%devm_reset_control_bulk_get_exclusiveh]h%devm_reset_control_bulk_get_exclusive}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|0ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj[0hhhjm0hM8ubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj0sb'c.devm_reset_control_bulk_get_exclusiveasbuh1hhj0ubj)}(h h]h }(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hdevh]hdev}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj1hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj 1ubj)}(h h]h }(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 1ubj)}(h num_rstcsh]h num_rstcs}(hhhj*1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjC1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?1ubj)}(h h]h }(hhhjP1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?1ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhja1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjc1modnameN classnameNjj)}j]j0'c.devm_reset_control_bulk_get_exclusiveasbuh1hhj?1ubj)}(h h]h }(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?1ubj)}(hjh]h*}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?1ubj)}(hrstcsh]hrstcs}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubeh}(h]h ]h"]h$]h&]hhuh1jhj[0hhhjm0hM8ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjW0hhhjm0hM8ubah}(h]jR0ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMChjT0hhubj)}(hhh]h)}(h3resource managed reset_control_bulk_get_exclusive()h]h3resource managed reset_control_bulk_get_exclusive()}(hj1hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM7hj1hhubah}(h]h ]h"]h$]h&]uh1jhjT0hhhjm0hM8ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j1j;j1j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hj1h]h Parameters}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj1ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM;hj1ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj2h]hstruct device *dev}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM9hj2ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj!2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM9hj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hM9hj1ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hj?2h]h int num_rstcs}(hhhjA2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM:hj92ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjZ2hjX2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT2hM:hjU2ubah}(h]h ]h"]h$]h&]uh1jhj92ubeh}(h]h ]h"]h$]h&]uh1jhjT2hM:hj1ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjx2h]h%struct reset_control_bulk_data *rstcs}(hhhjz2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM;hjr2ubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM;hj2ubah}(h]h ]h"]h$]h&]uh1jhjr2ubeh}(h]h ]h"]h$]h&]uh1jhj2hM;hj1ubeh}(h]h ]h"]h$]h&]uh1jhj1ubh)}(h**Description**h]jH)}(hj2h]h Description}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj2ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM=hj1ubh)}(hManaged reset_control_bulk_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM=hj1ubh)}(h)}(hXh**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive_released() for more information.h](h)}(h**Parameters**h]jH)}(hj4h]h Parameters}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj4ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMOhj|4ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj4h]hstruct device *dev}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMMhj4ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj4hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMMhj4ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj4h]hconst char *id}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMNhj4ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj4hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMNhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMNhj4ubeh}(h]h ]h"]h$]h&]uh1jhj|4ubh)}(h**Description**h]jH)}(hj5h]h Description}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj5ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMPhj|4ubh)}(hManaged reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj-5hj+5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMPhj|4ubh)}(h@See reset_control_get_exclusive_released() for more information.h]h@See reset_control_get_exclusive_released() for more information.}(hj<5hj:5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMThj|4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j;devm_reset_control_bulk_get_exclusive_released (C function)0c.devm_reset_control_bulk_get_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(h}int devm_reset_control_bulk_get_exclusive_released (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(h|int devm_reset_control_bulk_get_exclusive_released(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhji5hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhje5hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM_ubj)}(h h]h }(hhhjx5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje5hhhjw5hM_ubj)}(h.devm_reset_control_bulk_get_exclusive_releasedh]j)}(h.devm_reset_control_bulk_get_exclusive_releasedh]h.devm_reset_control_bulk_get_exclusive_released}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]hhuh1jhje5hhhjw5hM_ubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj5sb0c.devm_reset_control_bulk_get_exclusive_releasedasbuh1hhj5ubj)}(h h]h }(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hdevh]hdev}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj5ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj6hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj6ubj)}(h h]h }(hhhj&6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h num_rstcsh]h num_rstcs}(hhhj46hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj5ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjM6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI6ubj)}(h h]h }(hhhjZ6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI6ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjk6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjm6modnameN classnameNjj)}j]j50c.devm_reset_control_bulk_get_exclusive_releasedasbuh1hhjI6ubj)}(h h]h }(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI6ubj)}(hjh]h*}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI6ubj)}(hrstcsh]hrstcs}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj5ubeh}(h]h ]h"]h$]h&]hhuh1jhje5hhhjw5hM_ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hja5hhhjw5hM_ubah}(h]j\5ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMjhj^5hhubj)}(hhh]h)}(h)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_exclusive_released() for more information.h](h)}(h**Parameters**h]jH)}(hj6h]h Parameters}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj6ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMbhj6ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj7h]hstruct device *dev}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM`hj 7ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj+7hj)7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%7hM`hj&7ubah}(h]h ]h"]h$]h&]uh1jhj 7ubeh}(h]h ]h"]h$]h&]uh1jhj%7hM`hj7ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjI7h]h int num_rstcs}(hhhjK7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG7ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMahjC7ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjd7hjb7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^7hMahj_7ubah}(h]h ]h"]h$]h&]uh1jhjC7ubeh}(h]h ]h"]h$]h&]uh1jhj^7hMahj7ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hj7h]h%struct reset_control_bulk_data *rstcs}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMbhj|7ubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMbhj7ubah}(h]h ]h"]h$]h&]uh1jhj|7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMbhj7ubeh}(h]h ]h"]h$]h&]uh1jhj6ubh)}(h**Description**h]jH)}(hj7h]h Description}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj7ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMdhj6ubh)}(hManaged reset_control_bulk_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMdhj6ubh)}(hESee reset_control_bulk_get_exclusive_released() for more information.h]hESee reset_control_bulk_get_exclusive_released() for more information.}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j?devm_reset_control_get_optional_exclusive_released (C function)4c.devm_reset_control_get_optional_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hnstruct reset_control * devm_reset_control_get_optional_exclusive_released (struct device *dev, const char *id)h]j)}(hlstruct reset_control *devm_reset_control_get_optional_exclusive_released(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMsubj)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8hhhj8hMsubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj08hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj28modnameN classnameNjj)}j]j)}j2devm_reset_control_get_optional_exclusive_releasedsb4c.devm_reset_control_get_optional_exclusive_releasedasbuh1hhj 8hhhj8hMsubj)}(h h]h }(hhhjQ8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8hhhj8hMsubj)}(hjh]h*}(hhhj_8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8hhhj8hMsubj)}(h2devm_reset_control_get_optional_exclusive_releasedh]j)}(hjN8h]h2devm_reset_control_get_optional_exclusive_released}(hhhjp8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl8ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj 8hhhj8hMsubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]jL84c.devm_reset_control_get_optional_exclusive_releasedasbuh1hhj8ubj)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hjh]h*}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hdevh]hdev}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj8ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(h h]h }(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubjn)}(hcharh]hchar}(hhhj9hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj8ubj)}(h h]h }(hhhj$9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hjh]h*}(hhhj29hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hidh]hid}(hhhj?9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj8ubeh}(h]h ]h"]h$]h&]hhuh1jhj 8hhhj8hMsubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj 8hhhj8hMsubah}(h]j8ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM}hj8hhubj)}(hhh]h)}(h@resource managed reset_control_get_optional_exclusive_released()h]h@resource managed reset_control_get_optional_exclusive_released()}(hjl9hjj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMrhjg9hhubah}(h]h ]h"]h$]h&]uh1jhj8hhhj8hMsubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j9j;j9j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed-and-optional variant of reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive_released() for more information.h](h)}(h**Parameters**h]jH)}(hj9h]h Parameters}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj9ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMvhj9ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj9h]hstruct device *dev}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMthj9ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMthj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMthj9ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj9h]hconst char *id}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMuhj9ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMuhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMuhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9ubh)}(h**Description**h]jH)}(hj:h]h Description}(hhhj!:hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj:ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwhj9ubh)}(hManaged-and-optional variant of reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged-and-optional variant of reset_control_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj7:hj5:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwhj9ubh)}(h@See reset_control_get_exclusive_released() for more information.h]h@See reset_control_get_exclusive_released() for more information.}(hjF:hjD:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM{hj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jDdevm_reset_control_bulk_get_optional_exclusive_released (C function)9c.devm_reset_control_bulk_get_optional_exclusive_releasedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hint devm_reset_control_bulk_get_optional_exclusive_released (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hint devm_reset_control_bulk_get_optional_exclusive_released(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjs:hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjo:hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo:hhhj:hMubj)}(h7devm_reset_control_bulk_get_optional_exclusive_releasedh]j)}(h7devm_reset_control_bulk_get_optional_exclusive_releasedh]h7devm_reset_control_bulk_get_optional_exclusive_released}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjo:hhhj:hMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jj:sb9c.devm_reset_control_bulk_get_optional_exclusive_releasedasbuh1hhj:ubj)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hjh]h*}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hdevh]hdev}(hhhj ;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj";hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj;ubj)}(h h]h }(hhhj0;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(h num_rstcsh]h num_rstcs}(hhhj>;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjW;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS;ubj)}(h h]h }(hhhjd;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS;ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhju;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjw;modnameN classnameNjj)}j]j:9c.devm_reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjS;ubj)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS;ubj)}(hjh]h*}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS;ubj)}(hrstcsh]hrstcs}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS;ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:ubeh}(h]h ]h"]h$]h&]hhuh1jhjo:hhhj:hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjk:hhhj:hMubah}(h]jf:ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjh:hhubj)}(hhh]h)}(hEresource managed reset_control_bulk_optional_get_exclusive_released()h]hEresource managed reset_control_bulk_optional_get_exclusive_released()}(hj;hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;hhubah}(h]h ]h"]h$]h&]uh1jhjh:hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j;j;j;j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_optional_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_optional_get_exclusive_released() for more information.h](h)}(h**Parameters**h]jH)}(hj;h]h Parameters}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj;ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj<h]hstruct device *dev}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj<ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj5<hj3<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/<hMhj0<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj/<hMhj<ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjS<h]h int num_rstcs}(hhhjU<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ<ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjM<ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjn<hjl<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh<hMhji<ubah}(h]h ]h"]h$]h&]uh1jhjM<ubeh}(h]h ]h"]h$]h&]uh1jhjh<hMhj<ubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hj<h]h%struct reset_control_bulk_data *rstcs}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj<ubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj<ubeh}(h]h ]h"]h$]h&]uh1jhj;ubh)}(h**Description**h]jH)}(hj<h]h Description}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj<ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;ubh)}(hManaged reset_control_bulk_optional_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_optional_get_exclusive_released(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;ubh)}(hNSee reset_control_bulk_optional_get_exclusive_released() for more information.h]hNSee reset_control_bulk_optional_get_exclusive_released() for more information.}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*devm_reset_control_get_shared (C function)c.devm_reset_control_get_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hYstruct reset_control * devm_reset_control_get_shared (struct device *dev, const char *id)h]j)}(hWstruct reset_control *devm_reset_control_get_shared(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj)=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj(=hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj:=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<=modnameN classnameNjj)}j]j)}jdevm_reset_control_get_sharedsbc.devm_reset_control_get_sharedasbuh1hhj=hhhj(=hMubj)}(h h]h }(hhhj[=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj(=hMubj)}(hjh]h*}(hhhji=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj(=hMubj)}(hdevm_reset_control_get_sharedh]j)}(hjX=h]hdevm_reset_control_get_shared}(hhhjz=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv=ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj=hhhj(=hMubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(h h]h }(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jV=c.devm_reset_control_get_sharedasbuh1hhj=ubj)}(h h]h }(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hjh]h*}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hdevh]hdev}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjn)}(hcharh]hchar}(hhhj >hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj>ubj)}(h h]h }(hhhj.>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hhhj<>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hidh]hid}(hhhjI>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubeh}(h]h ]h"]h$]h&]hhuh1jhj=hhhj(=hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj=hhhj(=hMubah}(h]j=ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj=hhubj)}(hhh]h)}(h+resource managed reset_control_get_shared()h]h+resource managed reset_control_get_shared()}(hjv>hjt>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjq>hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj(=hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j>j;j>j<uh1jhhhjhNhNubj>)}(hXO**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.h](h)}(h**Parameters**h]jH)}(hj>h]h Parameters}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj>ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj>h]hstruct device *dev}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj>hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhj>ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj>h]hconst char *id}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj ?hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>ubh)}(h**Description**h]jH)}(hj)?h]h Description}(hhhj+?hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj'?ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubh)}(hManaged reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.h]hManaged reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.}(hjA?hj??hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/devm_reset_control_bulk_get_shared (C function)$c.devm_reset_control_bulk_get_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hqint devm_reset_control_bulk_get_shared (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hpint devm_reset_control_bulk_get_shared(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjn?hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjj?hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj}?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj?hhhj|?hMubj)}(h"devm_reset_control_bulk_get_sharedh]j)}(h"devm_reset_control_bulk_get_sharedh]h"devm_reset_control_bulk_get_shared}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjj?hhhj|?hMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jj?sb$c.devm_reset_control_bulk_get_sharedasbuh1hhj?ubj)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hjh]h*}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hdevh]hdev}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj@hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj@ubj)}(h h]h }(hhhj+@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h num_rstcsh]h num_rstcs}(hhhj9@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjR@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubj)}(h h]h }(hhhj_@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjp@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjr@modnameN classnameNjj)}j]j?$c.devm_reset_control_bulk_get_sharedasbuh1hhjN@ubj)}(h h]h }(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubj)}(hjh]h*}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubj)}(hrstcsh]hrstcs}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?ubeh}(h]h ]h"]h$]h&]hhuh1jhjj?hhhj|?hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjf?hhhj|?hMubah}(h]ja?ah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjc?hhubj)}(hhh]h)}(h0resource managed reset_control_bulk_get_shared()h]h0resource managed reset_control_bulk_get_shared()}(hj@hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj@hhubah}(h]h ]h"]h$]h&]uh1jhjc?hhhj|?hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j@j;j@j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_shared() for more information.h](h)}(h**Parameters**h]jH)}(hj@h]h Parameters}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj@ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj@ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjAh]hstruct device *dev}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj0Ahj.AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*AhMhj+Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj*AhMhj Aubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjNAh]h int num_rstcs}(hhhjPAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLAubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHAubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjiAhjgAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcAhMhjdAubah}(h]h ]h"]h$]h&]uh1jhjHAubeh}(h]h ]h"]h$]h&]uh1jhjcAhMhj Aubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjAh]h%struct reset_control_bulk_data *rstcs}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhj Aubeh}(h]h ]h"]h$]h&]uh1jhj@ubh)}(h**Description**h]jH)}(hjAh]h Description}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjAubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj@ubh)}(hManaged reset_control_bulk_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj@ubh)}(h9See reset_control_bulk_get_shared() for more information.h]h9See reset_control_bulk_get_shared() for more information.}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6devm_reset_control_get_optional_exclusive (C function)+c.devm_reset_control_get_optional_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(hestruct reset_control * devm_reset_control_get_optional_exclusive (struct device *dev, const char *id)h]j)}(hcstruct reset_control *devm_reset_control_get_optional_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj$BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhj#BhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj5BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Bubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7BmodnameN classnameNjj)}j]j)}j)devm_reset_control_get_optional_exclusivesb+c.devm_reset_control_get_optional_exclusiveasbuh1hhjBhhhj#BhMubj)}(h h]h }(hhhjVBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhj#BhMubj)}(hjh]h*}(hhhjdBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhj#BhMubj)}(h)devm_reset_control_get_optional_exclusiveh]j)}(hjSBh]h)devm_reset_control_get_optional_exclusive}(hhhjuBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqBubah}(h]h ](jjeh"]h$]h&]hhuh1jhjBhhhj#BhMubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]jQB+c.devm_reset_control_get_optional_exclusiveasbuh1hhjBubj)}(h h]h }(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hjh]h*}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hdevh]hdev}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjBubj)}(hconst char *idh](j)}(hjSh]hconst}(hhhjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hhhj ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubjn)}(hcharh]hchar}(hhhjChhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjBubj)}(h h]h }(hhhj)ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hjh]h*}(hhhj7ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hidh]hid}(hhhjDChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjBubeh}(h]h ]h"]h$]h&]hhuh1jhjBhhhj#BhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjBhhhj#BhMubah}(h]j Bah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj Bhhubj)}(hhh]h)}(h7resource managed reset_control_get_optional_exclusive()h]h7resource managed reset_control_get_optional_exclusive()}(hjqChjoChhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjlChhubah}(h]h ]h"]h$]h&]uh1jhj Bhhhj#BhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jCj;jCj<uh1jhhhjhNhNubj>)}(hXh**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_optional_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hjCh]h Parameters}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjCubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjCh]hstruct device *dev}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjChjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjCh]hconst char *id}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjDhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(h**Description**h]jH)}(hj$Dh]h Description}(hhhj&DhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj"Dubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubh)}(hManaged reset_control_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_optional_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hjFh]h Parameters}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjEubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjFh]hstruct device *dev}(hhhj!FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj:Fhj8FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4FhMhj5Fubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhj4FhMhjFubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjXFh]h int num_rstcs}(hhhjZFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVFubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjRFubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjsFhjqFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmFhMhjnFubah}(h]h ]h"]h$]h&]uh1jhjRFubeh}(h]h ]h"]h$]h&]uh1jhjmFhMhjFubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjFh]h%struct reset_control_bulk_data *rstcs}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjFhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjFubeh}(h]h ]h"]h$]h&]uh1jhjEubh)}(h**Description**h]jH)}(hjFh]h Description}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjFubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubh)}(hManaged reset_control_bulk_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hjFhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubh)}(hESee reset_control_bulk_get_optional_exclusive() for more information.h]hESee reset_control_bulk_get_optional_exclusive() for more information.}(hjFhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j3devm_reset_control_get_optional_shared (C function)(c.devm_reset_control_get_optional_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hbstruct reset_control * devm_reset_control_get_optional_shared (struct device *dev, const char *id)h]j)}(h`struct reset_control *devm_reset_control_get_optional_shared(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hhhj GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhj.GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhj-GhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj?GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)}(hXb**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_optional_shared() for more information.h](h)}(h**Parameters**h]jH)}(hjHh]h Parameters}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjHubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjHh]hstruct device *dev}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjHhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjHh]hconst char *id}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjIhj IhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhj Iubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjHubeh}(h]h ]h"]h$]h&]uh1jhjHubh)}(h**Description**h]jH)}(hj.Ih]h Description}(hhhj0IhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj,Iubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubh)}(hManaged reset_control_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hjFIhjDIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubh)}(h=See reset_control_get_optional_shared() for more information.h]h=See reset_control_get_optional_shared() for more information.}(hjUIhjSIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j8devm_reset_control_bulk_get_optional_shared (C function)-c.devm_reset_control_bulk_get_optional_sharedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hzint devm_reset_control_bulk_get_optional_shared (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hyint devm_reset_control_bulk_get_optional_shared(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jn)}(hinth]hint}(hhhjIhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj~IhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~IhhhjIhMubj)}(h+devm_reset_control_bulk_get_optional_sharedh]j)}(h+devm_reset_control_bulk_get_optional_sharedh]h+devm_reset_control_bulk_get_optional_shared}(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ](jjeh"]h$]h&]hhuh1jhj~IhhhjIhMubj)}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(h h]h }(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjIsb-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjIubj)}(h h]h }(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(hjh]h*}(hhhj JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(hdevh]hdev}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(h int num_rstcsh](jn)}(hinth]hint}(hhhj1JhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj-Jubj)}(h h]h }(hhhj?JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Jubj)}(h num_rstcsh]h num_rstcs}(hhhjMJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Jubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubj)}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hhhjfJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbJubj)}(h h]h }(hhhjsJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbJubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jI-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjbJubj)}(h h]h }(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbJubj)}(hjh]h*}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbJubj)}(hrstcsh]hrstcs}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbJubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjIubeh}(h]h ]h"]h$]h&]hhuh1jhj~IhhhjIhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjzIhhhjIhMubah}(h]juIah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjwIhhubj)}(hhh]h)}(h9resource managed reset_control_bulk_get_optional_shared()h]h9resource managed reset_control_bulk_get_optional_shared()}(hjJhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjJhhubah}(h]h ]h"]h$]h&]uh1jhjwIhhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jKj;jKj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_optional_shared() for more information.h](h)}(h**Parameters**h]jH)}(hj Kh]h Parameters}(hhhj KhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjKubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj)Kh]hstruct device *dev}(hhhj+KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Kubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj#Kubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjDKhjBKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>KhMhj?Kubah}(h]h ]h"]h$]h&]uh1jhj#Kubeh}(h]h ]h"]h$]h&]uh1jhj>KhMhj Kubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjbKh]h int num_rstcs}(hhhjdKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Kubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj\Kubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj}Khj{KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwKhMhjxKubah}(h]h ]h"]h$]h&]uh1jhj\Kubeh}(h]h ]h"]h$]h&]uh1jhjwKhMhj Kubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjKh]h%struct reset_control_bulk_data *rstcs}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj Kubeh}(h]h ]h"]h$]h&]uh1jhjKubh)}(h**Description**h]jH)}(hjKh]h Description}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjKubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubh)}(hManaged reset_control_bulk_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_bulk_get_optional_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubh)}(hBSee reset_control_bulk_get_optional_shared() for more information.h]hBSee reset_control_bulk_get_optional_shared() for more information.}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6devm_reset_control_get_exclusive_by_index (C function)+c.devm_reset_control_get_exclusive_by_indexhNtauh1jhjhhhNhNubj)}(hhh](j)}(h`struct reset_control * devm_reset_control_get_exclusive_by_index (struct device *dev, int index)h]j)}(h^struct reset_control *devm_reset_control_get_exclusive_by_index(struct device *dev, int index)h](j)}(hjh]hstruct}(hhhj*LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&LhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM ubj)}(h h]h }(hhhj8LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&Lhhhj7LhM ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjILhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKLmodnameN classnameNjj)}j]j)}j)devm_reset_control_get_exclusive_by_indexsb+c.devm_reset_control_get_exclusive_by_indexasbuh1hhj&Lhhhj7LhM ubj)}(h h]h }(hhhjjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&Lhhhj7LhM ubj)}(hjh]h*}(hhhjxLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&Lhhhj7LhM ubj)}(h)devm_reset_control_get_exclusive_by_indexh]j)}(hjgLh]h)devm_reset_control_get_exclusive_by_index}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ](jjeh"]h$]h&]hhuh1jhj&Lhhhj7LhM ubj)}(h(struct device *dev, int index)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jeL+c.devm_reset_control_get_exclusive_by_indexasbuh1hhjLubj)}(h h]h }(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]h*}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hdevh]hdev}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjLubj)}(h int indexh](jn)}(hinth]hint}(hhhjMhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjMubj)}(h h]h }(hhhj"MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj)}(hindexh]hindex}(hhhj0MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjLubeh}(h]h ]h"]h$]h&]hhuh1jhj&Lhhhj7LhM ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj"Lhhhj7LhM ubah}(h]jLah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjLhhubj)}(hhh]h)}(h.resource managed reset_control_get_exclusive()h]h.resource managed reset_control_get_exclusive()}(hj]Mhj[MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjXMhhubah}(h]h ]h"]h$]h&]uh1jhjLhhhj7LhM ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jsMj;jsMj<uh1jhhhjhNhNubj>)}(hX_**Parameters** ``struct device *dev`` device to be reset by the controller ``int index`` index of the reset controller **Description** Managed reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive() for more information.h](h)}(h**Parameters**h]jH)}(hj}Mh]h Parameters}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj{Mubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjwMubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjMh]hstruct device *dev}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjMubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhM hjMubj)}(h,``int index`` index of the reset controller h](j)}(h ``int index``h]j)}(hjMh]h int index}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjMubj)}(hhh]h)}(hindex of the reset controllerh]hindex of the reset controller}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhM hjMubeh}(h]h ]h"]h$]h&]uh1jhjwMubh)}(h**Description**h]jH)}(hjNh]h Description}(hhhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjwMubh)}(hManaged reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj(Nhj&NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjwMubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hj7Nhj5NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjwMubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j3devm_reset_control_get_shared_by_index (C function)(c.devm_reset_control_get_shared_by_indexhNtauh1jhjhhhNhNubj)}(hhh](j)}(h]struct reset_control * devm_reset_control_get_shared_by_index (struct device *dev, int index)h]j)}(h[struct reset_control *devm_reset_control_get_shared_by_index(struct device *dev, int index)h](j)}(hjh]hstruct}(hhhjdNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`NhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hhhjrNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`NhhhjqNhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}j&devm_reset_control_get_shared_by_indexsb(c.devm_reset_control_get_shared_by_indexasbuh1hhj`NhhhjqNhMubj)}(h h]h }(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`NhhhjqNhMubj)}(hjh]h*}(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`NhhhjqNhMubj)}(h&devm_reset_control_get_shared_by_indexh]j)}(hjNh]h&devm_reset_control_get_shared_by_index}(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`NhhhjqNhMubj)}(h(struct device *dev, int index)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]jN(c.devm_reset_control_get_shared_by_indexasbuh1hhjNubj)}(h h]h }(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hjh]h*}(hhhj(OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hdevh]hdev}(hhhj5OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubj)}(h int indexh](jn)}(hinth]hint}(hhhjNOhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjJOubj)}(h h]h }(hhhj\OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJOubj)}(hindexh]hindex}(hhhjjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubeh}(h]h ]h"]h$]h&]hhuh1jhj`NhhhjqNhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj\NhhhjqNhMubah}(h]jWNah ](jjeh"]h$]h&]juh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM#hjYNhhubj)}(hhh]h)}(h)resource managed reset_control_get_sharedh]h)resource managed reset_control_get_shared}(hjOhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjOhhubah}(h]h ]h"]h$]h&]uh1jhjYNhhhjqNhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jOj;jOj<uh1jhhhjhNhNubj>)}(hXX**Parameters** ``struct device *dev`` device to be reset by the controller ``int index`` index of the reset controller **Description** Managed reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.h](h)}(h**Parameters**h]jH)}(hjOh]h Parameters}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjOubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjOubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjOh]hstruct device *dev}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjOubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjOhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMhjOubj)}(h,``int index`` index of the reset controller h](j)}(h ``int index``h]j)}(hjPh]h int index}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj Pubj)}(hhh]h)}(hindex of the reset controllerh]hindex of the reset controller}(hj*Phj(PhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$PhMhj%Pubah}(h]h ]h"]h$]h&]uh1jhj Pubeh}(h]h ]h"]h$]h&]uh1jhj$PhMhjOubeh}(h]h ]h"]h$]h&]uh1jhjOubh)}(h**Description**h]jH)}(hjJPh]h Description}(hhhjLPhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjHPubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjOubh)}(hManaged reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.h]hManaged reset_control_get_shared(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_shared() for more information.}(hjbPhj`PhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j reset_control_reset (C function)c.reset_control_resethNtauh1jhjhhhNhNubj)}(hhh](j)}(h4int reset_control_reset (struct reset_control *rstc)h]j)}(h3int reset_control_reset(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhjPhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjPhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMVubj)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhMVubj)}(hreset_control_reseth]j)}(hreset_control_reseth]hreset_control_reset}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ](jjeh"]h$]h&]hhuh1jhjPhhhjPhMVubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjPsbc.reset_control_resetasbuh1hhjPubj)}(h h]h }(hhhj QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hjh]h*}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hrstch]hrstc}(hhhj%QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjPubah}(h]h ]h"]h$]h&]hhuh1jhjPhhhjPhMVubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjPhhhjPhMVubah}(h]jPah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMahjPhhubj)}(hhh]h)}(hreset the controlled deviceh]hreset the controlled device}(hjRQhjPQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMUhjMQhhubah}(h]h ]h"]h$]h&]uh1jhjPhhhjPhMVubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jhQj;jhQj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct reset_control *rstc`` reset controller **Description** On a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance: for all but the first caller this is a no-op. Consumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset has been used. If rstc is NULL it is an optional reset and the function will just return 0.h](h)}(h**Parameters**h]jH)}(hjrQh]h Parameters}(hhhjtQhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjpQubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMYhjlQubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hjQh]hstruct reset_control *rstc}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMVhjQubj)}(hhh]h)}(hreset controllerh]hreset controller}(hjQhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMVhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhMVhjQubah}(h]h ]h"]h$]h&]uh1jhjlQubh)}(h**Description**h]jH)}(hjQh]h Description}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjQubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMXhjlQubh)}(hXOn a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance: for all but the first caller this is a no-op. Consumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset has been used.h]hXOn a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance: for all but the first caller this is a no-op. Consumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset has been used.}(hjQhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMXhjlQubh)}(hLIf rstc is NULL it is an optional reset and the function will just return 0.h]hLIf rstc is NULL it is an optional reset and the function will just return 0.}(hjQhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM^hjlQubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j reset_control_rearm (C function)c.reset_control_rearmhNtauh1jhjhhhNhNubj)}(hhh](j)}(h4int reset_control_rearm (struct reset_control *rstc)h]j)}(h3int reset_control_rearm(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhj RhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjRhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhj/RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRhhhj.RhMubj)}(hreset_control_rearmh]j)}(hreset_control_rearmh]hreset_control_rearm}(hhhjARhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=Rubah}(h]h ](jjeh"]h$]h&]hhuh1jhjRhhhj.RhMubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhj]RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYRubj)}(h h]h }(hhhjjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYRubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj{RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}RmodnameN classnameNjj)}j]j)}jjCRsbc.reset_control_rearmasbuh1hhjYRubj)}(h h]h }(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYRubj)}(hjh]h*}(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYRubj)}(hrstch]hrstc}(hhhjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYRubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjURubah}(h]h ]h"]h$]h&]hhuh1jhjRhhhj.RhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjRhhhj.RhMubah}(h]jRah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRhhubj)}(hhh]h)}(h+allow shared reset line to be re-triggered"h]h-allow shared reset line to be re-triggered”}(hjRhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRhhubah}(h]h ]h"]h$]h&]uh1jhjRhhhj.RhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jRj;jRj<uh1jhhhjhNhNubj>)}(hX)**Parameters** ``struct reset_control *rstc`` reset controller **Description** On a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance, except if this call is used. Calls to this function must be balanced with calls to reset_control_reset, a warning is thrown in case triggered_count ever dips below 0. Consumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset or reset_control_rearm have been used. If rstc is NULL the function will just return 0.h](h)}(h**Parameters**h]jH)}(hjSh]h Parameters}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjSubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hj"Sh]hstruct reset_control *rstc}(hhhj$ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Subah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjSubj)}(hhh]h)}(hreset controllerh]hreset controller}(hj=Shj;ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ShMhj8Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj7ShMhjSubah}(h]h ]h"]h$]h&]uh1jhjRubh)}(h**Description**h]jH)}(hj]Sh]h Description}(hhhj_ShhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj[Subah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubh)}(hOn a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance, except if this call is used.h]hOn a shared reset line the actual reset pulse is only triggered once for the lifetime of the reset_control instance, except if this call is used.}(hjuShjsShhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubh)}(hCalls to this function must be balanced with calls to reset_control_reset, a warning is thrown in case triggered_count ever dips below 0.h]hCalls to this function must be balanced with calls to reset_control_reset, a warning is thrown in case triggered_count ever dips below 0.}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubh)}(hConsumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset or reset_control_rearm have been used.h]hConsumers must not use reset_control_(de)assert on shared reset lines when reset_control_reset or reset_control_rearm have been used.}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubh)}(h0If rstc is NULL the function will just return 0.h]h0If rstc is NULL the function will just return 0.}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!reset_control_assert (C function)c.reset_control_asserthNtauh1jhjhhhNhNubj)}(hhh](j)}(h5int reset_control_assert (struct reset_control *rstc)h]j)}(h4int reset_control_assert(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhjShhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjShhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShMubj)}(hreset_control_asserth]j)}(hreset_control_asserth]hreset_control_assert}(hhhjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]hhuh1jhjShhhjShMubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhj ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(h h]h }(hhhjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj*ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'Tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,TmodnameN classnameNjj)}j]j)}jjSsbc.reset_control_assertasbuh1hhjTubj)}(h h]h }(hhhjJThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hjh]h*}(hhhjXThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hrstch]hrstc}(hhhjeThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjTubah}(h]h ]h"]h$]h&]hhuh1jhjShhhjShMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjShhhjShMubah}(h]jSah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjShhubj)}(hhh]h)}(hasserts the reset lineh]hasserts the reset line}(hjThjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjThhubah}(h]h ]h"]h$]h&]uh1jhjShhhjShMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jTj;jTj<uh1jhhhjhNhNubj>)}(hXe**Parameters** ``struct reset_control *rstc`` reset controller **Description** Calling this on an exclusive reset controller guarantees that the reset will be asserted. When called on a shared reset controller the line may still be deasserted, as long as other users keep it so. For shared reset controls a driver cannot expect the hw's registers and internal state to be reset, but must be prepared for this to happen. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used. If rstc is NULL it is an optional reset and the function will just return 0.h](h)}(h**Parameters**h]jH)}(hjTh]h Parameters}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjTubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hjTh]hstruct reset_control *rstc}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubj)}(hhh]h)}(hreset controllerh]hreset controller}(hjThjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjTubh)}(h**Description**h]jH)}(hj Uh]h Description}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj Uubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubh)}(hCalling this on an exclusive reset controller guarantees that the reset will be asserted. When called on a shared reset controller the line may still be deasserted, as long as other users keep it so.h]hCalling this on an exclusive reset controller guarantees that the reset will be asserted. When called on a shared reset controller the line may still be deasserted, as long as other users keep it so.}(hj$Uhj"UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubh)}(hFor shared reset controls a driver cannot expect the hw's registers and internal state to be reset, but must be prepared for this to happen. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used.h]hFor shared reset controls a driver cannot expect the hw’s registers and internal state to be reset, but must be prepared for this to happen. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used.}(hj3Uhj1UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubh)}(hLIf rstc is NULL it is an optional reset and the function will just return 0.h]hLIf rstc is NULL it is an optional reset and the function will just return 0.}(hjBUhj@UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#reset_control_deassert (C function)c.reset_control_deasserthNtauh1jhjhhhNhNubj)}(hhh](j)}(h7int reset_control_deassert (struct reset_control *rstc)h]j)}(h6int reset_control_deassert(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhjoUhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjkUhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM#ubj)}(h h]h }(hhhj~UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkUhhhj}UhM#ubj)}(hreset_control_deasserth]j)}(hreset_control_deasserth]hreset_control_deassert}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjkUhhhj}UhM#ubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjUsbc.reset_control_deassertasbuh1hhjUubj)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hrstch]hrstc}(hhhjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjUubah}(h]h ]h"]h$]h&]hhuh1jhjkUhhhj}UhM#ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjgUhhhj}UhM#ubah}(h]jbUah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM,hjdUhhubj)}(hhh]h)}(hdeasserts the reset lineh]hdeasserts the reset line}(hj2Vhj0VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM"hj-Vhhubah}(h]h ]h"]h$]h&]uh1jhjdUhhhj}UhM#ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jHVj;jHVj<uh1jhhhjhNhNubj>)}(hXV**Parameters** ``struct reset_control *rstc`` reset controller **Description** After calling this function, the reset is guaranteed to be deasserted. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used. If rstc is NULL it is an optional reset and the function will just return 0.h](h)}(h**Parameters**h]jH)}(hjRVh]h Parameters}(hhhjTVhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjPVubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM&hjLVubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hjqVh]hstruct reset_control *rstc}(hhhjsVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoVubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM#hjkVubj)}(hhh]h)}(hreset controllerh]hreset controller}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhM#hjVubah}(h]h ]h"]h$]h&]uh1jhjkVubeh}(h]h ]h"]h$]h&]uh1jhjVhM#hjhVubah}(h]h ]h"]h$]h&]uh1jhjLVubh)}(h**Description**h]jH)}(hjVh]h Description}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjVubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM%hjLVubh)}(hAfter calling this function, the reset is guaranteed to be deasserted. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used.h]hAfter calling this function, the reset is guaranteed to be deasserted. Consumers must not use reset_control_reset on shared reset lines when reset_control_(de)assert has been used.}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM%hjLVubh)}(hLIf rstc is NULL it is an optional reset and the function will just return 0.h]hLIf rstc is NULL it is an optional reset and the function will just return 0.}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM)hjLVubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!reset_control_status (C function)c.reset_control_statushNtauh1jhjhhhNhNubj)}(hhh](j)}(h5int reset_control_status (struct reset_control *rstc)h]j)}(h4int reset_control_status(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhjWhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjVhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMsubj)}(h h]h }(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjWhMsubj)}(hreset_control_statush]j)}(hreset_control_statush]hreset_control_status}(hhhj!WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhjWhMsubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhj=WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Wubj)}(h h]h }(hhhjJWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Wubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj[WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]WmodnameN classnameNjj)}j]j)}jj#Wsbc.reset_control_statusasbuh1hhj9Wubj)}(h h]h }(hhhj{WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Wubj)}(hjh]h*}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Wubj)}(hrstch]hrstc}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Wubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj5Wubah}(h]h ]h"]h$]h&]hhuh1jhjVhhhjWhMsubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjVhhhjWhMsubah}(h]jVah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMwhjVhhubj)}(hhh]h)}(hreturns a negative errno if not supported, a positive value if the reset line is asserted, or zero if the reset line is not asserted or if the desc is NULL (optional reset).h]hreturns a negative errno if not supported, a positive value if the reset line is asserted, or zero if the reset line is not asserted or if the desc is NULL (optional reset).}(hjWhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMrhjWhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjWhMsubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jWj;jWj<uh1jhhhjhNhNubj>)}(hA**Parameters** ``struct reset_control *rstc`` reset controllerh](h)}(h**Parameters**h]jH)}(hjWh]h Parameters}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjWubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMvhjWubj)}(hhh]j)}(h/``struct reset_control *rstc`` reset controllerh](j)}(h``struct reset_control *rstc``h]j)}(hjXh]hstruct reset_control *rstc}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMxhjWubj)}(hhh]h)}(hreset controllerh]hreset controller}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMuhjXubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjXhMxhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"reset_control_acquire (C function)c.reset_control_acquirehNtauh1jhjhhhNhNubj)}(hhh](j)}(h6int reset_control_acquire (struct reset_control *rstc)h]j)}(h5int reset_control_acquire(struct reset_control *rstc)h](jn)}(hinth]hint}(hhhj\XhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjXXhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhjkXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXXhhhjjXhMubj)}(hreset_control_acquireh]j)}(hreset_control_acquireh]hreset_control_acquire}(hhhj}XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyXubah}(h]h ](jjeh"]h$]h&]hhuh1jhjXXhhhjjXhMubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(h h]h }(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjXsbc.reset_control_acquireasbuh1hhjXubj)}(h h]h }(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hjh]h*}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hrstch]hrstc}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjXubah}(h]h ]h"]h$]h&]hhuh1jhjXXhhhjjXhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjTXhhhjjXhMubah}(h]jOXah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjQXhhubj)}(hhh]h)}(h*acquires a reset control for exclusive useh]h*acquires a reset control for exclusive use}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjYhhubah}(h]h ]h"]h$]h&]uh1jhjQXhhhjjXhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j5Yj;j5Yj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct reset_control *rstc`` reset control **Description** This is used to explicitly acquire a reset control for exclusive use. Note that exclusive resets are requested as acquired by default. In order for a second consumer to be able to control the reset, the first consumer has to release it first. Typically the easiest way to achieve this is to call the reset_control_get_exclusive_released() to obtain an instance of the reset control. Such reset controls are not acquired by default. Consumers implementing shared access to an exclusive reset need to follow a specific protocol in order to work together. Before consumers can change a reset they must acquire exclusive access using reset_control_acquire(). After they are done operating the reset, they must release exclusive access with a call to reset_control_release(). Consumers are not granted exclusive access to the reset as long as another consumer hasn't released a reset. See also: reset_control_release()h](h)}(h**Parameters**h]jH)}(hj?Yh]h Parameters}(hhhjAYhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj=Yubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj9Yubj)}(hhh]j)}(h-``struct reset_control *rstc`` reset control h](j)}(h``struct reset_control *rstc``h]j)}(hj^Yh]hstruct reset_control *rstc}(hhhj`YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\Yubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjXYubj)}(hhh]h)}(h reset controlh]h reset control}(hjyYhjwYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsYhMhjtYubah}(h]h ]h"]h$]h&]uh1jhjXYubeh}(h]h ]h"]h$]h&]uh1jhjsYhMhjUYubah}(h]h ]h"]h$]h&]uh1jhj9Yubh)}(h**Description**h]jH)}(hjYh]h Description}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjYubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj9Yubh)}(hXThis is used to explicitly acquire a reset control for exclusive use. Note that exclusive resets are requested as acquired by default. In order for a second consumer to be able to control the reset, the first consumer has to release it first. Typically the easiest way to achieve this is to call the reset_control_get_exclusive_released() to obtain an instance of the reset control. Such reset controls are not acquired by default.h]hXThis is used to explicitly acquire a reset control for exclusive use. Note that exclusive resets are requested as acquired by default. In order for a second consumer to be able to control the reset, the first consumer has to release it first. Typically the easiest way to achieve this is to call the reset_control_get_exclusive_released() to obtain an instance of the reset control. Such reset controls are not acquired by default.}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj9Yubh)}(hXConsumers implementing shared access to an exclusive reset need to follow a specific protocol in order to work together. Before consumers can change a reset they must acquire exclusive access using reset_control_acquire(). After they are done operating the reset, they must release exclusive access with a call to reset_control_release(). Consumers are not granted exclusive access to the reset as long as another consumer hasn't released a reset.h]hXConsumers implementing shared access to an exclusive reset need to follow a specific protocol in order to work together. Before consumers can change a reset they must acquire exclusive access using reset_control_acquire(). After they are done operating the reset, they must release exclusive access with a call to reset_control_release(). Consumers are not granted exclusive access to the reset as long as another consumer hasn’t released a reset.}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj9Yubh)}(h!See also: reset_control_release()h]h!See also: reset_control_release()}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj9Yubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"reset_control_release (C function)c.reset_control_releasehNtauh1jhjhhhNhNubj)}(hhh](j)}(h7void reset_control_release (struct reset_control *rstc)h]j)}(h6void reset_control_release(struct reset_control *rstc)h](jn)}(hvoidh]hvoid}(hhhjYhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjYhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhj ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhj ZhMubj)}(hreset_control_releaseh]j)}(hreset_control_releaseh]hreset_control_release}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ](jjeh"]h$]h&]hhuh1jhjYhhhj ZhMubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhj9ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Zubj)}(h h]h }(hhhjFZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Zubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjWZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYZmodnameN classnameNjj)}j]j)}jjZsbc.reset_control_releaseasbuh1hhj5Zubj)}(h h]h }(hhhjwZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Zubj)}(hjh]h*}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Zubj)}(hrstch]hrstc}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Zubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1Zubah}(h]h ]h"]h$]h&]hhuh1jhjYhhhj ZhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjYhhhj ZhMubah}(h]jYah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjYhhubj)}(hhh]h)}(h,releases exclusive access to a reset controlh]h,releases exclusive access to a reset control}(hjZhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jhjYhhhj ZhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jZj;jZj<uh1jhhhjhNhNubj>)}(hX;**Parameters** ``struct reset_control *rstc`` reset control **Description** Releases exclusive access right to a reset control previously obtained by a call to reset_control_acquire(). Until a consumer calls this function, no other consumers will be granted exclusive access. See also: reset_control_acquire()h](h)}(h**Parameters**h]jH)}(hjZh]h Parameters}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjZubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZubj)}(hhh]j)}(h-``struct reset_control *rstc`` reset control h](j)}(h``struct reset_control *rstc``h]j)}(hjZh]hstruct reset_control *rstc}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZubj)}(hhh]h)}(h reset controlh]h reset control}(hj[hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj[hMhjZubah}(h]h ]h"]h$]h&]uh1jhjZubh)}(h**Description**h]jH)}(hj9[h]h Description}(hhhj;[hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj7[ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZubh)}(hReleases exclusive access right to a reset control previously obtained by a call to reset_control_acquire(). Until a consumer calls this function, no other consumers will be granted exclusive access.h]hReleases exclusive access right to a reset control previously obtained by a call to reset_control_acquire(). Until a consumer calls this function, no other consumers will be granted exclusive access.}(hjQ[hjO[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZubh)}(h!See also: reset_control_acquire()h]h!See also: reset_control_acquire()}(hj`[hj^[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_control_put (C function)c.reset_control_puthNtauh1jhjhhhNhNubj)}(hhh](j)}(h3void reset_control_put (struct reset_control *rstc)h]j)}(h2void reset_control_put(struct reset_control *rstc)h](jn)}(hvoidh]hvoid}(hhhj[hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj[hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj[hMubj)}(hreset_control_puth]j)}(hreset_control_puth]hreset_control_put}(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj[hhhj[hMubj)}(h(struct reset_control *rstc)h]j)}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(h h]h }(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj[sbc.reset_control_putasbuh1hhj[ubj)}(h h]h }(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(hjh]h*}(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(hrstch]hrstc}(hhhj#\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj[ubah}(h]h ]h"]h$]h&]hhuh1jhj[hhhj[hMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj[hhhj[hMubah}(h]j[ah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj[hhubj)}(hhh]h)}(hfree the reset controllerh]hfree the reset controller}(hjP\hjN\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjK\hhubah}(h]h ]h"]h$]h&]uh1jhj[hhhj[hMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jf\j;jf\j<uh1jhhhjhNhNubj>)}(hA**Parameters** ``struct reset_control *rstc`` reset controllerh](h)}(h**Parameters**h]jH)}(hjp\h]h Parameters}(hhhjr\hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjn\ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjj\ubj)}(hhh]j)}(h/``struct reset_control *rstc`` reset controllerh](j)}(h``struct reset_control *rstc``h]j)}(hj\h]hstruct reset_control *rstc}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj\ubj)}(hhh]h)}(hreset controllerh]hreset controller}(hj\hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMhj\ubah}(h]h ]h"]h$]h&]uh1jhjj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'of_reset_control_get_count (C function)c.of_reset_control_get_counthNtauh1jhjhhhNhNubj)}(hhh](j)}(h9int of_reset_control_get_count (struct device_node *node)h]j)}(h8int of_reset_control_get_count(struct device_node *node)h](jn)}(hinth]hint}(hhhj\hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj\hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM;ubj)}(h h]h }(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\hhhj\hM;ubj)}(hof_reset_control_get_counth]j)}(hof_reset_control_get_counth]hof_reset_control_get_count}(hhhj ]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj\hhhj\hM;ubj)}(h(struct device_node *node)h]j)}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hhhj&]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubj)}(h h]h }(hhhj3]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhjD]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF]modnameN classnameNjj)}j]j)}jj ]sbc.of_reset_control_get_countasbuh1hhj"]ubj)}(h h]h }(hhhjd]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubj)}(hjh]h*}(hhhjr]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubj)}(hnodeh]hnode}(hhhj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj]ubah}(h]h ]h"]h$]h&]hhuh1jhj\hhhj\hM;ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj\hhhj\hM;ubah}(h]j\ah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMAhj\hhubj)}(hhh]h)}(h.Count number of resets available with a deviceh]h.Count number of resets available with a device}(hj]hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM:hj]hhubah}(h]h ]h"]h$]h&]uh1jhj\hhhj\hM;ubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j]j;j]j<uh1jhhhjhNhNubj>)}(h**Parameters** ``struct device_node *node`` device node that contains 'resets'. **Description** Returns positive reset count on success, or error number on failure and on count being zero.h](h)}(h**Parameters**h]jH)}(hj]h]h Parameters}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj]ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM>hj]ubj)}(hhh]j)}(hA``struct device_node *node`` device node that contains 'resets'. h](j)}(h``struct device_node *node``h]j)}(hj]h]hstruct device_node *node}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM<hj]ubj)}(hhh]h)}(h#device node that contains 'resets'.h]h'device node that contains ‘resets’.}(hj^hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hM<hj^ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj^hM<hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]jH)}(hj&^h]h Description}(hhhj(^hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj$^ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM>hj]ubh)}(h\Returns positive reset count on success, or error number on failure and on count being zero.h]h\Returns positive reset count on success, or error number on failure and on count being zero.}(hj>^hj<^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM>hj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'of_reset_control_array_get (C function)c.of_reset_control_array_gethNtauh1jhjhhhNhNubj)}(hhh](j)}(hustruct reset_control * of_reset_control_array_get (struct device_node *np, bool shared, bool optional, bool acquired)h]j)}(hsstruct reset_control *of_reset_control_array_get(struct device_node *np, bool shared, bool optional, bool acquired)h](j)}(hjh]hstruct}(hhhjk^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg^hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMQubj)}(h h]h }(hhhjy^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg^hhhjx^hMQubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jof_reset_control_array_getsbc.of_reset_control_array_getasbuh1hhjg^hhhjx^hMQubj)}(h h]h }(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg^hhhjx^hMQubj)}(hjh]h*}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg^hhhjx^hMQubj)}(hof_reset_control_array_geth]j)}(hj^h]hof_reset_control_array_get}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjg^hhhjx^hMQubj)}(hC(struct device_node *np, bool shared, bool optional, bool acquired)h](j)}(hstruct device_node *nph](j)}(hjh]hstruct}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(h device_nodeh]h device_node}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j^c.of_reset_control_array_getasbuh1hhj^ubj)}(h h]h }(hhhj!_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hjh]h*}(hhhj/_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hnph]hnp}(hhhj<_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(h bool sharedh](jn)}(hboolh]hbool}(hhhjU_hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjQ_ubj)}(h h]h }(hhhjc_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ_ubj)}(hsharedh]hshared}(hhhjq_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(h bool optionalh](jn)}(hjW_h]hbool}(hhhj_hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj_ubj)}(h h]h }(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(hoptionalh]hoptional}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(h bool acquiredh](jn)}(hjW_h]hbool}(hhhj_hhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj_ubj)}(h h]h }(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(hacquiredh]hacquired}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubeh}(h]h ]h"]h$]h&]hhuh1jhjg^hhhjx^hMQubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjc^hhhjx^hMQubah}(h]j^^ah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chM[hj`^hhubj)}(hhh]h)}(h/Get a list of reset controls using device node.h]h/Get a list of reset controls using device node.}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMPhj`hhubah}(h]h ]h"]h$]h&]uh1jhj`^hhhjx^hMQubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j`j;j`j<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device_node *np`` device node for the device that requests the reset controls array ``bool shared`` whether reset controls are shared or not ``bool optional`` whether it is optional to get the reset controls ``bool acquired`` only one reset control may be acquired for a given controller and ID **Description** Returns pointer to allocated reset_control on success or error on failureh](h)}(h**Parameters**h]jH)}(hj&`h]h Parameters}(hhhj(`hhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj$`ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMThj `ubj)}(hhh](j)}(h]``struct device_node *np`` device node for the device that requests the reset controls array h](j)}(h``struct device_node *np``h]j)}(hjE`h]hstruct device_node *np}(hhhjG`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC`ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMShj?`ubj)}(hhh]h)}(hAdevice node for the device that requests the reset controls arrayh]hAdevice node for the device that requests the reset controls array}(hj``hj^`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZ`hMShj[`ubah}(h]h ]h"]h$]h&]uh1jhj?`ubeh}(h]h ]h"]h$]h&]uh1jhjZ`hMShj<`ubj)}(h9``bool shared`` whether reset controls are shared or not h](j)}(h``bool shared``h]j)}(hj~`h]h bool shared}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|`ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMThjx`ubj)}(hhh]h)}(h(whether reset controls are shared or noth]h(whether reset controls are shared or not}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMThj`ubah}(h]h ]h"]h$]h&]uh1jhjx`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMThj<`ubj)}(hC``bool optional`` whether it is optional to get the reset controls h](j)}(h``bool optional``h]j)}(hj`h]h bool optional}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMUhj`ubj)}(hhh]h)}(h0whether it is optional to get the reset controlsh]h0whether it is optional to get the reset controls}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMUhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMUhj<`ubj)}(hW``bool acquired`` only one reset control may be acquired for a given controller and ID h](j)}(h``bool acquired``h]j)}(hj`h]h bool acquired}(hhhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMWhj`ubj)}(hhh]h)}(hDonly one reset control may be acquired for a given controller and IDh]hDonly one reset control may be acquired for a given controller and ID}(hj ahj ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMVhjaubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhjahMWhj<`ubeh}(h]h ]h"]h$]h&]uh1jhj `ubh)}(h**Description**h]jH)}(hj,ah]h Description}(hhhj.ahhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj*aubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMYhj `ubh)}(hIReturns pointer to allocated reset_control on success or error on failureh]hIReturns pointer to allocated reset_control on success or error on failure}(hjDahjBahhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMYhj `ubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)devm_reset_control_array_get (C function)c.devm_reset_control_array_gethNtauh1jhjhhhNhNubj)}(hhh](j)}(hdstruct reset_control * devm_reset_control_array_get (struct device *dev, bool shared, bool optional)h]j)}(hbstruct reset_control *devm_reset_control_array_get(struct device *dev, bool shared, bool optional)h](j)}(hjh]hstruct}(hhhjqahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmahhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmahhhj~ahMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jdevm_reset_control_array_getsbc.devm_reset_control_array_getasbuh1hhjmahhhj~ahMubj)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmahhhj~ahMubj)}(hjh]h*}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmahhhj~ahMubj)}(hdevm_reset_control_array_geth]j)}(hjah]hdevm_reset_control_array_get}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]hhuh1jhjmahhhj~ahMubj)}(h0(struct device *dev, bool shared, bool optional)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj bmodnameN classnameNjj)}j]jac.devm_reset_control_array_getasbuh1hhjaubj)}(h h]h }(hhhj'bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hjh]h*}(hhhj5bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hdevh]hdev}(hhhjBbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjaubj)}(h bool sharedh](jn)}(hjW_h]hbool}(hhhj[bhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjWbubj)}(h h]h }(hhhjhbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWbubj)}(hsharedh]hshared}(hhhjvbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjaubj)}(h bool optionalh](jn)}(hjW_h]hbool}(hhhjbhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjbubj)}(h h]h }(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hoptionalh]hoptional}(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjaubeh}(h]h ]h"]h$]h&]hhuh1jhjmahhhj~ahMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjiahhhj~ahMubah}(h]jdaah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjfahhubj)}(hhh]h)}(h(Resource managed reset control array geth]h(Resource managed reset control array get}(hjbhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbhhubah}(h]h ]h"]h$]h&]uh1jhjfahhhj~ahMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jbj;jbj<uh1jhhhjhNhNubj>)}(hX**Parameters** ``struct device *dev`` device that requests the list of reset controls ``bool shared`` whether reset controls are shared or not ``bool optional`` whether it is optional to get the reset controls **Description** The reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order. Returns pointer to allocated reset_control on success or error on failureh](h)}(h**Parameters**h]jH)}(hjbh]h Parameters}(hhhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjbubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbubj)}(hhh](j)}(hG``struct device *dev`` device that requests the list of reset controls h](j)}(h``struct device *dev``h]j)}(hjch]hstruct device *dev}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjcubj)}(hhh]h)}(h/device that requests the list of reset controlsh]h/device that requests the list of reset controls}(hj1chj/chhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+chMhj,cubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj+chMhj cubj)}(h9``bool shared`` whether reset controls are shared or not h](j)}(h``bool shared``h]j)}(hjOch]h bool shared}(hhhjQchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMcubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjIcubj)}(hhh]h)}(h(whether reset controls are shared or noth]h(whether reset controls are shared or not}(hjjchjhchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdchMhjecubah}(h]h ]h"]h$]h&]uh1jhjIcubeh}(h]h ]h"]h$]h&]uh1jhjdchMhj cubj)}(hC``bool optional`` whether it is optional to get the reset controls h](j)}(h``bool optional``h]j)}(hjch]h bool optional}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjcubj)}(hhh]h)}(h0whether it is optional to get the reset controlsh]h0whether it is optional to get the reset controls}(hjchjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchMhj cubeh}(h]h ]h"]h$]h&]uh1jhjbubh)}(h**Description**h]jH)}(hjch]h Description}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjcubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbubh)}(hThe reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order.h]hThe reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order.}(hjchjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbubh)}(hIReturns pointer to allocated reset_control on success or error on failureh]hIReturns pointer to allocated reset_control on success or error on failure}(hjchjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$reset_control_get_count (C function)c.reset_control_get_counthNtauh1jhjhhhNhNubj)}(hhh](j)}(h0int reset_control_get_count (struct device *dev)h]j)}(h/int reset_control_get_count(struct device *dev)h](jn)}(hinth]hint}(hhhjdhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjdhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hhhj&dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhhj%dhMubj)}(hreset_control_get_counth]j)}(hreset_control_get_counth]hreset_control_get_count}(hhhj8dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4dubah}(h]h ](jjeh"]h$]h&]hhuh1jhjdhhhj%dhMubj)}(h(struct device *dev)h]j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjTdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPdubj)}(h h]h }(hhhjadhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPdubh)}(hhh]j)}(hdeviceh]hdevice}(hhhjrdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjodubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtdmodnameN classnameNjj)}j]j)}jj:dsbc.reset_control_get_countasbuh1hhjPdubj)}(h h]h }(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPdubj)}(hjh]h*}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPdubj)}(hdevh]hdev}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPdubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjLdubah}(h]h ]h"]h$]h&]hhuh1jhjdhhhj%dhMubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjdhhhj%dhMubah}(h]j dah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj dhhubj)}(hhh]h)}(h.Count number of resets available with a deviceh]h.Count number of resets available with a device}(hjdhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jhj dhhhj%dhMubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jdj;jdj<uh1jhhhjhNhNubj>)}(h**Parameters** ``struct device *dev`` device for which to return the number of resets **Description** Returns positive reset count on success, or error number on failure and on count being zero.h](h)}(h**Parameters**h]jH)}(hjdh]h Parameters}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjdubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjdubj)}(hhh]j)}(hG``struct device *dev`` device for which to return the number of resets h](j)}(h``struct device *dev``h]j)}(hjeh]hstruct device *dev}(hhhjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjeubj)}(hhh]h)}(h/device for which to return the number of resetsh]h/device for which to return the number of resets}(hj4ehj2ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.ehMhj/eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj.ehMhjeubah}(h]h ]h"]h$]h&]uh1jhjdubh)}(h**Description**h]jH)}(hjTeh]h Description}(hhhjVehhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjReubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjdubh)}(h\Returns positive reset count on success, or error number on failure and on count being zero.h]h\Returns positive reset count on success, or error number on failure and on count being zero.}(hjlehjjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjdubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjhhhNhNubeh}(h]reset-consumer-apiah ]h"]reset consumer apiah$]h&]uh1hhj6hhhhhKubh)}(hhh](h)}(hReset controller driver APIh]hReset controller driver API}(hjehjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehhhhhKubh)}(hReset controller drivers are supposed to implement the necessary functions in a static constant structure :c:type:`reset_control_ops`, allocate and fill out a struct :c:type:`reset_controller_dev`, and register it using devm_reset_controller_register().h](hjReset controller drivers are supposed to implement the necessary functions in a static constant structure }(hjReset controller drivers are supposed to implement the necessary functions in a static constant structure hjehhhNhNubh)}(h:c:type:`reset_control_ops`h]j)}(hjeh]hreset_control_ops}(hhhjehhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarn c:parent_keyj)}j]sbjreset_control_opsuh1hhhhKhjeubh!, allocate and fill out a struct }(h!, allocate and fill out a struct hjehhhNhNubh)}(h:c:type:`reset_controller_dev`h]j)}(hjeh]hreset_controller_dev}(hhhjehhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjejejreset_controller_devuh1hhhhKhjeubh9, and register it using devm_reset_controller_register().}(h9, and register it using devm_reset_controller_register().hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjehhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_control_ops (C struct)c.reset_control_opshNtauh1jhjehhhNhNubj)}(hhh](j)}(hreset_control_opsh]j)}(hstruct reset_control_opsh](j)}(hjh]hstruct}(hhhj fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj fhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK ubj)}(h h]h }(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj fhhhjfhK ubj)}(hreset_control_opsh]j)}(hjfh]hreset_control_ops}(hhhj-fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)fubah}(h]h ](jjeh"]h$]h&]hhuh1jhj fhhhjfhK ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjfhhhjfhK ubah}(h]jfah ](jjeh"]h$]h&]juh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjfhhubj)}(hhh]h)}(h!reset controller driver callbacksh]h!reset controller driver callbacks}(hjRfhjPfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK hjMfhhubah}(h]h ]h"]h$]h&]uh1jhjfhhhjfhK ubeh}(h]h ](jstructeh"]h$]h&]j9jj:jhfj;jhfj<uh1jhhhjehNhNubj>)}(hX**Definition**:: struct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); }; **Members** ``reset`` for self-deasserting resets, does all necessary things to reset the device ``assert`` manually assert the reset line, if supported ``deassert`` manually deassert the reset line, if supported ``status`` return the status of the reset line, if supportedh](h)}(h**Definition**::h](jH)}(h**Definition**h]h Definition}(hhhjtfhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjpfubh:}(hj[hjpfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjlfubjd)}(hXBstruct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); };h]hXBstruct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); };}(hhhjfubah}(h]h ]h"]h$]h&]hhuh1jchb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjlfubh)}(h **Members**h]jH)}(hjfh]hMembers}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjfubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjlfubj)}(hhh](j)}(hU``reset`` for self-deasserting resets, does all necessary things to reset the device h](j)}(h ``reset``h]j)}(hjfh]hreset}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjfubj)}(hhh]h)}(hJfor self-deasserting resets, does all necessary things to reset the deviceh]hJfor self-deasserting resets, does all necessary things to reset the device}(hjfhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK hjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjfubj)}(h8``assert`` manually assert the reset line, if supported h](j)}(h ``assert``h]j)}(hjfh]hassert}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjfubj)}(hhh]h)}(h,manually assert the reset line, if supportedh]h,manually assert the reset line, if supported}(hjghjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ghKhj gubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhj ghKhjfubj)}(h<``deassert`` manually deassert the reset line, if supported h](j)}(h ``deassert``h]j)}(hj0gh]hdeassert}(hhhj2ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.gubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhj*gubj)}(hhh]h)}(h.manually deassert the reset line, if supportedh]h.manually deassert the reset line, if supported}(hjKghjIghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEghKhjFgubah}(h]h ]h"]h$]h&]uh1jhj*gubeh}(h]h ]h"]h$]h&]uh1jhjEghKhjfubj)}(h<``status`` return the status of the reset line, if supportedh](j)}(h ``status``h]j)}(hjigh]hstatus}(hhhjkghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjggubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjcgubj)}(hhh]h)}(h1return the status of the reset line, if supportedh]h1return the status of the reset line, if supported}(hjghjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjgubah}(h]h ]h"]h$]h&]uh1jhjcgubeh}(h]h ]h"]h$]h&]uh1jhj~ghKhjfubeh}(h]h ]h"]h$]h&]uh1jhjlfubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_control_lookup (C struct)c.reset_control_lookuphNtauh1jhjehhhNhNubj)}(hhh](j)}(hreset_control_lookuph]j)}(hstruct reset_control_lookuph](j)}(hjh]hstruct}(hhhjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKubj)}(h h]h }(hhhjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhhjghKubj)}(hreset_control_lookuph]j)}(hjgh]hreset_control_lookup}(hhhjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ](jjeh"]h$]h&]hhuh1jhjghhhjghKubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjghhhjghKubah}(h]jgah ](jjeh"]h$]h&]juh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjghhubj)}(hhh]h)}(h represents a single lookup entryh]h represents a single lookup entry}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjhhhubah}(h]h ]h"]h$]h&]uh1jhjghhhjghKubeh}(h]h ](jstructeh"]h$]h&]j9jj:jhj;jhj<uh1jhhhjehNhNubj>)}(hX **Definition**:: struct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; }; **Members** ``list`` internal list of all reset lookup entries ``provider`` name of the reset controller device controlling this reset line ``index`` ID of the reset controller in the reset controller device ``dev_id`` name of the device associated with this reset line ``con_id`` name of the reset line (can be NULL)h](h)}(h**Definition**::h](jH)}(h**Definition**h]h Definition}(hhhj*hhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj&hubh:}(hj[hj&hhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK"hj"hubjd)}(hstruct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; };h]hstruct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; };}(hhhjChubah}(h]h ]h"]h$]h&]hhuh1jchb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK$hj"hubh)}(h **Members**h]jH)}(hjThh]hMembers}(hhhjVhhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjRhubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK,hj"hubj)}(hhh](j)}(h3``list`` internal list of all reset lookup entries h](j)}(h``list``h]j)}(hjshh]hlist}(hhhjuhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqhubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK!hjmhubj)}(hhh]h)}(h)internal list of all reset lookup entriesh]h)internal list of all reset lookup entries}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhK!hjhubah}(h]h ]h"]h$]h&]uh1jhjmhubeh}(h]h ]h"]h$]h&]uh1jhjhhK!hjjhubj)}(hM``provider`` name of the reset controller device controlling this reset line h](j)}(h ``provider``h]j)}(hjhh]hprovider}(hhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK"hjhubj)}(hhh]h)}(h?name of the reset controller device controlling this reset lineh]h?name of the reset controller device controlling this reset line}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhK"hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhK"hjjhubj)}(hD``index`` ID of the reset controller in the reset controller device h](j)}(h ``index``h]j)}(hjhh]hindex}(hhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK#hjhubj)}(hhh]h)}(h9ID of the reset controller in the reset controller deviceh]h9ID of the reset controller in the reset controller device}(hjihjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhK#hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhK#hjjhubj)}(h>``dev_id`` name of the device associated with this reset line h](j)}(h ``dev_id``h]j)}(hjih]hdev_id}(hhhj ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK$hjiubj)}(hhh]h)}(h2name of the device associated with this reset lineh]h2name of the device associated with this reset line}(hj9ihj7ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3ihK$hj4iubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhj3ihK$hjjhubj)}(h/``con_id`` name of the reset line (can be NULL)h](j)}(h ``con_id``h]j)}(hjWih]hcon_id}(hhhjYihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUiubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK$hjQiubj)}(hhh]h)}(h$name of the reset line (can be NULL)h]h$name of the reset line (can be NULL)}(hjrihjpihhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK%hjmiubah}(h]h ]h"]h$]h&]uh1jhjQiubeh}(h]h ]h"]h$]h&]uh1jhjlihK$hjjhubeh}(h]h ]h"]h$]h&]uh1jhj"hubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_controller_dev (C struct)c.reset_controller_devhNtauh1jhjehhhNhNubj)}(hhh](j)}(hreset_controller_devh]j)}(hstruct reset_controller_devh](j)}(hjh]hstruct}(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK8ubj)}(h h]h }(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihK8ubj)}(hreset_controller_devh]j)}(hjih]hreset_controller_dev}(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ](jjeh"]h$]h&]hhuh1jhjihhhjihK8ubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjihhhjihK8ubah}(h]jiah ](jjeh"]h$]h&]juh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK+hjihhubj)}(hhh]h)}(hBreset controller entity that might provide multiple reset controlsh]hBreset controller entity that might provide multiple reset controls}(hjihjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK7hjihhubah}(h]h ]h"]h$]h&]uh1jhjihhhjihK8ubeh}(h]h ](jstructeh"]h$]h&]j9jj:j jj;j jj<uh1jhhhjehNhNubj>)}(hX6**Definition**:: struct reset_controller_dev { const struct reset_control_ops *ops; struct module *owner; struct list_head list; struct list_head reset_control_head; struct device *dev; struct device_node *of_node; const struct of_phandle_args *of_args; int of_reset_n_cells; int (*of_xlate)(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec); unsigned int nr_resets; }; **Members** ``ops`` a pointer to device specific struct reset_control_ops ``owner`` kernel module of the reset controller driver ``list`` internal list of reset controller devices ``reset_control_head`` head of internal list of requested reset controls ``dev`` corresponding driver model device struct ``of_node`` corresponding device tree node as phandle target ``of_args`` for reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be present ``of_reset_n_cells`` number of cells in reset line specifiers ``of_xlate`` translation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to :c:func:`of_reset_simple_xlate`. ``nr_resets`` number of reset controls in this reset controller deviceh](h)}(h**Definition**::h](jH)}(h**Definition**h]h Definition}(hhhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjjubh:}(hj[hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK;hjjubjd)}(hXstruct reset_controller_dev { const struct reset_control_ops *ops; struct module *owner; struct list_head list; struct list_head reset_control_head; struct device *dev; struct device_node *of_node; const struct of_phandle_args *of_args; int of_reset_n_cells; int (*of_xlate)(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec); unsigned int nr_resets; };h]hXstruct reset_controller_dev { const struct reset_control_ops *ops; struct module *owner; struct list_head list; struct list_head reset_control_head; struct device *dev; struct device_node *of_node; const struct of_phandle_args *of_args; int of_reset_n_cells; int (*of_xlate)(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec); unsigned int nr_resets; };}(hhhj1jubah}(h]h ]h"]h$]h&]hhuh1jchb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK=hjjubh)}(h **Members**h]jH)}(hjBjh]hMembers}(hhhjDjhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj@jubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKJhjjubj)}(hhh](j)}(h>``ops`` a pointer to device specific struct reset_control_ops h](j)}(h``ops``h]j)}(hjajh]hops}(hhhjcjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_jubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK:hj[jubj)}(hhh]h)}(h5a pointer to device specific struct reset_control_opsh]h5a pointer to device specific struct reset_control_ops}(hj|jhjzjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvjhK:hjwjubah}(h]h ]h"]h$]h&]uh1jhj[jubeh}(h]h ]h"]h$]h&]uh1jhjvjhK:hjXjubj)}(h7``owner`` kernel module of the reset controller driver h](j)}(h ``owner``h]j)}(hjjh]howner}(hhhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK;hjjubj)}(hhh]h)}(h,kernel module of the reset controller driverh]h,kernel module of the reset controller driver}(hjjhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhK;hjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhK;hjXjubj)}(h3``list`` internal list of reset controller devices h](j)}(h``list``h]j)}(hjjh]hlist}(hhhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhj?kubj)}(hhh]h)}(h(corresponding driver model device structh]h(corresponding driver model device struct}(hj`khj^khhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZkhK>hj[kubah}(h]h ]h"]h$]h&]uh1jhj?kubeh}(h]h ]h"]h$]h&]uh1jhjZkhK>hjXjubj)}(h=``of_node`` corresponding device tree node as phandle target h](j)}(h ``of_node``h]j)}(hj~kh]hof_node}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|kubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK?hjxkubj)}(hhh]h)}(h0corresponding device tree node as phandle targeth]h0corresponding device tree node as phandle target}(hjkhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhK?hjkubah}(h]h ]h"]h$]h&]uh1jhjxkubeh}(h]h ]h"]h$]h&]uh1jhjkhK?hjXjubj)}(h``of_args`` for reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be present h](j)}(h ``of_args``h]j)}(hjkh]hof_args}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKBhjkubj)}(hhh]h)}(hfor reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be presenth]hfor reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be present}(hjkhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK@hjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKBhjXjubj)}(h>``of_reset_n_cells`` number of cells in reset line specifiers h](j)}(h``of_reset_n_cells``h]j)}(hjkh]hof_reset_n_cells}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKChjkubj)}(hhh]h)}(h(number of cells in reset line specifiersh]h(number of cells in reset line specifiers}(hj lhj lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKChjlubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhKChjXjubj)}(h``of_xlate`` translation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to :c:func:`of_reset_simple_xlate`. h](j)}(h ``of_xlate``h]j)}(hj*lh]hof_xlate}(hhhj,lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(lubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKFhj$lubj)}(hhh]h)}(htranslation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to :c:func:`of_reset_simple_xlate`.h](htranslation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to }(htranslation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to hjClhhhNhNubh)}(h:c:func:`of_reset_simple_xlate`h]j)}(hjNlh]hof_reset_simple_xlate()}(hhhjPlhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1jhjLlubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjejejof_reset_simple_xlateuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKDhjClubh.}(hjhjClhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjklhKDhj@lubah}(h]h ]h"]h$]h&]uh1jhj$lubeh}(h]h ]h"]h$]h&]uh1jhj?lhKFhjXjubj)}(hF``nr_resets`` number of reset controls in this reset controller deviceh](j)}(h ``nr_resets``h]j)}(hjlh]h nr_resets}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKFhjlubj)}(hhh]h)}(h8number of reset controls in this reset controller deviceh]h8number of reset controls in this reset controller device}(hjlhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKGhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKFhjXjubeh}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"of_reset_simple_xlate (C function)c.of_reset_simple_xlatehNtauh1jhjehhhNhNubj)}(hhh](j)}(hhint of_reset_simple_xlate (struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h]j)}(hgint of_reset_simple_xlate(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h](jn)}(hinth]hint}(hhhjlhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjlhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKfubj)}(h h]h }(hhhjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhjlhKfubj)}(hof_reset_simple_xlateh]j)}(hof_reset_simple_xlateh]hof_reset_simple_xlate}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ](jjeh"]h$]h&]hhuh1jhjlhhhjlhKfubj)}(hN(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h](j)}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hhhj,mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hhhj=mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?mmodnameN classnameNjj)}j]j)}jjmsbc.of_reset_simple_xlateasbuh1hhjmubj)}(h h]h }(hhhj]mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hjh]h*}(hhhjkmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hrcdevh]hrcdev}(hhhjxmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubj)}(h(const struct of_phandle_args *reset_spech](j)}(hjSh]hconst}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hjh]hstruct}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubh)}(hhh]j)}(hof_phandle_argsh]hof_phandle_args}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jYmc.of_reset_simple_xlateasbuh1hhjmubj)}(h h]h }(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hjh]h*}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h reset_spech]h reset_spec}(hhhjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubeh}(h]h ]h"]h$]h&]hhuh1jhjlhhhjlhKfubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjlhhhjlhKfubah}(h]jlah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKnhjlhhubj)}(hhh]h)}(h-translate reset_spec to the reset line numberh]h-translate reset_spec to the reset line number}(hj0nhj.nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKehj+nhhubah}(h]h ]h"]h$]h&]uh1jhjlhhhjlhKfubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jFnj;jFnj<uh1jhhhjehNhNubj>)}(hX**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the reset controller device ``const struct of_phandle_args *reset_spec`` reset line specifier as found in the device tree **Description** This static translation function is used by default if of_xlate in :c:type:`reset_controller_dev` is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.h](h)}(h**Parameters**h]jH)}(hjPnh]h Parameters}(hhhjRnhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjNnubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihjJnubj)}(hhh](j)}(hP``struct reset_controller_dev *rcdev`` a pointer to the reset controller device h](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjonh]h"struct reset_controller_dev *rcdev}(hhhjqnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmnubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKfhjinubj)}(hhh]h)}(h(a pointer to the reset controller deviceh]h(a pointer to the reset controller device}(hjnhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhKfhjnubah}(h]h ]h"]h$]h&]uh1jhjinubeh}(h]h ]h"]h$]h&]uh1jhjnhKfhjfnubj)}(h^``const struct of_phandle_args *reset_spec`` reset line specifier as found in the device tree h](j)}(h,``const struct of_phandle_args *reset_spec``h]j)}(hjnh]h(const struct of_phandle_args *reset_spec}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKghjnubj)}(hhh]h)}(h0reset line specifier as found in the device treeh]h0reset line specifier as found in the device tree}(hjnhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhKghjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhKghjfnubeh}(h]h ]h"]h$]h&]uh1jhjJnubh)}(h**Description**h]jH)}(hjnh]h Description}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjnubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihjJnubh)}(hThis static translation function is used by default if of_xlate in :c:type:`reset_controller_dev` is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.h](hCThis static translation function is used by default if of_xlate in }(hCThis static translation function is used by default if of_xlate in hjnhhhNhNubh)}(h:c:type:`reset_controller_dev`h]j)}(hjoh]hreset_controller_dev}(hhhjohhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjejejreset_controller_devuh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihjnubh~ is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.}(h~ is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj!ohKihjJnubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&reset_controller_register (C function)c.reset_controller_registerhNtauh1jhjehhhNhNubj)}(hhh](j)}(hBint reset_controller_register (struct reset_controller_dev *rcdev)h]j)}(hAint reset_controller_register(struct reset_controller_dev *rcdev)h](jn)}(hinth]hint}(hhhjMohhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjIohhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKyubj)}(h h]h }(hhhj\ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIohhhj[ohKyubj)}(hreset_controller_registerh]j)}(hreset_controller_registerh]hreset_controller_register}(hhhjnohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjoubah}(h]h ](jjeh"]h$]h&]hhuh1jhjIohhhj[ohKyubj)}(h$(struct reset_controller_dev *rcdev)h]j)}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(h h]h }(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jjposbc.reset_controller_registerasbuh1hhjoubj)}(h h]h }(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hjh]h*}(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hrcdevh]hrcdev}(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubah}(h]h ]h"]h$]h&]hhuh1jhjIohhhj[ohKyubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjEohhhj[ohKyubah}(h]j@oah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK{hjBohhubj)}(hhh]h)}(h"register a reset controller deviceh]h"register a reset controller device}(hjphjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKxhj phhubah}(h]h ]h"]h$]h&]uh1jhjBohhhj[ohKyubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:j&pj;j&pj<uh1jhhhjehNhNubj>)}(hm**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller deviceh](h)}(h**Parameters**h]jH)}(hj0ph]h Parameters}(hhhj2phhhNhNubah}(h]h ]h"]h$]h&]uh1jGhj.pubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK|hj*pubj)}(hhh]j)}(h[``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller deviceh](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjOph]h"struct reset_controller_dev *rcdev}(hhhjQphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMpubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK~hjIpubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hjjphjhphhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKyhjepubah}(h]h ]h"]h$]h&]uh1jhjIpubeh}(h]h ]h"]h$]h&]uh1jhjdphK~hjFpubah}(h]h ]h"]h$]h&]uh1jhj*pubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_controller_unregister (C function)c.reset_controller_unregisterhNtauh1jhjehhhNhNubj)}(hhh](j)}(hEvoid reset_controller_unregister (struct reset_controller_dev *rcdev)h]j)}(hDvoid reset_controller_unregister(struct reset_controller_dev *rcdev)h](jn)}(hvoidh]hvoid}(hhhjphhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjphhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjphKubj)}(hreset_controller_unregisterh]j)}(hreset_controller_unregisterh]hreset_controller_unregister}(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ](jjeh"]h$]h&]hhuh1jhjphhhjphKubj)}(h$(struct reset_controller_dev *rcdev)h]j)}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjpsbc.reset_controller_unregisterasbuh1hhjpubj)}(h h]h }(hhhj$qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(hjh]h*}(hhhj2qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(hrcdevh]hrcdev}(hhhj?qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjpubah}(h]h ]h"]h$]h&]hhuh1jhjphhhjphKubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjphhhjphKubah}(h]jpah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjphhubj)}(hhh]h)}(h$unregister a reset controller deviceh]h$unregister a reset controller device}(hjlqhjjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjgqhhubah}(h]h ]h"]h$]h&]uh1jhjphhhjphKubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jqj;jqj<uh1jhhhjehNhNubj>)}(ha**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](h)}(h**Parameters**h]jH)}(hjqh]h Parameters}(hhhjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjqubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjqubj)}(hhh]j)}(hO``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjqh]h"struct reset_controller_dev *rcdev}(hhhjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjqubj)}(hhh]h)}(h(a pointer to the reset controller deviceh]h(a pointer to the reset controller device}(hjqhjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhKhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+devm_reset_controller_register (C function) c.devm_reset_controller_registerhNtauh1jhjehhhNhNubj)}(hhh](j)}(h[int devm_reset_controller_register (struct device *dev, struct reset_controller_dev *rcdev)h]j)}(hZint devm_reset_controller_register(struct device *dev, struct reset_controller_dev *rcdev)h](jn)}(hinth]hint}(hhhjrhhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjrhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrhhhjrhKubj)}(hdevm_reset_controller_registerh]j)}(hdevm_reset_controller_registerh]hdevm_reset_controller_register}(hhhj&rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"rubah}(h]h ](jjeh"]h$]h&]hhuh1jhjrhhhjrhKubj)}(h8(struct device *dev, struct reset_controller_dev *rcdev)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hhhjBrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>rubj)}(h h]h }(hhhjOrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>rubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj`rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbrmodnameN classnameNjj)}j]j)}jj(rsb c.devm_reset_controller_registerasbuh1hhj>rubj)}(h h]h }(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>rubj)}(hjh]h*}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>rubj)}(hdevh]hdev}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>rubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:rubj)}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(h h]h }(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j|r c.devm_reset_controller_registerasbuh1hhjrubj)}(h h]h }(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(hjh]h*}(hhhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(hrcdevh]hrcdev}(hhhj shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj:rubeh}(h]h ]h"]h$]h&]hhuh1jhjrhhhjrhKubeh}(h]h ]h"]h$]h&]hhj uh1jj j hjqhhhjrhKubah}(h]jqah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjqhhubj)}(hhh]h)}(h,resource managed reset_controller_register()h]h,resource managed reset_controller_register()}(hj8shj6shhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj3shhubah}(h]h ]h"]h$]h&]uh1jhjqhhhjrhKubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jNsj;jNsj<uh1jhhhjehNhNubj>)}(hX**Parameters** ``struct device *dev`` device that is registering this reset controller ``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller device **Description** Managed reset_controller_register(). For reset controllers registered by this function, reset_controller_unregister() is automatically called on driver detach. See reset_controller_register() for more information.h](h)}(h**Parameters**h]jH)}(hjXsh]h Parameters}(hhhjZshhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjVsubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjRsubj)}(hhh](j)}(hH``struct device *dev`` device that is registering this reset controller h](j)}(h``struct device *dev``h]j)}(hjwsh]hstruct device *dev}(hhhjyshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjusubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjqsubj)}(hhh]h)}(h0device that is registering this reset controllerh]h0device that is registering this reset controller}(hjshjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjqsubeh}(h]h ]h"]h$]h&]uh1jhjshKhjnsubj)}(h\``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller device h](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjsh]h"struct reset_controller_dev *rcdev}(hhhjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjsubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hjshjsh&hhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshKhjnsubeh}(h]h ]h"]h$]h&]uh1jhjRsubh)}(h**Description**h]jH)}(hjsh]h Description}(hhhjshhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjsubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjRsubh)}(hManaged reset_controller_register(). For reset controllers registered by this function, reset_controller_unregister() is automatically called on driver detach. See reset_controller_register() for more information.h]hManaged reset_controller_register(). For reset controllers registered by this function, reset_controller_unregister() is automatically called on driver detach. See reset_controller_register() for more information.}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjRsubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_controller_add_lookup (C function)c.reset_controller_add_lookuphNtauh1jhjehhhNhNubj)}(hhh](j)}(h`void reset_controller_add_lookup (struct reset_control_lookup *lookup, unsigned int num_entries)h]j)}(h_void reset_controller_add_lookup(struct reset_control_lookup *lookup, unsigned int num_entries)h](jn)}(hvoidh]hvoid}(hhhj0thhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhj,thhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hhhj?thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,thhhj>thKubj)}(hreset_controller_add_lookuph]j)}(hreset_controller_add_lookuph]hreset_controller_add_lookup}(hhhjQthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMtubah}(h]h ](jjeh"]h$]h&]hhuh1jhj,thhhj>thKubj)}(h?(struct reset_control_lookup *lookup, unsigned int num_entries)h](j)}(h#struct reset_control_lookup *lookuph](j)}(hjh]hstruct}(hhhjmthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjitubj)}(h h]h }(hhhjzthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjitubh)}(hhh]j)}(hreset_control_lookuph]hreset_control_lookup}(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjStsbc.reset_controller_add_lookupasbuh1hhjitubj)}(h h]h }(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjitubj)}(hjh]h*}(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjitubj)}(hlookuph]hlookup}(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjitubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjetubj)}(hunsigned int num_entriesh](jn)}(hunsignedh]hunsigned}(hhhjthhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjtubj)}(h h]h }(hhhjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubjn)}(hinth]hint}(hhhjthhhNhNubah}(h]h ]jzah"]h$]h&]uh1jmhjtubj)}(h h]h }(hhhj uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj)}(h num_entriesh]h num_entries}(hhhjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjetubeh}(h]h ]h"]h$]h&]hhuh1jhj,thhhj>thKubeh}(h]h ]h"]h$]h&]hhj uh1jj j hj(thhhj>thKubah}(h]j#tah ](jjeh"]h$]h&]juh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj%thhubj)}(hhh]h)}(h register a set of lookup entriesh]h register a set of lookup entries}(hjDuhjBuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj?uhhubah}(h]h ]h"]h$]h&]uh1jhj%thhhj>thKubeh}(h]h ](jfunctioneh"]h$]h&]j9jj:jZuj;jZuj<uh1jhhhjehNhNubj>)}(h**Parameters** ``struct reset_control_lookup *lookup`` array of reset lookup entries ``unsigned int num_entries`` number of entries in the lookup arrayh](h)}(h**Parameters**h]jH)}(hjduh]h Parameters}(hhhjfuhhhNhNubah}(h]h ]h"]h$]h&]uh1jGhjbuubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj^uubj)}(hhh](j)}(hF``struct reset_control_lookup *lookup`` array of reset lookup entries h](j)}(h'``struct reset_control_lookup *lookup``h]j)}(hjuh]h#struct reset_control_lookup *lookup}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj}uubj)}(hhh]h)}(harray of reset lookup entriesh]harray of reset lookup entries}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhKhjuubah}(h]h ]h"]h$]h&]uh1jhj}uubeh}(h]h ]h"]h$]h&]uh1jhjuhKhjzuubj)}(hB``unsigned int num_entries`` number of entries in the lookup arrayh](j)}(h``unsigned int num_entries``h]j)}(hjuh]hunsigned int num_entries}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjuubj)}(hhh]h)}(h%number of entries in the lookup arrayh]h%number of entries in the lookup array}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhKhjzuubeh}(h]h ]h"]h$]h&]uh1jhj^uubeh}(h]h ] kernelindentah"]h$]h&]uh1j=hjehhhNhNubeh}(h]reset-controller-driver-apiah ]h"]reset controller driver apiah$]h&]uh1hhj6hhhhhKubeh}(h] api-referenceah ]h"] api referenceah$]h&]uh1hhhhhhhhKubeh}(h]reset-controller-apiah ]h"]reset controller apiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj8verror_encodingUTF-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confapep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jvjvjjjjjjjjjjjjj@j=jgjdjjj3j0j+j(j vjvjejejvjuu nametypes}(jvNjNjNjNjNjNjNj@NjgNjNj3Nj+Nj vNjeNjvNuh}(jvhjhjjWjjjjWjjjjj=jjdjCjjjj0jj(jjvj6jejjjjJjOjjjh jm j j jcjhj jjjj$j)jjj.j3jjj8"j="j$j$j 'j'j|)j)j+j+j-j-jR0jW0j2j2j\5ja5j8j 8jf:jk:j=j=ja?jf?j BjBjkDjpDjGjGjuIjzIjLj"LjWNj\NjPjPjRjRjSjSjbUjgUjVjVjOXjTXjYjYj[j[j\j\j^^jc^jdajiaj djdjujejfjfjgjgjijijljlj@ojEojpjpjqjqj#tj(tu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.