sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget$/translations/zh_CN/driver-api/resetmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/zh_TW/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/it_IT/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ja_JP/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ko_KR/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/pt_BR/driver-api/resetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(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}hhsbah}(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}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(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 }(hhhhhNhNubh reference)}(h:`consumer driver interface <#consumer-driver-interface>`__h]hconsumer driver interface}(hhhhhNhNubah}(h]h ]h"]h$]h&]nameconsumer driver interfacerefuri#consumer-driver-interfaceuh1hhhubh (}(hhhhhNhNubh)}(h'`API reference <#reset-consumer-api>`__h]h API reference}(hjhhhNhNubah}(h]h ]h"]h$]h&]name API referencej #reset-consumer-apiuh1hhhubh^), 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}(hj%hhhNhNubah}(h]h ]h"]h$]h&]name!reset controller driver interfacej "#reset-controller-driver-interfaceuh1hhhubh (}hhsbh)}(h0`API reference <#reset-controller-driver-api>`__h]h API reference}(hj:hhhNhNubah}(h]h ]h"]h$]h&]name API referencej #reset-controller-driver-apiuh1hhhubh{), 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.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hGlossaryh]hGlossary}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKubh)}(hBThe reset controller API uses these terms with a specific meaning:h]hBThe reset controller API uses these terms with a specific meaning:}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubh)}(h Reset lineh]h Reset line}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubh block_quote)}(hjPhysical reset line carrying a reset signal from a reset controller hardware unit to a peripheral module. h]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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjchhubh)}(h Reset controlh]h Reset control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjchhubj)}(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]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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhhhK$hjchhubh)}(hReset controllerh]hReset controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjchhubj)}(h_A hardware module that provides a number of reset controls to control a number of reset lines. h]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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjubah}(h]h ]h"]h$]h&]uh1jhhhK.hjchhubh)}(hReset consumerh]hReset consumer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjchhubj)}(hWPeripheral module or external IC that is put into reset by the signal on a reset line. h]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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jhhhK3hjchhubeh}(h]glossaryah ]h"]glossaryah$]h&]uh1hhhhhhhhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hConsumer driver interfaceh]hConsumer driver interface}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hhhhhK7ubh)}(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=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hj,hhubh)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hj,hhubh)}(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.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChj,hhubh)}(hhh](h)}(hShared and exclusive resetsh]hShared and exclusive resets}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghhhhhKGubh)}(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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjghhubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjghhubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjghhubeh}(h]shared-and-exclusive-resetsah ]h"]shared and exclusive resetsah$]h&]uh1hhj,hhhhhKGubh)}(hhh](h)}(hAssertion and deassertionh]hAssertion and deassertion}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjhhubeh}(h]assertion-and-deassertionah ]h"]assertion and deassertionah$]h&]uh1hhj,hhhhhK\ubh)}(hhh](h)}(h Triggeringh]h Triggering}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjhhubeh}(h] triggeringah ]h"] triggeringah$]h&]uh1hhj,hhhhhKkubh)}(hhh](h)}(hQueryingh]hQuerying}(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 }(hj%hhhNhNubh)}(h/`reset control array <#reset-control-arrays>`__h]hreset control array}(hj-hhhNhNubah}(h]h ]h"]h$]h&]namereset control arrayj #reset-control-arraysuh1hhj%ubh handle as its input parameter.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]queryingah ]h"]queryingah$]h&]uh1hhj,hhhhhK}ubh)}(hhh](h)}(hOptional resetsh]hOptional resets}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhhhhhKubh)}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjPhhubeh}(h]optional-resetsah ]h"]optional resetsah$]h&]uh1hhj,hhhhhKubh)}(hhh](h)}(hReset control arraysh]hReset control arrays}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhhhhhKubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjwhhubeh}(h]reset-control-arraysah ]h"]reset control arraysah$]h&]uh1hhj,hhhhhKubeh}(h]consumer-driver-interfaceah ]h"]consumer driver interfaceah$]h&]uh1hhhhhhhhK7ubh)}(hhh](h)}(h!Reset controller driver interfaceh]h!Reset controller driver interface}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hInitializationh]hInitialization}(hjhhhNhNubah}(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 }(hjhhhNhNubh)}(h:c:type:`reset_controller_dev`h]hliteral)}(hjh]hreset_controller_dev}(hjhhhNhNubah}(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 }(hjhhhNhNubh)}(h:c:type:`reset_control_ops`h]j)}(hj h]hreset_control_ops}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjreset_control_opsuh1hhhhKhjubh.}(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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hhhhhKubh)}(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 }(hjQhhhNhNubh)}(h,`reset consumer API <#reset-consumer-api>`__h]hreset consumer API}(hjYhhhNhNubah}(h]h ]h"]h$]h&]namereset consumer APIj #reset-consumer-apiuh1hhjQubh and the }(hjQhhhNhNubh)}(h>`reset controller driver API <#reset-controller-driver-api>`__h]hreset controller driver API}(hjnhhhNhNubah}(h]h ]h"]h$]h&]namereset controller driver APIj #reset-controller-driver-apiuh1hhjQubh.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj@hhubh)}(hhh](h)}(hReset consumer APIh]hReset consumer API}(hjhhhNhNubah}(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().}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hreset_control_bulk_datah]h desc_sig_name)}(hjh]hreset_control_bulk_data}(hjhhhNhNubah}(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_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(h,Data used for bulk reset control operations.h]h,Data used for bulk reset control operations.}(hj$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 ](jstructeh"]h$]h&]domainjobjtypej<desctypej<noindex noindexentrynocontentsentryuh1jhhhjhNhNubh 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}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjLubh:}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjHubh 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; };}hjmsbah}(h]h ]h"]h$]h&]hhuh1jkhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjHubh)}(h **Members**h]jQ)}(hj~h]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj|ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhjHubhdefinition_list)}(hhh](hdefinition_list_item)}(h!``id`` reset control consumer ID h](hterm)}(h``id``h]j)}(hjh]hid}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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)}(hhj3ubj)}(hhh]h)}(h)optional, exclusive, acquired, deassertedh]h)optional, exclusive, acquired, deasserted}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK>hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhK>hjubj)}(hL``RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED`` optional, exclusive, released h](j)}(h-``RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED``h]j)}(hjrh]h)RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKAhjlubj)}(hhh]h)}(hoptional, exclusive, releasedh]hoptional, exclusive, released}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKAhjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjubj)}(h3``RESET_CONTROL_OPTIONAL_SHARED`` optional, shared h](j)}(h!``RESET_CONTROL_OPTIONAL_SHARED``h]j)}(hjh]hRESET_CONTROL_OPTIONAL_SHARED}(hjhhhNhNubah}(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.hhKDhjubj)}(hhh]h)}(hoptional, sharedh]hoptional, shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKDhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjubj)}(hI``RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED`` optional, shared, deassertedh](j)}(h,``RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED``h]j)}(hjh]h(RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED}(hjhhhNhNubah}(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.hhKFhjubj)}(hhh]h)}(hoptional, shared, deassertedh]hoptional, shared, deasserted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_control_get_exclusive (C function)c.reset_control_get_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(hWstruct reset_control * reset_control_get_exclusive (struct device *dev, const char *id)h]j)}(hUstruct reset_control *reset_control_get_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj> 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 }(hjL hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj: hhhjK hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj] hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ ubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetj_ modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jx ASTIdentifier)}js reset_control_get_exclusivesbc.reset_control_get_exclusiveasbuh1hhj: hhhjK hMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj: hhhjK hMubhdesc_sig_punctuation)}(h*h]h*}(hj hhhNhNubah}(h]h ]pah"]h$]h&]uh1j hj: hhhjK hMubj)}(hreset_control_get_exclusiveh]j)}(hj h]hreset_control_get_exclusive}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj: hhhjK hMubhdesc_parameterlist)}(h$(struct device *dev, const char *id)h](hdesc_parameter)}(hstruct device *devh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj modnameN classnameNjw jz )}j} ]j c.reset_control_get_exclusiveasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubj )}(hconst char *idh](j)}(hconsth]hconst}(hj8 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubj)}(h h]h }(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubhdesc_sig_keyword_type)}(hcharh]hchar}(hjV hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jT hj4 ubj)}(h h]h }(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubj )}(hj h]h*}(hjs hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4 ubj)}(hidh]hid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4 ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubeh}(h]h ]h"]h$]h&]hhuh1j hj: hhhjK hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj6 hhhjK hMubah}(h]j1 ah ](jjeh"]h$]h&]jj)jhuh1jhjK hMhj3 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 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&]uh1jhj3 hhhjK hMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj jBj jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj 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}(hj 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 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}(hj& 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= hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9 hMhj: ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj9 hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]jQ)}(hj_ h]h Description}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj] ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj ubh)}(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.}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj ubh)}(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.}(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 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&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hj hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM&ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hM&ubj)}(h reset_control_bulk_get_exclusiveh]j)}(h reset_control_bulk_get_exclusiveh]h reset_control_bulk_get_exclusive}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hM&ubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj modnameN classnameNjw jz )}j} ]j )}js j sb"c.reset_control_bulk_get_exclusiveasbuh1hhj ubj)}(h h]h }(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hjK hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hdevh]hdev}(hjX hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjq hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjm ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm ubj)}(h num_rstcsh]h num_rstcs}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj modnameN classnameNjw jz )}j} ]j9 "c.reset_control_bulk_get_exclusiveasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hrstcsh]hrstcs}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhj hM&ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj hM&ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM&hj hhubj )}(hhh]h)}(hELookup and obtain exclusive references to multiple reset controllers.h]hELookup and obtain exclusive references to multiple reset controllers.}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM&hj$ hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM&ubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj? jBj? jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjI h]h Parameters}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjG ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM*hjC ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjh h]hstruct device *dev}(hjj 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.hhM(hjb ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj} hM(hj~ ubah}(h]h ]h"]h$]h&]uh1jhjb ubeh}(h]h ]h"]h$]h&]uh1jhj} hM(hj_ 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}(hj 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 number of entries in rstcs arrayh]h number of entries in rstcs array}(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)}(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}(hj 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)}(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 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&]uh1jhjC ubh)}(h**Description**h]jQ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM,hjC 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.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM+hjC ubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM7ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjghM7ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj{modnameN classnameNjw jz )}j} ]j )}js $reset_control_get_exclusive_releasedsb&c.reset_control_get_exclusive_releasedasbuh1hhjVhhhjghM7ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjghM7ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVhhhjghM7ubj)}(h$reset_control_get_exclusive_releasedh]j)}(hjh]h$reset_control_get_exclusive_released}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhjghM7ubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j&c.reset_control_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(hconst char *idh](j)}(hj: h]hconst}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubjU )}(hcharh]hchar}(hj_hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj@ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj )}(hj h]h*}(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@ubj)}(hidh]hid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjVhhhjghM7ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjRhhhjghM7ubah}(h]jMah ](jjeh"]h$]h&]jj)jhuh1jhjghM7hjOhhubj )}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM7hjhhubah}(h]h ]h"]h$]h&]uh1jhjOhhhjghM7ubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjBjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM;hjubj)}(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}(hjhhhNhNubah}(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.hhM:hjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM:hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM:hjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj,h]hconst char *id}(hj.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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhM;hjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhM;hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jQ)}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjeubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM=hjubh)}(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}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM<hjubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMAhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMLubj)}(h)reset_control_bulk_get_exclusive_releasedh]j)}(h)reset_control_bulk_get_exclusive_releasedh]h)reset_control_bulk_get_exclusive_released}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMLubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j )}js jsb+c.reset_control_bulk_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjjhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjfubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(h num_rstcsh]h num_rstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j2+c.reset_control_bulk_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMLubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMLubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMLhjhhubj )}(hhh]h)}(hQLookup and obtain temporarily exclusive references to multiple reset controllers.h]hQLookup and obtain temporarily exclusive references to multiple reset controllers.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMLhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMLubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj8jBj8jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj@ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMPhj<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}(hjchhhNhNubah}(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.hhMOhj[ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMOhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMOhjXubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjh]h int num_rstcs}(hjhhhNhNubah}(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.hhMPhjubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMPhjXubj)}(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}(hjhhhNhNubah}(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)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMQhjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubh)}(h**Description**h]jQ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMShj<ubh)}(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.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMRhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjShhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjOhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMaubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOhhhjahMaubj)}(h2reset_control_bulk_get_optional_exclusive_releasedh]j)}(h2reset_control_bulk_get_optional_exclusive_releasedh]h2reset_control_bulk_get_optional_exclusive_released}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ](jjeh"]h$]h&]hhuh1jhjOhhhjahMaubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j )}js jvsb4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_rstcsh]h num_rstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjWmodnameN classnameNjw jz )}j} ]j4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhj3ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjOhhhjahMaubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjKhhhjahMaubah}(h]jFah ](jjeh"]h$]h&]jj)jhuh1jhjahMahjHhhubj )}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMahjhhubah}(h]h ]h"]h$]h&]uh1jhjHhhhjahMaubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjBjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMehjubj)}(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}(hjhhhNhNubah}(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.hhMdhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMdhjubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hj2h]h int num_rstcs}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMehj,ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMehjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMehjubj)}(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}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMfhjeubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jQ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhhjubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMghjubh)}(hESee reset_control_bulk_get_exclusive_released() for more information.h]hESee reset_control_bulk_get_exclusive_released() for more information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMkhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMwubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j )}js reset_control_get_sharedsbc.reset_control_get_sharedasbuh1hhjhhhjhMwubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMwubj )}(hj h]h*}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhhhjhMwubj)}(hreset_control_get_sharedh]j)}(hj7h]hreset_control_get_shared}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMwubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j5c.reset_control_get_sharedasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjpubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjlubj )}(hconst char *idh](j)}(hj: h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjU )}(hcharh]hchar}(hjhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hidh]hid}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjlubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMwubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMwubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMwhjhhubj )}(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.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwhjOhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMwubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjjBjjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjrubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM{hjnubj)}(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}(hjhhhNhNubah}(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.hhMyhjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMyhjubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjh]hconst char *id}(hjhhhNhNubah}(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.hhMzhjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubeh}(h]h ]h"]h$]h&]uh1jhjnubh)}(h**Description**h]jQ)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM|hjnubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM{hjnubh)}(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,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjnubh)}(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;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjnubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjyhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjuhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjhMubj)}(hreset_control_bulk_get_sharedh]j)}(hreset_control_bulk_get_sharedh]hreset_control_bulk_get_shared}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjhMubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j )}js jsbc.reset_control_bulk_get_sharedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h int num_rstcsh](jU )}(hinth]hint}(hj(hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj$ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(h num_rstcsh]h num_rstcs}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj}modnameN classnameNjw jz )}j} ]jc.reset_control_bulk_get_sharedasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjuhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjqhhhjhMubah}(h]jlah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjnhhubj )}(hhh]h)}(hBLookup and obtain shared references to multiple reset controllers.h]hBLookup and obtain shared references to multiple reset controllers.}(hjhhhNhNubah}(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&]uh1jhjnhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjBjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(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}(hj!hhhNhNubah}(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}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjXh]h int num_rstcs}(hjZhhhNhNubah}(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.hhMhjRubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjubj)}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jQ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(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.}(hjhhhNhNubah}(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&]uh1jFhjhhhNhNubj)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj2modnameN classnameNjw jz )}j} ]j )}js $reset_control_get_optional_exclusivesb&c.reset_control_get_optional_exclusiveasbuh1hhj hhhjhMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMubj )}(hj h]h*}(hj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj hhhjhMubj)}(h$reset_control_get_optional_exclusiveh]j)}(hjNh]h$reset_control_get_optional_exclusive}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhjhMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]jL&c.reset_control_get_optional_exclusiveasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(hconst char *idh](j)}(hj: h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjU )}(hcharh]hchar}(hjhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hidh]hid}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj )}(hhh]h)}(h&optional reset_control_get_exclusive()h]h&optional reset_control_get_exclusive()}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjfhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjBjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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)}(hreset line nameh]hreset line name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jQ)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(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_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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hjChhhNhNubah}(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&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjrhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjnhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnhhhjhMubj)}(h)reset_control_bulk_get_optional_exclusiveh]j)}(h)reset_control_bulk_get_optional_exclusiveh]h)reset_control_bulk_get_optional_exclusive}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjnhhhjhMubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmodnameN classnameNjw jz )}j} ]j )}js jsb+c.reset_control_bulk_get_optional_exclusiveasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h int num_rstcsh](jU )}(hinth]hint}(hj!hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_rstcsh]h num_rstcs}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjvmodnameN classnameNjw jz )}j} ]j+c.reset_control_bulk_get_optional_exclusiveasbuh1hhjRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjnhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjjhhhjhMubah}(h]jeah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjghhubj )}(hhh]h)}(h+optional reset_control_bulk_get_exclusive()h]h+optional reset_control_bulk_get_exclusive()}(hjhhhNhNubah}(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&]uh1jhjghhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjjBjjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(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}(hjhhhNhNubah}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hMhjubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjQh]h int num_rstcs}(hjShhhNhNubah}(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.hhMhjKubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhMhjubj)}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]jQ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjubah}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubh)}(h7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:7ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj67ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjU7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ7hMhjR7ubah}(h]h ]h"]h$]h&]uh1jhj67ubeh}(h]h ]h"]h$]h&]uh1jhjQ7hMhj37ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hju7h]h int num_rstcs}(hjw7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs7ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjo7ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjo7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj37ubj)}(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}(hj7hhhNhNubah}(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.hhMhj7ubj)}(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}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj37ubeh}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]jQ)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj7ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj7ubh)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj7ubh)}(h<ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(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}(hj<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<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}(hj<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<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]jQ)}(hj<h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj<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_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.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj<ubh)}(hESee reset_control_bulk_get_exclusive_released() for more information.h]hESee reset_control_bulk_get_exclusive_released() for more information.}(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&]uh1jFhjhhhNhNubj)}(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}(hjE=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 }(hjS=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA=hhhjR=hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjd=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja=ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjf=modnameN classnameNjw jz )}j} ]j )}js 2devm_reset_control_get_optional_exclusive_releasedsb4c.devm_reset_control_get_optional_exclusive_releasedasbuh1hhjA=hhhjR=hMubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA=hhhjR=hMubj )}(hj h]h*}(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjA=hhhjR=hMubj)}(h2devm_reset_control_get_optional_exclusive_releasedh]j)}(hj=h]h2devm_reset_control_get_optional_exclusive_released}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjA=hhhjR=hMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubh)}(hhh]j)}(hdeviceh]hdevice}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj=modnameN classnameNjw jz )}j} ]j=4c.devm_reset_control_get_optional_exclusive_releasedasbuh1hhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj )}(hj h]h*}(hj >hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj=ubj)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj=ubj )}(hconst char *idh](j)}(hj: h]hconst}(hj/>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+>ubj)}(h h]h }(hj<>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+>ubjU )}(hcharh]hchar}(hjJ>hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj+>ubj)}(h h]h }(hjX>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+>ubj )}(hj h]h*}(hjf>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+>ubj)}(hidh]hid}(hjs>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj=ubeh}(h]h ]h"]h$]h&]hhuh1j hjA=hhhjR=hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj==hhhjR=hMubah}(h]j8=ah ](jjeh"]h$]h&]jj)jhuh1jhjR=hMhj:=hhubj )}(hhh]h)}(h@resource managed reset_control_get_optional_exclusive_released()h]h@resource managed reset_control_get_optional_exclusive_released()}(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&]j@jjAj>jBj>jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj>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}(hj>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>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}(hj?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}(hj0?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]jQ)}(hjR?h]h Description}(hjT?hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjP?ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubh)}(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.}(hjh?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubh)}(h@See reset_control_get_exclusive_released() for more information.h]h@See reset_control_get_exclusive_released() for more information.}(hjw?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&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hj?hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj?hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?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}(hj?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}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubh)}(hhh]j)}(hdeviceh]hdevice}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj@modnameN classnameNjw jz )}j} ]j )}js j?sb9c.devm_reset_control_bulk_get_optional_exclusive_releasedasbuh1hhj?ubj)}(h h]h }(hj!@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj )}(hj h]h*}(hj/@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubj)}(hdevh]hdev}(hj<@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj?ubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjU@hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjQ@ubj)}(h h]h }(hjc@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ@ubj)}(h num_rstcsh]h num_rstcs}(hjq@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj?ubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj@modnameN classnameNjw jz )}j} ]j@9c.devm_reset_control_bulk_get_optional_exclusive_releasedasbuh1hhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj )}(hj h]h*}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@ubj)}(hrstcsh]hrstcs}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj?ubeh}(h]h ]h"]h$]h&]hhuh1j hj?hhhj?hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj?hhhj?hMubah}(h]j?ah ](jjeh"]h$]h&]jj)jhuh1jhj?hMhj?hhubj )}(hhh]h)}(hEresource managed reset_control_bulk_optional_get_exclusive_released()h]hEresource managed reset_control_bulk_optional_get_exclusive_released()}(hj AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAhhubah}(h]h ]h"]h$]h&]uh1jhj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj#AjBj#AjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj-Ah]h Parameters}(hj/AhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj+Aubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj'Aubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjLAh]hstruct device *dev}(hjNAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJAubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFAubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjeAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaAhMhjbAubah}(h]h ]h"]h$]h&]uh1jhjFAubeh}(h]h ]h"]h$]h&]uh1jhjaAhMhjCAubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjAh]h int num_rstcs}(hjAhhhNhNubah}(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 number of entries in rstcs arrayh]h number of entries in rstcs array}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjCAubj)}(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}(hjAhhhNhNubah}(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}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjCAubeh}(h]h ]h"]h$]h&]uh1jhj'Aubh)}(h**Description**h]jQ)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjAubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj'Aubh)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj'Aubh)}(hNSee reset_control_bulk_optional_get_exclusive_released() for more information.h]hNSee reset_control_bulk_optional_get_exclusive_released() for more information.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj'Aubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjMBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIBhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hj[BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIBhhhjZBhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjlBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiBubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjnBmodnameN classnameNjw jz )}j} ]j )}js devm_reset_control_get_sharedsbc.devm_reset_control_get_sharedasbuh1hhjIBhhhjZBhMubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIBhhhjZBhMubj )}(hj h]h*}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIBhhhjZBhMubj)}(hdevm_reset_control_get_sharedh]j)}(hjBh]hdevm_reset_control_get_shared}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhjIBhhhjZBhMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubh)}(hhh]j)}(hdeviceh]hdevice}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjBmodnameN classnameNjw jz )}j} ]jBc.devm_reset_control_get_sharedasbuh1hhjBubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj )}(hj h]h*}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBubj)}(hdevh]hdev}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjBubj )}(hconst char *idh](j)}(hj: h]hconst}(hj7ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Cubj)}(h h]h }(hjDChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3CubjU )}(hcharh]hchar}(hjRChhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj3Cubj)}(h h]h }(hj`ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Cubj )}(hj h]h*}(hjnChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3Cubj)}(hidh]hid}(hj{ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Cubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjBubeh}(h]h ]h"]h$]h&]hhuh1j hjIBhhhjZBhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjEBhhhjZBhMubah}(h]j@Bah ](jjeh"]h$]h&]jj)jhuh1jhjZBhMhjBBhhubj )}(hhh]h)}(h+resource managed reset_control_get_shared()h]h+resource managed reset_control_get_shared()}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjChhubah}(h]h ]h"]h$]h&]uh1jhjBBhhhjZBhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjCjBjCjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjCubah}(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}(hjChhhNhNubah}(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}(hjChhhNhNubah}(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)}(hjDh]hconst char *id}(hj!DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjDubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj8DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4DhMhj5Dubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj4DhMhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(h**Description**h]jQ)}(hjZDh]h Description}(hj\DhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjXDubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubh)}(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.}(hjpDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j5devm_reset_control_get_shared_deasserted (C function)*c.devm_reset_control_get_shared_deassertedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hdstruct reset_control * devm_reset_control_get_shared_deasserted (struct device *dev, const char *id)h]j)}(hbstruct reset_control *devm_reset_control_get_shared_deasserted(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjDhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjDmodnameN classnameNjw jz )}j} ]j )}js (devm_reset_control_get_shared_deassertedsb*c.devm_reset_control_get_shared_deassertedasbuh1hhjDhhhjDhMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjDhMubj )}(hj h]h*}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjDhhhjDhMubj)}(h(devm_reset_control_get_shared_deassertedh]j)}(hjDh]h(devm_reset_control_get_shared_deasserted}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ](jjeh"]h$]h&]hhuh1jhjDhhhjDhMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hj&EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdeviceh]hdevice}(hj7EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Eubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj9EmodnameN classnameNjw jz )}j} ]jD*c.devm_reset_control_get_shared_deassertedasbuh1hhjEubj)}(h h]h }(hjUEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj )}(hj h]h*}(hjcEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubj)}(hdevh]hdev}(hjpEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjEubj )}(hconst char *idh](j)}(hj: h]hconst}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubjU )}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj )}(hj h]h*}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubj)}(hidh]hid}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjEubeh}(h]h ]h"]h$]h&]hhuh1j hjDhhhjDhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjDhhhjDhMubah}(h]jDah ](jjeh"]h$]h&]jj)jhuh1jhjDhMhjDhhubj )}(hhh]h)}(hFresource managed reset_control_get_shared() + reset_control_deassert()h]hFresource managed reset_control_get_shared() + reset_control_deassert()}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEhhubah}(h]h ]h"]h$]h&]uh1jhjDhhhjDhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjFjBjFjCjDjEuh1jhhhjhNhNubjG)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach. See devm_reset_control_get_shared() for more information.h](h)}(h**Parameters**h]jQ)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjFubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj8Fh]hstruct device *dev}(hj:FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Fubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj2Fubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjQFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMFhMhjNFubah}(h]h ]h"]h$]h&]uh1jhj2Fubeh}(h]h ]h"]h$]h&]uh1jhjMFhMhj/Fubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjqFh]hconst char *id}(hjsFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoFubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjkFubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjkFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhj/Fubeh}(h]h ]h"]h$]h&]uh1jhjFubh)}(h**Description**h]jQ)}(hjFh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjFubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubh)}(hManaged reset_control_get_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubh)}(h9See devm_reset_control_get_shared() for more information.h]h9See devm_reset_control_get_shared() for more information.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjGhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjFhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjGhM ubj)}(h"devm_reset_control_bulk_get_sharedh]j)}(h"devm_reset_control_bulk_get_sharedh]h"devm_reset_control_bulk_get_shared}(hj!GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ](jjeh"]h$]h&]hhuh1jhjFhhhjGhM ubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj=GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Gubj)}(h h]h }(hjJGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Gubh)}(hhh]j)}(hdeviceh]hdevice}(hj[GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXGubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj]GmodnameN classnameNjw jz )}j} ]j )}js j#Gsb$c.devm_reset_control_bulk_get_sharedasbuh1hhj9Gubj)}(h h]h }(hj{GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Gubj )}(hj h]h*}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9Gubj)}(hdevh]hdev}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9Gubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5Gubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjGhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(h num_rstcsh]h num_rstcs}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5Gubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjHmodnameN classnameNjw jz )}j} ]jwG$c.devm_reset_control_bulk_get_sharedasbuh1hhjGubj)}(h h]h }(hj HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj )}(hj h]h*}(hj.HhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGubj)}(hrstcsh]hrstcs}(hj;HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5Gubeh}(h]h ]h"]h$]h&]hhuh1j hjFhhhjGhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjFhhhjGhM ubah}(h]jFah ](jjeh"]h$]h&]jj)jhuh1jhjGhM hjFhhubj )}(hhh]h)}(h0resource managed reset_control_bulk_get_shared()h]h0resource managed reset_control_bulk_get_shared()}(hjeHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjbHhhubah}(h]h ]h"]h$]h&]uh1jhjFhhhjGhM ubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj}HjBj}HjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjHubah}(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}(hjHhhhNhNubah}(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.hhM hjHubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhM hjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhM hjHubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjHh]h int num_rstcs}(hjHhhhNhNubah}(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.hhM hjHubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhM hjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhM hjHubj)}(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)}(hjIh]h%struct reset_control_bulk_data *rstcs}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjIubj)}(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}(hj1IhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-IhMhj.Iubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhj-IhMhjHubeh}(h]h ]h"]h$]h&]uh1jhjHubh)}(h**Description**h]jQ)}(hjSIh]h Description}(hjUIhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjQIubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubh)}(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.}(hjiIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjHubh)}(h9See reset_control_bulk_get_shared() for more information.h]h9See reset_control_bulk_get_shared() for more information.}(hjxIhhhNhNubah}(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&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j:devm_reset_control_bulk_get_shared_deasserted (C function)/c.devm_reset_control_bulk_get_shared_deassertedhNtauh1jhjhhhNhNubj)}(hhh](j)}(h|int devm_reset_control_bulk_get_shared_deasserted (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(h{int devm_reset_control_bulk_get_shared_deasserted(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jU )}(hinth]hint}(hjIhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjIhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhjIhMubj)}(h-devm_reset_control_bulk_get_shared_deassertedh]j)}(h-devm_reset_control_bulk_get_shared_deassertedh]h-devm_reset_control_bulk_get_shared_deasserted}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ](jjeh"]h$]h&]hhuh1jhjIhhhjIhMubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubh)}(hhh]j)}(hdeviceh]hdevice}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjJmodnameN classnameNjw jz )}j} ]j )}js jIsb/c.devm_reset_control_bulk_get_shared_deassertedasbuh1hhjIubj)}(h h]h }(hj"JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj )}(hj h]h*}(hj0JhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubj)}(hdevh]hdev}(hj=JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjIubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjVJhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjRJubj)}(h h]h }(hjdJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRJubj)}(h num_rstcsh]h num_rstcs}(hjrJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRJubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjIubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjJmodnameN classnameNjw jz )}j} ]jJ/c.devm_reset_control_bulk_get_shared_deassertedasbuh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj )}(hj h]h*}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubj)}(hrstcsh]hrstcs}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjIubeh}(h]h ]h"]h$]h&]hhuh1j hjIhhhjIhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjIhhhjIhMubah}(h]jIah ](jjeh"]h$]h&]jj)jhuh1jhjIhMhjIhhubj )}(hhh]h)}(hPresource managed reset_control_bulk_get_shared() + reset_control_bulk_deassert()h]hPresource managed reset_control_bulk_get_shared() + reset_control_bulk_deassert()}(hj KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj Khhubah}(h]h ]h"]h$]h&]uh1jhjIhhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj$KjBj$KjCjDjEuh1jhhhjhNhNubjG)}(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() + reset_control_bulk_deassert(). For reset controllers returned from this function, reset_control_bulk_assert() + reset_control_bulk_put() are called automatically on driver detach. See devm_reset_control_bulk_get_shared() for more information.h](h)}(h**Parameters**h]jQ)}(hj.Kh]h Parameters}(hj0KhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj,Kubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM"hj(Kubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjMKh]hstruct device *dev}(hjOKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKKubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM!hjGKubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjfKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbKhM!hjcKubah}(h]h ]h"]h$]h&]uh1jhjGKubeh}(h]h ]h"]h$]h&]uh1jhjbKhM!hjDKubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjKh]h int num_rstcs}(hjKhhhNhNubah}(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.hhM"hjKubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM"hjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhM"hjDKubj)}(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}(hjKhhhNhNubah}(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.hhM#hjKubj)}(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}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM#hjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhM#hjDKubeh}(h]h ]h"]h$]h&]uh1jhj(Kubh)}(h**Description**h]jQ)}(hjKh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjKubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM%hj(Kubh)}(hManaged reset_control_bulk_get_shared() + reset_control_bulk_deassert(). For reset controllers returned from this function, reset_control_bulk_assert() + reset_control_bulk_put() are called automatically on driver detach.h]hManaged reset_control_bulk_get_shared() + reset_control_bulk_deassert(). For reset controllers returned from this function, reset_control_bulk_assert() + reset_control_bulk_put() are called automatically on driver detach.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM$hj(Kubh)}(h>See devm_reset_control_bulk_get_shared() for more information.h]h>See devm_reset_control_bulk_get_shared() for more information.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM(hj(Kubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjNLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJLhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM4ubj)}(h h]h }(hj\LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJLhhhj[LhM4ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjmLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjLubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjoLmodnameN classnameNjw jz )}j} ]j )}js )devm_reset_control_get_optional_exclusivesb+c.devm_reset_control_get_optional_exclusiveasbuh1hhjJLhhhj[LhM4ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJLhhhj[LhM4ubj )}(hj h]h*}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJLhhhj[LhM4ubj)}(h)devm_reset_control_get_optional_exclusiveh]j)}(hjLh]h)devm_reset_control_get_optional_exclusive}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ](jjeh"]h$]h&]hhuh1jhjJLhhhj[LhM4ubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hdeviceh]hdevice}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjLmodnameN classnameNjw jz )}j} ]jL+c.devm_reset_control_get_optional_exclusiveasbuh1hhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj )}(hj h]h*}(hjMhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubj)}(hdevh]hdev}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjLubj )}(hconst char *idh](j)}(hj: h]hconst}(hj8MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Mubj)}(h h]h }(hjEMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4MubjU )}(hcharh]hchar}(hjSMhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj4Mubj)}(h h]h }(hjaMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Mubj )}(hj h]h*}(hjoMhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4Mubj)}(hidh]hid}(hj|MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Mubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjLubeh}(h]h ]h"]h$]h&]hhuh1j hjJLhhhj[LhM4ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjFLhhhj[LhM4ubah}(h]jALah ](jjeh"]h$]h&]jj)jhuh1jhj[LhM4hjCLhhubj )}(hhh]h)}(h7resource managed reset_control_get_optional_exclusive()h]h7resource managed reset_control_get_optional_exclusive()}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM4hjMhhubah}(h]h ]h"]h$]h&]uh1jhjCLhhhj[LhM4ubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjMjBjMjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjMubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM8hjMubj)}(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}(hjMhhhNhNubah}(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.hhM6hjMubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM6hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhM6hjMubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj Nh]hconst char *id}(hj"NhhhNhNubah}(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.hhM7hjNubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj9NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5NhM7hj6Nubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhj5NhM7hjMubeh}(h]h ]h"]h$]h&]uh1jhjMubh)}(h**Description**h]jQ)}(hj[Nh]h Description}(hj]NhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjYNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM9hjMubh)}(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.}(hjqNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM8hjMubh)}(h@See reset_control_get_optional_exclusive() for more information.h]h@See reset_control_get_optional_exclusive() for more information.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM<hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jAdevm_reset_control_get_optional_exclusive_deasserted (C function)6c.devm_reset_control_get_optional_exclusive_deassertedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hpstruct reset_control * devm_reset_control_get_optional_exclusive_deasserted (struct device *dev, const char *id)h]j)}(hnstruct reset_control *devm_reset_control_get_optional_exclusive_deasserted(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMFubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhMFubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjNmodnameN classnameNjw jz )}j} ]j )}js 4devm_reset_control_get_optional_exclusive_deassertedsb6c.devm_reset_control_get_optional_exclusive_deassertedasbuh1hhjNhhhjNhMFubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhMFubj )}(hj h]h*}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjNhhhjNhMFubj)}(h4devm_reset_control_get_optional_exclusive_deassertedh]j)}(hjNh]h4devm_reset_control_get_optional_exclusive_deasserted}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Oubah}(h]h ](jjeh"]h$]h&]hhu#h1jhjNhhhjNhMFubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj)OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Oubj)}(h h]h }(hj6OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Oubh)}(hhh]j)}(hdeviceh]hdevice}(hjGOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDOubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjIOmodnameN classnameNjw jz )}j} ]jN6c.devm_reset_control_get_optional_exclusive_deassertedasbuh1hhj%Oubj)}(h h]h }(hjeOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Oubj )}(hj h]h*}(hjsOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%Oubj)}(hdevh]hdev}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Oubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj!Oubj )}(hconst char *idh](j)}(hj: h]hconst}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjU )}(hcharh]hchar}(hjOhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj )}(hj h]h*}(hjOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubj)}(hidh]hid}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj!Oubeh}(h]h ]h"]h$]h&]hhuh1j hjNhhhjNhMFubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjNhhhjNhMFubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jhjNhMFhjNhhubj )}(hhh]h)}(hRresource managed reset_control_get_optional_exclusive() + reset_control_deassert()h]hRresource managed reset_control_get_optional_exclusive() + reset_control_deassert()}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMFhjPhhubah}(h]h ]h"]h$]h&]uh1jhjNhhhjNhMFubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjPjBjPjCjDjEuh1jhhhjhNhNubjG)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_optional_exclusive() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach. See devm_reset_control_get_optional_exclusive() for more information.h](h)}(h**Parameters**h]jQ)}(hj)Ph]h Parameters}(hj+PhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj'Pubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMJhj#Pubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjHPh]hstruct device *dev}(hjJPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFPubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMIhjBPubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjaPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]PhMIhj^Pubah}(h]h ]h"]h$]h&]uh1jhjBPubeh}(h]h ]h"]h$]h&]uh1jhj]PhMIhj?Pubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjPh]hconst char *id}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMJhj{Pubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMJhjPubah}(h]h ]h"]h$]h&]uh1jhj{Pubeh}(h]h ]h"]h$]h&]uh1jhjPhMJhj?Pubeh}(h]h ]h"]h$]h&]uh1jhj#Pubh)}(h**Description**h]jQ)}(hjPh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjPubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMLhj#Pubh)}(hManaged reset_control_get_optional_exclusive() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_optional_exclusive() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMKhj#Pubh)}(hESee devm_reset_control_get_optional_exclusive() for more information.h]hESee devm_reset_control_get_optional_exclusive() for more information.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMOhj#Pubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j;devm_reset_control_bulk_get_optional_exclusive (C function)0c.devm_reset_control_bulk_get_optional_exclusivehNtauh1jhjhhhNhNubj)}(hhh](j)}(h}int devm_reset_control_bulk_get_optional_exclusive (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(h|int devm_reset_control_bulk_get_optional_exclusive(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jU )}(hinth]hint}(hjQhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj QhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMYubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj QhhhjQhMYubj)}(h.devm_reset_control_bulk_get_optional_exclusiveh]j)}(h.devm_reset_control_bulk_get_optional_exclusiveh]h.devm_reset_control_bulk_get_optional_exclusive}(hj1QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Qubah}(h]h ](jjeh"]h$]h&]hhuh1jhj QhhhjQhMYubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjMQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIQubj)}(h h]h }(hjZQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIQubh)}(hhh]j)}(hdeviceh]hdevice}(hjkQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhQubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjmQmodnameN classnameNjw jz )}j} ]j )}js j3Qsb0c.devm_reset_control_bulk_get_optional_exclusiveasbuh1hhjIQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIQubj )}(hj h]h*}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIQubj)}(hdevh]hdev}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIQubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjEQubj )}(h int num_rstcsh](jU )}(hinth]hint}(hjQhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h num_rstcsh]h num_rstcs}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjEQubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjRmodnameN classnameNjw jz )}j} ]jQ0c.devm_reset_control_bulk_get_optional_exclusiveasbuh1hhjQubj)}(h h]h }(hj0RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj )}(hj h]h*}(hj>RhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubj)}(hrstcsh]hrstcs}(hjKRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjEQubeh}(h]h ]h"]h$]h&]hhuh1j hj QhhhjQhMYubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjQhhhjQhMYubah}(h]jQah ](jjeh"]h$]h&]jj)jhuh1jhjQhMYhjQhhubj )}(hhh]h)}(hSubah}(h]h ]h"]h$]h&]uh1jhj"Subeh}(h]h ]h"]h$]h&]uh1jhj=ShM]hjRubeh}(h]h ]h"]h$]h&]uh1jhjRubh)}(h**Description**h]jQ)}(hjcSh]h Description}(hjeShhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjaSubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM_hjRubh)}(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.}(hjyShhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM^hjRubh)}(hESee reset_control_bulk_get_optional_exclusive() for more information.h]hESee reset_control_bulk_get_optional_exclusive() for more information.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMbhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMnubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShMnubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjSmodnameN classnameNjw jz )}j} ]j )}js &devm_reset_control_get_optional_sharedsb(c.devm_reset_control_get_optional_sharedasbuh1hhjShhhjShMnubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShMnubj )}(hj h]h*}(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjShhhjShMnubj)}(h&devm_reset_control_get_optional_sharedh]j)}(hjSh]h&devm_reset_control_get_optional_shared}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]hhuh1jhjShhhjShMnubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj1ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Tubj)}(h h]h }(hj>ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Tubh)}(hhh]j)}(hdeviceh]hdevice}(hjOThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLTubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjQTmodnameN classnameNjw jz )}j} ]jS(c.devm_reset_control_get_optional_sharedasbuh1hhj-Tubj)}(h h]h }(hjmThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Tubj )}(hj h]h*}(hj{ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-Tubj)}(hdevh]hdev}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Tubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj)Tubj )}(hconst char *idh](j)}(hj: h]hconst}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubjU )}(hcharh]hchar}(hjThhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj )}(hj h]h*}(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjTubj)}(hidh]hid}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj)Tubeh}(h]h ]h"]h$]h&]hhuh1j hjShhhjShMnubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjShhhjShMnubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1jhjShMnhjShhubj )}(hhh]h)}(h4resource managed reset_control_get_optional_shared()h]h4resource managed reset_control_get_optional_shared()}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMnhj Uhhubah}(h]h ]h"]h$]h&]uh1jhjShhhjShMnubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj'UjBj'UjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj1Uh]h Parameters}(hj3UhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj/Uubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMrhj+Uubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjPUh]hstruct device *dev}(hjRUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNUubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMphjJUubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjiUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeUhMphjfUubah}(h]h ]h"]h$]h&]uh1jhjJUubeh}(h]h ]h"]h$]h&]uh1jhjeUhMphjGUubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjUh]hconst char *id}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMqhjUubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMqhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhMqhjGUubeh}(h]h ]h"]h$]h&]uh1jhj+Uubh)}(h**Description**h]jQ)}(hjUh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjUubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMshj+Uubh)}(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.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMrhj+Uubh)}(h=See reset_control_get_optional_shared() for more information.h]h=See reset_control_get_optional_shared() for more information.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMvhj+Uubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j>devm_reset_control_get_optional_shared_deasserted (C function)3c.devm_reset_control_get_optional_shared_deassertedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hmstruct reset_control * devm_reset_control_get_optional_shared_deasserted (struct device *dev, const char *id)h]j)}(hkstruct reset_control *devm_reset_control_get_optional_shared_deasserted(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hj&VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhj%VhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj7VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Vubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj9VmodnameN classnameNjw jz )}j} ]j )}js 1devm_reset_control_get_optional_shared_deassertedsb3c.devm_reset_control_get_optional_shared_deassertedasbuh1hhjVhhhj%VhMubj)}(h h]h }(hjXVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhj%VhMubj )}(hj h]h*}(hjfVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVhhhj%VhMubj)}(h1devm_reset_control_get_optional_shared_deassertedh]j)}(hjUVh]h1devm_reset_control_get_optional_shared_deasserted}(hjwVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsVubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhj%VhMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubh)}(hhh]j)}(hdeviceh]hdevice}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjVmodnameN classnameNjw jz )}j} ]jSV3c.devm_reset_control_get_optional_shared_deassertedasbuh1hhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj )}(hj h]h*}(hjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVubj)}(hdevh]hdev}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjVubj )}(hconst char *idh](j)}(hj: h]hconst}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubjU )}(hcharh]hchar}(hjWhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjVubj)}(h h]h }(hj+WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj )}(hj h]h*}(hj9WhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVubj)}(hidh]hid}(hjFWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjVubeh}(h]h ]h"]h$]h&]hhuh1j hjVhhhj%VhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjVhhhj%VhMubah}(h]j Vah ](jjeh"]h$]h&]jj)jhuh1jhj%VhMhj Vhhubj )}(hhh]h)}(hOresource managed reset_control_get_optional_shared() + reset_control_deassert()h]hOresource managed reset_control_get_optional_shared() + reset_control_deassert()}(hjpWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjmWhhubah}(h]h ]h"]h$]h&]uh1jhj Vhhhj%VhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjWjBjWjCjDjEuh1jhhhjhNhNubjG)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_optional_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach. See devm_reset_control_get_optional_shared() for more information.h](h)}(h**Parameters**h]jQ)}(hjWh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjWubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjWh]hstruct device *dev}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjWubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjWh]hconst char *id}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjXubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjWubeh}(h]h ]h"]h$]h&]uh1jhjWubh)}(h**Description**h]jQ)}(hj%Xh]h Description}(hj'XhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj#Xubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubh)}(hManaged reset_control_get_optional_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_optional_shared() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.}(hj;XhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubh)}(hBSee devm_reset_control_get_optional_shared() for more information.h]hBSee devm_reset_control_get_optional_shared() for more information.}(hjJXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjyXhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjuXhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuXhhhjXhMubj)}(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}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuXhhhjXhMubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubh)}(hhh]j)}(hdeviceh]hdevice}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjXmodnameN classnameNjw jz )}j} ]j )}js jXsb-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj )}(hj h]h*}(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjXubj)}(hdevh]hdev}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubj )}(h int num_rstcsh](jU )}(hinth]hint}(hj(YhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj$Yubj)}(h h]h }(hj6YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Yubj)}(h num_rstcsh]h num_rstcs}(hjDYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Yubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj]YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYYubj)}(h h]h }(hjjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYYubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hj{YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxYubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj}YmodnameN classnameNjw jz )}j} ]jX-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjYYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYYubj )}(hj h]h*}(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYYubj)}(hrstcsh]hrstcs}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYYubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubeh}(h]h ]h"]h$]h&]hhuh1j hjuXhhhjXhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjqXhhhjXhMubah}(h]jlXah ](jjeh"]h$]h&]jj)jhuh1jhjXhMhjnXhhubj )}(hhh]h)}(h9resource managed reset_control_bulk_get_optional_shared()h]h9resource managed reset_control_bulk_get_optional_shared()}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYhhubah}(h]h ]h"]h$]h&]uh1jhjnXhhhjXhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjYjBjYjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjZh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjYubah}(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)}(hjZh]hstruct device *dev}(hj!ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjZubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj8ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4ZhMhj5Zubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj4ZhMhjZubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjXZh]h int num_rstcs}(hjZZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVZubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjRZubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjqZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmZhMhjnZubah}(h]h ]h"]h$]h&]uh1jhjRZubeh}(h]h ]h"]h$]h&]uh1jhjmZhMhjZubj)}(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)}(hjZh]h%struct reset_control_bulk_data *rstcs}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjZubj)}(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}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjZubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h**Description**h]jQ)}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjZubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYubh)}(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.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYubh)}(hBSee reset_control_bulk_get_optional_shared() for more information.h]hBSee reset_control_bulk_get_optional_shared() for more information.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hj [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 }(hj.[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj-[hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj?[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<[ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjA[modnameN classnameNjw jz )}j} ]j )}js )devm_reset_control_get_exclusive_by_indexsb+c.devm_reset_control_get_exclusive_by_indexasbuh1hhj[hhhj-[hMubj)}(h h]h }(hj`[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj-[hMubj )}(hj h]h*}(hjn[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[hhhj-[hMubj)}(h)devm_reset_control_get_exclusive_by_indexh]j)}(hj][h]h)devm_reset_control_get_exclusive_by_index}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{[ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj[hhhj-[hMubj )}(h(struct device *dev, int index)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubh)}(hhh]j)}(hdeviceh]hdevice}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj[modnameN classnameNjw jz )}j} ]j[[+c.devm_reset_control_get_exclusive_by_indexasbuh1hhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj )}(hj h]h*}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubj)}(hdevh]hdev}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj[ubj )}(h int indexh](jU )}(hinth]hint}(hj \hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hindexh]hindex}(hj&\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj[ubeh}(h]h ]h"]h$]h&]hhuh1j hj[hhhj-[hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj[hhhj-[hMubah}(h]j[ah ](jjeh"]h$]h&]jj)jhuh1jhj-[hMhj[hhubj )}(hhh]h)}(h.resource managed reset_control_get_exclusive()h]h.resource managed reset_control_get_exclusive()}(hjP\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjM\hhubah}(h]h ]h"]h$]h&]uh1jhj[hhhj-[hMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjh\jBjh\jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjr\h]h Parameters}(hjt\hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjp\ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjl\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}(hj\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\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)}(hj\h]h int index}(hj\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)}(hindex of the reset controllerh]hindex of the reset controller}(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&]uh1jhjl\ubh)}(h**Description**h]jQ)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj]ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjl\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]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjl\ubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hj*]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjl\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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}(hjY]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU]hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjg]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU]hhhjf]hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjx]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju]ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjz]modnameN classnameNjw jz )}j} ]j )}js &devm_reset_control_get_shared_by_indexsb(c.devm_reset_control_get_shared_by_indexasbuh1hhjU]hhhjf]hMubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU]hhhjf]hMubj )}(hj h]h*}(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjU]hhhjf]hMubj)}(h&devm_reset_control_get_shared_by_indexh]j)}(hj]h]h&devm_reset_control_get_shared_by_index}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjU]hhhjf]hMubj )}(h(struct device *dev, int index)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubh)}(hhh]j)}(hdeviceh]hdevice}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj]modnameN classnameNjw jz )}j} ]j](c.devm_reset_control_get_shared_by_indexasbuh1hhj]ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj )}(hj h]h*}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubj)}(hdevh]hdev}(hj*^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj]ubj )}(h int indexh](jU )}(hinth]hint}(hjC^hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj?^ubj)}(h h]h }(hjQ^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?^ubj)}(hindexh]hindex}(hj_^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?^ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj]ubeh}(h]h ]h"]h$]h&]hhuh1j hjU]hhhjf]hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjQ]hhhjf]hMubah}(h]jL]ah ](jjeh"]h$]h&]jj)jhuh1jhjf]hMhjN]hhubj )}(hhh]h)}(h)resource managed reset_control_get_sharedh]h)resource managed reset_control_get_shared}(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&]uh1jhjN]hhhjf]hMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj^jBj^jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj^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}(hj^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^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)}(hj_h]h int index}(hj_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)}(hindex of the reset controllerh]hindex of the reset controller}(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]jQ)}(hj>_h]h Description}(hj@_hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj<_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.}(hjT_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&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hj_hhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hj_hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMgubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhhj_hMgubj)}(hreset_control_reseth]j)}(hreset_control_reseth]hreset_control_reset}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj_hhhj_hMgubj )}(h(struct reset_control *rstc)h]j )}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj_modnameN classnameNjw jz )}j} ]j )}js j_sbc.reset_control_resetasbuh1hhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj )}(hj h]h*}(hj `hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_ubj)}(hrstch]hrstc}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj_ubah}(h]h ]h"]h$]h&]hhuh1j hj_hhhj_hMgubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj{_hhhj_hMgubah}(h]jv_ah ](jjeh"]h$]h&]jj)jhuh1jhj_hMghjx_hhubj )}(hhh]h)}(hreset the controlled deviceh]hreset the controlled device}(hjC`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMghj@`hhubah}(h]h ]h"]h$]h&]uh1jhjx_hhhj_hMgubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj[`jBj[`jCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hje`h]h Parameters}(hjg`hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjc`ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMkhj_`ubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hj`h]hstruct reset_control *rstc}(hj`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.chMhhj~`ubj)}(hhh]h)}(hreset controllerh]hreset controller}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhhj`ubah}(h]h ]h"]h$]h&]uh1jhj~`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhhj{`ubah}(h]h ]h"]h$]h&]uh1jhj_`ubh)}(h**Description**h]jQ)}(hj`h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj`ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMjhj_`ubh)}(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.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMihj_`ubh)}(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.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMohj_`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjahhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjahhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hj"ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhj!ahMubj)}(hreset_control_rearmh]j)}(hreset_control_rearmh]hreset_control_rearm}(hj4ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0aubah}(h]h ](jjeh"]h$]h&]hhuh1jhjahhhj!ahMubj )}(h(struct reset_control *rstc)h]j )}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hjPahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLaubj)}(h h]h }(hj]ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLaubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjnahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkaubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjpamodnameN classnameNjw jz )}j} ]j )}js j6asbc.reset_control_rearmasbuh1hhjLaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLaubj )}(hj h]h*}(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLaubj)}(hrstch]hrstc}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLaubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjHaubah}(h]h ]h"]h$]h&]hhuh1j hjahhhj!ahMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj ahhhj!ahMubah}(h]jaah ](jjeh"]h$]h&]jj)jhuh1jhj!ahMhjahhubj )}(hhh]h)}(h*allow shared reset line to be re-triggeredh]h*allow shared reset line to be re-triggered}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjahhubah}(h]h ]h"]h$]h&]uh1jhjahhhj!ahMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjajBjajCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjah]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjaubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hjbh]hstruct reset_control *rstc}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjbubj)}(hhh]h)}(hreset controllerh]hreset controller}(hj-bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)bhMhj*bubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj)bhMhj bubah}(h]h ]h"]h$]h&]uh1jhjaubh)}(h**Description**h]jQ)}(hjObh]h Description}(hjQbhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjMbubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubh)}(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.}(hjebhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubh)}(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.}(hjtbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubh)}(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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubh)}(h0If rstc is NULL the function will just return 0.h]h0If rstc is NULL the function will just return 0.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hinth]hint}(hjbhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjbhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhjbhMubj)}(hreset_control_asserth]j)}(hreset_control_asserth]hreset_control_assert}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ](jjeh"]h$]h&]hhuh1jhjbhhhjbhMubj )}(h(struct reset_control *rstc)h]j )}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(h h]h }(hj chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjcmodnameN classnameNjw jz )}j} ]j )}js jbsbc.reset_control_assertasbuh1hhjbubj)}(h h]h }(hjgah ](jjeh"]h$]h&]jj)jhuh1jhjYghMhj@ghhubj )}(hhh]h)}(h*acquires a reset control for exclusive useh]h*acquires a reset control for exclusive use}(hj hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjhhhubah}(h]h ]h"]h$]h&]uh1jhj@ghhhjYghMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAj#hjBj#hjCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hj-hh]h Parameters}(hj/hhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj+hubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj'hubj)}(hhh]j)}(h-``struct reset_control *rstc`` reset control h](j)}(h``struct reset_control *rstc``h]j)}(hjLhh]hstruct reset_control *rstc}(hjNhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJhubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjFhubj)}(hhh]h)}(h reset controlh]h reset control}(hjehhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahhMhjbhubah}(h]h ]h"]h$]h&]uh1jhjFhubeh}(h]h ]h"]h$]h&]uh1jhjahhMhjChubah}(h]h ]h"]h$]h&]uh1jhj'hubh)}(h**Description**h]jQ)}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjhubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj'hubh)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj'hubh)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj'hubh)}(h!See also: reset_control_release()h]h!See also: reset_control_release()}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj'hubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjhhhNhNubj)}(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](jU )}(hvoidh]hvoid}(hjhhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjhhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhjhhMubj)}(hreset_control_releaseh]j)}(hreset_control_releaseh]hreset_control_release}(hj ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhhjhhMubj )}(h(struct reset_control *rstc)h]j )}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hj'ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#iubj)}(h h]h }(hj4ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#iubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjEihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBiubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjGimodnameN classnameNjw jz )}j} ]j )}js j isbc.reset_control_releaseasbuh1hhj#iubj)}(h h]h }(hjeihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#iubj )}(hj h]h*}(hjsihhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj#iubj)}(hrstch]hrstc}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#iubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjiubah}(h]h ]h"]h$]h&]hhuh1j hjhhhhjhhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhhjhhMubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jhjhhMhjhhhubj )}(hhh]h)}(h,releases exclusive access to a reset controlh]h,releases exclusive access to a reset control}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjihhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhhMubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjijBjijCjDjEuh1jhhhjhNhNubjG)}(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]jQ)}(hjih]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjiubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjiubj)}(hhh]j)}(h-``struct reset_control *rstc`` reset control h](j)}(h``struct reset_control *rstc``h]j)}(hjih]hstruct reset_control *rstc}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjiubj)}(hhh]h)}(h reset controlh]h reset control}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjjhMhjiubah}(h]h ]h"]h$]h&]uh1jhjiubh)}(h**Description**h]jQ)}(hj&jh]h Description}(hj(jhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhj$jubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjiubh)}(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.}(hj``ops`` a pointer to device specific struct reset_control_ops h](j)}(h``ops``h]j)}(hjrh]hops}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK$hjrubj)}(hhh]h)}(h5a pointer to device specific struct reset_control_opsh]h5a pointer to device specific struct reset_control_ops}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhK$hjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhK$hjrubj)}(h7``owner`` kernel module of the reset controller driver h](j)}(h ``owner``h]j)}(hjrh]howner}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK%hjrubj)}(hhh]h)}(h,kernel module of the reset controller driverh]h,kernel module of the reset controller driver}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhK%hjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhK%hjrubj)}(h3``list`` internal list of reset controller devices h](j)}(h``list``h]j)}(hjsh]hlist}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK&hjrubj)}(hhh]h)}(h)internal list of reset controller devicesh]h)internal list of reset controller devices}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK&hjsubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjshK&hjrubj)}(hI``reset_control_head`` head of internal list of requested reset controls h](j)}(h``reset_control_head``h]j)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:subah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK'hj6subj)}(hhh]h)}(h1head of internal list of requested reset controlsh]h1head of internal list of requested reset controls}(hjUshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQshK'hjRsubah}(h]h ]h"]h$]h&]uh1jhj6subeh}(h]h ]h"]h$]h&]uh1jhjQshK'hjrubj)}(h1``dev`` corresponding driver model device struct h](j)}(h``dev``h]j)}(hjush]hdev}(hjwshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjssubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK(hjosubj)}(hhh]h)}(h(corresponding driver model device structh]h(corresponding driver model device struct}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK(hjsubah}(h]h ]h"]h$]h&]uh1jhjosubeh}(h]h ]h"]h$]h&]uh1jhjshK(hjrubj)}(h=``of_node`` corresponding device tree node as phandle target h](j)}(h ``of_node``h]j)}(hjsh]hof_node}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK)hjsubj)}(hhh]h)}(h0corresponding device tree node as phandle targeth]h0corresponding device tree node as phandle target}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK)hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshK)hjrubj)}(h>``of_reset_n_cells`` number of cells in reset line specifiers h](j)}(h``of_reset_n_cells``h]j)}(hjsh]hof_reset_n_cells}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK*hjsubj)}(hhh]h)}(h(number of cells in reset line specifiersh]h(number of cells in reset line specifiers}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK*hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshK*hjrubj)}(h``of_xlate`` translation function to translate from specifier as found in the device tree to id as given to the reset control ops h](j)}(h ``of_xlate``h]j)}(hj th]hof_xlate}(hj"thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK,hjtubj)}(hhh]h)}(httranslation function to translate from specifier as found in the device tree to id as given to the reset control opsh]httranslation function to translate from specifier as found in the device tree to id as given to the reset control ops}(hj9thhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK+hj6tubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhj5thK,hjrubj)}(h5``fwnode`` firmware node associated with this device h](j)}(h ``fwnode``h]j)}(hjZth]hfwnode}(hj\thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK-hjTtubj)}(hhh]h)}(h)firmware node associated with this deviceh]h)firmware node associated with this device}(hjsthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjothK-hjptubah}(h]h ]h"]h$]h&]uh1jhjTtubeh}(h]h ]h"]h$]h&]uh1jhjothK-hjrubj)}(hB``fwnode_reset_n_cells`` number of cells in reset line specifiers h](j)}(h``fwnode_reset_n_cells``h]j)}(hjth]hfwnode_reset_n_cells}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK.hjtubj)}(hhh]h)}(h(number of cells in reset line specifiersh]h(number of cells in reset line specifiers}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthK.hjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthK.hjrubj)}(h``fwnode_xlate`` translation function to translate from firmware specifier to id as given to the reset control ops, defaults to :c:func:`fwnode_reset_simple_xlate` h](j)}(h``fwnode_xlate``h]j)}(hjth]h fwnode_xlate}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK1hjtubj)}(hhh]h)}(htranslation function to translate from firmware specifier to id as given to the reset control ops, defaults to :c:func:`fwnode_reset_simple_xlate`h](hotranslation function to translate from firmware specifier to id as given to the reset control ops, defaults to }(hjthhhNhNubh)}(h#:c:func:`fwnode_reset_simple_xlate`h]j)}(hjth]hfwnode_reset_simple_xlate()}(hjthhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjw jojfwnode_reset_simple_xlateuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK/hjtubeh}(h]h ]h"]h$]h&]uh1hhj uhK/hjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthK1hjrubj)}(hG``nr_resets`` number of reset controls in this reset controller device h](j)}(h ``nr_resets``h]j)}(hj%uh]h nr_resets}(hj'uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#uubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK2hjuubj)}(hhh]h)}(h8number of reset controls in this reset controller deviceh]h8number of reset controls in this reset controller device}(hj>uhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:uhK2hj;uubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhj:uhK2hjrubj)}(h?``lock`` protects the reset control list from concurrent accessh](j)}(h``lock``h]j)}(hj^uh]hlock}(hj`uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\uubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK2hjXuubj)}(hhh]h)}(h6protects the reset control list from concurrent accessh]h6protects the reset control list from concurrent access}(hjwuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:212: ./include/linux/reset-controller.hhK3hjtuubah}(h]h ]h"]h$]h&]uh1jhjXuubeh}(h]h ]h"]h$]h&]uh1jhjsuhK2hjrubeh}(h]h ]h"]h$]h&]uh1jhj@rubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&reset_controller_register (C function)c.reset_controller_registerhNtauh1jhjohhhNhNubj)}(hhh](j)}(hBint reset_controller_register (struct reset_controller_dev *rcdev)h]j)}(hAint reset_controller_register(struct reset_controller_dev *rcdev)h](jU )}(hinth]hint}(hjuhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjuhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjuhKubj)}(hreset_controller_registerh]j)}(hreset_controller_registerh]hreset_controller_register}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjuhKubj )}(h$(struct reset_controller_dev *rcdev)h]j )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjvmodnameN classnameNjw jz )}j} ]j )}js jusbc.reset_controller_registerasbuh1hhjuubj)}(h h]h }(^@hj3vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj )}(hj h]h*}(hjAvhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubj)}(hrcdevh]hrcdev}(hjNvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjuubah}(h]h ]h"]h$]h&]hhuh1j hjuhhhjuhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjuhhhjuhKubah}(h]juah ](jjeh"]h$]h&]jj)jhuh1jhjuhKhjuhhubj )}(hhh]h)}(h"register a reset controller deviceh]h"register a reset controller device}(hjxvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjuvhhubah}(h]h ]h"]h$]h&]uh1jhjuhhhjuhKubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjvjBjvjCjDjEuh1jhhhjohNhNubjG)}(hm**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller deviceh](h)}(h**Parameters**h]jQ)}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjvubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjvubj)}(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)}(hjvh]h"struct reset_controller_dev *rcdev}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjvubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhKhjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_controller_unregister (C function)c.reset_controller_unregisterhNtauh1jhjohhhNhNubj)}(hhh](j)}(hEvoid reset_controller_unregister (struct reset_controller_dev *rcdev)h]j)}(hDvoid reset_controller_unregister(struct reset_controller_dev *rcdev)h](jU )}(hvoidh]hvoid}(hjwhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjwhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKubj)}(h h]h }(hj"whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwhhhj!whKubj)}(hreset_controller_unregisterh]j)}(hreset_controller_unregisterh]hreset_controller_unregister}(hj4whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0wubah}(h]h ](jjeh"]h$]h&]hhuh1jhjwhhhj!whKubj )}(h$(struct reset_controller_dev *rcdev)h]j )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hjPwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLwubj)}(h h]h }(hj]whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLwubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hjnwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkwubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjpwmodnameN classnameNjw jz )}j} ]j )}js j6wsbc.reset_controller_unregisterasbuh1hhjLwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLwubj )}(hj h]h*}(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLwubj)}(hrcdevh]hrcdev}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLwubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjHwubah}(h]h ]h"]h$]h&]hhuh1j hjwhhhj!whKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj whhhj!whKubah}(h]jwah ](jjeh"]h$]h&]jj)jhuh1jhj!whKhjwhhubj )}(hhh]h)}(h$unregister a reset controller deviceh]h$unregister a reset controller device}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjwhhubah}(h]h ]h"]h$]h&]uh1jhjwhhhj!whKubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjwjBjwjCjDjEuh1jhhhjohNhNubjG)}(ha**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](h)}(h**Parameters**h]jQ)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjwubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjwubj)}(hhh]j)}(hO``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjxh]h"struct reset_controller_dev *rcdev}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjxubj)}(hhh]h)}(h(a pointer to the reset controller deviceh]h(a pointer to the reset controller device}(hj-xhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhj*xubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhj)xhKhj xubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjohhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+devm_reset_controller_register (C function) c.devm_reset_controller_registerhNtauh1jhjohhhNhNubj)}(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](jU )}(hinth]hint}(hjnxhhhNhNubah}(h]h ]ja ah"]h$]h&]uh1jT hjjxhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKubj)}(h h]h }(hj}xhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjxhhhj|xhKubj)}(hdevm_reset_controller_registerh]j)}(hdevm_reset_controller_registerh]hdevm_reset_controller_register}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ](jjeh"]h$]h&]hhuh1jhjjxhhhj|xhKubj )}(h8(struct device *dev, struct reset_controller_dev *rcdev)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubh)}(hhh]j)}(hdeviceh]hdevice}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetjxmodnameN classnameNjw jz )}j} ]j )}js jxsb c.devm_reset_controller_registerasbuh1hhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj )}(hj h]h*}(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjxubj)}(hdevh]hdev}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjxubj )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(h h]h }(hj*yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hj;yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8yubah}(h]h ]h"]h$]h&] refdomainjreftypejs reftargetj=ymodnameN classnameNjw jz )}j} ]jx c.devm_reset_controller_registerasbuh1hhjyubj)}(h h]h }(hjYyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj )}(hj h]h*}(hjgyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjyubj)}(hrcdevh]hrcdev}(hjtyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjxubeh}(h]h ]h"]h$]h&]hhuh1j hjjxhhhj|xhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjfxhhhj|xhKubah}(h]jaxah ](jjeh"]h$]h&]jj)jhuh1jhj|xhKhjcxhhubj )}(hhh]h)}(h,resource managed reset_controller_register()h]h,resource managed reset_controller_register()}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjyhhubah}(h]h ]h"]h$]h&]uh1jhjcxhhhj|xhKubeh}(h]h ](jfunctioneh"]h$]h&]j@jjAjyjBjyjCjDjEuh1jhhhjohNhNubjG)}(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]jQ)}(hjyh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjyubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjyubj)}(hhh](j)}(hH``struct device *dev`` device that is registering this reset controller h](j)}(h``struct device *dev``h]j)}(hjyh]hstruct device *dev}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjyubj)}(hhh]h)}(h0device that is registering this reset controllerh]h0device that is registering this reset controller}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhKhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhKhjyubj)}(h\``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller device h](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjzh]h"struct reset_controller_dev *rcdev}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjzubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hj1zhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-zhKhj.zubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj-zhKhjyubeh}(h]h ]h"]h$]h&]uh1jhjyubh)}(h**Description**h]jQ)}(hjSzh]h Description}(hjUzhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhjQzubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjyubh)}(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.}(hjizhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:215: ./drivers/reset/core.chKhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jFhjohhhNhNubeh}(h]reset-controller-driver-apiah ]h"]reset controller driver apiah$]h&]uh1hhj@hhhhhKubeh}(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_handlerjzerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_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_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jzjzj)j&j!jjjjjjjjjjMjJjtjqjjj=j:j5j2jzjzjojojzjzu nametypes}(jzj)j!jjjjjMjtjj=j5jzjojzuh}(jzhj&hjjcjj,jjgjjjjjJjjqjPjjwj:jj2jjzj@jojjjjRjWj1 j6 j j jMjRjjjFjKjjjljqjj jejjj j jm"jr"j%j%ju'jz'j)j)jU,jZ,j.j.j0j0j(3j-3j5j5j08j58j:j:j8=j==j?j?j@BjEBjDjDjFjFjIjIjALjFLjNjNjQjQjSjSj VjVjlXjqXj[j[jL]jQ]jv_j{_jaj ajbjbjSdjXdjejej>gjCgjhjhjmjjrjjkjkj/nj4njzjoj pj%pjqjqjujujwj wjaxjfxu 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.