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]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}(hhhhhNhNubah}(h]h ]h"]h$]h&]name API referenceh#reset-consumer-apiuh1hhhubh^), which allows peripheral drivers to request control over their reset input signals, and the }(hhhhhNhNubh)}(hJ`reset controller driver interface <#reset-controller-driver-interface>`__h]h!reset controller driver interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]name!reset controller driver interfaceh"#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 referenceh#reset-controller-driver-apiuh1hhhubh{), which is used by drivers for reset controller devices to register their reset controls to provide them to the consumers.}(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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hGlossaryh]hGlossary}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhhhhhKubh)}(hBThe reset controller API uses these terms with a specific meaning:h]hBThe reset controller API uses these terms with a specific meaning:}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjOhhubh)}(h Reset lineh]h Reset line}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjOhhubh 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&]uh1hhhhKhj~ubah}(h]h ]h"]h$]h&]uh1j|hhhKhjOhhubh)}(h Reset controlh]h Reset control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjOhhubj})}(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&]uh1j|hhhK$hjOhhubh)}(hReset controllerh]hReset controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjOhhubj})}(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&]uh1j|hhhK.hjOhhubh)}(hReset consumerh]hReset consumer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjOhhubj})}(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&]uh1j|hhhK3hjOhhubeh}(h]glossaryah ]h"]glossaryah$]h&]uh1hhhhhhhhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hConsumer driver interfaceh]hConsumer driver interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK7ubh)}(hXThis interface provides an API that is similar to the kernel clock framework. Consumer drivers use get and put operations to acquire and release reset controls. Functions are provided to assert and deassert the controlled reset lines, trigger reset pulses, or to query reset line status.h]hXThis interface provides an API that is similar to the kernel clock framework. Consumer drivers use get and put operations to acquire and release reset controls. Functions are provided to assert and deassert the controlled reset lines, trigger reset pulses, or to query reset line status.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjhhubh)}(hWhen requesting reset controls, consumers can use symbolic names for their reset inputs, which are mapped to an actual reset control on an existing reset controller device by the core.h]hWhen requesting reset controls, consumers can use symbolic names for their reset inputs, which are mapped to an actual reset control on an existing reset controller device by the core.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjhhubh)}(hA stub version of this API is provided when the reset controller framework is not in use in order to minimize the need to use ifdefs.h]hA stub version of this API is provided when the reset controller framework is not in use in order to minimize the need to use ifdefs.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjhhubh)}(hhh](h)}(hShared and exclusive resetsh]hShared and exclusive resets}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhKGubh)}(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.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjShhubh)}(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.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjShhubh)}(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&]uh1hhhhKWhjShhubeh}(h]shared-and-exclusive-resetsah ]h"]shared and exclusive resetsah$]h&]uh1hhjhhhhhKGubh)}(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&]uh1hhjhhhhhK\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&]uh1hhjhhhhhKkubh)}(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 }(hjhhhNhNubh)}(h/`reset control array <#reset-control-arrays>`__h]hreset control array}(hjhhhNhNubah}(h]h ]h"]h$]h&]namereset control arrayh#reset-control-arraysuh1hhjubh handle as its input parameter.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]queryingah ]h"]queryingah$]h&]uh1hhjhhhhhK}ubh)}(hhh](h)}(hOptional resetsh]hOptional resets}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKubh)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj<hhubeh}(h]optional-resetsah ]h"]optional resetsah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hReset control arraysh]hReset control arrays}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKubh)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjchhubeh}(h]reset-control-arraysah ]h"]reset control arraysah$]h&]uh1hhjhhhhhKubeh}(h]consumer-driver-interfaceah ]h"]consumer driver interfaceah$]h&]uh1hhhhhhhhK7ubh)}(hhh](h)}(h!Reset controller driver interfaceh]h!Reset controller driver interface}(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)}(hjh]hreset_control_ops}(hjhhhNhNubah}(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}(hj/hhhNhNubah}(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 }(hj=hhhNhNubh)}(h,`reset consumer API <#reset-consumer-api>`__h]hreset consumer API}(hjEhhhNhNubah}(h]h ]h"]h$]h&]namereset consumer APIh#reset-consumer-apiuh1hhj=ubh and the }(hj=hhhNhNubh)}(h>`reset controller driver API <#reset-controller-driver-api>`__h]hreset controller driver API}(hjZhhhNhNubah}(h]h ]h"]h$]h&]namereset controller driver APIh#reset-controller-driver-apiuh1hhj=ubh.}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj,hhubh)}(hhh](h)}(hReset consumer APIh]hReset consumer API}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhhhhhKubh)}(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&]uh1hhhhKhjuhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single"reset_control_bulk_data (C struct)c.reset_control_bulk_datahNtauh1jhjuhhhNhNubhdesc)}(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.}(hjhhhNhNubah}(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&]uh1j hjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]domainjobjtypej(desctypej(noindex noindexentrynocontentsentryuh1jhhhjuhNhNubh 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}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj8ubh:}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj4ubh 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; };}hjYsbah}(h]h ]h"]h$]h&]hhuh1jWhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj4ubh)}(h **Members**h]j=)}(hjjh]hMembers}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjhubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhKhj4ubhdefinition_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)}(hah ](jjeh"]h$]h&]jj )j huh1jhjYhKhj@hhubj )}(hhh]h)}(hFlags that can be passed to the reset_control_get functions to determine the type of reset control. These values cannot be OR'd.h]hFlags that can be passed to the reset_control_get functions to determine the type of reset control. These values cannot be OR’d.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhK"hjhhubah}(h]h ]h"]h$]h&]uh1j hj@hhhjYhKubeh}(h]h ](jenumeh"]h$]h&]j,jj-jj.jj/j0j1uh1jhhhjuhNhNubj3)}(hX**Constants** ``RESET_CONTROL_EXCLUSIVE`` exclusive, acquired, ``RESET_CONTROL_EXCLUSIVE_DEASSERTED`` exclusive, acquired, deasserted ``RESET_CONTROL_EXCLUSIVE_RELEASED`` exclusive, released, ``RESET_CONTROL_SHARED`` shared ``RESET_CONTROL_SHARED_DEASSERTED`` shared, deasserted ``RESET_CONTROL_OPTIONAL_EXCLUSIVE`` optional, exclusive, acquired ``RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED`` optional, exclusive, acquired, deasserted ``RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED`` optional, exclusive, released ``RESET_CONTROL_OPTIONAL_SHARED`` optional, shared ``RESET_CONTROL_OPTIONAL_SHARED_DEASSERTED`` optional, shared, deassertedh](h)}(h **Constants**h]j=)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhK&hjubj)}(hhh](j)}(h1``RESET_CONTROL_EXCLUSIVE`` exclusive, acquired, h](j)}(h``RESET_CONTROL_EXCLUSIVE``h]j)}(hjh]hRESET_CONTROL_EXCLUSIVE}(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.hhK)hjubj)}(hhh]h)}(hexclusive, acquired,h]hexclusive, acquired,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK)hjubj)}(hG``RESET_CONTROL_EXCLUSIVE_DEASSERTED`` exclusive, acquired, deasserted h](j)}(h&``RESET_CONTROL_EXCLUSIVE_DEASSERTED``h]j)}(hjh]h"RESET_CONTROL_EXCLUSIVE_DEASSERTED}(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.hhK,hjubj)}(hhh]h)}(hexclusive, acquired, deassertedh]hexclusive, acquired, deasserted}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK,hjubj)}(h:``RESET_CONTROL_EXCLUSIVE_RELEASED`` exclusive, released, h](j)}(h$``RESET_CONTROL_EXCLUSIVE_RELEASED``h]j)}(hjAh]h RESET_CONTROL_EXCLUSIVE_RELEASED}(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.hhK/hj;ubj)}(hhh]h)}(hexclusive, released,h]hexclusive, released,}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhK/hjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhK/hjubj)}(h ``RESET_CONTROL_SHARED`` shared h](j)}(h``RESET_CONTROL_SHARED``h]j)}(hjzh]hRESET_CONTROL_SHARED}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhK2hjtubj)}(hhh]h)}(hsharedh]hshared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(h7``RESET_CONTROL_SHARED_DEASSERTED`` shared, deasserted h](j)}(h#``RESET_CONTROL_SHARED_DEASSERTED``h]j)}(hjh]hRESET_CONTROL_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.hhK5hjubj)}(hhh]h)}(hshared, deassertedh]hshared, deasserted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK5hjubj)}(hC``RESET_CONTROL_OPTIONAL_EXCLUSIVE`` optional, exclusive, acquired h](j)}(h$``RESET_CONTROL_OPTIONAL_EXCLUSIVE``h]j)}(hjh]h RESET_CONTROL_OPTIONAL_EXCLUSIVE}(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.hhK8hjubj)}(hhh]h)}(hoptional, exclusive, acquiredh]hoptional, exclusive, acquired}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(hZ``RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED`` optional, exclusive, acquired, deasserted h](j)}(h/``RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED``h]j)}(hj%h]h+RESET_CONTROL_OPTIONAL_EXCLUSIVE_DEASSERTED}(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.hhK;hjubj)}(hhh]h)}(h)optional, exclusive, acquired, deassertedh]h)optional, exclusive, acquired, deasserted}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hK;hj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hK;hjubj)}(hL``RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED`` optional, exclusive, released h](j)}(h-``RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED``h]j)}(hj^h]h)RESET_CONTROL_OPTIONAL_EXCLUSIVE_RELEASED}(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.hhK>hjXubj)}(hhh]h)}(hoptional, exclusive, releasedh]hoptional, exclusive, released}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK>hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshK>hjubj)}(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.hhKAhjubj)}(hhh]h)}(hoptional, sharedh]hoptional, shared}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjubj)}(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.hhKChjubj)}(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.hhKDhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKChjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_control_get_exclusive (C function)c.reset_control_get_exclusivehNtauh1jhjuhhhNhNubj)}(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 }(hj8 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj& hhhj7 hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjI hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF ubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjK modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jd ASTIdentifier)}j_ reset_control_get_exclusivesbc.reset_control_get_exclusiveasbuh1hhj& hhhj7 hMubj)}(h h]h }(hjr hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj& hhhj7 hMubhdesc_sig_punctuation)}(h*h]h*}(hj hhhNhNubah}(h]h ]pah"]h$]h&]uh1j hj& hhhj7 hMubj)}(hreset_control_get_exclusiveh]j)}(hjo h]hreset_control_get_exclusive}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj& hhhj7 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&] refdomainjreftypej_ reftargetj modnameN classnameNjc jf )}ji ]jm 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}(hj$ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj2 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubhdesc_sig_keyword_type)}(hcharh]hchar}(hjB hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j@ hj ubj)}(h h]h }(hjQ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hj_ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hidh]hid}(hjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubeh}(h]h ]h"]h$]h&]hhuh1j hj& hhhj7 hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj" hhhj7 hMubah}(h]j ah ](jjeh"]h$]h&]jj )j huh1jhj7 hMhj 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.hhM hj hhubah}(h]h ]h"]h$]h&]uh1j hj hhhj7 hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j j.j j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj 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&]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]j=)}(hjK h]h Description}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjI 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.}(hja 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.}(hjp 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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-reset_control_bulk_get_exclusive (C function)"c.reset_control_bulk_get_exclusivehNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hj hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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&] refdomainjreftypej_ reftargetj modnameN classnameNjc jf )}ji ]jl )}j_ j sb"c.reset_control_bulk_get_exclusiveasbuh1hhj ubj)}(h h]h }(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hj7 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hdevh]hdev}(hjD hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj ubj )}(h int num_rstcsh](jA )}(hinth]hint}(hj] hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjY ubj)}(h h]h }(hjk hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubj)}(h num_rstcsh]h num_rstcs}(hjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY 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&] refdomainjreftypej_ reftargetj modnameN classnameNjc jf )}ji ]j% "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 )j huh1jhj 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&]uh1j hj hhhj hM+ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j+ j.j+ j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj5 h]h Parameters}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj3 ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM&hj/ ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjT h]hstruct device *dev}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM$hjN ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji hM$hjj ubah}(h]h ]h"]h$]h&]uh1jhjN ubeh}(h]h ]h"]h$]h&]uh1jhji hM$hjK 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%hjK 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&hjK ubeh}(h]h ]h"]h$]h&]uh1jhj/ ubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM(hj/ 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM(hj/ ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1reset_control_get_exclusive_released (C function)&c.reset_control_get_exclusive_releasedhNtauh1jhjuhhhNhNubj)}(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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM@ubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjShM@ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjgmodnameN classnameNjc jf )}ji ]jl )}j_ $reset_control_get_exclusive_releasedsb&c.reset_control_get_exclusive_releasedasbuh1hhjBhhhjShM@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjShM@ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBhhhjShM@ubj)}(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&]hhuh1jhjBhhhjShM@ubj )}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]j&c.reset_control_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hj hhhNhNubah}(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}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjA )}(hcharh]hchar}(hjKhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj,ubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj )}(hj h]h*}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,ubj)}(hidh]hid}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjBhhhjShM@ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj>hhhjShM@ubah}(h]j9ah ](jjeh"]h$]h&]jj )j huh1jhjShM@hj;hhubj )}(hhh]h)}(hJLookup and obtain a temoprarily exclusive reference to a reset controller.h]hJLookup and obtain a temoprarily exclusive reference to a reset controller.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM3hjhhubah}(h]h ]h"]h$]h&]uh1j hj;hhhjShM@ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jj.jj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM7hjubj)}(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.hhM6hjubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(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.hhM7hjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hM7hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM7hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j=)}(hjSh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjQubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM9hjubh)}(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.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM9hjubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6reset_control_bulk_get_exclusive_released (C function)+c.reset_control_bulk_get_exclusive_releasedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMUubj)}(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&]hhuh1jhjhhhjhMUubj )}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ jsb+c.reset_control_bulk_get_exclusive_releasedasbuh1hhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hj0hhhNhNubah}(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 )}(h int num_rstcsh](jA )}(hinth]hint}(hjVhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjRubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj)}(h num_rstcsh]h num_rstcs}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubeh}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]j+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 hjhhhjhMUubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMUubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhMUhjhhubj )}(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.hhMHhj hhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMUubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j$j.j$j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj.h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj,ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMLhj(ubj)}(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}(hjOhhhNhNubah}(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.hhMKhjGubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMKhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMKhjDubj)}(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.hhMLhjubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMLhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMLhjDubj)}(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.hhMMhjubj)}(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&]uh1hhjhMMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMMhjDubeh}(h]h ]h"]h$]h&]uh1jhj(ubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMOhj(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMOhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(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_releasedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hj?hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj;hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMjubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhjMhMjubj)}(h2reset_control_bulk_get_optional_exclusive_releasedh]j)}(h2reset_control_bulk_get_optional_exclusive_releasedh]h2reset_control_bulk_get_optional_exclusive_released}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj;hhhjMhMjubj )}(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&]uh1jhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ jbsb4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjxubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjtubj )}(h int num_rstcsh](jA )}(hinth]hint}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hjhhhNhNubah}(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 hjtubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjCmodnameN classnameNjc jf )}ji ]j4c.reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hrstcsh]hrstcs}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjtubeh}(h]h ]h"]h$]h&]hhuh1j hj;hhhjMhMjubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj7hhhjMhMjubah}(h]j2ah ](jjeh"]h$]h&]jj )j huh1jhjMhMjhj4hhubj )}(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.hhM]hjhhubah}(h]h ]h"]h$]h&]uh1j hj4hhhjMhMjubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jj.jj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMahjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM`hjubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjh]h int num_rstcs}(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.hhMahjubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMahj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hMahjubj)}(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)}(hjWh]h%struct reset_control_bulk_data *rstcs}(hjYhhhNhNubah}(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.hhMbhjQubj)}(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}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMbhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhMbhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMdhjubh)}(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.hhMdhjubh)}(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.hhMhhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%reset_control_get_shared (C function)c.reset_control_get_sharedhNtauh1jhjuhhhNhNubj)}(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.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ reset_control_get_sharedsbc.reset_control_get_sharedasbuh1hhjhhhjhMubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj )}(hj h]h*}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhhhjhMubj)}(hreset_control_get_sharedh]j)}(hj#h]hreset_control_get_shared}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj )}(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 }(hjmhhhNhNubah}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]j!c.reset_control_get_sharedasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj\ubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubj )}(hconst char *idh](j)}(hj& h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjA )}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hidh]hid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhMhjhhubj )}(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.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMshj;hhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jVj.jVj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj`h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj^ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwhjZubj)}(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&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMuhjyubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMuhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMuhjvubj)}(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.hhMvhjubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMvhjvubeh}(h]h ]h"]h$]h&]uh1jhjZubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMxhjZubh)}(hReturns a struct reset_control or IS_ERR() condition containing errno. This function is intended for use with reset-controls which are shared between hardware blocks.h]hReturns a struct reset_control or IS_ERR() condition containing errno. This function is intended for use with reset-controls which are shared between hardware blocks.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMxhjZubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM|hjZubh)}(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.hhMhjZubh)}(hUse of id names is optional.h]hUse of id names is optional.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*reset_control_bulk_get_shared (C function)c.reset_control_bulk_get_sharedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjehhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjahhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjshMubj)}(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&]hhuh1jhjahhhjshMubj )}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ 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](jA )}(hinth]hint}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_rstcsh]h num_rstcs}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjimodnameN classnameNjc jf )}ji ]jc.reset_control_bulk_get_sharedasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjahhhjshMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj]hhhjshMubah}(h]jXah ](jjeh"]h$]h&]jj )j huh1jhjshMhjZhhubj )}(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&]uh1j hjZhhhjshMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jj.jj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(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.hhMhjubj)}(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&]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)}(hjDh]h int num_rstcs}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMhjubj)}(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}(hjhhhNhNubah}(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.hhMhjwubj)}(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&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1reset_control_get_optional_exclusive (C function)&c.reset_control_get_optional_exclusivehNtauh1jhjuhhhNhNubj)}(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&]uh1jhjhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ $reset_control_get_optional_exclusivesb&c.reset_control_get_optional_exclusiveasbuh1hhjhhhj hMubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hMubj )}(hj h]h*}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhhhj hMubj)}(h$reset_control_get_optional_exclusiveh]j)}(hj:h]h$reset_control_get_optional_exclusive}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj hMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]j8&c.reset_control_get_optional_exclusiveasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjoubj )}(hconst char *idh](j)}(hj& h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjA )}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hjhhhNhNubah}(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 hjoubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj hMubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhj hMhjhhubj )}(hhh]h)}(h&optional reset_control_get_exclusive()h]h&optional reset_control_get_exclusive()}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjRhhubah}(h]h ]h"]h$]h&]uh1j hjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jmj.jmj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjwh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjuubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjqubj)}(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&]uh1jhjqubh)}(h**Description**h]j=)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjqubh)}(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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjqubh)}(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.hhMhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6reset_control_bulk_get_optional_exclusive (C function)+c.reset_control_bulk_get_optional_exclusivehNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hj^hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjZhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhjlhMubj)}(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&]uh1jhj{ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjZhhhjlhMubj )}(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&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jl )}j_ 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](jA )}(hinth]hint}(hj hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h num_rstcsh]h num_rstcs}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hjOhhhNhNubah}(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&] refdomainjreftypej_ reftargetjbmodnameN classnameNjc jf )}ji ]j+c.reset_control_bulk_get_optional_exclusiveasbuh1hhj>ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>ubj)}(hrstcsh]hrstcs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjZhhhjlhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjVhhhjlhMubah}(h]jQah ](jjeh"]h$]h&]jj )j huh1jhjlhMhjShhubj )}(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&]uh1j hjShhhjlhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jj.jj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(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)}(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.hhMhj7ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjubj)}(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)}(hjvh]h%struct reset_control_bulk_data *rstcs}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjpubj)}(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&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j=)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubah}(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)}(h)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}(hjY)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU)hMhjV)ubah}(h]h ]h"]h$]h&]uh1jhj:)ubeh}(h]h ]h"]h$]h&]uh1jhjU)hMhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(ubh)}(h**Description**h]j=)}(hj{)h]h Description}(hj})hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjy)ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubh)}(hOptional variant of of_reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.h]hOptional variant of of_reset_control_get_exclusive(). If the requested reset is not specified in the device tree, this function returns NULL instead of an error.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj(ubh)}(hFReturns a struct reset_control or IS_ERR() condition containing errno.h]hFReturns a struct reset_control or IS_ERR() condition containing errno.}(hj)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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(of_reset_control_get_shared (C function)c.of_reset_control_get_sharedhNtauh1jhjuhhhNhNubj)}(hhh](j)}(h]struct reset_control * of_reset_control_get_shared (struct device_node *node, const char *id)h]j)}(h[struct reset_control *of_reset_control_get_shared(struct device_node *node, const char *id)h](j)}(hjh]hstruct}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hM ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj)modnameN classnameNjc jf )}ji ]jl )}j_ of_reset_control_get_sharedsbc.of_reset_control_get_sharedasbuh1hhj)hhhj)hM ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hM ubj )}(hj h]h*}(hj,*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)hhhj)hM ubj)}(hof_reset_control_get_sharedh]j)}(hj*h]hof_reset_control_get_shared}(hj=*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9*ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj)hhhj)hM ubj )}(h*(struct device_node *node, const char *id)h](j )}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hjX*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT*ubj)}(h h]h }(hje*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT*ubh)}(hhh]j)}(h device_nodeh]h device_node}(hjv*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs*ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjx*modnameN classnameNjc jf )}ji ]j*c.of_reset_control_get_sharedasbuh1hhjT*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT*ubj )}(hj h]h*}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjT*ubj)}(hnodeh]hnode}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjP*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*ubjA )}(hcharh]hchar}(hj*hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj*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)}(hidh]hid}(hj +hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjP*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 )j huh1jhj)hM hj)hhubj )}(hhh]h)}(h;Lookup and obtain a shared reference to a reset controller.h]h;Lookup and obtain a shared reference to a reset controller.}(hj6+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj3+hhubah}(h]h ]h"]h$]h&]uh1j hj)hhhj)hM ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jN+j.jN+j/j0j1uh1jhhhjuhNhNubj3)}(hX**Parameters** ``struct device_node *node`` device to be reset by the controller ``const char *id`` reset line name **Description** When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs. Calling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno. Use of id names is optional.h](h)}(h**Parameters**h]j=)}(hjX+h]h Parameters}(hjZ+hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjV+ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjR+ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hjw+h]hstruct device_node *node}(hjy+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju+ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjq+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&]uh1jhjq+ubeh}(h]h ]h"]h$]h&]uh1jhj+hMhjn+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&]uh1hhj+hMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+hMhjn+ubeh}(h]h ]h"]h$]h&]uh1jhjR+ubh)}(h**Description**h]j=)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj+ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjR+ubh)}(hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.h]hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjR+ubh)}(hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.h]hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjR+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.hhMhjR+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j4of_reset_control_get_exclusive_by_index (C function))c.of_reset_control_get_exclusive_by_indexhNtauh1jhjuhhhNhNubj)}(hhh](j)}(hdstruct reset_control * of_reset_control_get_exclusive_by_index (struct device_node *node, int index)h]j)}(hbstruct reset_control *of_reset_control_get_exclusive_by_index(struct device_node *node, int index)h](j)}(hjh]hstruct}(hjN,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ,hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM1ubj)}(h h]h }(hj\,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ,hhhj[,hM1ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjm,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjo,modnameN classnameNjc jf )}ji ]jl )}j_ 'of_reset_control_get_exclusive_by_indexsb)c.of_reset_control_get_exclusive_by_indexasbuh1hhjJ,hhhj[,hM1ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ,hhhj[,hM1ubj )}(hj h]h*}(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJ,hhhj[,hM1ubj)}(h'of_reset_control_get_exclusive_by_indexh]j)}(hj,h]h'of_reset_control_get_exclusive_by_index}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjJ,hhhj[,hM1ubj )}(h%(struct device_node *node, int index)h](j )}(hstruct device_node *nodeh](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 device_nodeh]h device_node}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj,modnameN classnameNjc jf )}ji ]j,)c.of_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)}(hnodeh]hnode}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj,ubj )}(h int indexh](jA )}(hinth]hint}(hj8-hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj4-ubj)}(h h]h }(hjF-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4-ubj)}(hindexh]hindex}(hjT-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4-ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj,ubeh}(h]h ]h"]h$]h&]hhuh1j hjJ,hhhj[,hM1ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjF,hhhj[,hM1ubah}(h]jA,ah ](jjeh"]h$]h&]jj )j huh1jhj[,hM1hjC,hhubj )}(hhh]h)}(hHLookup and obtain an exclusive reference to a reset controller by index.h]hHLookup and obtain an exclusive reference to a reset controller by index.}(hj~-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&]uh1j hjC,hhhj[,hM1ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j-j.j-j/j0j1uh1jhhhjuhNhNubj3)}(hX:**Parameters** ``struct device_node *node`` device to be reset by the controller ``int index`` index of the reset controller **Description** This is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h](h)}(h**Parameters**h]j=)}(hj-h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj-ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM+hj-ubj)}(hhh](j)}(hB``struct device_node *node`` device to be reset by the controller h](j)}(h``struct device_node *node``h]j)}(hj-h]hstruct device_node *node}(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$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&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hM*hj-ubj)}(h,``int index`` index of the reset controller h](j)}(h ``int index``h]j)}(hj-h]h int index}(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)}(hindex of the reset controllerh]hindex of the reset controller}(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&]uh1jhj-ubh)}(h**Description**h]j=)}(hj3.h]h Description}(hj5.hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj1.ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM-hj-ubh)}(hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h]hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.}(hjI.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM-hj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j1of_reset_control_get_shared_by_index (C function)&c.of_reset_control_get_shared_by_indexhNtauh1jhjuhhhNhNubj)}(hhh](j)}(hastruct reset_control * of_reset_control_get_shared_by_index (struct device_node *node, int index)h]j)}(h_struct reset_control *of_reset_control_get_shared_by_index(struct device_node *node, int index)h](j)}(hjh]hstruct}(hjx.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt.hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMMubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt.hhhj.hMMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj.modnameN classnameNjc jf )}ji ]jl )}j_ $of_reset_control_get_shared_by_indexsb&c.of_reset_control_get_shared_by_indexasbuh1hhjt.hhhj.hMMubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt.hhhj.hMMubj )}(hj h]h*}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjt.hhhj.hMMubj)}(h$of_reset_control_get_shared_by_indexh]j)}(hj.h]h$of_reset_control_get_shared_by_index}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjt.hhhj.hMMubj )}(h%(struct device_node *node, int index)h](j )}(hstruct device_node *nodeh](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 device_nodeh]h device_node}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj /ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj/modnameN classnameNjc jf )}ji ]j.&c.of_reset_control_get_shared_by_indexasbuh1hhj.ubj)}(h h]h }(hj./hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj )}(hj h]h*}(hjhj/ubh)}(hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.h]hX^When a reset-control is shared, the behavior of reset_control_assert / deassert is changed, the reset-core will keep track of a deassert_count and only (re-)assert the reset after reset_control_assert has been called as many times as reset_control_deassert was called. Also see the remark about shared reset-controls in the reset_control_assert docs.}(hjs0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM>hj/ubh)}(hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.h]hXCalling reset_control_assert without first calling reset_control_deassert is not allowed on a shared reset control. Calling reset_control_reset is also not allowed on a shared reset control. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMDhj/ubh)}(hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.h]hThis is to be used to perform a list of resets for a device or power domain in whatever order. Returns a struct reset_control or IS_ERR() condition containing errno.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMIhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-devm_reset_control_get_exclusive (C function)"c.devm_reset_control_get_exclusivehNtauh1jhjuhhhNhNubj)}(hhh](j)}(h\struct reset_control * devm_reset_control_get_exclusive (struct device *dev, const char *id)h]j)}(hZstruct reset_control *devm_reset_control_get_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM_ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hM_ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj0modnameN classnameNjc jf )}ji ]jl )}j_ devm_reset_control_get_exclusivesb"c.devm_reset_control_get_exclusiveasbuh1hhj0hhhj0hM_ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0hhhj0hM_ubj )}(hj h]h*}(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0hhhj0hM_ubj)}(h devm_reset_control_get_exclusiveh]j)}(hj0h]h devm_reset_control_get_exclusive}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj0hhhj0hM_ubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj:1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj61ubj)}(h h]h }(hjG1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj61ubh)}(hhh]j)}(hdeviceh]hdevice}(hjX1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU1ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjZ1modnameN classnameNjc jf )}ji ]j0"c.devm_reset_control_get_exclusiveasbuh1hhj61ubj)}(h h]h }(hjv1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj61ubj )}(hj h]h*}(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj61ubj)}(hdevh]hdev}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj61ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj21ubj )}(hconst char *idh](j)}(hj& h]hconst}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjA )}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj )}(hj h]h*}(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1ubj)}(hidh]hid}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj21ubeh}(h]h ]h"]h$]h&]hhuh1j hj0hhhj0hM_ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj0hhhj0hM_ubah}(h]j0ah ](jjeh"]h$]h&]jj )j huh1jhj0hM_hj0hhubj )}(hhh]h)}(h.resource managed reset_control_get_exclusive()h]h.resource managed reset_control_get_exclusive()}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMThj2hhubah}(h]h ]h"]h$]h&]uh1j hj0hhhj0hM_ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j02j.j02j/j0j1uh1jhhhjuhNhNubj3)}(hXV**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive() for more information.h](h)}(h**Parameters**h]j=)}(hj:2h]h Parameters}(hj<2hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj82ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMXhj42ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hjY2h]hstruct device *dev}(hj[2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMVhjS2ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjr2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjn2hMVhjo2ubah}(h]h ]h"]h$]h&]uh1jhjS2ubeh}(h]h ]h"]h$]h&]uh1jhjn2hMVhjP2ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj2h]hconst char *id}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMWhj2ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMWhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMWhjP2ubeh}(h]h ]h"]h$]h&]uh1jhj42ubh)}(h**Description**h]j=)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj2ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMYhj42ubh)}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMYhj42ubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM]hj42ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j8devm_reset_control_get_exclusive_deasserted (C function)-c.devm_reset_control_get_exclusive_deassertedhNtauh1jhjuhhhNhNubj)}(hhh](j)}(hgstruct reset_control * devm_reset_control_get_exclusive_deasserted (struct device *dev, const char *id)h]j)}(hestruct reset_control *devm_reset_control_get_exclusive_deasserted(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj!3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMsubj)}(h h]h }(hj/3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj.3hMsubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj@3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=3ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjB3modnameN classnameNjc jf )}ji ]jl )}j_ +devm_reset_control_get_exclusive_deassertedsb-c.devm_reset_control_get_exclusive_deassertedasbuh1hhj3hhhj.3hMsubj)}(h h]h }(hja3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj.3hMsubj )}(hj h]h*}(hjo3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3hhhj.3hMsubj)}(h+devm_reset_control_get_exclusive_deassertedh]j)}(hj^3h]h+devm_reset_control_get_exclusive_deasserted}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|3ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj3hhhj.3hMsubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubh)}(hhh]j)}(hdeviceh]hdevice}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj3modnameN classnameNjc jf )}ji ]j\3-c.devm_reset_control_get_exclusive_deassertedasbuh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj )}(hj h]h*}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubj)}(hdevh]hdev}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj3ubj )}(hconst char *idh](j)}(hj& h]hconst}(hj 4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubjA )}(hcharh]hchar}(hj&4hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj4ubj)}(h h]h }(hj44hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj )}(hj h]h*}(hjB4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4ubj)}(hidh]hid}(hjO4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj3ubeh}(h]h ]h"]h$]h&]hhuh1j hj3hhhj.3hMsubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj3hhhj.3hMsubah}(h]j3ah ](jjeh"]h$]h&]jj )j huh1jhj.3hMshj3hhubj )}(hhh]h)}(hIresource managed reset_control_get_exclusive() + reset_control_deassert()h]hIresource managed reset_control_get_exclusive() + reset_control_deassert()}(hjy4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMghjv4hhubah}(h]h ]h"]h$]h&]uh1j hj3hhhj.3hMsubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j4j.j4j/j0j1uh1jhhhjuhNhNubj3)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``const char *id`` reset line name **Description** Managed reset_control_get_exclusive() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach. See reset_control_get_exclusive() for more information.h](h)}(h**Parameters**h]j=)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj4ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMkhj4ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj4h]hstruct device *dev}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMjhj4ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMjhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMjhj4ubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj4h]hconst char *id}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMkhj4ubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMkhj 5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj5hMkhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4ubh)}(h**Description**h]j=)}(hj.5h]h Description}(hj05hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj,5ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMmhj4ubh)}(hManaged reset_control_get_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_exclusive() + reset_control_deassert(). For reset controllers returned from this function, reset_control_assert() + reset_control_put() is called automatically on driver detach.}(hjD5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMmhj4ubh)}(h7See reset_control_get_exclusive() for more information.h]h7See reset_control_get_exclusive() for more information.}(hjS5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMqhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j2devm_reset_control_bulk_get_exclusive (C function)'c.devm_reset_control_bulk_get_exclusivehNtauh1jhjuhhhNhNubj)}(hhh](j)}(htint devm_reset_control_bulk_get_exclusive (struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h]j)}(hsint devm_reset_control_bulk_get_exclusive(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](jA )}(hinth]hint}(hj5hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj~5hhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~5hhhj5hMubj)}(h%devm_reset_control_bulk_get_exclusiveh]j)}(h%devm_reset_control_bulk_get_exclusiveh]h%devm_reset_control_bulk_get_exclusive}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj~5hhhj5hMubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubh)}(hhh]j)}(hdeviceh]hdevice}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj5modnameN classnameNjc jf )}ji ]jl )}j_ j5sb'c.devm_reset_control_bulk_get_exclusiveasbuh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj )}(hj h]h*}(hj 6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5ubj)}(hdevh]hdev}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5ubj )}(h int num_rstcsh](jA )}(hinth]hint}(hj16hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj-6ubj)}(h h]h }(hj?6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-6ubj)}(h num_rstcsh]h num_rstcs}(hjM6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5ubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjf6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb6ubj)}(h h]h }(hjs6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb6ubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj6modnameN classnameNjc jf )}ji ]j5'c.devm_reset_control_bulk_get_exclusiveasbuh1hhjb6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb6ubj )}(hj h]h*}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjb6ubj)}(hrstcsh]hrstcs}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj5ubeh}(h]h ]h"]h$]h&]hhuh1j hj~5hhhj5hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjz5hhhj5hMubah}(h]ju5ah ](jjeh"]h$]h&]jj )j huh1jhj5hMhjw5hhubj )}(hhh]h)}(h3resource managed reset_control_bulk_get_exclusive()h]h3resource managed reset_control_bulk_get_exclusive()}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMzhj6hhubah}(h]h ]h"]h$]h&]uh1j hjw5hhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j6j.j6j/j0j1uh1jhhhjuhNhNubj3)}(hX**Parameters** ``struct device *dev`` device to be reset by the controller ``int num_rstcs`` number of entries in rstcs array ``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set **Description** Managed reset_control_bulk_get_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach. See reset_control_bulk_get_exclusive() for more information.h](h)}(h**Parameters**h]j=)}(hj 7h]h Parameters}(hj 7hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj7ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM~hj7ubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj(7h]hstruct device *dev}(hj*7hhhNhNubah}(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.hhM|hj"7ubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjA7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=7hM|hj>7ubah}(h]h ]h"]h$]h&]uh1jhj"7ubeh}(h]h ]h"]h$]h&]uh1jhj=7hM|hj7ubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hja7h]h int num_rstcs}(hjc7hhhNhNubah}(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.hhM}hj[7ubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjz7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv7hM}hjw7ubah}(h]h ]h"]h$]h&]uh1jhj[7ubeh}(h]h ]h"]h$]h&]uh1jhjv7hM}hj7ubj)}(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.hhM~hj7ubj)}(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&]uh1hhj7hM~hj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hM~hj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]j=)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj7ubah}(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=hMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjP=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM=ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjR=modnameN classnameNjc jf )}ji ]jl )}j_ 2devm_reset_control_get_optional_exclusive_releasedsb4c.devm_reset_control_get_optional_exclusive_releasedasbuh1hhj-=hhhj>=hMubj)}(h h]h }(hjq=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-=hhhj>=hMubj )}(hj h]h*}(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-=hhhj>=hMubj)}(h2devm_reset_control_get_optional_exclusive_releasedh]j)}(hjn=h]h2devm_reset_control_get_optional_exclusive_released}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj-=hhhj>=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&] refdomainjreftypej_ reftargetj=modnameN classnameNjc jf )}ji ]jl=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>ubjA )}(hcharh]hchar}(hj6>hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj>ubj)}(h h]h }(hjD>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj )}(hj h]h*}(hjR>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>ubj)}(hidh]hid}(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 )j huh1jhj>=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&]uh1j hj&=hhhj>=hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j>j.j>j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj>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&]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]j=)}(hj>?h]h Description}(hj@?hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjubh)}(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.}(hjT?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.}(hjc?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&]uh1j2hjuhhhNhNubj)}(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_releasedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hj?hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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&] refdomainjreftypej_ reftargetj?modnameN classnameNjc jf )}ji ]jl )}j_ 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](jA )}(hinth]hint}(hjA@hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj=@ubj)}(h h]h }(hjO@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=@ubj)}(h num_rstcsh]h num_rstcs}(hj]@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj?ubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjv@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr@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&] refdomainjreftypej_ reftargetj@modnameN classnameNjc jf )}ji ]j @9c.devm_reset_control_bulk_get_optional_exclusive_releasedasbuh1hhjr@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr@ubj )}(hj h]h*}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjr@ubj)}(hrstcsh]hrstcs}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr@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 )j huh1jhj?hMhj?hhubj )}(hhh]h)}(hEresource managed reset_control_bulk_optional_get_exclusive_released()h]hEresource managed reset_control_bulk_optional_get_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&]uh1j hj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jAj.jAj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjAubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj8Ah]hstruct device *dev}(hj:AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Aubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj2Aubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjQAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMAhMhjNAubah}(h]h ]h"]h$]h&]uh1jhj2Aubeh}(h]h ]h"]h$]h&]uh1jhjMAhMhj/Aubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjqAh]h int num_rstcs}(hjsAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoAubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjkAubj)}(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&]uh1jhjkAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhj/Aubj)}(hl``struct reset_control_bulk_data *rstcs`` array of struct reset_control_bulk_data with reset line names set h](j)}(h)``struct reset_control_bulk_data *rstcs``h]j)}(hjAh]h%struct reset_control_bulk_data *rstcs}(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&]uh1jhjAhMhj/Aubeh}(h]h ]h"]h$]h&]uh1jhjAubh)}(h**Description**h]j=)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjAubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubh)}(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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubh)}(hNSee reset_control_bulk_optional_get_exclusive_released() for more information.h]hNSee reset_control_bulk_optional_get_exclusive_released() for more information.}(hj BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*devm_reset_control_get_shared (C function)c.devm_reset_control_get_sharedhNtauh1jhjuhhhNhNubj)}(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}(hj9BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5BhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjGBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5BhhhjFBhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjXBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUBubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjZBmodnameN classnameNjc jf )}ji ]jl )}j_ devm_reset_control_get_sharedsbc.devm_reset_control_get_sharedasbuh1hhj5BhhhjFBhMubj)}(h h]h }(hjyBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5BhhhjFBhMubj )}(hj h]h*}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5BhhhjFBhMubj)}(hdevm_reset_control_get_sharedh]j)}(hjvBh]hdevm_reset_control_get_shared}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhj5BhhhjFBhMubj )}(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&] refdomainjreftypej_ reftargetjBmodnameN classnameNjc jf )}ji ]jtBc.devm_reset_control_get_sharedasbuh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj )}(hj h]h*}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBubj)}(hdevh]hdev}(hj ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjBubj )}(hconst char *idh](j)}(hj& h]hconst}(hj#ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h h]h }(hj0ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubjA )}(hcharh]hchar}(hj>ChhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjCubj)}(h h]h }(hjLChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj )}(hj h]h*}(hjZChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCubj)}(hidh]hid}(hjgChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjBubeh}(h]h ]h"]h$]h&]hhuh1j hj5BhhhjFBhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj1BhhhjFBhMubah}(h]j,Bah ](jjeh"]h$]h&]jj )j huh1jhjFBhMhj.Bhhubj )}(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&]uh1j hj.BhhhjFBhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jCj.jCj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjCubah}(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)}(hj Dh]hconst char *id}(hj DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Dubah}(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}(hj$DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj DhMhj!Dubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj DhMhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(h**Description**h]j=)}(hjFDh]h Description}(hjHDhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjDDubah}(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.}(hj\DhhhNhNubah}(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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j5devm_reset_control_get_shared_deasserted (C function)*c.devm_reset_control_get_shared_deassertedhNtauh1jhjuhhhNhNubj)}(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&] refdomainjreftypej_ reftargetjDmodnameN classnameNjc jf )}ji ]jl )}j_ (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 }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdeviceh]hdevice}(hj#EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Eubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj%EmodnameN classnameNjc jf )}ji ]jD*c.devm_reset_control_get_shared_deassertedasbuh1hhjEubj)}(h h]h }(hjAEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj )}(hj h]h*}(hjOEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubj)}(hdevh]hdev}(hj\EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjDubj )}(hconst char *idh](j)}(hj& h]hconst}(hjuEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqEubjA )}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjqEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqEubj )}(hj h]h*}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqEubj)}(hidh]hid}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqEubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjDubeh}(h]h ]h"]h$]h&]hhuh1j hjDhhhjDhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjDhhhjDhMubah}(h]j~Dah ](jjeh"]h$]h&]jj )j huh1jhjDhMhjDhhubj )}(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&]uh1j hjDhhhjDhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jEj.jEj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjFubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj$Fh]hstruct device *dev}(hj&FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"Fubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjFubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hj=FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9FhMhj:Fubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhj9FhMhjFubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj]Fh]hconst char *id}(hj_FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Fubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjWFubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjvFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrFhMhjsFubah}(h]h ]h"]h$]h&]uh1jhjWFubeh}(h]h ]h"]h$]h&]uh1jhjrFhMhjFubeh}(h]h ]h"]h$]h&]uh1jhjEubh)}(h**Description**h]j=)}(hjFh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjFubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjEubh)}(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.hhMhjEubh)}(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.hhMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/devm_reset_control_bulk_get_shared (C function)$c.devm_reset_control_bulk_get_sharedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjFhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjFhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjFhM 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&]uh1jhj Gubah}(h]h ](jjeh"]h$]h&]hhuh1jhjFhhhjFhM 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&]uh1jhj%Gubj)}(h h]h }(hj6GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Gubh)}(hhh]j)}(hdeviceh]hdevice}(hjGGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDGubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjIGmodnameN classnameNjc jf )}ji ]jl )}j_ jGsb$c.devm_reset_control_bulk_get_sharedasbuh1hhj%Gubj)}(h h]h }(hjgGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Gubj )}(hj h]h*}(hjuGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%Gubj)}(hdevh]hdev}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Gubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj!Gubj )}(h int num_rstcsh](jA )}(hinth]hint}(hjGhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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 hj!Gubj )}(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}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjGmodnameN classnameNjc jf )}ji ]jcG$c.devm_reset_control_bulk_get_sharedasbuh1hhjGubj)}(h h]h }(hj HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj )}(hj h]h*}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGubj)}(hrstcsh]hrstcs}(hj'HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj!Gubeh}(h]h ]h"]h$]h&]hhuh1j hjFhhhjFhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjFhhhjFhM ubah}(h]jFah ](jjeh"]h$]h&]jj )j huh1jhjFhM hjFhhubj )}(hhh]h)}(h0resource managed reset_control_bulk_get_shared()h]h0resource managed reset_control_bulk_get_shared()}(hjQHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjNHhhubah}(h]h ]h"]h$]h&]uh1j hjFhhhjFhM ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jiHj.jiHj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjsHh]h Parameters}(hjuHhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjqHubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjmHubj)}(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.hhMhjHubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(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.hhMhjHubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(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.hhMhjHubj)}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjHubeh}(h]h ]h"]h$]h&]uh1jhjmHubh)}(h**Description**h]j=)}(hj?Ih]h Description}(hjAIhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj=Iubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjmHubh)}(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.}(hjUIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjmHubh)}(h9See reset_control_bulk_get_shared() for more information.h]h9See reset_control_bulk_get_shared() for more information.}(hjdIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjmHubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(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_deassertedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjIhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjIhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM"ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhjIhM"ubj)}(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&]hhuh1jhjIhhhjIhM"ubj )}(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}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjImodnameN classnameNjc jf )}ji ]jl )}j_ jIsb/c.devm_reset_control_bulk_get_shared_deassertedasbuh1hhjIubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj )}(hj h]h*}(hjJhhhNhNubah}(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](jA )}(hinth]hint}(hjBJhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj>Jubj)}(h h]h }(hjPJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Jubj)}(h num_rstcsh]h num_rstcs}(hj^JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Jubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjIubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjwJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsJubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjJmodnameN classnameNjc jf )}ji ]j J/c.devm_reset_control_bulk_get_shared_deassertedasbuh1hhjsJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsJubj )}(hj h]h*}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsJubj)}(hrstcsh]hrstcs}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsJubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjIubeh}(h]h ]h"]h$]h&]hhuh1j hjIhhhjIhM"ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjIhhhjIhM"ubah}(h]jIah ](jjeh"]h$]h&]jj )j huh1jhjIhM"hjIhhubj )}(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()}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjJhhubah}(h]h ]h"]h$]h&]uh1j hjIhhhjIhM"ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jKj.jKj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjKh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjKubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj9Kh]hstruct device *dev}(hj;KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Kubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj3Kubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjRKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNKhMhjOKubah}(h]h ]h"]h$]h&]uh1jhj3Kubeh}(h]h ]h"]h$]h&]uh1jhjNKhMhj0Kubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjrKh]h int num_rstcs}(hjtKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpKubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjlKubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjlKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj0Kubj)}(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.hhMhjKubj)}(hhh]h)}(hAarray of struct reset_control_bulk_data with reset line names seth]hAarray of struct reset_control_bulk_data with reset line names set}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj0Kubeh}(h]h ]h"]h$]h&]uh1jhjKubh)}(h**Description**h]j=)}(hjKh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjKubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubh)}(hManaged reset_control_bulk_get_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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjKubh)}(h>See devm_reset_control_bulk_get_shared() for more information.h]h>See devm_reset_control_bulk_get_shared() for more information.}(hj LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM hjKubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6devm_reset_control_get_optional_exclusive (C function)+c.devm_reset_control_get_optional_exclusivehNtauh1jhjuhhhNhNubj)}(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}(hj:LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6LhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM6ubj)}(h h]h }(hjHLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6LhhhjGLhM6ubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjYLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVLubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj[LmodnameN classnameNjc jf )}ji ]jl )}j_ )devm_reset_control_get_optional_exclusivesb+c.devm_reset_control_get_optional_exclusiveasbuh1hhj6LhhhjGLhM6ubj)}(h h]h }(hjzLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6LhhhjGLhM6ubj )}(hj h]h*}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6LhhhjGLhM6ubj)}(h)devm_reset_control_get_optional_exclusiveh]j)}(hjwLh]h)devm_reset_control_get_optional_exclusive}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ](jjeh"]h$]h&]hhuh1jhj6LhhhjGLhM6ubj )}(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&] refdomainjreftypej_ reftargetjLmodnameN classnameNjc jf )}ji ]juL+c.devm_reset_control_get_optional_exclusiveasbuh1hhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj )}(hj h]h*}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubj)}(hdevh]hdev}(hj MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjLubj )}(hconst char *idh](j)}(hj& h]hconst}(hj$MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Mubj)}(h h]h }(hj1MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj MubjA )}(hcharh]hchar}(hj?MhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj Mubj)}(h h]h }(hjMMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Mubj )}(hj h]h*}(hj[MhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj Mubj)}(hidh]hid}(hjhMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Mubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjLubeh}(h]h ]h"]h$]h&]hhuh1j hj6LhhhjGLhM6ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj2LhhhjGLhM6ubah}(h]j-Lah ](jjeh"]h$]h&]jj )j huh1jhjGLhM6hj/Lhhubj )}(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.hhM+hjMhhubah}(h]h ]h"]h$]h&]uh1j hj/LhhhjGLhM6ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jMj.jMj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjMubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM/hjMubj)}(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.hhM-hjMubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhM-hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhM-hjMubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hj Nh]hconst char *id}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Nubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM.hjNubj)}(hhh]h)}(hreset line nameh]hreset line name}(hj%NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!NhM.hj"Nubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhj!NhM.hjMubeh}(h]h ]h"]h$]h&]uh1jhjMubh)}(h**Description**h]j=)}(hjGNh]h Description}(hjINhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjENubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM0hjMubh)}(hManaged reset_control_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.h]hManaged reset_control_get_optional_exclusive(). For reset controllers returned from this function, reset_control_put() is called automatically on driver detach.}(hj]NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM0hjMubh)}(h@See reset_control_get_optional_exclusive() for more information.h]h@See reset_control_get_optional_exclusive() for more information.}(hjlNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM4hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jAdevm_reset_control_get_optional_exclusive_deasserted (C function)6c.devm_reset_control_get_optional_exclusive_deassertedhNtauh1jhjuhhhNhNubj)}(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.hhMIubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhMIubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjNmodnameN classnameNjc jf )}ji ]jl )}j_ 4devm_reset_control_get_optional_exclusive_deassertedsb6c.devm_reset_control_get_optional_exclusive_deassertedasbuh1hhjNhhhjNhMIubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhMIubj )}(hj h]h*}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjNhhhjNhMIubj)}(h4devm_reset_control_get_optional_exclusive_deassertedh]j)}(hjNh]h4devm_reset_control_get_optional_exclusive_deasserted}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]hhuh1jhjNhhhjNhMIubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hj"OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubh)}(hhh]j)}(hdeviceh]hdevice}(hj3OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Oubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj5OmodnameN classnameNjc jf )}ji ]jN6c.devm_reset_control_get_optional_exclusive_deassertedasbuh1hhjOubj)}(h h]h }(hjQOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj )}(hj h]h*}(hj_OhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubj)}(hdevh]hdev}(hjlOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(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&]uh1jhjOubjA )}(hcharh]hchar}(hjOhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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 hjNhhhjNhMIubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjNhhhjNhMIubah}(h]jNah ](jjeh"]h$]h&]jj )j huh1jhjNhMIhjNhhubj )}(hhh]h)}(hRresource managed reset_control_get_optional_exclusive() + reset_control_deassert()h]hRresource managed reset_control_get_optional_exclusive() + reset_control_deassert()}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM=hjOhhubah}(h]h ]h"]h$]h&]uh1j hjNhhhjNhMIubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j Pj.j Pj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjPubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMAhjPubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj4Ph]hstruct device *dev}(hj6PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Pubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM@hj.Pubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjMPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIPhM@hjJPubah}(h]h ]h"]h$]h&]uh1jhj.Pubeh}(h]h ]h"]h$]h&]uh1jhjIPhM@hj+Pubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjmPh]hconst char *id}(hjoPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkPubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMAhjgPubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMAhjPubah}(h]h ]h"]h$]h&]uh1jhjgPubeh}(h]h ]h"]h$]h&]uh1jhjPhMAhj+Pubeh}(h]h ]h"]h$]h&]uh1jhjPubh)}(h**Description**h]j=)}(hjPh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjPubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMChjPubh)}(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.hhMChjPubh)}(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.hhMGhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(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_exclusivehNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjPhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjPhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM\ubj)}(h h]h }(hj QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhj QhM\ubj)}(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}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]hhuh1jhjPhhhj QhM\ubj )}(hJ(struct device *dev, int num_rstcs, struct reset_control_bulk_data *rstcs)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj9QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Qubj)}(h h]h }(hjFQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Qubh)}(hhh]j)}(hdeviceh]hdevice}(hjWQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTQubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjYQmodnameN classnameNjc jf )}ji ]jl )}j_ jQsb0c.devm_reset_control_bulk_get_optional_exclusiveasbuh1hhj5Qubj)}(h h]h }(hjwQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Qubj )}(hj h]h*}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5Qubj)}(hdevh]hdev}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Qubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj1Qubj )}(h int num_rstcsh](jA )}(hinth]hint}(hjQhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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 hj1Qubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjRmodnameN classnameNjc jf )}ji ]jsQ0c.devm_reset_control_bulk_get_optional_exclusiveasbuh1hhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj )}(hj h]h*}(hj*RhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubj)}(hrstcsh]hrstcs}(hj7RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj1Qubeh}(h]h ]h"]h$]h&]hhuh1j hjPhhhj QhM\ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjPhhhj QhM\ubah}(h]jPah ](jjeh"]h$]h&]jj )j huh1jhj QhM\hjPhhubj )}(hhh]h)}(hUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Uubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMghj6Uubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjUUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQUhMghjRUubah}(h]h ]h"]h$]h&]uh1jhj6Uubeh}(h]h ]h"]h$]h&]uh1jhjQUhMghj3Uubj)}(h#``const char *id`` reset line name h](j)}(h``const char *id``h]j)}(hjuUh]hconst char *id}(hjwUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsUubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhhjoUubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMhhjUubah}(h]h ]h"]h$]h&]uh1jhjoUubeh}(h]h ]h"]h$]h&]uh1jhjUhMhhj3Uubeh}(h]h ]h"]h$]h&]uh1jhjUubh)}(h**Description**h]j=)}(hjUh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjUubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMjhjUubh)}(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.hhMjhjUubh)}(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.hhMnhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(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_deassertedhNtauh1jhjuhhhNhNubj)}(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 }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hj#VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Vubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj%VmodnameN classnameNjc jf )}ji ]jl )}j_ 1devm_reset_control_get_optional_shared_deassertedsb3c.devm_reset_control_get_optional_shared_deassertedasbuh1hhjVhhhjVhMubj)}(h h]h }(hjDVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhMubj )}(hj h]h*}(hjRVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVhhhjVhMubj)}(h1devm_reset_control_get_optional_shared_deassertedh]j)}(hjAVh]h1devm_reset_control_get_optional_shared_deasserted}(hjcVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_Vubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhjVhMubj )}(h$(struct device *dev, const char *id)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hj~VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzVubh)}(hhh]j)}(hdeviceh]hdevice}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjVmodnameN classnameNjc jf )}ji ]j?V3c.devm_reset_control_get_optional_shared_deassertedasbuh1hhjzVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzVubj )}(hj h]h*}(hjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjzVubj)}(hdevh]hdev}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzVubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjvVubj )}(hconst char *idh](j)}(hj& h]hconst}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubjA )}(hcharh]hchar}(hj WhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjVubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj )}(hj h]h*}(hj%WhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVubj)}(hidh]hid}(hj2WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjvVubeh}(h]h ]h"]h$]h&]hhuh1j hjVhhhjVhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjUhhhjVhMubah}(h]jUah ](jjeh"]h$]h&]jj )j huh1jhjVhMhjUhhubj )}(hhh]h)}(hOresource managed reset_control_get_optional_shared() + reset_control_deassert()h]hOresource managed reset_control_get_optional_shared() + reset_control_deassert()}(hj\WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMwhjYWhhubah}(h]h ]h"]h$]h&]uh1j hjUhhhjVhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jtWj.jtWj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj~Wh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj|Wubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM{hjxWubj)}(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.hhMzhjWubj)}(hhh]h)}(h$device to be reset by the controllerh]h$device to be reset by the controller}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMzhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMzhjWubj)}(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.hhM{hjWubj)}(hhh]h)}(hreset line nameh]hreset line name}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhM{hjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhM{hjWubeh}(h]h ]h"]h$]h&]uh1jhjxWubh)}(h**Description**h]j=)}(hjXh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjXubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhM}hjxWubh)}(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.hhM}hjxWubh)}(hBSee devm_reset_control_get_optional_shared() for more information.h]hBSee devm_reset_control_get_optional_shared() for more information.}(hj6XhhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjxWubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j8devm_reset_control_bulk_get_optional_shared (C function)-c.devm_reset_control_bulk_get_optional_sharedhNtauh1jhjuhhhNhNubj)}(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](jA )}(hinth]hint}(hjeXhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjaXhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMubj)}(h h]h }(hjtXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaXhhhjsXhMubj)}(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&]hhuh1jhjaXhhhjsXhMubj )}(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&] refdomainjreftypej_ reftargetjXmodnameN classnameNjc jf )}ji ]jl )}j_ jXsb-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj )}(hj h]h*}(hjXhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjXubj)}(hdevh]hdev}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubj )}(h int num_rstcsh](jA )}(hinth]hint}(hjYhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjYubj)}(h h]h }(hj"YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(h num_rstcsh]h num_rstcs}(hj0YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubj )}(h%struct reset_control_bulk_data *rstcsh](j)}(hjh]hstruct}(hjIYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEYubj)}(h h]h }(hjVYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEYubh)}(hhh]j)}(hreset_control_bulk_datah]hreset_control_bulk_data}(hjgYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdYubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjiYmodnameN classnameNjc jf )}ji ]jX-c.devm_reset_control_bulk_get_optional_sharedasbuh1hhjEYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEYubj )}(hj h]h*}(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEYubj)}(hrstcsh]hrstcs}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEYubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjXubeh}(h]h ]h"]h$]h&]hhuh1j hjaXhhhjsXhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj]XhhhjsXhMubah}(h]jXXah ](jjeh"]h$]h&]jj )j huh1jhjsXhMhjZXhhubj )}(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&]uh1j hjZXhhhjsXhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jYj.jYj/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjYubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjYubj)}(hhh](j)}(h<``struct device *dev`` device to be reset by the controller h](j)}(h``struct device *dev``h]j)}(hj Zh]hstruct device *dev}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Zubah}(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}(hj$ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ZhMhj!Zubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj ZhMhjZubj)}(h3``int num_rstcs`` number of entries in rstcs array h](j)}(h``int num_rstcs``h]j)}(hjDZh]h int num_rstcs}(hjFZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBZubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj>Zubj)}(hhh]h)}(h number of entries in rstcs arrayh]h number of entries in rstcs array}(hj]ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYZhMhjZZubah}(h]h ]h"]h$]h&]uh1jhj>Zubeh}(h]h ]h"]h$]h&]uh1jhjYZhMhjZubj)}(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}Zh]h%struct reset_control_bulk_data *rstcs}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Zubah}(h]h ]h"]h$]h&]uh1jhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjwZubj)}(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&]uh1jhjwZubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjZubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h**Description**h]j=)}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjZubah}(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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j6devm_reset_control_get_exclusive_by_index (C function)+c.devm_reset_control_get_exclusive_by_indexhNtauh1jhjuhhhNhNubj)}(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&] refdomainjreftypej_ reftargetj-[modnameN classnameNjc jf )}ji ]jl )}j_ )devm_reset_control_get_exclusive_by_indexsb+c.devm_reset_control_get_exclusive_by_indexasbuh1hhj[hhhj[hMubj)}(h h]h }(hjL[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj[hMubj )}(hj h]h*}(hjZ[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[hhhj[hMubj)}(h)devm_reset_control_get_exclusive_by_indexh]j)}(hjI[h]h)devm_reset_control_get_exclusive_by_index}(hjk[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg[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&] refdomainjreftypej_ reftargetj[modnameN classnameNjc jf )}ji ]jG[+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](jA )}(hinth]hint}(hj[hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ 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]jZah ](jjeh"]h$]h&]jj )j huh1jhj[hMhj[hhubj )}(hhh]h)}(h.resource managed reset_control_get_exclusive()h]h.resource managed reset_control_get_exclusive()}(hj<\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhj9\hhubah}(h]h ]h"]h$]h&]uh1j hj[hhhj[hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jT\j.jT\j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj^\h]h Parameters}(hj`\hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj\\ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjX\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.hhMhjw\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&]uh1jhjw\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMhjt\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\hMhjt\ubeh}(h]h ]h"]h$]h&]uh1jhjX\ubh)}(h**Description**h]j=)}(hj\h]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj\ubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjX\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.hhMhjX\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.hhMhjX\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j3devm_reset_control_get_shared_by_index (C function)(c.devm_reset_control_get_shared_by_indexhNtauh1jhjuhhhNhNubj)}(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}(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&] refdomainjreftypej_ reftargetjf]modnameN classnameNjc jf )}ji ]jl )}j_ &devm_reset_control_get_shared_by_indexsb(c.devm_reset_control_get_shared_by_indexasbuh1hhjA]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)}(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&]hhuh1jhjA]hhhjR]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&] refdomainjreftypej_ reftargetj]modnameN classnameNjc jf )}ji ]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](jA )}(hinth]hint}(hj/^hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj+^ubj)}(h h]h }(hj=^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+^ubj)}(hindexh]hindex}(hjK^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 )j huh1jhjR]hMhj:]hhubj )}(hhh]h)}(h)resource managed reset_control_get_sharedh]h)resource managed reset_control_get_shared}(hju^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhW/var/lib/git/docbuild/linux/Documentation/driver-api/reset:188: ./include/linux/reset.hhMhjr^hhubah}(h]h ]h"]h$]h&]uh1j hj:]hhhjR]hMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j^j.j^j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj^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]j=)}(hj*_h]h Description}(hj,_hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj(_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.}(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&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j reset_control_reset (C function)c.reset_control_resethNtauh1jhjuhhhNhNubj)}(hhh](j)}(h4int reset_control_reset (struct reset_control *rstc)h]j)}(h3int reset_control_reset(struct reset_control *rstc)h](jA )}(hinth]hint}(hjo_hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjk_hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMaubj)}(h h]h }(hj~_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk_hhhj}_hMaubj)}(hreset_control_reseth]j)}(hreset_control_reseth]hreset_control_reset}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjk_hhhj}_hMaubj )}(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&] refdomainjreftypej_ reftargetj_modnameN classnameNjc jf )}ji ]jl )}j_ 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 hjk_hhhj}_hMaubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjg_hhhj}_hMaubah}(h]jb_ah ](jjeh"]h$]h&]jj )j huh1jhj}_hMahjd_hhubj )}(hhh]h)}(hreset the controlled deviceh]hreset the controlled device}(hj/`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMUhj,`hhubah}(h]h ]h"]h$]h&]uh1j hjd_hhhj}_hMaubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jG`j.jG`j/j0j1uh1jhhhjuhNhNubj3)}(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]j=)}(hjQ`h]h Parameters}(hjS`hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjO`ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMYhjK`ubj)}(hhh]j)}(h0``struct reset_control *rstc`` reset controller h](j)}(h``struct reset_control *rstc``h]j)}(hjp`h]hstruct reset_control *rstc}(hjr`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn`ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMVhjj`ubj)}(hhh]h)}(hreset controllerh]hreset controller}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMVhj`ubah}(h]h ]h"]h$]h&]uh1jhjj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMVhjg`ubah}(h]h ]h"]h$]h&]uh1jhjK`ubh)}(h**Description**h]j=)}(hj`h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj`ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMXhjK`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.chMXhjK`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.chM^hjK`ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j reset_control_rearm (C function)c.reset_control_rearmhNtauh1jhjuhhhNhNubj)}(hhh](j)}(h4int reset_control_rearm (struct reset_control *rstc)h]j)}(h3int reset_control_rearm(struct reset_control *rstc)h](jA )}(hinth]hint}(hj`hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj`hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhj ahMubj)}(hreset_control_rearmh]j)}(hreset_control_rearmh]hreset_control_rearm}(hj ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`hhhj ahMubj )}(h(struct reset_control *rstc)h]j )}(hstruct reset_control *rstch](j)}(hjh]hstruct}(hjkj.j>kj/j0j1uh1jhhhjuhNhNubj3)}(hA**Parameters** ``struct reset_control *rstc`` reset controllerh](h)}(h**Parameters**h]j=)}(hjHkh]h Parameters}(hjJkhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjFkubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjBkubj)}(hhh]j)}(h/``struct reset_control *rstc`` reset controllerh](j)}(h``struct reset_control *rstc``h]j)}(hjgkh]hstruct reset_control *rstc}(hjikhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjekubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjakubj)}(hhh]h)}(hreset controllerh]hreset controller}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj}kubah}(h]h ]h"]h$]h&]uh1jhjakubeh}(h]h ]h"]h$]h&]uh1jhj|khMhj^kubah}(h]h ]h"]h$]h&]uh1jhjBkubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'of_reset_control_get_count (C function)c.of_reset_control_get_counthNtauh1jhjuhhhNhNubj)}(hhh](j)}(h9int of_reset_control_get_count (struct device_node *node)h]j)}(h8int of_reset_control_get_count(struct device_node *node)h](jA )}(hinth]hint}(hjkhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjkhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMvubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhhjkhMvubj)}(hof_reset_control_get_counth]j)}(hof_reset_control_get_counth]hof_reset_control_get_count}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubah}(h]h ](jjeh"]h$]h&]hhuh1jhjkhhhjkhMvubj )}(h(struct device_node *node)h]j )}(hstruct device_node *nodeh](j)}(hjh]hstruct}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(h h]h }(hj lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubh)}(hhh]j)}(h device_nodeh]h device_node}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjlmodnameN classnameNjc jf )}ji ]jl )}j_ jksbc.of_reset_control_get_countasbuh1hhjkubj)}(h h]h }(hjmhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjPmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>mhhhjOmhMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjamhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^mubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjcmmodnameN classnameNjc jf )}ji ]jl )}j_ of_reset_control_array_getsbc.of_reset_control_array_getasbuh1hhj>mhhhjOmhMubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>mhhhjOmhMubj )}(hj h]h*}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>mhhhjOmhMubj)}(hof_reset_control_array_geth]j)}(hjmh]hof_reset_control_array_get}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ](jjeh"]h$]h&]hhuh1jhj>mhhhjOmhMubj )}(h8(struct device_node *np, enum reset_control_flags flags)h](j )}(hstruct device_node *nph](j)}(hjh]hstruct}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubh)}(hhh]j)}(h device_nodeh]h device_node}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmmodnameN classnameNjc jf )}ji ]j}mc.of_reset_control_array_getasbuh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj )}(hj h]h*}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubj)}(hnph]hnp}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjmubj )}(henum reset_control_flags flagsh](j)}(hjMh]henum}(hj,nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(nubj)}(h h]h }(hj9nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(nubh)}(hhh]j)}(hreset_control_flagsh]hreset_control_flags}(hjJnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGnubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjLnmodnameN classnameNjc jf )}ji ]j}mc.of_reset_control_array_getasbuh1hhj(nubj)}(h h]h }(hjhnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(nubj)}(hflagsh]hflags}(hjvnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(nubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjmubeh}(h]h ]h"]h$]h&]hhuh1j hj>mhhhjOmhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj:mhhhjOmhMubah}(h]j5mah ](jjeh"]h$]h&]jj )j huh1jhjOmhMhj7mhhubj )}(hhh]h)}(h/Get a list of reset controls using device node.h]h/Get a list of reset controls using device node.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjnhhubah}(h]h ]h"]h$]h&]uh1j hj7mhhhjOmhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jnj.jnj/j0j1uh1jhhhjuhNhNubj3)}(hX&**Parameters** ``struct device_node *np`` device node for the device that requests the reset controls array ``enum reset_control_flags flags`` whether reset controls are shared, optional, acquired **Description** Returns pointer to allocated reset_control on success or error on failureh](h)}(h**Parameters**h]j=)}(hjnh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjnubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjnubj)}(hhh](j)}(h]``struct device_node *np`` device node for the device that requests the reset controls array h](j)}(h``struct device_node *np``h]j)}(hjnh]hstruct device_node *np}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjnubj)}(hhh]h)}(hAdevice node for the device that requests the reset controls arrayh]hAdevice node for the device that requests the reset controls array}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhMhjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjnubj)}(hY``enum reset_control_flags flags`` whether reset controls are shared, optional, acquired h](j)}(h"``enum reset_control_flags flags``h]j)}(hjoh]henum reset_control_flags flags}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjoubj)}(hhh]h)}(h5whether reset controls are shared, optional, acquiredh]h5whether reset controls are shared, optional, acquired}(hj3ohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ohMhj0oubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhj/ohMhjnubeh}(h]h ]h"]h$]h&]uh1jhjnubh)}(h**Description**h]j=)}(hjUoh]h Description}(hjWohhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjSoubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjnubh)}(hIReturns pointer to allocated reset_control on success or error on failureh]hIReturns pointer to allocated reset_control on success or error on failure}(hjkohhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)devm_reset_control_array_get (C function)c.devm_reset_control_array_gethNtauh1jhjuhhhNhNubj)}(hhh](j)}(hhstruct reset_control * devm_reset_control_array_get (struct device *dev, enum reset_control_flags flags)h]j)}(hfstruct reset_control *devm_reset_control_array_get(struct device *dev, enum reset_control_flags flags)h](j)}(hjh]hstruct}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjohhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjohhhjohMubh)}(hhh]j)}(h reset_controlh]h reset_control}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjomodnameN classnameNjc jf )}ji ]jl )}j_ devm_reset_control_array_getsbc.devm_reset_control_array_getasbuh1hhjohhhjohMubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjohhhjohMubj )}(hj h]h*}(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjohhhjohMubj)}(hdevm_reset_control_array_geth]j)}(hjoh]hdevm_reset_control_array_get}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ](jjeh"]h$]h&]hhuh1jhjohhhjohMubj )}(h4(struct device *dev, enum reset_control_flags flags)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hj!phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hdeviceh]hdevice}(hj2phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/pubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj4pmodnameN classnameNjc jf )}ji ]joc.devm_reset_control_array_getasbuh1hhjpubj)}(h h]h }(hjPphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj )}(hj h]h*}(hj^phhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjpubj)}(hdevh]hdev}(hjkphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj pubj )}(henum reset_control_flags flagsh](j)}(hjMh]henum}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hreset_control_flagsh]hreset_control_flags}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjpmodnameN classnameNjc jf )}ji ]joc.devm_reset_control_array_getasbuh1hhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(hflagsh]hflags}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj pubeh}(h]h ]h"]h$]h&]hhuh1j hjohhhjohMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjohhhjohMubah}(h]joah ](jjeh"]h$]h&]jj )j huh1jhjohMhjohhubj )}(hhh]h)}(h(Resource managed reset control array geth]h(Resource managed reset control array get}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjphhubah}(h]h ]h"]h$]h&]uh1j hjohhhjohMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jqj.jqj/j0j1uh1jhhhjuhNhNubj3)}(hX**Parameters** ``struct device *dev`` device that requests the list of reset controls ``enum reset_control_flags flags`` whether reset controls are shared, optional, acquired **Description** The reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order. Returns pointer to allocated reset_control on success or error on failureh](h)}(h**Parameters**h]j=)}(hjqh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjqubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjqubj)}(hhh](j)}(hG``struct device *dev`` device that requests the list of reset controls h](j)}(h``struct device *dev``h]j)}(hj9qh]hstruct device *dev}(hj;qhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7qubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhj3qubj)}(hhh]h)}(h/device that requests the list of reset controlsh]h/device that requests the list of reset controls}(hjRqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNqhMhjOqubah}(h]h ]h"]h$]h&]uh1jhj3qubeh}(h]h ]h"]h$]h&]uh1jhjNqhMhj0qubj)}(hY``enum reset_control_flags flags`` whether reset controls are shared, optional, acquired h](j)}(h"``enum reset_control_flags flags``h]j)}(hjrqh]henum reset_control_flags flags}(hjtqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpqubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjlqubj)}(hhh]h)}(h5whether reset controls are shared, optional, acquiredh]h5whether reset controls are shared, optional, acquired}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjlqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhj0qubeh}(h]h ]h"]h$]h&]uh1jhjqubh)}(h**Description**h]j=)}(hjqh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjqubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjqubh)}(hThe reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order.h]hThe reset control array APIs are intended for a list of resets that just have to be asserted or deasserted, without any requirements on the order.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjqubh)}(hIReturns pointer to allocated reset_control on success or error on failureh]hIReturns pointer to allocated reset_control on success or error on failure}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$reset_control_get_count (C function)c.reset_control_get_counthNtauh1jhjuhhhNhNubj)}(hhh](j)}(h0int reset_control_get_count (struct device *dev)h]j)}(h/int reset_control_get_count(struct device *dev)h](jA )}(hinth]hint}(hjrhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjqhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhjrhMubj)}(hreset_control_get_counth]j)}(hreset_control_get_counth]hreset_control_get_count}(hj"rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ](jjeh"]h$]h&]hhuh1jhjqhhhjrhMubj )}(h(struct device *dev)h]j )}(hstruct device *devh](j)}(hjh]hstruct}(hj>rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:rubj)}(h h]h }(hjKrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:rubh)}(hhh]j)}(hdeviceh]hdevice}(hj\rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYrubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj^rmodnameN classnameNjc jf )}ji ]jl )}j_ j$rsbc.reset_control_get_countasbuh1hhj:rubj)}(h h]h }(hj|rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:rubj )}(hj h]h*}(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj:rubj)}(hdevh]hdev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:rubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj6rubah}(h]h ]h"]h$]h&]hhuh1j hjqhhhjrhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjqhhhjrhMubah}(h]jqah ](jjeh"]h$]h&]jj )j huh1jhjrhMhjqhhubj )}(hhh]h)}(h.Count number of resets available with a deviceh]h.Count number of resets available with a device}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjrhhubah}(h]h ]h"]h$]h&]uh1j hjqhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-jrj.jrj/j0j1uh1jhhhjuhNhNubj3)}(h**Parameters** ``struct device *dev`` device for which to return the number of resets **Description** Returns positive reset count on success, or error number on failure and on count being zero.h](h)}(h**Parameters**h]j=)}(hjrh]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjrubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjrubj)}(hhh]j)}(hG``struct device *dev`` device for which to return the number of resets h](j)}(h``struct device *dev``h]j)}(hjsh]hstruct device *dev}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjrubj)}(hhh]h)}(h/device for which to return the number of resetsh]h/device for which to return the number of resets}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjshMhjrubah}(h]h ]h"]h$]h&]uh1jhjrubh)}(h**Description**h]j=)}(hj=sh]h Description}(hj?shhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj;subah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjrubh)}(h\Returns positive reset count on success, or error number on failure and on count being zero.h]h\Returns positive reset count on success, or error number on failure and on count being zero.}(hjSshhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:191: ./drivers/reset/core.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjuhhhNhNubeh}(h]reset-consumer-apiah ]h"]reset consumer apiah$]h&]uh1hhj,hhhhhKubh)}(hhh](h)}(hReset controller driver APIh]hReset controller driver API}(hjtshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqshhhhhKubh)}(hReset controller drivers are supposed to implement the necessary functions in a static constant structure :c:type:`reset_control_ops`, allocate and fill out a struct :c:type:`reset_controller_dev`, and register it using devm_reset_controller_register().h](hjReset controller drivers are supposed to implement the necessary functions in a static constant structure }(hjshhhNhNubh)}(h:c:type:`reset_control_ops`h]j)}(hjsh]hreset_control_ops}(hjshhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjc jf )}ji ]sbjreset_control_opsuh1hhhhKhjsubh!, allocate and fill out a struct }(hjshhhNhNubh)}(h:c:type:`reset_controller_dev`h]j)}(hjsh]hreset_controller_dev}(hjshhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjc jsjreset_controller_devuh1hhhhKhjsubh9, and register it using devm_reset_controller_register().}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjqshhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_control_ops (C struct)c.reset_control_opshNtauh1jhjqshhhNhNubj)}(hhh](j)}(hreset_control_opsh]j)}(hstruct reset_control_opsh](j)}(hjh]hstruct}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjshhhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjshhhjshKubj)}(hreset_control_opsh]j)}(hjsh]hreset_control_ops}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubah}(h]h ](jjeh"]h$]h&]hhuh1jhjshhhjshKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjshhhjshKubah}(h]jsah ](jjeh"]h$]h&]jj )j huh1jhjshKhjshhubj )}(hhh]h)}(h!reset controller driver callbacksh]h!reset controller driver callbacks}(hj4thhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK hj1thhubah}(h]h ]h"]h$]h&]uh1j hjshhhjshKubeh}(h]h ](jstructeh"]h$]h&]j,jj-jLtj.jLtj/j0j1uh1jhhhjqshNhNubj3)}(hX**Definition**:: struct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); }; **Members** ``reset`` for self-deasserting resets, does all necessary things to reset the device ``assert`` manually assert the reset line, if supported ``deassert`` manually deassert the reset line, if supported ``status`` return the status of the reset line, if supportedh](h)}(h**Definition**::h](j=)}(h**Definition**h]h Definition}(hjXthhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjTtubh:}(hjTthhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjPtubjX)}(hXBstruct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); };h]hXBstruct reset_control_ops { int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); int (*deassert)(struct reset_controller_dev *rcdev, unsigned long id); int (*status)(struct reset_controller_dev *rcdev, unsigned long id); };}hjqtsbah}(h]h ]h"]h$]h&]hhuh1jWhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjPtubh)}(h **Members**h]j=)}(hjth]hMembers}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjtubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjPtubj)}(hhh](j)}(hU``reset`` for self-deasserting resets, does all necessary things to reset the device h](j)}(h ``reset``h]j)}(hjth]hreset}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjtubj)}(hhh]h)}(hJfor self-deasserting resets, does all necessary things to reset the deviceh]hJfor self-deasserting resets, does all necessary things to reset the device}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK hjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthKhjtubj)}(h8``assert`` manually assert the reset line, if supported h](j)}(h ``assert``h]j)}(hjth]hassert}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjtubj)}(hhh]h)}(h,manually assert the reset line, if supportedh]h,manually assert the reset line, if supported}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthKhjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthKhjtubj)}(h<``deassert`` manually deassert the reset line, if supported h](j)}(h ``deassert``h]j)}(hjuh]hdeassert}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjuubj)}(hhh]h)}(h.manually deassert the reset line, if supportedh]h.manually deassert the reset line, if supported}(hj-uhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)uhKhj*uubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhj)uhKhjtubj)}(h<``status`` return the status of the reset line, if supportedh](j)}(h ``status``h]j)}(hjMuh]hstatus}(hjOuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKuubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjGuubj)}(hhh]h)}(h1return the status of the reset line, if supportedh]h1return the status of the reset line, if supported}(hjfuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjcuubah}(h]h ]h"]h$]h&]uh1jhjGuubeh}(h]h ]h"]h$]h&]uh1jhjbuhKhjtubeh}(h]h ]h"]h$]h&]uh1jhjPtubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jreset_control_lookup (C struct)c.reset_control_lookuphNtauh1jhjqshhhNhNubj)}(hhh](j)}(hreset_control_lookuph]j)}(hstruct reset_control_lookuph](j)}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjuhKubj)}(hreset_control_lookuph]j)}(hjuh]hreset_control_lookup}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjuhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjuhhhjuhKubah}(h]juah ](jjeh"]h$]h&]jj )j huh1jhjuhKhjuhhubj )}(hhh]h)}(h represents a single lookup entryh]h represents a single lookup entry}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhjuhhubah}(h]h ]h"]h$]h&]uh1j hjuhhhjuhKubeh}(h]h ](jstructeh"]h$]h&]j,jj-jvj.jvj/j0j1uh1jhhhjqshNhNubj3)}(hX **Definition**:: struct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; }; **Members** ``list`` internal list of all reset lookup entries ``provider`` name of the reset controller device controlling this reset line ``index`` ID of the reset controller in the reset controller device ``dev_id`` name of the device associated with this reset line ``con_id`` name of the reset line (can be NULL)h](h)}(h**Definition**::h](j=)}(h**Definition**h]h Definition}(hj vhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj vubh:}(hj vhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK"hjvubjX)}(hstruct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; };h]hstruct reset_control_lookup { struct list_head list; const char *provider; unsigned int index; const char *dev_id; const char *con_id; };}hj&vsbah}(h]h ]h"]h$]h&]hhuh1jWhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK$hjvubh)}(h **Members**h]j=)}(hj7vh]hMembers}(hj9vhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj5vubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK,hjvubj)}(hhh](j)}(h3``list`` internal list of all reset lookup entries h](j)}(h``list``h]j)}(hjVvh]hlist}(hjXvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTvubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK!hjPvubj)}(hhh]h)}(h)internal list of all reset lookup entriesh]h)internal list of all reset lookup entries}(hjovhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkvhK!hjlvubah}(h]h ]h"]h$]h&]uh1jhjPvubeh}(h]h ]h"]h$]h&]uh1jhjkvhK!hjMvubj)}(hM``provider`` name of the reset controller device controlling this reset line h](j)}(h ``provider``h]j)}(hjvh]hprovider}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK"hjvubj)}(hhh]h)}(h?name of the reset controller device controlling this reset lineh]h?name of the reset controller device controlling this reset line}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhK"hjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhK"hjMvubj)}(hD``index`` ID of the reset controller in the reset controller device h](j)}(h ``index``h]j)}(hjvh]hindex}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK#hjvubj)}(hhh]h)}(h9ID of the reset controller in the reset controller deviceh]h9ID of the reset controller in the reset controller device}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhK#hjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhK#hjMvubj)}(h>``dev_id`` name of the device associated with this reset line h](j)}(h ``dev_id``h]j)}(hjwh]hdev_id}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK$hjvubj)}(hhh]h)}(h2name of the device associated with this reset lineh]h2name of the device associated with this reset line}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhK$hjwubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjwhK$hjMvubj)}(h/``con_id`` name of the reset line (can be NULL)h](j)}(h ``con_id``h]j)}(hj:wh]hcon_id}(hj``ops`` a pointer to device specific struct reset_control_ops h](j)}(h``ops``h]j)}(hjCxh]hops}(hjExhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAxubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK:hj=xubj)}(hhh]h)}(h5a pointer to device specific struct reset_control_opsh]h5a pointer to device specific struct reset_control_ops}(hj\xhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXxhK:hjYxubah}(h]h ]h"]h$]h&]uh1jhj=xubeh}(h]h ]h"]h$]h&]uh1jhjXxhK:hj:xubj)}(h7``owner`` kernel module of the reset controller driver h](j)}(h ``owner``h]j)}(hj|xh]howner}(hj~xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzxubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK;hjvxubj)}(hhh]h)}(h,kernel module of the reset controller driverh]h,kernel module of the reset controller driver}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhK;hjxubah}(h]h ]h"]h$]h&]uh1jhjvxubeh}(h]h ]h"]h$]h&]uh1jhjxhK;hj:xubj)}(h3``list`` internal list of reset controller devices h](j)}(h``list``h]j)}(hjxh]hlist}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKhj!yubj)}(hhh]h)}(h(corresponding driver model device structh]h(corresponding driver model device struct}(hj@yhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhj=yubah}(h]h ]h"]h$]h&]uh1jhj!yubeh}(h]h ]h"]h$]h&]uh1jhjhj:xubj)}(h=``of_node`` corresponding device tree node as phandle target h](j)}(h ``of_node``h]j)}(hj`yh]hof_node}(hjbyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^yubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK?hjZyubj)}(hhh]h)}(h0corresponding device tree node as phandle targeth]h0corresponding device tree node as phandle target}(hjyyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuyhK?hjvyubah}(h]h ]h"]h$]h&]uh1jhjZyubeh}(h]h ]h"]h$]h&]uh1jhjuyhK?hj:xubj)}(h``of_args`` for reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be present h](j)}(h ``of_args``h]j)}(hjyh]hof_args}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKBhjyubj)}(hhh]h)}(hfor reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be presenth]hfor reset-gpios controllers: corresponding phandle args with of_node and GPIO number complementing of_node; either this or of_node should be present}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhK@hjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhKBhj:xubj)}(h>``of_reset_n_cells`` number of cells in reset line specifiers h](j)}(h``of_reset_n_cells``h]j)}(hjyh]hof_reset_n_cells}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKChjyubj)}(hhh]h)}(h(number of cells in reset line specifiersh]h(number of cells in reset line specifiers}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhKChjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhKChj:xubj)}(h``of_xlate`` translation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to :c:func:`of_reset_simple_xlate`. h](j)}(h ``of_xlate``h]j)}(hj zh]hof_xlate}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj zubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKFhjzubj)}(hhh]h)}(htranslation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to :c:func:`of_reset_simple_xlate`.h](htranslation function to translate from specifier as found in the device tree to id as given to the reset control ops, defaults to }(hj%zhhhNhNubh)}(h:c:func:`of_reset_simple_xlate`h]j)}(hj/zh]hof_reset_simple_xlate()}(hj1zhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1jhj-zubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjc jsjof_reset_simple_xlateuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKDhj%zubh.}(hj%zhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjLzhKDhj"zubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj!zhKFhj:xubj)}(hF``nr_resets`` number of reset controls in this reset controller deviceh](j)}(h ``nr_resets``h]j)}(hjizh]h nr_resets}(hjkzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgzubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKFhjczubj)}(hhh]h)}(h8number of reset controls in this reset controller deviceh]h8number of reset controls in this reset controller device}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/reset:213: ./include/linux/reset-controller.hhKGhjzubah}(h]h ]h"]h$]h&]uh1jhjczubeh}(h]h ]h"]h$]h&]uh1jhj~zhKFhj:xubeh}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"of_reset_simple_xlate (C function)c.of_reset_simple_xlatehNtauh1jhjqshhhNhNubj)}(hhh](j)}(hhint of_reset_simple_xlate (struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h]j)}(hgint of_reset_simple_xlate(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h](jA )}(hinth]hint}(hjzhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjzhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKnubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzhhhjzhKnubj)}(hof_reset_simple_xlateh]j)}(hof_reset_simple_xlateh]hof_reset_simple_xlate}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubah}(h]h ](jjeh"]h$]h&]hhuh1jhjzhhhjzhKnubj )}(hN(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec)h](j )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(h h]h }(hj {hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj {modnameN classnameNjc jf )}ji ]jl )}j_ jzsbc.of_reset_simple_xlateasbuh1hhjzubj)}(h h]h }(hj>{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj )}(hj h]h*}(hjL{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjzubj)}(hrcdevh]hrcdev}(hjY{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjzubj )}(h(const struct of_phandle_args *reset_spech](j)}(hj& h]hconst}(hjr{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubj)}(hjh]hstruct}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubh)}(hhh]j)}(hof_phandle_argsh]hof_phandle_args}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj{modnameN classnameNjc jf )}ji ]j:{c.of_reset_simple_xlateasbuh1hhjn{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubj )}(hj h]h*}(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjn{ubj)}(h reset_spech]h reset_spec}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn{ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjzubeh}(h]h ]h"]h$]h&]hhuh1j hjzhhhjzhKnubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjzhhhjzhKnubah}(h]jzah ](jjeh"]h$]h&]jj )j huh1jhjzhKnhjzhhubj )}(hhh]h)}(h-translate reset_spec to the reset line numberh]h-translate reset_spec to the reset line number}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKehj |hhubah}(h]h ]h"]h$]h&]uh1j hjzhhhjzhKnubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j&|j.j&|j/j0j1uh1jhhhjqshNhNubj3)}(hX**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the reset controller device ``const struct of_phandle_args *reset_spec`` reset line specifier as found in the device tree **Description** This static translation function is used by default if of_xlate in :c:type:`reset_controller_dev` is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.h](h)}(h**Parameters**h]j=)}(hj0|h]h Parameters}(hj2|hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj.|ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihj*|ubj)}(hhh](j)}(hP``struct reset_controller_dev *rcdev`` a pointer to the reset controller device h](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjO|h]h"struct reset_controller_dev *rcdev}(hjQ|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM|ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKfhjI|ubj)}(hhh]h)}(h(a pointer to the reset controller deviceh]h(a pointer to the reset controller device}(hjh|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd|hKfhje|ubah}(h]h ]h"]h$]h&]uh1jhjI|ubeh}(h]h ]h"]h$]h&]uh1jhjd|hKfhjF|ubj)}(h^``const struct of_phandle_args *reset_spec`` reset line specifier as found in the device tree h](j)}(h,``const struct of_phandle_args *reset_spec``h]j)}(hj|h]h(const struct of_phandle_args *reset_spec}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKghj|ubj)}(hhh]h)}(h0reset line specifier as found in the device treeh]h0reset line specifier as found in the device tree}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hKghj|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj|hKghjF|ubeh}(h]h ]h"]h$]h&]uh1jhj*|ubh)}(h**Description**h]j=)}(hj|h]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj|ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihj*|ubh)}(hThis static translation function is used by default if of_xlate in :c:type:`reset_controller_dev` is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.h](hCThis static translation function is used by default if of_xlate in }(hj|hhhNhNubh)}(h:c:type:`reset_controller_dev`h]j)}(hj|h]hreset_controller_dev}(hj|hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjc jsjreset_controller_devuh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKihj|ubh~ is not set. It is useful for all reset controllers with 1:1 mapping, where reset lines can be indexed by number without gaps.}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj}hKihj*|ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&reset_controller_register (C function)c.reset_controller_registerhNtauh1jhjqshhhNhNubj)}(hhh](j)}(hBint reset_controller_register (struct reset_controller_dev *rcdev)h]j)}(hAint reset_controller_register(struct reset_controller_dev *rcdev)h](jA )}(hinth]hint}(hj+}hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj'}hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK{ubj)}(h h]h }(hj:}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'}hhhj9}hK{ubj)}(hreset_controller_registerh]j)}(hreset_controller_registerh]hreset_controller_register}(hjL}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH}ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj'}hhhj9}hK{ubj )}(h$(struct reset_controller_dev *rcdev)h]j )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hjh}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd}ubj)}(h h]h }(hju}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd}ubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj}modnameN classnameNjc jf )}ji ]jl )}j_ jN}sbc.reset_controller_registerasbuh1hhjd}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd}ubj )}(hj h]h*}(hj}hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjd}ubj)}(hrcdevh]hrcdev}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj`}ubah}(h]h ]h"]h$]h&]hhuh1j hj'}hhhj9}hK{ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj#}hhhj9}hK{ubah}(h]j}ah ](jjeh"]h$]h&]jj )j huh1jhj9}hK{hj }hhubj )}(hhh]h)}(h"register a reset controller deviceh]h"register a reset controller device}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKxhj}hhubah}(h]h ]h"]h$]h&]uh1j hj }hhhj9}hK{ubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j~j.j~j/j0j1uh1jhhhjqshNhNubj3)}(hm**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller deviceh](h)}(h**Parameters**h]j=)}(hj ~h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj ~ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK|hj~ubj)}(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)}(hj,~h]h"struct reset_controller_dev *rcdev}(hj.~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*~ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chK~hj&~ubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hjE~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKyhjB~ubah}(h]h ]h"]h$]h&]uh1jhj&~ubeh}(h]h ]h"]h$]h&]uh1jhjA~hK~hj#~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_controller_unregister (C function)c.reset_controller_unregisterhNtauh1jhjqshhhNhNubj)}(hhh](j)}(hEvoid reset_controller_unregister (struct reset_controller_dev *rcdev)h]j)}(hDvoid reset_controller_unregister(struct reset_controller_dev *rcdev)h](jA )}(hvoidh]hvoid}(hj~hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hj~hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~hhhj~hKubj)}(hreset_controller_unregisterh]j)}(hreset_controller_unregisterh]hreset_controller_unregister}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj~hhhj~hKubj )}(h$(struct reset_controller_dev *rcdev)h]j )}(h"struct reset_controller_dev *rcdevh](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_controller_devh]hreset_controller_dev}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj~modnameN classnameNjc jf )}ji ]jl )}j_ j~sbc.reset_controller_unregisterasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj~ubj)}(hrcdevh]hrcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj~ubah}(h]h ]h"]h$]h&]hhuh1j hj~hhhj~hKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj~~hhhj~hKubah}(h]jy~ah ](jjeh"]h$]h&]jj )j huh1jhj~hKhj{~hhubj )}(hhh]h)}(h$unregister a reset controller deviceh]h$unregister a reset controller device}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjChhubah}(h]h ]h"]h$]h&]uh1j hj{~hhhj~hKubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j^j.j^j/j0j1uh1jhhhjqshNhNubj3)}(ha**Parameters** ``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](h)}(h**Parameters**h]j=)}(hjhh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjfubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjbubj)}(hhh]j)}(hO``struct reset_controller_dev *rcdev`` a pointer to the reset controller deviceh](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjh]h"struct reset_controller_dev *rcdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjubj)}(hhh]h)}(h(a pointer to the reset controller deviceh]h(a pointer to the reset controller device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+devm_reset_controller_register (C function) c.devm_reset_controller_registerhNtauh1jhjqshhhNhNubj)}(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](jA )}(hinth]hint}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdevm_reset_controller_registerh]j)}(hdevm_reset_controller_registerh]hdevm_reset_controller_register}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj )}(h8(struct device *dev, struct reset_controller_dev *rcdev)h](j )}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetj>modnameN classnameNjc jf )}ji ]jl )}j_ jsb c.devm_reset_controller_registerasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdevh]hdev}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubj )}(h"struct reset_controller_dev *rcdevh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hreset_controller_devh]hreset_controller_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjmodnameN classnameNjc jf )}ji ]jX c.devm_reset_controller_registerasbuh1hhjubj)}(h h]h }(hj̀hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjڀhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hrcdevh]hrcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhKhjhhubj )}(hhh]h)}(h,resource managed reset_controller_register()h]h,resource managed reset_controller_register()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j)j.j)j/j0j1uh1jhhhjqshNhNubj3)}(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]j=)}(hj3h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj1ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj-ubj)}(hhh](j)}(hH``struct device *dev`` device that is registering this reset controller h](j)}(h``struct device *dev``h]j)}(hjRh]hstruct device *dev}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjLubj)}(hhh]h)}(h0device that is registering this reset controllerh]h0device that is registering this reset controller}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghKhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghKhjIubj)}(h\``struct reset_controller_dev *rcdev`` a pointer to the initialized reset controller device h](j)}(h&``struct reset_controller_dev *rcdev``h]j)}(hjh]h"struct reset_controller_dev *rcdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjubj)}(hhh]h)}(h4a pointer to the initialized reset controller deviceh]h4a pointer to the initialized reset controller device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjIubeh}(h]h ]h"]h$]h&]uh1jhj-ubh)}(h**Description**h]j=)}(hjƁh]h Description}(hjȁhhhNhNubah}(h]h ]h"]h$]h&]uh1j<hjāubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj-ubh)}(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.}(hj܁hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(reset_controller_add_lookup (C function)c.reset_controller_add_lookuphNtauh1jhjqshhhNhNubj)}(hhh](j)}(h`void reset_controller_add_lookup (struct reset_control_lookup *lookup, unsigned int num_entries)h]j)}(h_void reset_controller_add_lookup(struct reset_control_lookup *lookup, unsigned int num_entries)h](jA )}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hreset_controller_add_lookuph]j)}(hreset_controller_add_lookuph]hreset_controller_add_lookup}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj )}(h?(struct reset_control_lookup *lookup, unsigned int num_entries)h](j )}(h#struct reset_control_lookup *lookuph](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubh)}(hhh]j)}(hreset_control_lookuph]hreset_control_lookup}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&] refdomainjreftypej_ reftargetjhmodnameN classnameNjc jf )}ji ]jl )}j_ j.sbc.reset_controller_add_lookupasbuh1hhjDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjDubj)}(hlookuph]hlookup}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj@ubj )}(hunsigned int num_entriesh](jA )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hjȂhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjA )}(hinth]hint}(hjւhhhNhNubah}(h]h ]jM ah"]h$]h&]uh1j@ hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_entriesh]h num_entries}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j hj@ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhKhjhhubj )}(hhh]h)}(h register a set of lookup entriesh]h register a set of lookup entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j,jj-j4j.j4j/j0j1uh1jhhhjqshNhNubj3)}(h**Parameters** ``struct reset_control_lookup *lookup`` array of reset lookup entries ``unsigned int num_entries`` number of entries in the lookup arrayh](h)}(h**Parameters**h]j=)}(hj>h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j<hj<ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhj8ubj)}(hhh](j)}(hF``struct reset_control_lookup *lookup`` array of reset lookup entries h](j)}(h'``struct reset_control_lookup *lookup``h]j)}(hj]h]h#struct reset_control_lookup *lookup}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjWubj)}(hhh]h)}(harray of reset lookup entriesh]harray of reset lookup entries}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKhjTubj)}(hB``unsigned int num_entries`` number of entries in the lookup arrayh](j)}(h``unsigned int num_entries``h]j)}(hjh]hunsigned int num_entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjubj)}(hhh]h)}(h%number of entries in the lookup arrayh]h%number of entries in the lookup array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/reset:216: ./drivers/reset/core.chKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjTubeh}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j2hjqshhhNhNubeh}(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_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.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}(jjjjj j jjjjjjjjj9j6j`j]jjj)j&j!jjjjnsjksj܃jكu nametypes}(jjj jjjjj9j`jj)j!jjnsj܃uh}(jhjhj jOjjjjSjjjjj6jj]j<jjcj&jjjjj,jksjujjj>jCj j" j j j9j>jjj2j7jjjXj]jjjQjVjjjY"j^"j%j%ja'jf'j)j)jA,jF,jk.jp.j0j0j3j3ju5jz5j8j!8j}:j:j$=j)=j?j?j,Bj1Bj~DjDjFjFjIjIj-Lj2LjNjNjPjPjSjSjUjUjXXj]XjZj[j8]j=]jb_jg_j`j`jbjbj?djDdjejej*gj/gjhjhjYjj^jjkjkj5mj:mjojojqjqjكjqsjsjsjujujwjwjzjzj}j#}jy~j~~jjjju 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.