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/media/v4l2-ccimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/zh_TW/driver-api/media/v4l2-ccimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/it_IT/driver-api/media/v4l2-ccimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ja_JP/driver-api/media/v4l2-ccimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ko_KR/driver-api/media/v4l2-ccimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/pt_BR/driver-api/media/v4l2-ccimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/sp_SP/driver-api/media/v4l2-ccimodnameN 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:spacepreserveuh1hhhhhhG/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci.rsthKubhsection)}(hhh](htitle)}(h V4L2 CCI kAPIh]h V4L2 CCI kAPI}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlecci_reg_sequence (C struct)c.cci_reg_sequencehNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hcci_reg_sequenceh]hdesc_signature_line)}(hstruct cci_reg_sequenceh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhKubh desc_name)}(hcci_reg_sequenceh]h desc_sig_name)}(hhh]hcci_reg_sequence}(hj*hhhNhNubah}(h]h ]nah"]h$]h&]uh1j(hj$ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j"hhhhhjhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1hsphinx_line_type declaratorhhhhhjhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhKhhhhubh desc_content)}(hhh]h paragraph)}(h1An individual write from a sequence of CCI writesh]h1An individual write from a sequence of CCI writes}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjVhhubah}(h]h ]h"]h$]h&]uh1jThhhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainjsobjtypejtdesctypejtnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Definition**:: struct cci_reg_sequence { u32 reg; u64 val; }; **Members** ``reg`` Register address, use CCI_REG#() macros to encode reg width ``val`` Register valueh](jZ)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubh literal_block)}(h6struct cci_reg_sequence { u32 reg; u64 val; };h]h6struct cci_reg_sequence { u32 reg; u64 val; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubjZ)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubhdefinition_list)}(hhh](hdefinition_list_item)}(hD``reg`` Register address, use CCI_REG#() macros to encode reg width h](hterm)}(h``reg``h]hliteral)}(hjh]hreg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubh definition)}(hhh]jZ)}(h;Register address, use CCI_REG#() macros to encode reg widthh]h;Register address, use CCI_REG#() macros to encode reg width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``val`` Register valueh](j)}(h``val``h]j)}(hjh]hval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubj)}(hhh]jZ)}(hRegister valueh]hRegister value}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubjZ)}(h**Description**h]j)}(hj[h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhhhhubjZ)}(h-Register/value pairs for sequences of writes.h]h-Register/value pairs for sequences of writes.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hcci_read (C function) c.cci_readhNtauh1hhhhhhNhNubh)}(hhh](h)}(h>int cci_read (struct regmap *map, u32 reg, u64 *val, int *err)h]h)}(h=int cci_read(struct regmap *map, u32 reg, u64 *val, int *err)h](hdesc_sig_keyword_type)}(hinth]hint}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK;ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK;ubj#)}(hcci_readh]j))}(hcci_readh]hcci_read}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hjhhhjhK;ubhdesc_parameterlist)}(h1(struct regmap *map, u32 reg, u64 *val, int *err)h](hdesc_parameter)}(hstruct regmap *maph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j))}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsb c.cci_readasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(h*h]h*}(hj3hhhNhNubah}(h]h ]pah"]h$]h&]uh1j1hjubj))}(hmaph]hmap}(hjBhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 regh](h)}(hhh]j))}(hu32h]hu32}(hj^hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj[ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj`modnameN classnameNjj)}j]j c.cci_readasbuh1hhjWubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj))}(hregh]hreg}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjWubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 *valh](h)}(hhh]j))}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjmodnameN classnameNjj)}j]j c.cci_readasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(hvalh]hval}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(herrh]herr}(hj!hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhK;ubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhjhhhjhK;ubah}(h]jah ](jLjMeh"]h$]h&]jQjR)jShuh1hhjhK;hjhhubjU)}(hhh]jZ)}(h'Read a value from a single CCI registerh]h'Read a value from a single CCI register}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK;hjHhhubah}(h]h ]h"]h$]h&]uh1jThjhhhjhK;ubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjcjzjcj{j|j}uh1hhhhhhNhNubj)}(hXq**Parameters** ``struct regmap *map`` Register map to read from ``u32 reg`` Register address to read, use CCI_REG#() macros to encode reg width ``u64 *val`` Pointer to store read value ``int *err`` Optional pointer to store errors, if a previous error is set then the read will be skipped **Return** ``0`` on success or a negative error code on failure.h](jZ)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK?hjgubj)}(hhh](j)}(h1``struct regmap *map`` Register map to read from h](j)}(h``struct regmap *map``h]j)}(hjh]hstruct regmap *map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK=hjubj)}(hhh]jZ)}(hRegister map to read fromh]hRegister map to read from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK=hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjubj)}(hP``u32 reg`` Register address to read, use CCI_REG#() macros to encode reg width h](j)}(h ``u32 reg``h]j)}(hjh]hu32 reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK>hjubj)}(hhh]jZ)}(hCRegister address to read, use CCI_REG#() macros to encode reg widthh]hCRegister address to read, use CCI_REG#() macros to encode reg width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(h)``u64 *val`` Pointer to store read value h](j)}(h ``u64 *val``h]j)}(hjh]hu64 *val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK?hjubj)}(hhh]jZ)}(hPointer to store read valueh]hPointer to store read value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjubj)}(hh``int *err`` Optional pointer to store errors, if a previous error is set then the read will be skipped h](j)}(h ``int *err``h]j)}(hj7h]hint *err}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKAhj1ubj)}(hhh]jZ)}(hZOptional pointer to store errors, if a previous error is set then the read will be skippedh]hZOptional pointer to store errors, if a previous error is set then the read will be skipped}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK@hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhKAhjubeh}(h]h ]h"]h$]h&]uh1jhjgubjZ)}(h **Return**h]j)}(hjsh]hReturn}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKChjgubjZ)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh0 on success or a negative error code on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKChjgubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hcci_write (C function) c.cci_writehNtauh1hhhhhhNhNubh)}(hhh](h)}(h>int cci_write (struct regmap *map, u32 reg, u64 val, int *err)h]h)}(h=int cci_write(struct regmap *map, u32 reg, u64 val, int *err)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKHubj#)}(h cci_writeh]j))}(h cci_writeh]h cci_write}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hjhhhjhKHubj)}(h0(struct regmap *map, u32 reg, u64 val, int *err)h](j)}(hstruct regmap *maph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j))}(hregmaph]hregmap}(hj!hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj#modnameN classnameNjj)}j]j)}jjsb c.cci_writeasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hjOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(hmaph]hmap}(hj\hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 regh](h)}(hhh]j))}(hu32h]hu32}(hjxhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjuubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjzmodnameN classnameNjj)}j]j= c.cci_writeasbuh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj))}(hregh]hreg}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 valh](h)}(hhh]j))}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjmodnameN classnameNjj)}j]j= c.cci_writeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(hvalh]hval}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(herrh]herr}(hj.hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKHubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhjhhhjhKHubah}(h]jah ](jLjMeh"]h$]h&]jQjR)jShuh1hhjhKHhjhhubjU)}(hhh]jZ)}(h&Write a value to a single CCI registerh]h&Write a value to a single CCI register}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKHhjUhhubah}(h]h ]h"]h$]h&]uh1jThjhhhjhKHubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjpjzjpj{j|j}uh1hhhhhhNhNubj)}(hXi**Parameters** ``struct regmap *map`` Register map to write to ``u32 reg`` Register address to write, use CCI_REG#() macros to encode reg width ``u64 val`` Value to be written ``int *err`` Optional pointer to store errors, if a previous error is set then the write will be skipped **Return** ``0`` on success or a negative error code on failure.h](jZ)}(h**Parameters**h]j)}(hjzh]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKLhjtubj)}(hhh](j)}(h0``struct regmap *map`` Register map to write to h](j)}(h``struct regmap *map``h]j)}(hjh]hstruct regmap *map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKJhjubj)}(hhh]jZ)}(hRegister map to write toh]hRegister map to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubj)}(hQ``u32 reg`` Register address to write, use CCI_REG#() macros to encode reg width h](j)}(h ``u32 reg``h]j)}(hjh]hu32 reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKKhjubj)}(hhh]jZ)}(hDRegister address to write, use CCI_REG#() macros to encode reg widthh]hDRegister address to write, use CCI_REG#() macros to encode reg width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKKhjubj)}(h ``u64 val`` Value to be written h](j)}(h ``u64 val``h]j)}(hj h]hu64 val}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKLhjubj)}(hhh]jZ)}(hValue to be writtenh]hValue to be written}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hKLhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKLhjubj)}(hi``int *err`` Optional pointer to store errors, if a previous error is set then the write will be skipped h](j)}(h ``int *err``h]j)}(hjDh]hint *err}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKNhj>ubj)}(hhh]jZ)}(h[Optional pointer to store errors, if a previous error is set then the write will be skippedh]h[Optional pointer to store errors, if a previous error is set then the write will be skipped}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKMhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhKNhjubeh}(h]h ]h"]h$]h&]uh1jhjtubjZ)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKPhjtubjZ)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh0 on success or a negative error code on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKPhjtubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hcci_update_bits (C function)c.cci_update_bitshNtauh1hhhhhhNhNubh)}(hhh](h)}(hNint cci_update_bits (struct regmap *map, u32 reg, u64 mask, u64 val, int *err)h]h)}(hMint cci_update_bits(struct regmap *map, u32 reg, u64 mask, u64 val, int *err)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKUubj#)}(hcci_update_bitsh]j))}(hcci_update_bitsh]hcci_update_bits}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hjhhhjhKUubj)}(h:(struct regmap *map, u32 reg, u64 mask, u64 val, int *err)h](j)}(hstruct regmap *maph](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j))}(hregmaph]hregmap}(hj. hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj+ ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj0 modnameN classnameNjj)}j]j)}jjsbc.cci_update_bitsasbuh1hhj ubj)}(h h]h }(hjN hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hj5h]h*}(hj\ hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubj))}(hmaph]hmap}(hji hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hu32 regh](h)}(hhh]j))}(hu32h]hu32}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj modnameN classnameNjj)}j]jJ c.cci_update_bitsasbuh1hhj~ ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ ubj))}(hregh]hreg}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj~ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hu64 maskh](h)}(hhh]j))}(hu64h]hu64}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj modnameN classnameNjj)}j]jJ c.cci_update_bitsasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hmaskh]hmask}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hu64 valh](h)}(hhh]j))}(hu64h]hu64}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj modnameN classnameNjj)}j]jJ c.cci_update_bitsasbuh1hhj ubj)}(h h]h }(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hvalh]hval}(hjA hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint *errh](j)}(hinth]hint}(hjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV ubj)}(h h]h }(hjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV ubj2)}(hj5h]h*}(hjv hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjV ubj))}(herrh]herr}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjV ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKUubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhjhhhjhKUubah}(h]jah ](jLjMeh"]h$]h&]jQjR)jShuh1hhjhKUhjhhubjU)}(hhh]jZ)}(h:Perform a read/modify/write cycle on a single CCI registerh]h:Perform a read/modify/write cycle on a single CCI register}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKUhj hhubah}(h]h ]h"]h$]h&]uh1jThjhhhjhKUubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyj jzj j{j|j}uh1hhhhhhNhNubj)}(hX)**Parameters** ``struct regmap *map`` Register map to update ``u32 reg`` Register address to update, use CCI_REG#() macros to encode reg width ``u64 mask`` Bitmask to change ``u64 val`` New value for bitmask ``int *err`` Optional pointer to store errors, if a previous error is set then the update will be skipped **Description** Note this uses read-modify-write to update the bits, atomicity with regards to other cci_*() register access functions is NOT guaranteed. **Return** ``0`` on success or a negative error code on failure.h](jZ)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKYhj ubj)}(hhh](j)}(h.``struct regmap *map`` Register map to update h](j)}(h``struct regmap *map``h]j)}(hj h]hstruct regmap *map}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKXhj ubj)}(hhh]jZ)}(hRegister map to updateh]hRegister map to update}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hKXhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKXhj ubj)}(hR``u32 reg`` Register address to update, use CCI_REG#() macros to encode reg width h](j)}(h ``u32 reg``h]j)}(hj' h]hu32 reg}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj% ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKYhj! ubj)}(hhh]jZ)}(hERegister address to update, use CCI_REG#() macros to encode reg widthh]hERegister address to update, use CCI_REG#() macros to encode reg width}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj< hKYhj= ubah}(h]h ]h"]h$]h&]uh1jhj! ubeh}(h]h ]h"]h$]h&]uh1jhj< hKYhj ubj)}(h``u64 mask`` Bitmask to change h](j)}(h ``u64 mask``h]j)}(hj` h]hu64 mask}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKZhjZ ubj)}(hhh]jZ)}(hBitmask to changeh]hBitmask to change}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhju hKZhjv ubah}(h]h ]h"]h$]h&]uh1jhjZ ubeh}(h]h ]h"]h$]h&]uh1jhju hKZhj ubj)}(h"``u64 val`` New value for bitmask h](j)}(h ``u64 val``h]j)}(hj h]hu64 val}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK[hj ubj)}(hhh]jZ)}(hNew value for bitmaskh]hNew value for bitmask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hK[hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK[hj ubj)}(hj``int *err`` Optional pointer to store errors, if a previous error is set then the update will be skipped h](j)}(h ``int *err``h]j)}(hj h]hint *err}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK]hj ubj)}(hhh]jZ)}(h\Optional pointer to store errors, if a previous error is set then the update will be skippedh]h\Optional pointer to store errors, if a previous error is set then the update will be skipped}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK\hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK]hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjZ)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK_hj ubjZ)}(hNote this uses read-modify-write to update the bits, atomicity with regards to other cci_*() register access functions is NOT guaranteed.h]hNote this uses read-modify-write to update the bits, atomicity with regards to other cci_*() register access functions is NOT guaranteed.}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK^hj ubjZ)}(h **Return**h]j)}(hj5 h]hReturn}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3 ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKahj ubjZ)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubh0 on success or a negative error code on failure.}(hjK hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKbhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h cci_multi_reg_write (C function)c.cci_multi_reg_writehNtauh1hhhhhhNhNubh)}(hhh](h)}(hrint cci_multi_reg_write (struct regmap *map, const struct cci_reg_sequence *regs, unsigned int num_regs, int *err)h]h)}(hqint cci_multi_reg_write(struct regmap *map, const struct cci_reg_sequence *regs, unsigned int num_regs, int *err)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKgubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKgubj#)}(hcci_multi_reg_writeh]j))}(hcci_multi_reg_writeh]hcci_multi_reg_write}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj hhhj hKgubj)}(hZ(struct regmap *map, const struct cci_reg_sequence *regs, unsigned int num_regs, int *err)h](j)}(hstruct regmap *maph](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j))}(hregmaph]hregmap}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.cci_multi_reg_writeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hj5h]h*}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubj))}(hmaph]hmap}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h#const struct cci_reg_sequence *regsh](j)}(hconsth]hconst}(hj7 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj3 ubj)}(h h]h }(hjE hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3 ubj)}(hjh]hstruct}(hjS hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj3 ubj)}(h h]h }(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3 ubh)}(hhh]j))}(hcci_reg_sequenceh]hcci_reg_sequence}(hjq hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjn ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjs modnameN classnameNjj)}j]j c.cci_multi_reg_writeasbuh1hhj3 ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3 ubj2)}(hj5h]h*}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3 ubj))}(hregsh]hregs}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj3 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hunsigned int num_regsh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hnum_regsh]hnum_regs}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hj0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(herrh]herr}(hj=hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj hKgubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhj hhhj hKgubah}(h]j{ ah ](jLjMeh"]h$]h&]jQjR)jShuh1hhj hKghj} hhubjU)}(hhh]jZ)}(h&Write multiple registers to the deviceh]h&Write multiple registers to the device}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKghjdhhubah}(h]h ]h"]h$]h&]uh1jThj} hhhj hKgubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjjzjj{j|j}uh1hhhhhhNhNubj)}(hX=**Parameters** ``struct regmap *map`` Register map to write to ``const struct cci_reg_sequence *regs`` Array of structures containing register-address, -value pairs to be written, register-addresses use CCI_REG#() macros to encode reg width ``unsigned int num_regs`` Number of registers to write ``int *err`` Optional pointer to store errors, if a previous error is set then the write will be skipped **Description** Write multiple registers to the device where the set of register, value pairs are supplied in any order, possibly not all in a single range. Use of the CCI_REG#() macros to encode reg width is mandatory. For raw lists of register-address, -value pairs with only 8 bit wide writes regmap_multi_reg_write() can be used instead. **Return** ``0`` on success or a negative error code on failure.h](jZ)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKkhjubj)}(hhh](j)}(h0``struct regmap *map`` Register map to write to h](j)}(h``struct regmap *map``h]j)}(hjh]hstruct regmap *map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKihjubj)}(hhh]jZ)}(hRegister map to write toh]hRegister map to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKihjubj)}(h``const struct cci_reg_sequence *regs`` Array of structures containing register-address, -value pairs to be written, register-addresses use CCI_REG#() macros to encode reg width h](j)}(h'``const struct cci_reg_sequence *regs``h]j)}(hjh]h#const struct cci_reg_sequence *regs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKkhjubj)}(hhh]jZ)}(hArray of structures containing register-address, -value pairs to be written, register-addresses use CCI_REG#() macros to encode reg widthh]hArray of structures containing register-address, -value pairs to be written, register-addresses use CCI_REG#() macros to encode reg width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKkhjubj)}(h7``unsigned int num_regs`` Number of registers to write h](j)}(h``unsigned int num_regs``h]j)}(hjh]hunsigned int num_regs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKlhjubj)}(hhh]jZ)}(hNumber of registers to writeh]hNumber of registers to write}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj0hKlhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hKlhjubj)}(hi``int *err`` Optional pointer to store errors, if a previous error is set then the write will be skipped h](j)}(h ``int *err``h]j)}(hjTh]hint *err}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKnhjNubj)}(hhh]jZ)}(h[Optional pointer to store errors, if a previous error is set then the write will be skippedh]h[Optional pointer to store errors, if a previous error is set then the write will be skipped}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKmhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihKnhjubeh}(h]h ]h"]h$]h&]uh1jhjubjZ)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKphjubjZ)}(hWrite multiple registers to the device where the set of register, value pairs are supplied in any order, possibly not all in a single range.h]hWrite multiple registers to the device where the set of register, value pairs are supplied in any order, possibly not all in a single range.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKohjubjZ)}(h>Use of the CCI_REG#() macros to encode reg width is mandatory.h]h>Use of the CCI_REG#() macros to encode reg width is mandatory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKrhjubjZ)}(hyFor raw lists of register-address, -value pairs with only 8 bit wide writes regmap_multi_reg_write() can be used instead.h]hyFor raw lists of register-address, -value pairs with only 8 bit wide writes regmap_multi_reg_write() can be used instead.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKthjubjZ)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKwhjubjZ)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh0 on success or a negative error code on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKxhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%devm_cci_regmap_init_i2c (C function)c.devm_cci_regmap_init_i2chNtauh1hhhhhhNhNubh)}(hhh](h)}(hWstruct regmap * devm_cci_regmap_init_i2c (struct i2c_client *client, int reg_addr_bits)h]h)}(hUstruct regmap *devm_cci_regmap_init_i2c(struct i2c_client *client, int reg_addr_bits)h](j)}(hjh]hstruct}(hj(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj$hhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj5hKubh)}(hhh]j))}(hregmaph]hregmap}(hjGhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjDubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjImodnameN classnameNjj)}j]j)}jdevm_cci_regmap_init_i2csbc.devm_cci_regmap_init_i2casbuh1hhj$hhhj5hKubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj5hKubj2)}(hj5h]h*}(hjvhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$hhhj5hKubj#)}(hdevm_cci_regmap_init_i2ch]j))}(hjeh]hdevm_cci_regmap_init_i2c}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj$hhhj5hKubj)}(h.(struct i2c_client *client, int reg_addr_bits)h](j)}(hstruct i2c_client *clienth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j))}(h i2c_clienth]h i2c_client}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjmodnameN classnameNjj)}j]jcc.devm_cci_regmap_init_i2casbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj5h]h*}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj))}(hclienth]hclient}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint reg_addr_bitsh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(h reg_addr_bitsh]h reg_addr_bits}(hj.hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj$hhhj5hKubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhj hhhj5hKubah}(h]jah ](jLjMeh"]h$]h&]jQjR)jShuh1hhj5hKhjhhubjU)}(hhh]jZ)}(h;Create regmap to use with cci_*() register access functionsh]h;Create regmap to use with cci_*() register access functions}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjUhhubah}(h]h ]h"]h$]h&]uh1jThjhhhj5hKubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjpjzjpj{j|j}uh1hhhhhhNhNubj)}(hX7**Parameters** ``struct i2c_client *client`` i2c_client to create the regmap for ``int reg_addr_bits`` register address width to use (8 or 16) **Description** Note the memory for the created regmap is devm() managed, tied to the client. **Return** ``0`` on success or a negative error code on failure.h](jZ)}(h**Parameters**h]j)}(hjzh]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjtubj)}(hhh](j)}(hB``struct i2c_client *client`` i2c_client to create the regmap for h](j)}(h``struct i2c_client *client``h]j)}(hjh]hstruct i2c_client *client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubj)}(hhh]jZ)}(h#i2c_client to create the regmap forh]h#i2c_client to create the regmap for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h>``int reg_addr_bits`` register address width to use (8 or 16) h](j)}(h``int reg_addr_bits``h]j)}(hjh]hint reg_addr_bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubj)}(hhh]jZ)}(h'register address width to use (8 or 16)h]h'register address width to use (8 or 16)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjtubjZ)}(h**Description**h]j)}(hj h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjtubjZ)}(hMNote the memory for the created regmap is devm() managed, tied to the client.h]hMNote the memory for the created regmap is devm() managed, tied to the client.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjtubjZ)}(h **Return**h]j)}(hj4h]hReturn}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjtubjZ)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh0 on success or a negative error code on failure.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjtubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubeh}(h] v4l2-cci-kapiah ]h"] v4l2 cci kapiah$]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_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jsjps nametypes}jssh}(jphhhjjjjjjj{ j jj u 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.