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/dev-tools/kunit/api/clkmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/dev-tools/kunit/api/clkmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/dev-tools/kunit/api/clkmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/dev-tools/kunit/api/clkmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/dev-tools/kunit/api/clkmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/dev-tools/kunit/api/clkmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk.rsthKubhsection)}(hhh](htitle)}(hClk APIh]hClk API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hBThe KUnit clk API is used to test clk providers and clk consumers.h]hBThe KUnit clk API is used to test clk providers and clk consumers.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single%clk_prepare_enable_kunit (C function)c.clk_prepare_enable_kunithNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hBint clk_prepare_enable_kunit (struct kunit *test, struct clk *clk)h]hdesc_signature_line)}(hAint clk_prepare_enable_kunit(struct kunit *test, struct clk *clk)h](hdesc_sig_keyword_type)}(hinth]hint}(hhhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hhhhhj hKubh desc_name)}(hclk_prepare_enable_kunith]h desc_sig_name)}(hclk_prepare_enable_kunith]hclk_prepare_enable_kunit}(hj&hhhNhNubah}(h]h ]nah"]h$]h&]uh1j$hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhhhhhj hKubhdesc_parameterlist)}(h%(struct kunit *test, struct clk *clk)h](hdesc_parameter)}(hstruct kunit *testh](hdesc_sig_keyword)}(hstructh]hstruct}(hjKhhhNhNubah}(h]h ]kah"]h$]h&]uh1jIhjEubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hkunith]hkunit}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj(sbc.clk_prepare_enable_kunitasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjEubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj?ubjD)}(hstruct clk *clkh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hclkh]hclk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.clk_prepare_enable_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hclkh]hclk}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj?ubeh}(h]h ]h"]h$]h&]hhuh1j=hhhhhj hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhj hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj hKhhhhubh desc_content)}(hhh]h)}(h!Test managed clk_prepare_enable()h]h!Test managed clk_prepare_enable()}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjThhubah}(h]h ]h"]h$]h&]uh1jRhhhhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejodesctypejonoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Parameters** ``struct kunit *test`` The test context ``struct clk *clk`` clk to prepare and enable **Return** 0 on success, or negative errno on failure.h](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj{ubhdefinition_list)}(hhh](hdefinition_list_item)}(h(``struct kunit *test`` The test context h](hterm)}(h``struct kunit *test``h]hliteral)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh definition)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h.``struct clk *clk`` clk to prepare and enable h](j)}(h``struct clk *clk``h]j)}(hjh]hstruct clk *clk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(hclk to prepare and enableh]hclk to prepare and enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhj{ubh)}(h **Return**h]j)}(hj h]hReturn}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj{ubh)}(h+0 on success, or negative errno on failure.h]h+0 on success, or negative errno on failure.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hclk_get_kunit (C function)c.clk_get_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hWstruct clk * clk_get_kunit (struct kunit *test, struct device *dev, const char *con_id)h]h)}(hUstruct clk *clk_get_kunit(struct kunit *test, struct device *dev, const char *con_id)h](jJ)}(hjMh]hstruct}(hjehhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjahhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK5ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjrhK5ubh)}(hhh]j%)}(hclkh]hclk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j clk_get_kunitsbc.clk_get_kunitasbuh1hhjahhhjrhK5ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjrhK5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhjrhK5ubj)}(h clk_get_kunith]j%)}(hjh]h clk_get_kunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhjahhhjrhK5ubj>)}(h<(struct kunit *test, struct device *dev, const char *con_id)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.clk_get_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubjD)}(hstruct device *devh](jJ)}(hjMh]hstruct}(hjOhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hdeviceh]hdevice}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]jc.clk_get_kunitasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubjD)}(hconst char *con_idh](jJ)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcon_idh]hcon_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubeh}(h]h ]h"]h$]h&]hhuh1j=hjahhhjrhK5ubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhj]hhhjrhK5ubah}(h]jXah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhjrhK5hjZhhubjS)}(hhh]h)}(hTest managed clk_get()h]hTest managed clk_get()}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK5hj+hhubah}(h]h ]h"]h$]h&]uh1jRhjZhhhjrhK5ubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjFjujFjvjwjxuh1hhhhhhNhNubjz)}(hXi**Parameters** ``struct kunit *test`` The test context ``struct device *dev`` device for clock "consumer" ``const char *con_id`` clock consumer ID **Description** Just like clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes. **Return** new clk consumer or ERR_PTR on failure.h](h)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK9hjJubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hjoh]hstruct kunit *test}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK6hjiubj)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK6hjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhK6hjfubj)}(h3``struct device *dev`` device for clock "consumer" h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK7hjubj)}(hhh]h)}(hdevice for clock "consumer"h]hdevice for clock “consumer”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK7hjfubj)}(h)``const char *con_id`` clock consumer ID h](j)}(h``const char *con_id``h]j)}(hjh]hconst char *con_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK8hjubj)}(hhh]h)}(hclock consumer IDh]hclock consumer ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjfubeh}(h]h ]h"]h$]h&]uh1jhjJubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK:hjJubh)}(hJust like clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.h]hJust like clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK:hjJubh)}(h **Return**h]j)}(hjCh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK=hjJubh)}(h'new clk consumer or ERR_PTR on failure.h]h'new clk consumer or ERR_PTR on failure.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK=hjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hof_clk_get_kunit (C function)c.of_clk_get_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hUstruct clk * of_clk_get_kunit (struct kunit *test, struct device_node *np, int index)h]h)}(hSstruct clk *of_clk_get_kunit(struct kunit *test, struct device_node *np, int index)h](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKKubh)}(hhh]j%)}(hclkh]hclk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jof_clk_get_kunitsbc.of_clk_get_kunitasbuh1hhjhhhjhKKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKKubj)}(hof_clk_get_kunith]j%)}(hjh]hof_clk_get_kunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhjhhhjhKKubj>)}(h7(struct kunit *test, struct device_node *np, int index)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jc.of_clk_get_kunitasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubjD)}(hstruct device_node *nph](jJ)}(hjMh]hstruct}(hjrhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(h device_nodeh]h device_node}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.of_clk_get_kunitasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hnph]hnp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubjD)}(h int indexh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hindexh]hindex}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChjubeh}(h]h ]h"]h$]h&]hhuh1j=hjhhhjhKKubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhjhhhjhKKubah}(h]j{ah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhjhKKhj}hhubjS)}(hhh]h)}(hTest managed of_clk_get()h]hTest managed of_clk_get()}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKKhj%hhubah}(h]h ]h"]h$]h&]uh1jRhj}hhhjhKKubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtj@juj@jvjwjxuh1hhhhhhNhNubjz)}(hX**Parameters** ``struct kunit *test`` The test context ``struct device_node *np`` device_node for clock "consumer" ``int index`` index in 'clocks' property of **np** **Description** Just like of_clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes. **Return** new clk consumer or ERR_PTR on failure.h](h)}(h**Parameters**h]j)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKOhjDubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hjih]hstruct kunit *test}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKLhjcubj)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hKLhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hKLhj`ubj)}(h<``struct device_node *np`` device_node for clock "consumer" h](j)}(h``struct device_node *np``h]j)}(hjh]hstruct device_node *np}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKMhjubj)}(hhh]h)}(h device_node for clock "consumer"h]h$device_node for clock “consumer”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKMhj`ubj)}(h3``int index`` index in 'clocks' property of **np** h](j)}(h ``int index``h]j)}(hjh]h int index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKNhjubj)}(hhh]h)}(h$index in 'clocks' property of **np**h](h"index in ‘clocks’ property of }(hjhhhNhNubj)}(h**np**h]hnp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKNhj`ubeh}(h]h ]h"]h$]h&]uh1jhjDubh)}(h**Description**h]j)}(hj$ h]h Description}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj" ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKPhjDubh)}(hJust like of_clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.h]hJust like of_clk_get(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKPhjDubh)}(h **Return**h]j)}(hjK h]hReturn}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKShjDubh)}(h'new clk consumer or ERR_PTR on failure.h]h'new clk consumer or ERR_PTR on failure.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKShjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!clk_hw_get_clk_kunit (C function)c.clk_hw_get_clk_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(h]struct clk * clk_hw_get_clk_kunit (struct kunit *test, struct clk_hw *hw, const char *con_id)h]h)}(h[struct clk *clk_hw_get_clk_kunit(struct kunit *test, struct clk_hw *hw, const char *con_id)h](jJ)}(hjMh]hstruct}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj hhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKaubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKaubh)}(hhh]j%)}(hclkh]hclk}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jclk_hw_get_clk_kunitsbc.clk_hw_get_clk_kunitasbuh1hhj hhhj hKaubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKaubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKaubj)}(hclk_hw_get_clk_kunith]j%)}(hj h]hclk_hw_get_clk_kunit}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhj hhhj hKaubj>)}(h;(struct kunit *test, struct clk_hw *hw, const char *con_id)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hkunith]hkunit}(hj( hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj% ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj* modnameN classnameNjj)}j]j c.clk_hw_get_clk_kunitasbuh1hhj ubj)}(h h]h }(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjT hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(htesth]htest}(hja hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj ubjD)}(hstruct clk_hw *hwh](jJ)}(hjMh]hstruct}(hjz hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjv ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjv ubh)}(hhh]j%)}(hclk_hwh]hclk_hw}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.clk_hw_get_clk_kunitasbuh1hhjv ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjv ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv ubj%)}(hhwh]hhw}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjv ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj ubjD)}(hconst char *con_idh](jJ)}(hjh]hconst}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hcon_idh]hcon_id}(hj. hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj ubeh}(h]h ]h"]h$]h&]hhuh1j=hj hhhj hKaubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhj hhhj hKaubah}(h]j ah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhj hKahj hhubjS)}(hhh]h)}(hTest managed clk_hw_get_clk()h]hTest managed clk_hw_get_clk()}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKahjU hhubah}(h]h ]h"]h$]h&]uh1jRhj hhhj hKaubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjp jujp jvjwjxuh1hhhhhhNhNubjz)}(hX**Parameters** ``struct kunit *test`` The test context ``struct clk_hw *hw`` clk_hw associated with the clk being consumed ``const char *con_id`` connection ID string on device **Description** Just like clk_hw_get_clk(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes. **Return** new clk consumer or ERR_PTR on failure.h](h)}(h**Parameters**h]j)}(hjz h]h Parameters}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKehjt ubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hj h]hstruct kunit *test}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKbhj ubj)}(hhh]h)}(hThe test contexth]hThe test context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKbhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKbhj ubj)}(hD``struct clk_hw *hw`` clk_hw associated with the clk being consumed h](j)}(h``struct clk_hw *hw``h]j)}(hj h]hstruct clk_hw *hw}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKchj ubj)}(hhh]h)}(h-clk_hw associated with the clk being consumedh]h-clk_hw associated with the clk being consumed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKchj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKchj ubj)}(h6``const char *con_id`` connection ID string on device h](j)}(h``const char *con_id``h]j)}(hj h]hconst char *con_id}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKdhj ubj)}(hhh]h)}(hconnection ID string on deviceh]hconnection ID string on device}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKdhj! ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKdhj ubeh}(h]h ]h"]h$]h&]uh1jhjt ubh)}(h**Description**h]j)}(hjF h]h Description}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKfhjt ubh)}(hJust like clk_hw_get_clk(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.h]hJust like clk_hw_get_clk(), except the clk is managed by the test case and is automatically put with clk_put() after the test case concludes.}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKfhjt ubh)}(h **Return**h]j)}(hjm h]hReturn}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKihjt ubh)}(h'new clk consumer or ERR_PTR on failure.h]h'new clk consumer or ERR_PTR on failure.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKihjt ubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2clk_hw_get_clk_prepared_enabled_kunit (C function)'c.clk_hw_get_clk_prepared_enabled_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hnstruct clk * clk_hw_get_clk_prepared_enabled_kunit (struct kunit *test, struct clk_hw *hw, const char *con_id)h]h)}(hlstruct clk *clk_hw_get_clk_prepared_enabled_kunit(struct kunit *test, struct clk_hw *hw, const char *con_id)h](jJ)}(hjMh]hstruct}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj hhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKwubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKwubh)}(hhh]j%)}(hclkh]hclk}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}j%clk_hw_get_clk_prepared_enabled_kunitsb'c.clk_hw_get_clk_prepared_enabled_kunitasbuh1hhj hhhj hKwubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKwubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKwubj)}(h%clk_hw_get_clk_prepared_enabled_kunith]j%)}(hj h]h%clk_hw_get_clk_prepared_enabled_kunit}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhj hhhj hKwubj>)}(h;(struct kunit *test, struct clk_hw *hw, const char *con_id)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hj, hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj( ubj)}(h h]h }(hj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj( ubh)}(hhh]j%)}(hkunith]hkunit}(hjJ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjG ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjL modnameN classnameNjj)}j]j 'c.clk_hw_get_clk_prepared_enabled_kunitasbuh1hhj( ubj)}(h h]h }(hjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj( ubj)}(hjh]h*}(hjv hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj( ubj%)}(htesth]htest}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj( ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj$ ubjD)}(hstruct clk_hw *hwh](jJ)}(hjMh]hstruct}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hclk_hwh]hclk_hw}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j 'c.clk_hw_get_clk_prepared_enabled_kunitasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hhwh]hhw}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj$ ubjD)}(hconst char *con_idh](jJ)}(hjh]hconst}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcon_idh]hcon_id}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj$ ubeh}(h]h ]h"]h$]h&]hhuh1j=hj hhhj hKwubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhj hhhj hKwubah}(h]j ah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhj hKwhj hhubjS)}(hhh]h)}(h4Test managed clk_hw_get_clk() + clk_prepare_enable()h]h4Test managed clk_hw_get_clk() + clk_prepare_enable()}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKwhjwhhubah}(h]h ]h"]h$]h&]uh1jRhj hhhj hKwubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjjujjvjwjxuh1hhhhhhNhNubjz)}(hX1**Parameters** ``struct kunit *test`` The test context ``struct clk_hw *hw`` clk_hw associated with the clk being consumed ``const char *con_id`` connection ID string on device **Description** Just like .. code-block:: c struct clk *clk = clk_hw_get_clk(...); clk_prepare_enable(clk); except the clk is managed by the test case and is automatically disabled and unprepared with clk_disable_unprepare() and put with clk_put() after the test case concludes. **Return** new clk consumer that is prepared and enabled or ERR_PTR on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK{hjubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKxhjubj)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKxhjubj)}(hD``struct clk_hw *hw`` clk_hw associated with the clk being consumed h](j)}(h``struct clk_hw *hw``h]j)}(hjh]hstruct clk_hw *hw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKyhjubj)}(hhh]h)}(h-clk_hw associated with the clk being consumedh]h-clk_hw associated with the clk being consumed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKyhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKyhjubj)}(h6``const char *con_id`` connection ID string on device h](j)}(h``const char *con_id``h]j)}(hj-h]hconst char *con_id}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKzhj'ubj)}(hhh]h)}(hconnection ID string on deviceh]hconnection ID string on device}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhKzhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKzhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjhh]h Description}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK|hjubh)}(h Just likeh]h Just like}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK|hjubh literal_block)}(h?struct clk *clk = clk_hw_get_clk(...); clk_prepare_enable(clk);h]h?struct clk *clk = clk_hw_get_clk(...); clk_prepare_enable(clk);}hjsbah}(h]h ]h"]h$]h&]hhforcelanguagejhighlight_args}uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chK~hjubh)}(hexcept the clk is managed by the test case and is automatically disabled and unprepared with clk_disable_unprepare() and put with clk_put() after the test case concludes.h]hexcept the clk is managed by the test case and is automatically disabled and unprepared with clk_disable_unprepare() and put with clk_put() after the test case concludes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(hDnew clk consumer that is prepared and enabled or ERR_PTR on failure.h]hDnew clk consumer that is prepared and enabled or ERR_PTR on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"clk_hw_register_kunit (C function)c.clk_hw_register_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hUint clk_hw_register_kunit (struct kunit *test, struct device *dev, struct clk_hw *hw)h]h)}(hTint clk_hw_register_kunit(struct kunit *test, struct device *dev, struct clk_hw *hw)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hclk_hw_register_kunith]j%)}(hclk_hw_register_kunith]hclk_hw_register_kunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhjhhhjhKubj>)}(h;(struct kunit *test, struct device *dev, struct clk_hw *hw)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hj5hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hkunith]hkunit}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjsbc.clk_hw_register_kunitasbuh1hhj1ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj-ubjD)}(hstruct device *devh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]joc.clk_hw_register_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj-ubjD)}(hstruct clk_hw *hwh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hclk_hwh]hclk_hw}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]joc.clk_hw_register_kunitasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhwh]hhw}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj-ubeh}(h]h ]h"]h$]h&]hhuh1j=hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhjhhhjhKubah}(h]jah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhjhKhjhhubjS)}(hhh]h)}(hTest managed clk_hw_register()h]hTest managed clk_hw_register()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjhhubah}(h]h ]h"]h$]h&]uh1jRhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjjujjvjwjxuh1hhhhhhNhNubjz)}(hX**Parameters** ``struct kunit *test`` The test context ``struct device *dev`` device that is registering this clock ``struct clk_hw *hw`` link to hardware-specific clock data **Description** Just like clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes. **Return** 0 on success or a negative errno value on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h=``struct device *dev`` device that is registering this clock h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj ubj)}(hhh]h)}(h%device that is registering this clockh]h%device that is registering this clock}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hKhjubj)}(h;``struct clk_hw *hw`` link to hardware-specific clock data h](j)}(h``struct clk_hw *hw``h]j)}(hjKh]hstruct clk_hw *hw}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjEubj)}(hhh]h)}(h$link to hardware-specific clock datah]h$link to hardware-specific clock data}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKhjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(hJust like clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes.h]hJust like clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h20 on success or a negative errno value on failure.h]h20 on success or a negative errno value on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%of_clk_hw_register_kunit (C function)c.of_clk_hw_register_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(h^int of_clk_hw_register_kunit (struct kunit *test, struct device_node *node, struct clk_hw *hw)h]h)}(h]int of_clk_hw_register_kunit(struct kunit *test, struct device_node *node, struct clk_hw *hw)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hof_clk_hw_register_kunith]j%)}(hof_clk_hw_register_kunith]hof_clk_hw_register_kunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhjhhhjhKubj>)}(hA(struct kunit *test, struct device_node *node, struct clk_hw *hw)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hj/hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hkunith]hkunit}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsbc.of_clk_hw_register_kunitasbuh1hhj+ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj'ubjD)}(hstruct device_node *nodeh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h device_nodeh]h device_node}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jic.of_clk_hw_register_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnodeh]hnode}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj'ubjD)}(hstruct clk_hw *hwh](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hclk_hwh]hclk_hw}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]jic.of_clk_hw_register_kunitasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hhwh]hhw}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj'ubeh}(h]h ]h"]h$]h&]hhuh1j=hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhjhhhjhKubah}(h]jah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhjhKhjhhubjS)}(hhh]h)}(h!Test managed of_clk_hw_register()h]h!Test managed of_clk_hw_register()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjhhubah}(h]h ]h"]h$]h&]uh1jRhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjjujjvjwjxuh1hhhhhhNhNubjz)}(hX**Parameters** ``struct kunit *test`` The test context ``struct device_node *node`` device_node of device that is registering this clock ``struct clk_hw *hw`` link to hardware-specific clock data **Description** Just like of_clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes. **Return** 0 on success or a negative errno value on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(hThe test contexth]hThe test context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hR``struct device_node *node`` device_node of device that is registering this clock h](j)}(h``struct device_node *node``h]j)}(hj h]hstruct device_node *node}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(h4device_node of device that is registering this clockh]h4device_node of device that is registering this clock}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjubj)}(h;``struct clk_hw *hw`` link to hardware-specific clock data h](j)}(h``struct clk_hw *hw``h]j)}(hjEh]hstruct clk_hw *hw}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj?ubj)}(hhh]h)}(h$link to hardware-specific clock datah]h$link to hardware-specific clock data}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhKhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(hJust like of_clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes.h]hJust like of_clk_hw_register(), except the clk registration is managed by the test case and is automatically unregistered after the test case concludes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h20 on success or a negative errno value on failure.h]h20 on success or a negative errno value on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)of_clk_add_hw_provider_kunit (C function)c.of_clk_add_hw_provider_kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hint of_clk_add_hw_provider_kunit (struct kunit *test, struct device_node *np, struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data), void *data)h]h)}(hint of_clk_add_hw_provider_kunit(struct kunit *test, struct device_node *np, struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data), void *data)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hof_clk_add_hw_provider_kunith]j%)}(hof_clk_add_hw_provider_kunith]hof_clk_add_hw_provider_kunit}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]hhuh1jhjhhhjhKubj>)}(h|(struct kunit *test, struct device_node *np, struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data), void *data)h](jD)}(hstruct kunit *testh](jJ)}(hjMh]hstruct}(hj)hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj%ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hhh]j%)}(hkunith]hkunit}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjsbc.of_clk_add_hw_provider_kunitasbuh1hhj%ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj!ubjD)}(hstruct device_node *nph](jJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h device_nodeh]h device_node}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.of_clk_add_hw_provider_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjub0.j)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnph]hnp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj!ubjD)}(hBstruct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data)h](jJ)}(hjMh]hstruct}(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hclk_hwh]hclk_hw}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]jcc.of_clk_add_hw_provider_kunitasbuh1hhjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h(h]h(}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hgeth]hget}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h)h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjdh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjMh]hstruct}(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hof_phandle_argsh]hof_phandle_args}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.of_clk_add_hw_provider_kunitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hclkspech]hclkspec}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h,h]h,}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdatah]hdata}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj!ubjD)}(h void *datah](h)}(hvoidh]hvoid}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jChj!ubeh}(h]h ]h"]h$]h&]hhuh1j=hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjDuh1hjEjFhjhhhjhKubah}(h]jah ](jJjKeh"]h$]h&]jOjP)jQhuh1hhjhKhjhhubjS)}(hhh]h)}(h%Test managed of_clk_add_hw_provider()h]h%Test managed of_clk_add_hw_provider()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjhhubah}(h]h ]h"]h$]h&]uh1jRhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jsjjtjjujjvjwjxuh1hhhhhhNhNubjz)}(hX**Parameters** ``struct kunit *test`` The test context ``struct device_node *np`` Device node pointer associated with clock provider ``struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data)`` Callback for decoding clk_hw ``void *data`` Context pointer for **get** callback. **Description** Just like of_clk_add_hw_provider(), except the clk_hw provider is managed by the test case and is automatically unregistered after the test case concludes. **Return** 0 on success or a negative errno value on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh](j)}(h(``struct kunit *test`` The test context h](j)}(h``struct kunit *test``h]j)}(hj h]hstruct kunit *test}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(hThe test contexth]hThe test context}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hN``struct device_node *np`` Device node pointer associated with clock provider h](j)}(h``struct device_node *np``h]j)}(hjCh]hstruct device_node *np}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhj=ubj)}(hhh]h)}(h2Device node pointer associated with clock providerh]h2Device node pointer associated with clock provider}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhKhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjubj)}(hd``struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data)`` Callback for decoding clk_hw h](j)}(hF``struct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data)``h]j)}(hj|h]hBstruct clk_hw *(*get)(struct of_phandle_args *clkspec, void *data)}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjvubj)}(hhh]h)}(hCallback for decoding clk_hwh]hCallback for decoding clk_hw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h5``void *data`` Context pointer for **get** callback. h](j)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubj)}(hhh]h)}(h%Context pointer for **get** callback.h](hContext pointer for }(hjhhhNhNubj)}(h**get**h]hget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh callback.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(hJust like of_clk_add_hw_provider(), except the clk_hw provider is managed by the test case and is automatically unregistered after the test case concludes.h]hJust like of_clk_add_hw_provider(), except the clk_hw provider is managed by the test case and is automatically unregistered after the test case concludes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h **Return**h]j)}(hj)h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubh)}(h20 on success or a negative errno value on failure.h]h20 on success or a negative errno value on failure.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/clk:9: ./drivers/clk/clk_kunit_helpers.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jyhhhhhNhNubeh}(h]clk-apiah ]h"]clk 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}jZjWs nametypes}jZsh}(jWhhhjXj]j{jj j j j jjjjjju 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.