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]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}(hhhhhNhNubah}(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 }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhKubh desc_name)}(hcci_reg_sequenceh]h desc_sig_name)}(hhh]hcci_reg_sequence}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhhhhhhhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhhhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhKhhhhubh desc_content)}(hhh]h paragraph)}(h1An individual write from a sequence of CCI writesh]h1An individual write from a sequence of CCI writes}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjBhhubah}(h]h ]h"]h$]h&]uh1j@hhhhhhhKubeh}(h]h ](cstructeh"]h$]h&]domainj_objtypej`desctypej`noindex 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](jF)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjpubh:}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjlubh 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.hhKhjlubjF)}(h **Members**h]ju)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjlubhdefinition_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]jF)}(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&]uh1jEhjhKhjubah}(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]jF)}(hRegister valueh]hRegister value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubjF)}(h**Description**h]ju)}(hjGh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjEubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhhhhubjF)}(h-Register/value pairs for sequences of writes.h]h-Register/value pairs for sequences of writes.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/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](h֌cci_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.hhKEubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKEubj)}(hcci_readh]j)}(hcci_readh]hcci_read}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhKEubhdesc_parameterlist)}(h1(struct regmap *map, u32 reg, u64 *val, int *err)h](hdesc_parameter)}(hstruct regmap *maph](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj_reftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsb c.cci_readasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubj)}(hmaph]hmap}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 regh](h)}(hhh]j)}(hu32h]hu32}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjLmodnameN classnameNjj)}j]j  c.cci_readasbuh1hhjCubh)}(h h]h }(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjCubj)}(hregh]hreg}(hjvhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 *valh](h)}(hhh]j)}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjmodnameN classnameNjj)}j]j  c.cci_readasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hjhhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hjhhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(herrh]herr}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKEubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hj}hhhjhKEubah}(h]jxah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhKEhjzhhubjA)}(hhh]jF)}(h'Read a value from a single CCI registerh]h'Read a value from a single CCI register}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK;hj4hhubah}(h]h ]h"]h$]h&]uh1j@hjzhhhjhKEubeh}(h]h ](j_functioneh"]h$]h&]jdj_jejOjfjOjgjhjiuh1hhhhhhNhNubjk)}(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](jF)}(h**Parameters**h]ju)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jthjWubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK?hjSubj)}(hhh](j)}(h1``struct regmap *map`` Register map to read from h](j)}(h``struct regmap *map``h]j)}(hjxh]hstruct regmap *map}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK=hjrubj)}(hhh]jF)}(hRegister map to read fromh]hRegister map to read from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhK=hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhK=hjoubj)}(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]jF)}(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&]uh1jEhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjoubj)}(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]jF)}(hPointer to store read valueh]hPointer to store read value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjoubj)}(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)}(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.hhKAhjubj)}(hhh]jF)}(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}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK@hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKAhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubjF)}(h **Return**h]ju)}(hj_h]hReturn}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jthj]ubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKChjSubjF)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubh0 on success or a negative error code on failure.}(hjuhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKChjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌cci_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.hhKRubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKRubj)}(h cci_writeh]j)}(h cci_writeh]h cci_write}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhKRubj)}(h0(struct regmap *map, u32 reg, u64 val, int *err)h](j)}(hstruct regmap *maph](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hregmaph]hregmap}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjmodnameN classnameNjj)}j]j )}jjsb c.cci_writeasbuh1hhjubh)}(h h]h }(hj-hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hj;hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(hmaph]hmap}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 regh](h)}(hhh]j)}(hu32h]hu32}(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjfmodnameN classnameNjj)}j]j) c.cci_writeasbuh1hhj]ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj]ubj)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 valh](h)}(hhh]j)}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjmodnameN classnameNjj)}j]j) c.cci_writeasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hj hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(herrh]herr}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKRubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjhhhjhKRubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhKRhjhhubjA)}(hhh]jF)}(h&Write a value to a single CCI registerh]h&Write a value to a single CCI register}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKHhjAhhubah}(h]h ]h"]h$]h&]uh1j@hjhhhjhKRubeh}(h]h ](j_functioneh"]h$]h&]jdj_jej\jfj\jgjhjiuh1hhhhhhNhNubjk)}(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](jF)}(h**Parameters**h]ju)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjdubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKLhj`ubj)}(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]jF)}(hRegister map to write toh]hRegister map to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhj|ubj)}(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]jF)}(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&]uh1jEhjhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKKhj|ubj)}(h ``u64 val`` Value to be written 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.hhKLhjubj)}(hhh]jF)}(hValue to be writtenh]hValue to be written}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKLhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKLhj|ubj)}(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)}(hj0h]hint *err}(hj2hhhNhNubah}(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.hhKNhj*ubj)}(hhh]jF)}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKMhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKNhj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubjF)}(h **Return**h]ju)}(hjlh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjjubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKPhj`ubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKPhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌cci_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.hhKdubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKdubj)}(hcci_update_bitsh]j)}(hcci_update_bitsh]hcci_update_bits}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhKdubj)}(h:(struct regmap *map, u32 reg, u64 mask, u64 val, int *err)h](j)}(hstruct regmap *maph](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hregmaph]hregmap}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj modnameN classnameNjj)}j]j )}jjsbc.cci_update_bitsasbuh1hhjubh)}(h h]h }(hj: hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hjH hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(hmaph]hmap}(hjU hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu32 regh](h)}(hhh]j)}(hu32h]hu32}(hjq hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjn ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjs modnameN classnameNjj)}j]j6 c.cci_update_bitsasbuh1hhjj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjj ubj)}(hregh]hreg}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 maskh](h)}(hhh]j)}(hu64h]hu64}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj modnameN classnameNjj)}j]j6 c.cci_update_bitsasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hmaskh]hmask}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu64 valh](h)}(hhh]j)}(hu64h]hu64}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj modnameN classnameNjj)}j]j6 c.cci_update_bitsasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hvalh]hval}(hj- hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint *errh](j)}(hinth]hint}(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB ubh)}(h h]h }(hjT hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjB ubj)}(hj!h]h*}(hjb hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjB ubj)}(herrh]herr}(hjo hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjB ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKdubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjhhhjhKdubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhKdhjhhubjA)}(hhh]jF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKUhj hhubah}(h]h ]h"]h$]h&]uh1j@hjhhhjhKdubeh}(h]h ](j_functioneh"]h$]h&]jdj_jej jfj jgjhjiuh1hhhhhhNhNubjk)}(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](jF)}(h**Parameters**h]ju)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jthj ubah}(h]h ]h"]h$]h&]uh1jEha/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]jF)}(hRegister map to updateh]hRegister map to update}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj 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]jF)}(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&]uh1jEhj( 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)}(hjL h]hu64 mask}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKZhjF ubj)}(hhh]jF)}(hBitmask to changeh]hBitmask to change}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhja hKZhjb ubah}(h]h ]h"]h$]h&]uh1jhjF ubeh}(h]h ]h"]h$]h&]uh1jhja 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]jF)}(hNew value for bitmaskh]hNew value for bitmask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj 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]jF)}(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&]uh1jEha/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 ubjF)}(h**Description**h]ju)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jthj ubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK_hj ubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhK_hj ubjF)}(h **Return**h]ju)}(hj! h]hReturn}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1jthj ubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKbhj ubjF)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7 ubh0 on success or a negative error code on failure.}(hj7 hhhNhNubeh}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKbhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(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}(hjt hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp hhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKzubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjp hhhj hKzubj)}(hcci_multi_reg_writeh]j)}(hcci_multi_reg_writeh]hcci_multi_reg_write}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjp hhhj hKzubj)}(hZ(struct regmap *map, const struct cci_reg_sequence *regs, unsigned int num_regs, int *err)h](j)}(hstruct regmap *maph](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hregmaph]hregmap}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj modnameN classnameNjj)}j]j )}jj sbc.cci_multi_reg_writeasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hj!h]h*}(hj hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhj ubj)}(hmaph]hmap}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h#const struct cci_reg_sequence *regsh](h)}(hconsth]hconst}(hj# hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj1 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]hstruct}(hj? hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hjL hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hcci_reg_sequenceh]hcci_reg_sequence}(hj] hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjZ ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj_ modnameN classnameNjj)}j]j c.cci_multi_reg_writeasbuh1hhj ubh)}(h h]h }(hj{ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hj!h]h*}(hj hhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhj ubj)}(hregsh]hregs}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hunsigned int num_regsh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hnum_regsh]hnum_regs}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hint *errh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hj!h]h*}(hjhhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhj ubj)}(herrh]herr}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhjp hhhj hKzubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjl hhhj hKzubah}(h]jg ah ](j8j9eh"]h$]h&]j=j>)j?huh1hhj hKzhji hhubjA)}(hhh]jF)}(h&Write multiple registers to the deviceh]h&Write multiple registers to the device}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKghjPhhubah}(h]h ]h"]h$]h&]uh1j@hji hhhj hKzubeh}(h]h ](j_functioneh"]h$]h&]jdj_jejkjfjkjgjhjiuh1hhhhhhNhNubjk)}(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](jF)}(h**Parameters**h]ju)}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjsubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKkhjoubj)}(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]jF)}(hRegister map to write toh]hRegister map to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKihjubah}(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]jF)}(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&]uh1jEha/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}(hj hhhNhNubah}(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]jF)}(hNumber of registers to writeh]hNumber of registers to write}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKlhjubj)}(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)}(hj@h]hint *err}(hjBhhhNhNubah}(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.hhKnhj:ubj)}(hhh]jF)}(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}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKmhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKnhjubeh}(h]h ]h"]h$]h&]uh1jhjoubjF)}(h**Description**h]ju)}(hj|h]h Description}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jthjzubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKphjoubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKphjoubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKshjoubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKuhjoubjF)}(h **Return**h]ju)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKxhjoubjF)}(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&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKxhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(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](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKubh)}(h h]h }(hj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhj!hKubh)}(hhh]j)}(hregmaph]hregmap}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetj5modnameN classnameNjj)}j]j )}jdevm_cci_regmap_init_i2csbc.devm_cci_regmap_init_i2casbuh1hhjhhhj!hKubh)}(h h]h }(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhj!hKubj)}(hj!h]h*}(hjbhhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjhhhj!hKubj)}(hdevm_cci_regmap_init_i2ch]j)}(hjQh]hdevm_cci_regmap_init_i2c}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjoubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhj!hKubj)}(h.(struct i2c_client *client, int reg_addr_bits)h](j)}(hstruct i2c_client *clienth](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h i2c_clienth]h i2c_client}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjmodnameN classnameNjj)}j]jOc.devm_cci_regmap_init_i2casbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hj!h]h*}(hjhhhNhNubah}(h]h ]j*ah"]h$]h&]uh1jhjubj)}(hclienth]hclient}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint reg_addr_bitsh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h reg_addr_bitsh]h reg_addr_bits}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj!hKubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hj hhhj!hKubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhj!hKhj hhubjA)}(hhh]jF)}(h;Create regmap to use with cci_*() register access functionsh]h;Create regmap to use with cci_*() register access functions}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhjAhhubah}(h]h ]h"]h$]h&]uh1j@hj hhhj!hKubeh}(h]h ](j_functioneh"]h$]h&]jdj_jej\jfj\jgjhjiuh1hhhhhhNhNubjk)}(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](jF)}(h**Parameters**h]ju)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjdubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj`ubj)}(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]jF)}(h#i2c_client to create the regmap forh]h#i2c_client to create the regmap for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj|ubj)}(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]jF)}(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&]uh1jEhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubjF)}(h**Description**h]ju)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj`ubjF)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj`ubjF)}(h **Return**h]ju)}(hj h]hReturn}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj`ubjF)}(h5``0`` on success or a negative error code on failure.h](j)}(h``0``h]h0}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh0 on success or a negative error code on failure.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1jEha/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-cci:5: ./include/media/v4l2-cci.hhKhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubeh}(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_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}j_j\s nametypes}j_sh}(j\hhhjxj}jjjjjg jl 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.