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/nvmemmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/zh_TW/driver-api/nvmemmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/it_IT/driver-api/nvmemmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ja_JP/driver-api/nvmemmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/ko_KR/driver-api/nvmemmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget$/translations/sp_SP/driver-api/nvmemmodnameN 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:spacepreserveuh1hhhhhh>/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem.rsthKubhsection)}(hhh](htitle)}(hNVMEM Subsystemh]hNVMEM Subsystem}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh block_quote)}(h5Srinivas Kandagatla h]h paragraph)}(h4Srinivas Kandagatla h](hSrinivas Kandagatla <}(hhhhhNhNubh reference)}(hsrinivas.kandagatla@linaro.orgh]hsrinivas.kandagatla@linaro.org}(hhhhhNhNubah}(h]h ]h"]h$]h&]refuri%mailto:srinivas.kandagatla@linaro.orguh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h[This document explains the NVMEM Framework along with the APIs provided, and how to use it.h]h[This document explains the NVMEM Framework along with the APIs provided, and how to use it.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(h1. Introductionh]h1. Introduction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK ubh)}(h*NVMEM* is the abbreviation for Non Volatile Memory layer. It is used to retrieve configuration of SOC or Device specific data from non volatile memories like eeprom, efuses and so on.h](hemphasis)}(h*NVMEM*h]hNVMEM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is the abbreviation for Non Volatile Memory layer. It is used to retrieve configuration of SOC or Device specific data from non volatile memories like eeprom, efuses and so on.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hBefore this framework existed, NVMEM drivers like eeprom were stored in drivers/misc, where they all had to duplicate pretty much the same code to register a sysfs file, allow in-kernel users to access the content of the devices they were driving, etc.h]hBefore this framework existed, NVMEM drivers like eeprom were stored in drivers/misc, where they all had to duplicate pretty much the same code to register a sysfs file, allow in-kernel users to access the content of the devices they were driving, etc.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hThis was also a problem as far as other in-kernel users were involved, since the solutions used were pretty much different from one driver to another, there was a rather big abstraction leak.h]hThis was also a problem as far as other in-kernel users were involved, since the solutions used were pretty much different from one driver to another, there was a rather big abstraction leak.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hThis framework aims at solve these problems. It also introduces DT representation for consumer devices to go get the data they require (MAC Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs.h]hThis framework aims at solve these problems. It also introduces DT representation for consumer devices to go get the data they require (MAC Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hhh](h)}(hNVMEM Providersh]hNVMEM Providers}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhhhhhK ubh)}(hqNVMEM provider refers to an entity that implements methods to initialize, read and write the non-volatile memory.h]hqNVMEM provider refers to an entity that implements methods to initialize, read and write the non-volatile memory.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjbhhubeh}(h]nvmem-providersah ]h"]nvmem providersah$]h&]uh1hhj hhhhhK ubeh}(h] introductionah ]h"]1. introductionah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h/2. Registering/Unregistering the NVMEM providerh]h/2. Registering/Unregistering the NVMEM provider}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK&ubh)}(hA NVMEM provider can register with NVMEM core by supplying relevant nvmem configuration to nvmem_register(), on success core would return a valid nvmem_device pointer.h]hA NVMEM provider can register with NVMEM core by supplying relevant nvmem configuration to nvmem_register(), on success core would return a valid nvmem_device pointer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjhhubh)}(hJnvmem_unregister() is used to unregister a previously registered provider.h]hJnvmem_unregister() is used to unregister a previously registered provider.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjhhubh)}(h"For example, a simple nvram case::h]h!For example, a simple nvram case:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjhhubh literal_block)}(hXJstatic int brcm_nvram_probe(struct platform_device *pdev) { struct nvmem_config config = { .name = "brcm-nvram", .reg_read = brcm_nvram_read, }; ... config.dev = &pdev->dev; config.priv = priv; config.size = resource_size(res); devm_nvmem_register(&config); }h]hXJstatic int brcm_nvram_probe(struct platform_device *pdev) { struct nvmem_config config = { .name = "brcm-nvram", .reg_read = brcm_nvram_read, }; ... config.dev = &pdev->dev; config.priv = priv; config.size = resource_size(res); devm_nvmem_register(&config); }}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK0hjhhubh)}(h\Users of board files can define and register nvmem cells using the nvmem_cell_table struct::h]h[Users of board files can define and register nvmem cells using the nvmem_cell_table struct:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hjhhubj)}(hXstatic struct nvmem_cell_info foo_nvmem_cells[] = { { .name = "macaddr", .offset = 0x7f00, .bytes = ETH_ALEN, } }; static struct nvmem_cell_table foo_nvmem_cell_table = { .nvmem_name = "i2c-eeprom", .cells = foo_nvmem_cells, .ncells = ARRAY_SIZE(foo_nvmem_cells), }; nvmem_add_cell_table(&foo_nvmem_cell_table);h]hXstatic struct nvmem_cell_info foo_nvmem_cells[] = { { .name = "macaddr", .offset = 0x7f00, .bytes = ETH_ALEN, } }; static struct nvmem_cell_table foo_nvmem_cell_table = { .nvmem_name = "i2c-eeprom", .cells = foo_nvmem_cells, .ncells = ARRAY_SIZE(foo_nvmem_cells), }; nvmem_add_cell_table(&foo_nvmem_cell_table);}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKAhjhhubh)}(hAdditionally it is possible to create nvmem cell lookup entries and register them with the nvmem framework from machine code as shown in the example below::h]hAdditionally it is possible to create nvmem cell lookup entries and register them with the nvmem framework from machine code as shown in the example below:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjhhubj)}(hXstatic struct nvmem_cell_lookup foo_nvmem_lookup = { .nvmem_name = "i2c-eeprom", .cell_name = "macaddr", .dev_id = "foo_mac.0", .con_id = "mac-address", }; nvmem_add_cell_lookups(&foo_nvmem_lookup, 1);h]hXstatic struct nvmem_cell_lookup foo_nvmem_lookup = { .nvmem_name = "i2c-eeprom", .cell_name = "macaddr", .dev_id = "foo_mac.0", .con_id = "mac-address", }; nvmem_add_cell_lookups(&foo_nvmem_lookup, 1);}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKThjhhubh)}(hhh](h)}(hNVMEM Consumersh]hNVMEM Consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK^ubh)}(h`NVMEM consumers are the entities which make use of the NVMEM provider to read from and to NVMEM.h]h`NVMEM consumers are the entities which make use of the NVMEM provider to read from and to NVMEM.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjhhubeh}(h]nvmem-consumersah ]h"]nvmem consumersah$]h&]uh1hhjhhhhhK^ubeh}(h],registering-unregistering-the-nvmem-providerah ]h"]/2. registering/unregistering the nvmem providerah$]h&]uh1hhhhhhhhK&ubh)}(hhh](h)}(h!3. NVMEM cell based consumer APIsh]h!3. NVMEM cell based consumer APIs}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChhhhhKdubh)}(huNVMEM cells are the data entries/fields in the NVMEM. The NVMEM framework provides 3 APIs to read/write NVMEM cells::h]htNVMEM cells are the data entries/fields in the NVMEM. The NVMEM framework provides 3 APIs to read/write NVMEM cells:}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjChhubj)}(hXstruct nvmem_cell *nvmem_cell_get(struct device *dev, const char *name); struct nvmem_cell *devm_nvmem_cell_get(struct device *dev, const char *name); void nvmem_cell_put(struct nvmem_cell *cell); void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell); void *nvmem_cell_read(struct nvmem_cell *cell, ssize_t *len); int nvmem_cell_write(struct nvmem_cell *cell, void *buf, ssize_t len);h]hXstruct nvmem_cell *nvmem_cell_get(struct device *dev, const char *name); struct nvmem_cell *devm_nvmem_cell_get(struct device *dev, const char *name); void nvmem_cell_put(struct nvmem_cell *cell); void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell); void *nvmem_cell_read(struct nvmem_cell *cell, ssize_t *len); int nvmem_cell_write(struct nvmem_cell *cell, void *buf, ssize_t len);}hjbsbah}(h]h ]h"]h$]h&]hhuh1jhhhKihjChhubh)}(hX`*nvmem_cell_get()` apis will get a reference to nvmem cell for a given id, and nvmem_cell_read/write() can then read or write to the cell. Once the usage of the cell is finished the consumer should call `*nvmem_cell_put()` to free all the allocation memory for the cell.h](htitle_reference)}(h`*nvmem_cell_get()`h]h*nvmem_cell_get()}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjpubh apis will get a reference to nvmem cell for a given id, and nvmem_cell_read/write() can then read or write to the cell. Once the usage of the cell is finished the consumer should call }(hjphhhNhNubju)}(h`*nvmem_cell_put()`h]h*nvmem_cell_put()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjpubh0 to free all the allocation memory for the cell.}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKrhjChhubeh}(h]nvmem-cell-based-consumer-apisah ]h"]!3. nvmem cell based consumer apisah$]h&]uh1hhhhhhhhKdubh)}(hhh](h)}(h*4. Direct NVMEM device based consumer APIsh]h*4. Direct NVMEM device based consumer APIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKxubh)}(hIn some instances it is necessary to directly read/write the NVMEM. To facilitate such consumers NVMEM framework provides below apis::h]hIn some instances it is necessary to directly read/write the NVMEM. To facilitate such consumers NVMEM framework provides below apis:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjhhubj)}(hXZstruct nvmem_device *nvmem_device_get(struct device *dev, const char *name); struct nvmem_device *devm_nvmem_device_get(struct device *dev, const char *name); struct nvmem_device *nvmem_device_find(void *data, int (*match)(struct device *dev, const void *data)); void nvmem_device_put(struct nvmem_device *nvmem); int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf); int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf); int nvmem_device_cell_read(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf); int nvmem_device_cell_write(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf);h]hXZstruct nvmem_device *nvmem_device_get(struct device *dev, const char *name); struct nvmem_device *devm_nvmem_device_get(struct device *dev, const char *name); struct nvmem_device *nvmem_device_find(void *data, int (*match)(struct device *dev, const void *data)); void nvmem_device_put(struct nvmem_device *nvmem); int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf); int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf); int nvmem_device_cell_read(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf); int nvmem_device_cell_write(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf);}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK}hjhhubh)}(hBefore the consumers can read/write NVMEM directly, it should get hold of nvmem_controller from one of the `*nvmem_device_get()` api.h](hkBefore the consumers can read/write NVMEM directly, it should get hold of nvmem_controller from one of the }(hjhhhNhNubju)}(h`*nvmem_device_get()`h]h*nvmem_device_get()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jthjubh api.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hoThe difference between these apis and cell based apis is that these apis always take nvmem_device as parameter.h]hoThe difference between these apis and cell based apis is that these apis always take nvmem_device as parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]'direct-nvmem-device-based-consumer-apisah ]h"]*4. direct nvmem device based consumer apisah$]h&]uh1hhhhhhhhKxubh)}(hhh](h)}(h%5. Releasing a reference to the NVMEMh]h%5. Releasing a reference to the NVMEM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hWhen a consumer no longer needs the NVMEM, it has to release the reference to the NVMEM it has obtained using the APIs mentioned in the above section. The NVMEM framework provides 2 APIs to release a reference to the NVMEM::h]hWhen a consumer no longer needs the NVMEM, it has to release the reference to the NVMEM it has obtained using the APIs mentioned in the above section. The NVMEM framework provides 2 APIs to release a reference to the NVMEM:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hvoid nvmem_cell_put(struct nvmem_cell *cell); void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell); void nvmem_device_put(struct nvmem_device *nvmem); void devm_nvmem_device_put(struct device *dev, struct nvmem_device *nvmem);h]hvoid nvmem_cell_put(struct nvmem_cell *cell); void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell); void nvmem_device_put(struct nvmem_device *nvmem); void devm_nvmem_device_put(struct device *dev, struct nvmem_device *nvmem);}hj*sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj hhubh)}(hBoth these APIs are used to release a reference to the NVMEM and devm_nvmem_cell_put and devm_nvmem_device_put destroys the devres associated with this NVMEM.h]hBoth these APIs are used to release a reference to the NVMEM and devm_nvmem_cell_put and devm_nvmem_device_put destroys the devres associated with this NVMEM.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hhh]h)}(h Userspaceh]h Userspace}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhhhhhKubah}(h] userspaceah ]h"] userspaceah$]h&]uh1hhj hhhhhKubeh}(h]"releasing-a-reference-to-the-nvmemah ]h"]%5. releasing a reference to the nvmemah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h6. Userspace binary interfaceh]h6. Userspace binary interface}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghhhhhKubh)}(h8Userspace can read/write the raw NVMEM file located at::h]h7Userspace can read/write the raw NVMEM file located at:}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjghhubj)}(h/sys/bus/nvmem/devices/*/nvmemh]h/sys/bus/nvmem/devices/*/nvmem}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjghhubh)}(hex::h]hex:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjghhubj)}(hhexdump /sys/bus/nvmem/devices/qfprom0/nvmem 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00 0000000 0000 0000 0000 0000 0000 0000 0000 0000 ... * 0001000h]hhexdump /sys/bus/nvmem/devices/qfprom0/nvmem 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 00000a0 db10 2240 0000 e000 0c00 0c00 0000 0c00 0000000 0000 0000 0000 0000 0000 0000 0000 0000 ... * 0001000}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjghhubeh}(h]userspace-binary-interfaceah ]h"]6. userspace binary interfaceah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h7. DeviceTree Bindingh]h7. DeviceTree Binding}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h5See Documentation/devicetree/bindings/nvmem/nvmem.txth]h5See Documentation/devicetree/bindings/nvmem/nvmem.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]devicetree-bindingah ]h"]7. devicetree bindingah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h8. NVMEM layoutsh]h8. NVMEM layouts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXNVMEM layouts are yet another mechanism to create cells. With the device tree binding it is possible to specify simple cells by using an offset and a length. Sometimes, the cells doesn't have a static offset, but the content is still well defined, e.g. tag-length-values. In this case, the NVMEM device content has to be first parsed and the cells need to be added accordingly. Layouts let you read the content of the NVMEM device and let you add cells dynamically.h]hXNVMEM layouts are yet another mechanism to create cells. With the device tree binding it is possible to specify simple cells by using an offset and a length. Sometimes, the cells doesn’t have a static offset, but the content is still well defined, e.g. tag-length-values. In this case, the NVMEM device content has to be first parsed and the cells need to be added accordingly. Layouts let you read the content of the NVMEM device and let you add cells dynamically.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hAnother use case for layouts is the post processing of cells. With layouts, it is possible to associate a custom post processing hook to a cell. It even possible to add this hook to cells not created by the layout itself.h]hAnother use case for layouts is the post processing of cells. With layouts, it is possible to associate a custom post processing hook to a cell. It even possible to add this hook to cells not created by the layout itself.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] nvmem-layoutsah ]h"]8. nvmem layoutsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h9. Internal kernel APIh]h9. Internal kernel API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlenvmem_add_one_cell (C function)c.nvmem_add_one_cellhNtauh1j%hjhhhNhNubhdesc)}(hhh](hdesc_signature)}(hWint nvmem_add_one_cell (struct nvmem_device *nvmem, const struct nvmem_cell_info *info)h]hdesc_signature_line)}(hVint nvmem_add_one_cell(struct nvmem_device *nvmem, const struct nvmem_cell_info *info)h](hdesc_sig_keyword_type)}(hinth]hint}(hjIhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jGhjChhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubhdesc_sig_space)}(h h]h }(hj[hhhNhNubah}(h]h ]wah"]h$]h&]uh1jYhjChhhjXhMubh desc_name)}(hnvmem_add_one_cellh]h desc_sig_name)}(hnvmem_add_one_cellh]hnvmem_add_one_cell}(hjrhhhNhNubah}(h]h ]nah"]h$]h&]uh1jphjlubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jjhjChhhjXhMubhdesc_parameterlist)}(h@(struct nvmem_device *nvmem, const struct nvmem_cell_info *info)h](hdesc_parameter)}(hstruct nvmem_device *nvmemh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjtsbc.nvmem_add_one_cellasbuh1hhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubjq)}(hnvmemh]hnvmem}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h"const struct nvmem_cell_info *infoh](j)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hj&hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjAhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(hnvmem_cell_infoh]hnvmem_cell_info}(hjRhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jc.nvmem_add_one_cellasbuh1hhjubjZ)}(h h]h }(hjphhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjChhhjXhMubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jAsphinx_line_type declaratorhj=hhhjXhMubah}(h]j4ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j;hjXhMhj8hhubh desc_content)}(hhh]h)}(h+Add one cell information to an nvmem deviceh]h+Add one cell information to an nvmem device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj8hhhjXhMubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1j6hhhjhNhNubh container)}(h**Parameters** ``struct nvmem_device *nvmem`` nvmem device to add cells to. ``const struct nvmem_cell_info *info`` nvmem cell info to add to the device **Return** 0 or negative error code on failure.h](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubhdefinition_list)}(hhh](hdefinition_list_item)}(h=``struct nvmem_device *nvmem`` nvmem device to add cells to. h](hterm)}(h``struct nvmem_device *nvmem``h]hliteral)}(hjh]hstruct nvmem_device *nvmem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubh definition)}(hhh]h)}(hnvmem device to add cells to.h]hnvmem device to add cells to.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMhj*ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhj'hMhjubj)}(hL``const struct nvmem_cell_info *info`` nvmem cell info to add to the device h](j )}(h&``const struct nvmem_cell_info *info``h]j)}(hjMh]h"const struct nvmem_cell_info *info}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjGubj))}(hhh]h)}(h$nvmem cell info to add to the deviceh]h$nvmem cell info to add to the device}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMhjcubah}(h]h ]h"]h$]h&]uh1j(hjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubh)}(h$0 or negative error code on failure.h]h$0 or negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2$nvmem_register_notifier (C function)c.nvmem_register_notifierhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h7int nvmem_register_notifier (struct notifier_block *nb)h]jB)}(h6int nvmem_register_notifier(struct notifier_block *nb)h](jH)}(hinth]hint}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhMubjk)}(hnvmem_register_notifierh]jq)}(hnvmem_register_notifierh]hnvmem_register_notifier}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjhhhjhMubj)}(h(struct notifier_block *nb)h]j)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(hnotifier_blockh]hnotifier_block}(hj(hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.nvmem_register_notifierasbuh1hhjubjZ)}(h h]h }(hjHhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hnbh]hnb}(hjchhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j;hjhMhjhhubj)}(hhh]h)}(h+Register a notifier block for nvmem events.h]h+Register a notifier block for nvmem events.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct notifier_block *nb`` notifier block to be called on nvmem events. **Return** 0 on success, negative error number on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj)}(hhh]j)}(hK``struct notifier_block *nb`` notifier block to be called on nvmem events. h](j )}(h``struct notifier_block *nb``h]j)}(hjh]hstruct notifier_block *nb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(h,notifier block to be called on nvmem events.h]h,notifier block to be called on nvmem events.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubh)}(h/0 on success, negative error number on failure.h]h/0 on success, negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2&nvmem_unregister_notifier (C function)c.nvmem_unregister_notifierhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h9int nvmem_unregister_notifier (struct notifier_block *nb)h]jB)}(h8int nvmem_unregister_notifier(struct notifier_block *nb)h](jH)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjJhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj]hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjJhhhj\hMubjk)}(hnvmem_unregister_notifierh]jq)}(hnvmem_unregister_notifierh]hnvmem_unregister_notifier}(hjohhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjkubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjJhhhj\hMubj)}(h(struct notifier_block *nb)h]j)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(hnotifier_blockh]hnotifier_block}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsbc.nvmem_unregister_notifierasbuh1hhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hnbh]hnb}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjJhhhj\hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjFhhhj\hMubah}(h]jAah ](jjeh"]h$]h&]jj)jhuh1j;hj\hMhjChhubj)}(hhh]h)}(h-Unregister a notifier block for nvmem events.h]h-Unregister a notifier block for nvmem events.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhjChhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj& jj& jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct notifier_block *nb`` notifier block to be unregistered. **Return** 0 on success, negative error number on failure.h](h)}(h**Parameters**h]j)}(hj0 h]h Parameters}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj* ubj)}(hhh]j)}(hA``struct notifier_block *nb`` notifier block to be unregistered. h](j )}(h``struct notifier_block *nb``h]j)}(hjO h]hstruct notifier_block *nb}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjI ubj))}(hhh]h)}(h"notifier block to be unregistered.h]h"notifier block to be unregistered.}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd hMhje ubah}(h]h ]h"]h$]h&]uh1j(hjI ubeh}(h]h ]h"]h$]h&]uh1jhjd hMhjF ubah}(h]h ]h"]h$]h&]uh1jhj* ubh)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj* ubh)}(h/0 on success, negative error number on failure.h]h/0 on success, negative error number on failure.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj* ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_register (C function)c.nvmem_registerhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hHstruct nvmem_device * nvmem_register (const struct nvmem_config *config)h]jB)}(hFstruct nvmem_device *nvmem_register(const struct nvmem_config *config)h](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj hhhj hMubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jnvmem_registersbc.nvmem_registerasbuh1hhj hhhj hMubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj hhhj hMubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMubjk)}(hnvmem_registerh]jq)}(hj h]hnvmem_register}(hj. hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj* ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj hhhj hMubj)}(h#(const struct nvmem_config *config)h]j)}(h!const struct nvmem_config *configh](j)}(hjh]hconst}(hjI hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE ubjZ)}(h h]h }(hjV hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjE ubj)}(hjh]hstruct}(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE ubjZ)}(h h]h }(hjq hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjE ubh)}(hhh]jq)}(h nvmem_configh]h nvmem_config}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.nvmem_registerasbuh1hhjE ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjE ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE ubjq)}(hconfigh]hconfig}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjE ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjA ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj hhhj hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j;hj hMhj hhubj)}(hhh]h)}(htRegister a nvmem device for given nvmem_config. Also creates a binary entry in /sys/bus/nvmem/devices/dev-name/nvmemh]htRegister a nvmem device for given nvmem_config. Also creates a binary entry in /sys/bus/nvmem/devices/dev-name/nvmem}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``const struct nvmem_config *config`` nvmem device configuration with which nvmem device is created. **Return** Will be an ERR_PTR() on error or a valid pointer to nvmem_device on success.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubj)}(hhh]j)}(he``const struct nvmem_config *config`` nvmem device configuration with which nvmem device is created. h](j )}(h%``const struct nvmem_config *config``h]j)}(hj& h]h!const struct nvmem_config *config}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubj))}(hhh]h)}(h>nvmem device configuration with which nvmem device is created.h]h>nvmem device configuration with which nvmem device is created.}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj; hMhj< ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj; hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubh)}(h **Return**h]j)}(hja h]hReturn}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubh)}(hLWill be an ERR_PTR() on error or a valid pointer to nvmem_device on success.h]hLWill be an ERR_PTR() on error or a valid pointer to nvmem_device on success.}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_unregister (C function)c.nvmem_unregisterhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h2void nvmem_unregister (struct nvmem_device *nvmem)h]jB)}(h1void nvmem_unregister(struct nvmem_device *nvmem)h](jH)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM[ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj hhhj hM[ubjk)}(hnvmem_unregisterh]jq)}(hnvmem_unregisterh]hnvmem_unregister}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj hhhj hM[ubj)}(h(struct nvmem_device *nvmem)h]j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.nvmem_unregisterasbuh1hhj ubjZ)}(h h]h }(hj! hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(hjh]h*}(hj/ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(hnvmemh]hnvmem}(hj< hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hM[ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj hhhj hM[ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j;hj hM[hj hhubj)}(hhh]h)}(h-Unregister previously registered nvmem deviceh]h-Unregister previously registered nvmem device}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMWhjc hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~ jj~ jjjuh1j6hhhjhNhNubj)}(h_**Parameters** ``struct nvmem_device *nvmem`` Pointer to previously registered nvmem device.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM[hj ubj)}(hhh]j)}(hM``struct nvmem_device *nvmem`` Pointer to previously registered nvmem device.h](j )}(h``struct nvmem_device *nvmem``h]j)}(hj h]hstruct nvmem_device *nvmem}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM]hj ubj))}(hhh]h)}(h.Pointer to previously registered nvmem device.h]h.Pointer to previously registered nvmem device.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMYhj ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hM]hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 devm_nvmem_register (C function)c.devm_nvmem_registerhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hastruct nvmem_device * devm_nvmem_register (struct device *dev, const struct nvmem_config *config)h]jB)}(h_struct nvmem_device *devm_nvmem_register(struct device *dev, const struct nvmem_config *config)h](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMrubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj hhhj hMrubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj" modnameN classnameNjj)}j]j)}jdevm_nvmem_registersbc.devm_nvmem_registerasbuh1hhj hhhj hMrubjZ)}(h h]h }(hjA hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj hhhj hMrubj)}(hjh]h*}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMrubjk)}(hdevm_nvmem_registerh]jq)}(hj> h]hdevm_nvmem_register}(hj` hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj\ ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj hhhj hMrubj)}(h7(struct device *dev, const struct nvmem_config *config)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj{ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjw ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j< c.devm_nvmem_registerasbuh1hhjw ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjw ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubjq)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjw ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjs ubj)}(h!const struct nvmem_config *configh](j)}(hjh]hconst}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjZ)}(h h]h }(hj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubh)}(hhh]jq)}(h nvmem_configh]h nvmem_config}(hj$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j< c.devm_nvmem_registerasbuh1hhj ubjZ)}(h h]h }(hjBhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(hconfigh]hconfig}(hj]hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjs ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj hMrubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj hhhj hMrubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j;hj hMrhj hhubj)}(hhh]h)}(h|Register a managed nvmem device for given nvmem_config. Also creates a binary entry in /sys/bus/nvmem/devices/dev-name/nvmemh]h|Register a managed nvmem device for given nvmem_config. Also creates a binary entry in /sys/bus/nvmem/devices/dev-name/nvmem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(hX **Parameters** ``struct device *dev`` Device that uses the nvmem device. ``const struct nvmem_config *config`` nvmem device configuration with which nvmem device is created. **Return** Will be an ERR_PTR() on error or a valid pointer to nvmem_device on success.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMlhjubj)}(hhh](j)}(h:``struct device *dev`` Device that uses the nvmem device. h](j )}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMlhjubj))}(hhh]h)}(h"Device that uses the nvmem device.h]h"Device that uses the nvmem device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMlhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMlhjubj)}(he``const struct nvmem_config *config`` nvmem device configuration with which nvmem device is created. h](j )}(h%``const struct nvmem_config *config``h]j)}(hjh]h!const struct nvmem_config *config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMmhjubj))}(hhh]h)}(h>nvmem device configuration with which nvmem device is created.h]h>nvmem device configuration with which nvmem device is created.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMmhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMmhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hj<h]hReturn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMohjubh)}(hLWill be an ERR_PTR() on error or a valid pointer to nvmem_device on success.h]hLWill be an ERR_PTR() on error or a valid pointer to nvmem_device on success.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMohjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 of_nvmem_device_get (C function)c.of_nvmem_device_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hRstruct nvmem_device * of_nvmem_device_get (struct device_node *np, const char *id)h]jB)}(hPstruct nvmem_device *of_nvmem_device_get(struct device_node *np, const char *id)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj}hhhjhMubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jof_nvmem_device_getsbc.of_nvmem_device_getasbuh1hhj}hhhjhMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj}hhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhjhMubjk)}(hof_nvmem_device_geth]jq)}(hjh]hof_nvmem_device_get}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj}hhhjhMubj)}(h((struct device_node *np, const char *id)h](j)}(hstruct device_node *nph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(h device_nodeh]h device_node}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.of_nvmem_device_getasbuh1hhjubjZ)}(h h]h }(hj7hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hnph]hnp}(hjRhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst char *idh](j)}(hjh]hconst}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjZ)}(h h]h }(hjxhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjgubjH)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjgubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjq)}(hidh]hid}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjgubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj}hhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjyhhhjhMubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1j;hjhMhjvhhubj)}(hhh]h)}(h Get nvmem device from a given idh]h Get nvmem device from a given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjvhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device_node *np`` Device tree node that uses the nvmem device. ``const char *id`` nvmem name from nvmem-names property. **Return** ERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj)}(hhh](j)}(hH``struct device_node *np`` Device tree node that uses the nvmem device. 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&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(h,Device tree node that uses the nvmem device.h]h,Device tree node that uses the nvmem device.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubj)}(h9``const char *id`` nvmem name from nvmem-names property. h](j )}(h``const char *id``h]j)}(hjSh]hconst char *id}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjMubj))}(hhh]h)}(h%nvmem name from nvmem-names property.h]h%nvmem name from nvmem-names property.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjiubah}(h]h ]h"]h$]h&]uh1j(hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubh)}(hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h]hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_device_get (C function)c.nvmem_device_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hQstruct nvmem_device * nvmem_device_get (struct device *dev, const char *dev_name)h]jB)}(hOstruct nvmem_device *nvmem_device_get(struct device *dev, const char *dev_name)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhMubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jnvmem_device_getsbc.nvmem_device_getasbuh1hhjhhhjhMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhMubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubjk)}(hnvmem_device_geth]jq)}(hjh]hnvmem_device_get}(hj2hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjhhhjhMubj)}(h*(struct device *dev, const char *dev_name)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubjZ)}(h h]h }(hjZhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjIubh)}(hhh]jq)}(hdeviceh]hdevice}(hjkhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jc.nvmem_device_getasbuh1hhjIubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubjq)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjIubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjEubj)}(hconst char *dev_nameh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubjH)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hdev_nameh]hdev_name}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjEubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j;hjhMhjhhubj)}(hhh]h)}(h Get nvmem device from a given idh]h Get nvmem device from a given id}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj(hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that uses the nvmem device. ``const char *dev_name`` name of the requested nvmem device. **Return** ERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h](h)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjGubj)}(hhh](j)}(h:``struct device *dev`` Device that uses the nvmem device. h](j )}(h``struct device *dev``h]j)}(hjlh]hstruct device *dev}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjfubj))}(hhh]h)}(h"Device that uses the nvmem device.h]h"Device that uses the nvmem device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhjcubj)}(h=``const char *dev_name`` name of the requested nvmem device. h](j )}(h``const char *dev_name``h]j)}(hjh]hconst char *dev_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(h#name of the requested nvmem device.h]h#name of the requested nvmem device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjGubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjGubh)}(hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h]hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_device_find (C function)c.nvmem_device_findhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hhstruct nvmem_device * nvmem_device_find (void *data, int (*match)(struct device *dev, const void *data))h]jB)}(hfstruct nvmem_device *nvmem_device_find(void *data, int (*match)(struct device *dev, const void *data))h](j)}(hjh]hstruct}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj3hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj!hhhj2hMubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjDhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jnvmem_device_findsbc.nvmem_device_findasbuh1hhj!hhhj2hMubjZ)}(h h]h }(hjehhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj!hhhj2hMubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj2hMubjk)}(hnvmem_device_findh]jq)}(hjbh]hnvmem_device_find}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj!hhhj2hMubj)}(h@(void *data, int (*match)(struct device *dev, const void *data))h](j)}(h void *datah](jH)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h2int (*match)(struct device *dev, const void *data)h](jH)}(hinth]hint}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h(h]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hmatchh]hmatch}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(h)h]h)}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjNhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(hdeviceh]hdevice}(hj_hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j`c.nvmem_device_findasbuh1hhjubjZ)}(h h]h }(hj}hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(h,h]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubjH)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj(h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj!hhhj2hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjhhhj2hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j;hj2hMhjhhubj)}(hhh]h)}(h(Find nvmem device with matching functionh]h(Find nvmem device with matching function}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1j6hhhjhNhNubj)}(h**Parameters** ``void *data`` Data to pass to match function ``int (*match)(struct device *dev, const void *data)`` Callback function to check device **Return** ERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h](h)}(h**Parameters**h]j)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjYubj)}(hhh](j)}(h.``void *data`` Data to pass to match function h](j )}(h``void *data``h]j)}(hj~h]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjxubj))}(hhh]h)}(hData to pass to match functionh]hData to pass to match function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubj)}(hY``int (*match)(struct device *dev, const void *data)`` Callback function to check device h](j )}(h6``int (*match)(struct device *dev, const void *data)``h]j)}(hjh]h2int (*match)(struct device *dev, const void *data)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(h!Callback function to check deviceh]h!Callback function to check device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjYubh)}(hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.h]hJERR_PTR() on error or a valid pointer to a struct nvmem_device on success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2"devm_nvmem_device_put (C function)c.devm_nvmem_device_puthNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hKvoid devm_nvmem_device_put (struct device *dev, struct nvmem_device *nvmem)h]jB)}(hJvoid devm_nvmem_device_put(struct device *dev, struct nvmem_device *nvmem)h](jH)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj3hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjFhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj3hhhjEhMubjk)}(hdevm_nvmem_device_puth]jq)}(hdevm_nvmem_device_puth]hdevm_nvmem_device_put}(hjXhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjTubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj3hhhjEhMubj)}(h0(struct device *dev, struct nvmem_device *nvmem)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjpubh)}(hhh]jq)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.devm_nvmem_device_putasbuh1hhjpubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubjq)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjlubj)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.devm_nvmem_device_putasbuh1hhjubjZ)}(h h]h }(hj"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hnvmemh]hnvmem}(hj=hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjlubeh}(h]h ]h"]h$]h&]hhuh1jhj3hhhjEhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj/hhhjEhMubah}(h]j*ah ](jjeh"]h$]h&]jj)jhuh1j;hjEhMhj,hhubj)}(hhh]h)}(hput already got nvmem deviceh]hput already got nvmem device}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jhj,hhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that uses the nvmem device. ``struct nvmem_device *nvmem`` pointer to nvmem device allocated by devm_nvmem_cell_get(), that needs to be released.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj)}(hhh](j)}(h:``struct device *dev`` Device that uses the nvmem device. h](j )}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(h"Device that uses the nvmem device.h]h"Device that uses the nvmem device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hu``struct nvmem_device *nvmem`` pointer to nvmem device allocated by devm_nvmem_cell_get(), that needs to be released.h](j )}(h``struct nvmem_device *nvmem``h]j)}(hjh]hstruct nvmem_device *nvmem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(hVpointer to nvmem device allocated by devm_nvmem_cell_get(), that needs to be released.h]hVpointer to nvmem device allocated by devm_nvmem_cell_get(), that needs to be released.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_device_put (C function)c.nvmem_device_puthNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h2void nvmem_device_put (struct nvmem_device *nvmem)h]jB)}(h1void nvmem_device_put(struct nvmem_device *nvmem)h](jH)}(hvoidh]hvoid}(hj:hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj6hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjIhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj6hhhjHhMubjk)}(hnvmem_device_puth]jq)}(hnvmem_device_puth]hnvmem_device_put}(hj[hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjWubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj6hhhjHhMubj)}(h(struct nvmem_device *nvmem)h]j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjsubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj]sbc.nvmem_device_putasbuh1hhjsubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubjq)}(hnvmemh]hnvmem}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjsubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubah}(h]h ]h"]h$]h&]hhuh1jhj6hhhjHhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj2hhhjHhMubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1j;hjHhMhj/hhubj)}(hhh]h)}(hput already got nvmem deviceh]hput already got nvmem device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj/hhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(hc**Parameters** ``struct nvmem_device *nvmem`` pointer to nvmem device that needs to be released.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj)}(hhh]j)}(hQ``struct nvmem_device *nvmem`` pointer to nvmem device that needs to be released.h](j )}(h``struct nvmem_device *nvmem``h]j)}(hj;h]hstruct nvmem_device *nvmem}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj5ubj))}(hhh]h)}(h2pointer to nvmem device that needs to be released.h]h2pointer to nvmem device that needs to be released.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjQubah}(h]h ]h"]h$]h&]uh1j(hj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2"devm_nvmem_device_get (C function)c.devm_nvmem_device_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hPstruct nvmem_device * devm_nvmem_device_get (struct device *dev, const char *id)h]jB)}(hNstruct nvmem_device *devm_nvmem_device_get(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM%ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhM%ubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jdevm_nvmem_device_getsbc.devm_nvmem_device_getasbuh1hhjhhhjhM%ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhM%ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM%ubjk)}(hdevm_nvmem_device_geth]jq)}(hjh]hdevm_nvmem_device_get}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjhhhjhM%ubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj-hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]jc.devm_nvmem_device_getasbuh1hhj ubjZ)}(h h]h }(hjKhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(hdevh]hdev}(hjfhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst char *idh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj{ubjH)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj{ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj{ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubjq)}(hidh]hid}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM%ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjhhhjhM%ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j;hjhM%hjhhubj)}(hhh]h)}(h*Get nvmem device of device form a given idh]h*Get nvmem device of device form a given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubj)}(hX4**Parameters** ``struct device *dev`` Device that requests the nvmem device. ``const char *id`` name id for the requested nvmem device. **Return** ERR_PTR() on error or a valid pointer to a struct nvmem_device on success. The nvmem_device will be freed by the automatically once the device is freed.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM hj ubj)}(hhh](j)}(h>``struct device *dev`` Device that requests the nvmem device. h](j )}(h``struct device *dev``h]j)}(hj.h]hstruct device *dev}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj(ubj))}(hhh]h)}(h&Device that requests the nvmem device.h]h&Device that requests the nvmem device.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjDubah}(h]h ]h"]h$]h&]uh1j(hj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhj%ubj)}(h;``const char *id`` name id for the requested nvmem device. h](j )}(h``const char *id``h]j)}(hjgh]hconst char *id}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjaubj))}(hhh]h)}(h'name id for the requested nvmem device.h]h'name id for the requested nvmem device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1j(hjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM!hj ubh)}(hERR_PTR() on error or a valid pointer to a struct nvmem_device on success. The nvmem_device will be freed by the automatically once the device is freed.h]hERR_PTR() on error or a valid pointer to a struct nvmem_device on success. The nvmem_device will be freed by the automatically once the device is freed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM!hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2of_nvmem_cell_get (C function)c.of_nvmem_cell_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hNstruct nvmem_cell * of_nvmem_cell_get (struct device_node *np, const char *id)h]jB)}(hLstruct nvmem_cell *of_nvmem_cell_get(struct device_node *np, const char *id)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhMubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jof_nvmem_cell_getsbc.of_nvmem_cell_getasbuh1hhjhhhjhMubjZ)}(h h]h }(hj'hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjhhhjhMubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubjk)}(hof_nvmem_cell_geth]jq)}(hj$h]hof_nvmem_cell_get}(hjFhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjBubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjhhhjhMubj)}(h((struct device_node *np, const char *id)h](j)}(hstruct device_node *nph](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubjZ)}(h h]h }(hjnhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj]ubh)}(hhh]jq)}(h device_nodeh]h device_node}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j"c.of_nvmem_cell_getasbuh1hhj]ubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubjq)}(hnph]hnp}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjYubj)}(hconst char *idh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubjH)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hidh]hid}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjYubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j;hjhMhjhhubj)}(hhh]h)}(h3Get a nvmem cell from given device node and cell idh]h3Get a nvmem cell from given device node and cell id}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj<hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1j6hhhjhNhNubj)}(hX**Parameters** ``struct device_node *np`` Device tree node that uses the nvmem cell. ``const char *id`` nvmem cell name from nvmem-cell-names property, or NULL for the cell at index 0 (the lone cell with no accompanying nvmem-cell-names property). **Return** Will be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().h](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj[ubj)}(hhh](j)}(hF``struct device_node *np`` Device tree node that uses the nvmem cell. h](j )}(h``struct device_node *np``h]j)}(hjh]hstruct device_node *np}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjzubj))}(hhh]h)}(h*Device tree node that uses the nvmem cell.h]h*Device tree node that uses the nvmem cell.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjzubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubj)}(h``const char *id`` nvmem cell name from nvmem-cell-names property, or NULL for the cell at index 0 (the lone cell with no accompanying nvmem-cell-names property). h](j )}(h``const char *id``h]j)}(hjh]hconst char *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubj))}(hhh]h)}(hnvmem cell name from nvmem-cell-names property, or NULL for the cell at index 0 (the lone cell with no accompanying nvmem-cell-names property).h]hnvmem cell name from nvmem-cell-names property, or NULL for the cell at index 0 (the lone cell with no accompanying nvmem-cell-names property).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubeh}(h]h ]h"]h$]h&]uh1jhj[ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj[ubh)}(hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().h]hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_cell_get (C function)c.nvmem_cell_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hGstruct nvmem_cell * nvmem_cell_get (struct device *dev, const char *id)h]jB)}(hEstruct nvmem_cell *nvmem_cell_get(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM ubjZ)}(h h]h }(hjHhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj6hhhjGhM ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hjYhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jnvmem_cell_getsbc.nvmem_cell_getasbuh1hhj6hhhjGhM ubjZ)}(h h]h }(hjzhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj6hhhjGhM ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhjGhM ubjk)}(hnvmem_cell_geth]jq)}(hjwh]hnvmem_cell_get}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj6hhhjGhM ubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubh)}(hhh]jq)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]juc.nvmem_cell_getasbuh1hhjubjZ)}(h h]h }(hjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst char *idh](j)}(hjh]hconst}(hj$ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjZ)}(h h]h }(hj1 hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubjH)}(hcharh]hchar}(hj? hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj ubjZ)}(h h]h }(hjM hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(hjh]h*}(hj[ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(hidh]hid}(hjh hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj6hhhjGhM ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj2hhhjGhM ubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1j;hjGhM hj/hhubj)}(hhh]h)}(h/Get nvmem cell of device form a given cell nameh]h/Get nvmem cell of device form a given cell name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhj/hhhjGhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j6hhhjhNhNubj)}(hX**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *id`` nvmem cell name to get (this corresponds with the name from the nvmem-cell-names property for DT systems and with the con_id from the lookup entry for non-DT systems). **Return** Will be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h``const char *id`` nvmem cell name to get (this corresponds with the name from the nvmem-cell-names property for DT systems and with the con_id from the lookup entry for non-DT systems). h](j )}(h``const char *id``h]j)}(hj !h]hconst char *id}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj !ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj!ubj))}(hhh]h)}(hnvmem cell name to get (this corresponds with the name from the nvmem-cell-names property for DT systems and with the con_id from the lookup entry for non-DT systems).h]hnvmem cell name to get (this corresponds with the name from the nvmem-cell-names property for DT systems and with the con_id from the lookup entry for non-DT systems).}(hj%!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj"!ubah}(h]h ]h"]h$]h&]uh1j(hj!ubeh}(h]h ]h"]h$]h&]uh1jhj!!hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h **Return**h]j)}(hjH!h]hReturn}(hjJ!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF!ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubh)}(hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().h]hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the nvmem_cell_put().}(hj^!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 devm_nvmem_cell_get (C function)c.devm_nvmem_cell_gethNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hLstruct nvmem_cell * devm_nvmem_cell_get (struct device *dev, const char *id)h]jB)}(hJstruct nvmem_cell *devm_nvmem_cell_get(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM,ubjZ)}(h h]h }(hj!hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj!hhhj!hM,ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hj!hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jdevm_nvmem_cell_getsbc.devm_nvmem_cell_getasbuh1hhj!hhhj!hM,ubjZ)}(h h]h }(hj!hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj!hhhj!hM,ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hM,ubjk)}(hdevm_nvmem_cell_geth]jq)}(hj!h]hdevm_nvmem_cell_get}(hj!hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj!hhhj!hM,ubj)}(h$(struct device *dev, const char *id)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubjZ)}(h h]h }(hj"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj"ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj%"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj""ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'"modnameN classnameNjj)}j]j!c.devm_nvmem_cell_getasbuh1hhj"ubjZ)}(h h]h }(hjC"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj"ubj)}(hjh]h*}(hjQ"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubjq)}(hdevh]hdev}(hj^"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(hconst char *idh](j)}(hjh]hconst}(hjw"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs"ubjZ)}(h h]h }(hj"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjs"ubjH)}(hcharh]hchar}(hj"hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjs"ubjZ)}(h h]h }(hj"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjs"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs"ubjq)}(hidh]hid}(hj"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjs"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubeh}(h]h ]h"]h$]h&]hhuh1jhj!hhhj!hM,ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj!hhhj!hM,ubah}(h]j!ah ](jjeh"]h$]h&]jj)jhuh1j;hj!hM,hj!hhubj)}(hhh]h)}(h(Get nvmem cell of device form a given idh]h(Get nvmem cell of device form a given id}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM#hj"hhubah}(h]h ]h"]h$]h&]uh1jhj!hhhj!hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1j6hhhjhNhNubj)}(hX!**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *id`` nvmem cell name id to get. **Return** Will be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the automatically once the device is freed.h](h)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM'hj#ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj&#h]hstruct device *dev}(hj(#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$#ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM%hj #ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj?#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;#hM%hj<#ubah}(h]h ]h"]h$]h&]uh1j(hj #ubeh}(h]h ]h"]h$]h&]uh1jhj;#hM%hj#ubj)}(h.``const char *id`` nvmem cell name id to get. h](j )}(h``const char *id``h]j)}(hj_#h]hconst char *id}(hja#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]#ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM&hjY#ubj))}(hhh]h)}(hnvmem cell name id to get.h]hnvmem cell name id to get.}(hjx#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt#hM&hju#ubah}(h]h ]h"]h$]h&]uh1j(hjY#ubeh}(h]h ]h"]h$]h&]uh1jhjt#hM&hj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubh)}(h **Return**h]j)}(hj#h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM(hj#ubh)}(hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the automatically once the device is freed.h]hWill be an ERR_PTR() on error or a valid pointer to a struct nvmem_cell. The nvmem_cell will be freed by the automatically once the device is freed.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM(hj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 devm_nvmem_cell_put (C function)c.devm_nvmem_cell_puthNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hFvoid devm_nvmem_cell_put (struct device *dev, struct nvmem_cell *cell)h]jB)}(hEvoid devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell)h](jH)}(hvoidh]hvoid}(hj#hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj#hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMQubjZ)}(h h]h }(hj#hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj#hhhj#hMQubjk)}(hdevm_nvmem_cell_puth]jq)}(hdevm_nvmem_cell_puth]hdevm_nvmem_cell_put}(hj$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj#ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj#hhhj#hMQubj)}(h-(struct device *dev, struct nvmem_cell *cell)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjZ)}(h h]h }(hj)$hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj$ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj:$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj7$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<$modnameN classnameNjj)}j]j)}jj$sbc.devm_nvmem_cell_putasbuh1hhj$ubjZ)}(h h]h }(hjZ$hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj$ubj)}(hjh]h*}(hjh$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjq)}(hdevh]hdev}(hju$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubj)}(hstruct nvmem_cell *cellh](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjZ)}(h h]h }(hj$hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj$ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hj$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]jV$c.devm_nvmem_cell_putasbuh1hhj$ubjZ)}(h h]h }(hj$hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjq)}(hcellh]hcell}(hj$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubeh}(h]h ]h"]h$]h&]hhuh1jhj#hhhj#hMQubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj#hhhj#hMQubah}(h]j#ah ](jjeh"]h$]h&]jj)jhuh1j;hj#hMQhj#hhubj)}(hhh]h)}(hARelease previously allocated nvmem cell from devm_nvmem_cell_get.h]hARelease previously allocated nvmem cell from devm_nvmem_cell_get.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMKhj %hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj#hMQubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'%jj'%jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``struct nvmem_cell *cell`` Previously allocated nvmem cell by devm_nvmem_cell_get().h](h)}(h**Parameters**h]j)}(hj1%h]h Parameters}(hj3%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/%ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMOhj+%ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hjP%h]hstruct device *dev}(hjR%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN%ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMNhjJ%ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hji%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje%hMNhjf%ubah}(h]h ]h"]h$]h&]uh1j(hjJ%ubeh}(h]h ]h"]h$]h&]uh1jhje%hMNhjG%ubj)}(hU``struct nvmem_cell *cell`` Previously allocated nvmem cell by devm_nvmem_cell_get().h](j )}(h``struct nvmem_cell *cell``h]j)}(hj%h]hstruct nvmem_cell *cell}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMPhj%ubj))}(hhh]h)}(h9Previously allocated nvmem cell by devm_nvmem_cell_get().h]h9Previously allocated nvmem cell by devm_nvmem_cell_get().}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMOhj%ubah}(h]h ]h"]h$]h&]uh1j(hj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMPhjG%ubeh}(h]h ]h"]h$]h&]uh1jhj+%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_cell_put (C function)c.nvmem_cell_puthNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h-void nvmem_cell_put (struct nvmem_cell *cell)h]jB)}(h,void nvmem_cell_put(struct nvmem_cell *cell)h](jH)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj%hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMaubjZ)}(h h]h }(hj%hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj%hhhj%hMaubjk)}(hnvmem_cell_puth]jq)}(hnvmem_cell_puth]hnvmem_cell_put}(hj&hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj&ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj%hhhj%hMaubj)}(h(struct nvmem_cell *cell)h]j)}(hstruct nvmem_cell *cellh](j)}(hjh]hstruct}(hj &hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubjZ)}(h h]h }(hj-&hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj&ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hj>&hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj;&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@&modnameN classnameNjj)}j]j)}jj&sbc.nvmem_cell_putasbuh1hhj&ubjZ)}(h h]h }(hj^&hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj&ubj)}(hjh]h*}(hjl&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubjq)}(hcellh]hcell}(hjy&hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubah}(h]h ]h"]h$]h&]hhuh1jhj%hhhj%hMaubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj%hhhj%hMaubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1j;hj%hMahj%hhubj)}(hhh]h)}(h(Release previously allocated nvmem cell.h]h(Release previously allocated nvmem cell.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM]hj&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hMaubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1j6hhhjhNhNubj)}(hb**Parameters** ``struct nvmem_cell *cell`` Previously allocated nvmem cell by nvmem_cell_get().h](h)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMahj&ubj)}(hhh]j)}(hP``struct nvmem_cell *cell`` Previously allocated nvmem cell by nvmem_cell_get().h](j )}(h``struct nvmem_cell *cell``h]j)}(hj&h]hstruct nvmem_cell *cell}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMchj&ubj))}(hhh]h)}(h4Previously allocated nvmem cell by nvmem_cell_get().h]h4Previously allocated nvmem cell by nvmem_cell_get().}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM_hj&ubah}(h]h ]h"]h$]h&]uh1j(hj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMchj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_cell_read (C function)c.nvmem_cell_readhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h=void * nvmem_cell_read (struct nvmem_cell *cell, size_t *len)h]jB)}(h;void *nvmem_cell_read(struct nvmem_cell *cell, size_t *len)h](jH)}(hvoidh]hvoid}(hj>'hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj:'hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjM'hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj:'hhhjL'hMubj)}(hjh]h*}(hj['hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:'hhhjL'hMubjk)}(hnvmem_cell_readh]jq)}(hnvmem_cell_readh]hnvmem_cell_read}(hjl'hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjh'ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj:'hhhjL'hMubj)}(h&(struct nvmem_cell *cell, size_t *len)h](j)}(hstruct nvmem_cell *cellh](j)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjZ)}(h h]h }(hj'hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj'ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hj'hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjn'sbc.nvmem_cell_readasbuh1hhj'ubjZ)}(h h]h }(hj'hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjq)}(hcellh]hcell}(hj'hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubj)}(h size_t *lenh](h)}(hhh]jq)}(hsize_th]hsize_t}(hj'hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j'c.nvmem_cell_readasbuh1hhj'ubjZ)}(h h]h }(hj(hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj'ubj)}(hjh]h*}(hj)(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjq)}(hlenh]hlen}(hj6(hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubeh}(h]h ]h"]h$]h&]hhuh1jhj:'hhhjL'hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj6'hhhjL'hMubah}(h]j1'ah ](jjeh"]h$]h&]jj)jhuh1j;hjL'hMhj3'hhubj)}(hhh]h)}(hRead a given nvmem cellh]hRead a given nvmem cell}(hj`(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj](hhubah}(h]h ]h"]h$]h&]uh1jhj3'hhhjL'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjx(jjx(jjjuh1j6hhhjhNhNubj)}(hX2**Parameters** ``struct nvmem_cell *cell`` nvmem cell to be read. ``size_t *len`` pointer to length of cell which will be populated on successful read; can be NULL. **Return** ERR_PTR() on error or a valid pointer to a buffer on success. The buffer should be freed by the consumer with a kfree().h](h)}(h**Parameters**h]j)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj|(ubj)}(hhh](j)}(h3``struct nvmem_cell *cell`` nvmem cell to be read. h](j )}(h``struct nvmem_cell *cell``h]j)}(hj(h]hstruct nvmem_cell *cell}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj(ubj))}(hhh]h)}(hnvmem cell to be read.h]hnvmem cell to be read.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1j(hj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhj(ubj)}(hc``size_t *len`` pointer to length of cell which will be populated on successful read; can be NULL. h](j )}(h``size_t *len``h]j)}(hj(h]h size_t *len}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj(ubj))}(hhh]h)}(hRpointer to length of cell which will be populated on successful read; can be NULL.h]hRpointer to length of cell which will be populated on successful read; can be NULL.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj(ubah}(h]h ]h"]h$]h&]uh1j(hj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhj(ubeh}(h]h ]h"]h$]h&]uh1jhj|(ubh)}(h **Return**h]j)}(hj)h]hReturn}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj|(ubh)}(hxERR_PTR() on error or a valid pointer to a buffer on success. The buffer should be freed by the consumer with a kfree().h]hxERR_PTR() on error or a valid pointer to a buffer on success. The buffer should be freed by the consumer with a kfree().}(hj,)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj|(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_cell_write (C function)c.nvmem_cell_writehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hEint nvmem_cell_write (struct nvmem_cell *cell, void *buf, size_t len)h]jB)}(hDint nvmem_cell_write(struct nvmem_cell *cell, void *buf, size_t len)h](jH)}(hinth]hint}(hj[)hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjW)hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM8ubjZ)}(h h]h }(hjj)hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjW)hhhji)hM8ubjk)}(hnvmem_cell_writeh]jq)}(hnvmem_cell_writeh]hnvmem_cell_write}(hj|)hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjx)ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjW)hhhji)hM8ubj)}(h0(struct nvmem_cell *cell, void *buf, size_t len)h](j)}(hstruct nvmem_cell *cellh](j)}(hjh]hstruct}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjZ)}(h h]h }(hj)hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj)ubh)}(hhh]jq)}(h nvmem_cellh]h nvmem_cell}(hj)hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jj~)sbc.nvmem_cell_writeasbuh1hhj)ubjZ)}(h h]h }(hj)hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjq)}(hcellh]hcell}(hj)hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubj)}(h void *bufh](jH)}(hvoidh]hvoid}(hj *hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj*ubjZ)}(h h]h }(hj*hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj*ubj)}(hjh]h*}(hj&*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubjq)}(hbufh]hbuf}(hj3*hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubj)}(h size_t lenh](h)}(hhh]jq)}(hsize_th]hsize_t}(hjO*hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjL*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ*modnameN classnameNjj)}j]j)c.nvmem_cell_writeasbuh1hhjH*ubjZ)}(h h]h }(hjm*hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjH*ubjq)}(hlenh]hlen}(hj{*hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjH*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubeh}(h]h ]h"]h$]h&]hhuh1jhjW)hhhji)hM8ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjS)hhhji)hM8ubah}(h]jN)ah ](jjeh"]h$]h&]jj)jhuh1j;hji)hM8hjP)hhubj)}(hhh]h)}(hWrite to a given nvmem cellh]hWrite to a given nvmem cell}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM0hj*hhubah}(h]h ]h"]h$]h&]uh1jhjP)hhhji)hM8ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct nvmem_cell *cell`` nvmem cell to be written. ``void *buf`` Buffer to be written. ``size_t len`` length of buffer to be written to nvmem cell. **Return** length of bytes written or negative on failure.h](h)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM4hj*ubj)}(hhh](j)}(h6``struct nvmem_cell *cell`` nvmem cell to be written. h](j )}(h``struct nvmem_cell *cell``h]j)}(hj*h]hstruct nvmem_cell *cell}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM2hj*ubj))}(hhh]h)}(hnvmem cell to be written.h]hnvmem cell to be written.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hM2hj*ubah}(h]h ]h"]h$]h&]uh1j(hj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hM2hj*ubj)}(h$``void *buf`` Buffer to be written. h](j )}(h ``void *buf``h]j)}(hj+h]h void *buf}(hj!+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM3hj+ubj))}(hhh]h)}(hBuffer to be written.h]hBuffer to be written.}(hj8+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4+hM3hj5+ubah}(h]h ]h"]h$]h&]uh1j(hj+ubeh}(h]h ]h"]h$]h&]uh1jhj4+hM3hj*ubj)}(h=``size_t len`` length of buffer to be written to nvmem cell. h](j )}(h``size_t len``h]j)}(hjX+h]h size_t len}(hjZ+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV+ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM4hjR+ubj))}(hhh]h)}(h-length of buffer to be written to nvmem cell.h]h-length of buffer to be written to nvmem cell.}(hjq+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm+hM4hjn+ubah}(h]h ]h"]h$]h&]uh1j(hjR+ubeh}(h]h ]h"]h$]h&]uh1jhjm+hM4hj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubh)}(h **Return**h]j)}(hj+h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM6hj*ubh)}(h/length of bytes written or negative on failure.h]h/length of bytes written or negative on failure.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM6hj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_cell_read_u8 (C function)c.nvmem_cell_read_u8hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hIint nvmem_cell_read_u8 (struct device *dev, const char *cell_id, u8 *val)h]jB)}(hHint nvmem_cell_read_u8(struct device *dev, const char *cell_id, u8 *val)h](jH)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj+hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMdubjZ)}(h h]h }(hj+hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj+hhhj+hMdubjk)}(hnvmem_cell_read_u8h]jq)}(hnvmem_cell_read_u8h]hnvmem_cell_read_u8}(hj+hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj+ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj+hhhj+hMdubj)}(h2(struct device *dev, const char *cell_id, u8 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjZ)}(h h]h }(hj",hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj,ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj3,hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj0,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5,modnameN classnameNjj)}j]j)}jj+sbc.nvmem_cell_read_u8asbuh1hhj,ubjZ)}(h h]h }(hjS,hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj,ubj)}(hjh]h*}(hja,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjq)}(hdevh]hdev}(hjn,hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ,ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjZ)}(h h]h }(hj,hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj,ubjH)}(hcharh]hchar}(hj,hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj,ubjZ)}(h h]h }(hj,hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjq)}(hcell_idh]hcell_id}(hj,hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ,ubj)}(hu8 *valh](h)}(hhh]jq)}(hu8h]hu8}(hj,hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]jO,c.nvmem_cell_read_u8asbuh1hhj,ubjZ)}(h h]h }(hj-hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj,ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjq)}(hvalh]hval}(hj -hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ,ubeh}(h]h ]h"]h$]h&]hhuh1jhj+hhhj+hMdubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj+hhhj+hMdubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1j;hj+hMdhj+hhubj)}(hhh]h)}(hRead a cell value as a u8h]hRead a cell value as a u8}(hjJ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM\hjG-hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj+hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjjb-jjb-jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u8 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hjl-h]h Parameters}(hjn-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj-ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM`hjf-ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj-h]hstruct device *dev}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM^hj-ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hM^hj-ubah}(h]h ]h"]h$]h&]uh1j(hj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hM^hj-ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hj-h]hconst char *cell_id}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM_hj-ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hM_hj-ubah}(h]h ]h"]h$]h&]uh1j(hj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hM_hj-ubj)}(h%``u8 *val`` pointer to output value. h](j )}(h ``u8 *val``h]j)}(hj-h]hu8 *val}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM`hj-ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hM`hj.ubah}(h]h ]h"]h$]h&]uh1j(hj-ubeh}(h]h ]h"]h$]h&]uh1jhj.hM`hj-ubeh}(h]h ]h"]h$]h&]uh1jhjf-ubh)}(h **Return**h]j)}(hj8.h]hReturn}(hj:.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6.ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMbhjf-ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hjN.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMbhjf-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 nvmem_cell_read_u16 (C function)c.nvmem_cell_read_u16hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hKint nvmem_cell_read_u16 (struct device *dev, const char *cell_id, u16 *val)h]jB)}(hJint nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val)h](jH)}(hinth]hint}(hj}.hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjy.hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMsubjZ)}(h h]h }(hj.hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjy.hhhj.hMsubjk)}(hnvmem_cell_read_u16h]jq)}(hnvmem_cell_read_u16h]hnvmem_cell_read_u16}(hj.hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjy.hhhj.hMsubj)}(h3(struct device *dev, const char *cell_id, u16 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjZ)}(h h]h }(hj.hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj.ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj.hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jj.sbc.nvmem_cell_read_u16asbuh1hhj.ubjZ)}(h h]h }(hj.hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj.ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjq)}(hdevh]hdev}(hj/hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hj,/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(/ubjZ)}(h h]h }(hj9/hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj(/ubjH)}(hcharh]hchar}(hjG/hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj(/ubjZ)}(h h]h }(hjU/hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj(/ubj)}(hjh]h*}(hjc/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(/ubjq)}(hcell_idh]hcell_id}(hjp/hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj(/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubj)}(hu16 *valh](h)}(hhh]jq)}(hu16h]hu16}(hj/hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j.c.nvmem_cell_read_u16asbuh1hhj/ubjZ)}(h h]h }(hj/hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubjq)}(hvalh]hval}(hj/hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubeh}(h]h ]h"]h$]h&]hhuh1jhjy.hhhj.hMsubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhju.hhhj.hMsubah}(h]jp.ah ](jjeh"]h$]h&]jj)jhuh1j;hj.hMshjr.hhubj)}(hhh]h)}(hRead a cell value as a u16h]hRead a cell value as a u16}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMkhj/hhubah}(h]h ]h"]h$]h&]uh1jhjr.hhhj.hMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u16 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMohj 0ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj00h]hstruct device *dev}(hj20hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.0ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMmhj*0ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hjI0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE0hMmhjF0ubah}(h]h ]h"]h$]h&]uh1j(hj*0ubeh}(h]h ]h"]h$]h&]uh1jhjE0hMmhj'0ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hji0h]hconst char *cell_id}(hjk0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg0ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMnhjc0ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~0hMnhj0ubah}(h]h ]h"]h$]h&]uh1j(hjc0ubeh}(h]h ]h"]h$]h&]uh1jhj~0hMnhj'0ubj)}(h&``u16 *val`` pointer to output value. h](j )}(h ``u16 *val``h]j)}(hj0h]hu16 *val}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMohj0ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMohj0ubah}(h]h ]h"]h$]h&]uh1j(hj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMohj'0ubeh}(h]h ]h"]h$]h&]uh1jhj 0ubh)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMqhj 0ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMqhj 0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 nvmem_cell_read_u32 (C function)c.nvmem_cell_read_u32hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hKint nvmem_cell_read_u32 (struct device *dev, const char *cell_id, u32 *val)h]jB)}(hJint nvmem_cell_read_u32(struct device *dev, const char *cell_id, u32 *val)h](jH)}(hinth]hint}(hj"1hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj1hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj11hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj1hhhj01hMubjk)}(hnvmem_cell_read_u32h]jq)}(hnvmem_cell_read_u32h]hnvmem_cell_read_u32}(hjC1hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj?1ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj1hhhj01hMubj)}(h3(struct device *dev, const char *cell_id, u32 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj_1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[1ubjZ)}(h h]h }(hjl1hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj[1ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj}1hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjz1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jjE1sbc.nvmem_cell_read_u32asbuh1hhj[1ubjZ)}(h h]h }(hj1hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj[1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[1ubjq)}(hdevh]hdev}(hj1hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj[1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjW1ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjZ)}(h h]h }(hj1hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj1ubjH)}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj1ubjZ)}(h h]h }(hj1hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj1ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjq)}(hcell_idh]hcell_id}(hj2hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjW1ubj)}(hu32 *valh](h)}(hhh]jq)}(hu32h]hu32}(hj12hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj32modnameN classnameNjj)}j]j1c.nvmem_cell_read_u32asbuh1hhj*2ubjZ)}(h h]h }(hjO2hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj*2ubj)}(hjh]h*}(hj]2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*2ubjq)}(hvalh]hval}(hjj2hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj*2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjW1ubeh}(h]h ]h"]h$]h&]hhuh1jhj1hhhj01hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj1hhhj01hMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1j;hj01hMhj1hhubj)}(hhh]h)}(hRead a cell value as a u32h]hRead a cell value as a u32}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMzhj2hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhj01hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u32 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM~hj2ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj2h]hstruct device *dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM|hj2ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM|hj2ubah}(h]h ]h"]h$]h&]uh1j(hj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hM|hj2ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hj3h]hconst char *cell_id}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 3ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM}hj3ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hj'3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#3hM}hj$3ubah}(h]h ]h"]h$]h&]uh1j(hj3ubeh}(h]h ]h"]h$]h&]uh1jhj#3hM}hj2ubj)}(h&``u32 *val`` pointer to output value. h](j )}(h ``u32 *val``h]j)}(hjG3h]hu32 *val}(hjI3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE3ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM~hjA3ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hj`3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\3hM~hj]3ubah}(h]h ]h"]h$]h&]uh1j(hjA3ubeh}(h]h ]h"]h$]h&]uh1jhj\3hM~hj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubh)}(h **Return**h]j)}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj2ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 nvmem_cell_read_u64 (C function)c.nvmem_cell_read_u64hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hKint nvmem_cell_read_u64 (struct device *dev, const char *cell_id, u64 *val)h]jB)}(hJint nvmem_cell_read_u64(struct device *dev, const char *cell_id, u64 *val)h](jH)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj3hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj3hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj3hhhj3hMubjk)}(hnvmem_cell_read_u64h]jq)}(hnvmem_cell_read_u64h]hnvmem_cell_read_u64}(hj3hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj3ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj3hhhj3hMubj)}(h3(struct device *dev, const char *cell_id, u64 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubjZ)}(h h]h }(hj4hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj4ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj"4hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$4modnameN classnameNjj)}j]j)}jj3sbc.nvmem_cell_read_u64asbuh1hhj4ubjZ)}(h h]h }(hjB4hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj4ubj)}(hjh]h*}(hjP4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubjq)}(hdevh]hdev}(hj]4hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hjv4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr4ubjZ)}(h h]h }(hj4hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjr4ubjH)}(hcharh]hchar}(hj4hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjr4ubjZ)}(h h]h }(hj4hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjr4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr4ubjq)}(hcell_idh]hcell_id}(hj4hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjr4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3ubj)}(hu64 *valh](h)}(hhh]jq)}(hu64h]hu64}(hj4hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j>4c.nvmem_cell_read_u64asbuh1hhj4ubjZ)}(h h]h }(hj4hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj4ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubjq)}(hvalh]hval}(hj5hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj3ubeh}(h]h ]h"]h$]h&]hhuh1jhj3hhhj3hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj3hhhj3hMubah}(h]j3ah ](jjeh"]h$]h&]jj)jhuh1j;hj3hMhj3hhubj)}(hhh]h)}(hRead a cell value as a u64h]hRead a cell value as a u64}(hj95hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj65hhubah}(h]h ]h"]h$]h&]uh1jhj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQ5jjQ5jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u64 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hj[5h]h Parameters}(hj]5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY5ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjU5ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hjz5h]hstruct device *dev}(hj|5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx5ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjt5ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1j(hjt5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjq5ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hj5h]hconst char *cell_id}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj5ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1j(hj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjq5ubj)}(h&``u64 *val`` pointer to output value. h](j )}(h ``u64 *val``h]j)}(hj5h]hu64 *val}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj5ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1j(hj5ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjq5ubeh}(h]h ]h"]h$]h&]uh1jhjU5ubh)}(h **Return**h]j)}(hj'6h]hReturn}(hj)6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%6ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjU5ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hj=6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjU5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2,nvmem_cell_read_variable_le_u32 (C function)!c.nvmem_cell_read_variable_le_u32hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hWint nvmem_cell_read_variable_le_u32 (struct device *dev, const char *cell_id, u32 *val)h]jB)}(hVint nvmem_cell_read_variable_le_u32(struct device *dev, const char *cell_id, u32 *val)h](jH)}(hinth]hint}(hjl6hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjh6hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj{6hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjh6hhhjz6hMubjk)}(hnvmem_cell_read_variable_le_u32h]jq)}(hnvmem_cell_read_variable_le_u32h]hnvmem_cell_read_variable_le_u32}(hj6hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj6ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjh6hhhjz6hMubj)}(h3(struct device *dev, const char *cell_id, u32 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubjZ)}(h h]h }(hj6hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj6ubh)}(hhh]jq)}(hdeviceh]hdevice}(hj6hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jj6sb!c.nvmem_cell_read_variable_le_u32asbuh1hhj6ubjZ)}(h h]h }(hj6hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubjq)}(hdevh]hdev}(hj7hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubjZ)}(h h]h }(hj(7hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj7ubjH)}(hcharh]hchar}(hj67hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj7ubjZ)}(h h]h }(hjD7hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj7ubj)}(hjh]h*}(hjR7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubjq)}(hcell_idh]hcell_id}(hj_7hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubj)}(hu32 *valh](h)}(hhh]jq)}(hu32h]hu32}(hj{7hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjx7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}7modnameN classnameNjj)}j]j6!c.nvmem_cell_read_variable_le_u32asbuh1hhjt7ubjZ)}(h h]h }(hj7hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjt7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt7ubjq)}(hvalh]hval}(hj7hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjt7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubeh}(h]h ]h"]h$]h&]hhuh1jhjh6hhhjz6hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjd6hhhjz6hMubah}(h]j_6ah ](jjeh"]h$]h&]jj)jhuh1j;hjz6hMhja6hhubj)}(hhh]h)}(h5Read up to 32-bits of data as a little endian number.h]h5Read up to 32-bits of data as a little endian number.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj7hhubah}(h]h ]h"]h$]h&]uh1jhja6hhhjz6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u32 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hj8h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj7ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj8h]hstruct device *dev}(hj!8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj8ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj88hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj48hMhj58ubah}(h]h ]h"]h$]h&]uh1j(hj8ubeh}(h]h ]h"]h$]h&]uh1jhj48hMhj8ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hjX8h]hconst char *cell_id}(hjZ8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV8ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjR8ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hjq8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm8hMhjn8ubah}(h]h ]h"]h$]h&]uh1j(hjR8ubeh}(h]h ]h"]h$]h&]uh1jhjm8hMhj8ubj)}(h&``u32 *val`` pointer to output value. h](j )}(h ``u32 *val``h]j)}(hj8h]hu32 *val}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj8ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1j(hj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubeh}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h **Return**h]j)}(hj8h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj7ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2,nvmem_cell_read_variable_le_u64 (C function)!c.nvmem_cell_read_variable_le_u64hNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hWint nvmem_cell_read_variable_le_u64 (struct device *dev, const char *cell_id, u64 *val)h]jB)}(hVint nvmem_cell_read_variable_le_u64(struct device *dev, const char *cell_id, u64 *val)h](jH)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj 9hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj 9hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj 9hhhj9hMubjk)}(hnvmem_cell_read_variable_le_u64h]jq)}(hnvmem_cell_read_variable_le_u64h]hnvmem_cell_read_variable_le_u64}(hj29hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj.9ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj 9hhhj9hMubj)}(h3(struct device *dev, const char *cell_id, u64 *val)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjN9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ9ubjZ)}(h h]h }(hj[9hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjJ9ubh)}(hhh]jq)}(hdeviceh]hdevice}(hjl9hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphji9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjn9modnameN classnameNjj)}j]j)}jj49sb!c.nvmem_cell_read_variable_le_u64asbuh1hhjJ9ubjZ)}(h h]h }(hj9hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjJ9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ9ubjq)}(hdevh]hdev}(hj9hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjJ9ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjF9ubj)}(hconst char *cell_idh](j)}(hjh]hconst}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubjZ)}(h h]h }(hj9hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj9ubjH)}(hcharh]hchar}(hj9hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj9ubjZ)}(h h]h }(hj9hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubjq)}(hcell_idh]hcell_id}(hj:hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj9ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjF9ubj)}(hu64 *valh](h)}(hhh]jq)}(hu64h]hu64}(hj :hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj":modnameN classnameNjj)}j]j9!c.nvmem_cell_read_variable_le_u64asbuh1hhj:ubjZ)}(h h]h }(hj>:hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj:ubj)}(hjh]h*}(hjL:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubjq)}(hvalh]hval}(hjY:hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjF9ubeh}(h]h ]h"]h$]h&]hhuh1jhj 9hhhj9hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj 9hhhj9hMubah}(h]j9ah ](jjeh"]h$]h&]jj)jhuh1j;hj9hMhj9hhubj)}(hhh]h)}(h5Read up to 64-bits of data as a little endian number.h]h5Read up to 64-bits of data as a little endian number.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jhj9hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1j6hhhjhNhNubj)}(h**Parameters** ``struct device *dev`` Device that requests the nvmem cell. ``const char *cell_id`` Name of nvmem cell to read. ``u64 *val`` pointer to output value. **Return** 0 on success or negative errno.h](h)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:ubj)}(hhh](j)}(h<``struct device *dev`` Device that requests the nvmem cell. h](j )}(h``struct device *dev``h]j)}(hj:h]hstruct device *dev}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:ubj))}(hhh]h)}(h$Device that requests the nvmem cell.h]h$Device that requests the nvmem cell.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1j(hj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj:ubj)}(h4``const char *cell_id`` Name of nvmem cell to read. h](j )}(h``const char *cell_id``h]j)}(hj:h]hconst char *cell_id}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:ubj))}(hhh]h)}(hName of nvmem cell to read.h]hName of nvmem cell to read.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1j(hj:ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhj:ubj)}(h&``u64 *val`` pointer to output value. h](j )}(h ``u64 *val``h]j)}(hj6;h]hu64 *val}(hj8;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4;ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj0;ubj))}(hhh]h)}(hpointer to output value.h]hpointer to output value.}(hjO;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK;hMhjL;ubah}(h]h ]h"]h$]h&]uh1j(hj0;ubeh}(h]h ]h"]h$]h&]uh1jhjK;hMhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:ubh)}(h **Return**h]j)}(hjq;h]hReturn}(hjs;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo;ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:ubh)}(h0 on success or negative errno.h]h0 on success or negative errno.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2#nvmem_device_cell_read (C function)c.nvmem_device_cell_readhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hdssize_t nvmem_device_cell_read (struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h]jB)}(hcssize_t nvmem_device_cell_read(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h](h)}(hhh]jq)}(hssize_th]hssize_t}(hj;hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jnvmem_device_cell_readsbc.nvmem_device_cell_readasbuh1hhj;hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj;hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj;hhhj;hMubjk)}(hnvmem_device_cell_readh]jq)}(hj;h]hnvmem_device_cell_read}(hj;hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj;ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj;hhhj;hMubj)}(hE(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h](j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjZ)}(h h]h }(hj<hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj<ubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hj&<hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj#<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(<modnameN classnameNjj)}j]j;c.nvmem_device_cell_readasbuh1hhj<ubjZ)}(h h]h }(hjD<hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj<ubj)}(hjh]h*}(hjR<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjq)}(hnvmemh]hnvmem}(hj_<hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj<ubj)}(hstruct nvmem_cell_info *infoh](j)}(hjh]hstruct}(hjx<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt<ubjZ)}(h h]h }(hj<hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjt<ubh)}(hhh]jq)}(hnvmem_cell_infoh]hnvmem_cell_info}(hj<hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j;c.nvmem_device_cell_readasbuh1hhjt<ubjZ)}(h h]h }(hj<hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjt<ubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt<ubjq)}(hinfoh]hinfo}(hj<hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjt<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj<ubj)}(h void *bufh](jH)}(hvoidh]hvoid}(hj<hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj<ubjZ)}(h h]h }(hj<hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj<ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjq)}(hbufh]hbuf}(hj=hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj<ubeh}(h]h ]h"]h$]h&]hhuh1jhj;hhhj;hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj;hhhj;hMubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1j;hj;hMhj;hhubj)}(hhh]h)}(h"Read a given nvmem device and cellh]h"Read a given nvmem device and cell}(hj;=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj8=hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj;hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjS=jjS=jjjuh1j6hhhjhNhNubj)}(hX1**Parameters** ``struct nvmem_device *nvmem`` nvmem device to read from. ``struct nvmem_cell_info *info`` nvmem cell info to be read. ``void *buf`` buffer pointer which will be populated on successful read. **Return** length of successful bytes read on success and negative error code on error.h](h)}(h**Parameters**h]j)}(hj]=h]h Parameters}(hj_=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[=ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjW=ubj)}(hhh](j)}(h:``struct nvmem_device *nvmem`` nvmem device to read from. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hj|=h]hstruct nvmem_device *nvmem}(hj~=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz=ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjv=ubj))}(hhh]h)}(hnvmem device to read from.h]hnvmem device to read from.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1j(hjv=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhjs=ubj)}(h=``struct nvmem_cell_info *info`` nvmem cell info to be read. h](j )}(h ``struct nvmem_cell_info *info``h]j)}(hj=h]hstruct nvmem_cell_info *info}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj=ubj))}(hhh]h)}(hnvmem cell info to be read.h]hnvmem cell info to be read.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1j(hj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhjs=ubj)}(hI``void *buf`` buffer pointer which will be populated on successful read. h](j )}(h ``void *buf``h]j)}(hj=h]h void *buf}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj=ubj))}(hhh]h)}(h:buffer pointer which will be populated on successful read.h]h:buffer pointer which will be populated on successful read.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1j(hj=ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhjs=ubeh}(h]h ]h"]h$]h&]uh1jhjW=ubh)}(h **Return**h]j)}(hj)>h]hReturn}(hj+>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'>ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjW=ubh)}(hLlength of successful bytes read on success and negative error code on error.h]hLlength of successful bytes read on success and negative error code on error.}(hj?>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjW=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2$nvmem_device_cell_write (C function)c.nvmem_device_cell_writehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(haint nvmem_device_cell_write (struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h]jB)}(h`int nvmem_device_cell_write(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h](jH)}(hinth]hint}(hjn>hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjj>hhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj}>hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjj>hhhj|>hMubjk)}(hnvmem_device_cell_writeh]jq)}(hnvmem_device_cell_writeh]hnvmem_device_cell_write}(hj>hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>ubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjj>hhhj|>hMubj)}(hE(struct nvmem_device *nvmem, struct nvmem_cell_info *info, void *buf)h](j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjZ)}(h h]h }(hj>hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj>ubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hj>hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.nvmem_device_cell_writeasbuh1hhj>ubjZ)}(h h]h }(hj>hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj>ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjq)}(hnvmemh]hnvmem}(hj?hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj>ubj)}(hstruct nvmem_cell_info *infoh](j)}(hjh]hstruct}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjZ)}(h h]h }(hj*?hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj?ubh)}(hhh]jq)}(hnvmem_cell_infoh]hnvmem_cell_info}(hj;?hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj8?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=?modnameN classnameNjj)}j]j>c.nvmem_device_cell_writeasbuh1hhj?ubjZ)}(h h]h }(hjY?hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj?ubj)}(hjh]h*}(hjg?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjq)}(hinfoh]hinfo}(hjt?hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj>ubj)}(h void *bufh](jH)}(hvoidh]hvoid}(hj?hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj?ubjZ)}(h h]h }(hj?hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubjq)}(hbufh]hbuf}(hj?hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj>ubeh}(h]h ]h"]h$]h&]hhuh1jhjj>hhhj|>hMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjf>hhhj|>hMubah}(h]ja>ah ](jjeh"]h$]h&]jj)jhuh1j;hj|>hMhjc>hhubj)}(hhh]h)}(h"Write cell to a given nvmem deviceh]h"Write cell to a given nvmem device}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj?hhubah}(h]h ]h"]h$]h&]uh1jhjc>hhhj|>hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1j6hhhjhNhNubj)}(hX **Parameters** ``struct nvmem_device *nvmem`` nvmem device to be written to. ``struct nvmem_cell_info *info`` nvmem cell info to be written. ``void *buf`` buffer to be written to cell. **Return** length of bytes written or negative error code on failure.h](h)}(h**Parameters**h]j)}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj?ubj)}(hhh](j)}(h>``struct nvmem_device *nvmem`` nvmem device to be written to. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hj!@h]hstruct nvmem_device *nvmem}(hj#@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj@ubj))}(hhh]h)}(hnvmem device to be written to.h]hnvmem device to be written to.}(hj:@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6@hMhj7@ubah}(h]h ]h"]h$]h&]uh1j(hj@ubeh}(h]h ]h"]h$]h&]uh1jhj6@hMhj@ubj)}(h@``struct nvmem_cell_info *info`` nvmem cell info to be written. h](j )}(h ``struct nvmem_cell_info *info``h]j)}(hjZ@h]hstruct nvmem_cell_info *info}(hj\@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX@ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjT@ubj))}(hhh]h)}(hnvmem cell info to be written.h]hnvmem cell info to be written.}(hjs@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo@hMhjp@ubah}(h]h ]h"]h$]h&]uh1j(hjT@ubeh}(h]h ]h"]h$]h&]uh1jhjo@hMhj@ubj)}(h,``void *buf`` buffer to be written to cell. h](j )}(h ``void *buf``h]j)}(hj@h]h void *buf}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj@ubj))}(hhh]h)}(hbuffer to be written to cell.h]hbuffer to be written to cell.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1j(hj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj@ubeh}(h]h ]h"]h$]h&]uh1jhj?ubh)}(h **Return**h]j)}(hj@h]hReturn}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj?ubh)}(h:length of bytes written or negative error code on failure.h]h:length of bytes written or negative error code on failure.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_device_read (C function)c.nvmem_device_readhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h`int nvmem_device_read (struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h]jB)}(h_int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h](jH)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjAhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM;ubjZ)}(h h]h }(hj"AhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjAhhhj!AhM;ubjk)}(hnvmem_device_readh]jq)}(hnvmem_device_readh]hnvmem_device_read}(hj4AhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj0Aubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjAhhhj!AhM;ubj)}(hJ(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h](j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjPAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLAubjZ)}(h h]h }(hj]AhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjLAubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjnAhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjkAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpAmodnameN classnameNjj)}j]j)}jj6Asbc.nvmem_device_readasbuh1hhjLAubjZ)}(h h]h }(hjAhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjLAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLAubjq)}(hnvmemh]hnvmem}(hjAhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjLAubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHAubj)}(hunsigned int offseth](jH)}(hunsignedh]hunsigned}(hjAhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjAubjZ)}(h h]h }(hjAhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjAubjH)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjAubjZ)}(h h]h }(hjAhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjAubjq)}(hoffseth]hoffset}(hjAhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjAubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHAubj)}(h size_t bytesh](h)}(hhh]jq)}(hsize_th]hsize_t}(hjBhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]jAc.nvmem_device_readasbuh1hhjBubjZ)}(h h]h }(hj4BhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjBubjq)}(hbytesh]hbytes}(hjBBhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjBubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHAubj)}(h void *bufh](jH)}(hvoidh]hvoid}(hj[BhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjWBubjZ)}(h h]h }(hjiBhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjWBubj)}(hjh]h*}(hjwBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWBubjq)}(hbufh]hbuf}(hjBhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjWBubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHAubeh}(h]h ]h"]h$]h&]hhuh1jhjAhhhj!AhM;ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj Ahhhj!AhM;ubah}(h]jAah ](jjeh"]h$]h&]jj)jhuh1j;hj!AhM;hjAhhubj)}(hhh]h)}(hRead from a given nvmem deviceh]hRead from a given nvmem device}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM1hjBhhubah}(h]h ]h"]h$]h&]uh1jhjAhhhj!AhM;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1j6hhhjhNhNubj)}(hXQ**Parameters** ``struct nvmem_device *nvmem`` nvmem device to read from. ``unsigned int offset`` offset in nvmem device. ``size_t bytes`` number of bytes to read. ``void *buf`` buffer pointer which will be populated on successful read. **Return** length of successful bytes read on success and negative error code on error.h](h)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM5hjBubj)}(hhh](j)}(h:``struct nvmem_device *nvmem`` nvmem device to read from. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hjBh]hstruct nvmem_device *nvmem}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM3hjBubj))}(hhh]h)}(hnvmem device to read from.h]hnvmem device to read from.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM3hjCubah}(h]h ]h"]h$]h&]uh1j(hjBubeh}(h]h ]h"]h$]h&]uh1jhjChM3hjBubj)}(h0``unsigned int offset`` offset in nvmem device. h](j )}(h``unsigned int offset``h]j)}(hj(Ch]hunsigned int offset}(hj*ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Cubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM4hj"Cubj))}(hhh]h)}(hoffset in nvmem device.h]hoffset in nvmem device.}(hjAChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ChM4hj>Cubah}(h]h ]h"]h$]h&]uh1j(hj"Cubeh}(h]h ]h"]h$]h&]uh1jhj=ChM4hjBubj)}(h*``size_t bytes`` number of bytes to read. h](j )}(h``size_t bytes``h]j)}(hjaCh]h size_t bytes}(hjcChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Cubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM5hj[Cubj))}(hhh]h)}(hnumber of bytes to read.h]hnumber of bytes to read.}(hjzChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvChM5hjwCubah}(h]h ]h"]h$]h&]uh1j(hj[Cubeh}(h]h ]h"]h$]h&]uh1jhjvChM5hjBubj)}(hI``void *buf`` buffer pointer which will be populated on successful read. h](j )}(h ``void *buf``h]j)}(hjCh]h void *buf}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM6hjCubj))}(hhh]h)}(h:buffer pointer which will be populated on successful read.h]h:buffer pointer which will be populated on successful read.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM6hjCubah}(h]h ]h"]h$]h&]uh1j(hjCubeh}(h]h ]h"]h$]h&]uh1jhjChM6hjBubeh}(h]h ]h"]h$]h&]uh1jhjBubh)}(h **Return**h]j)}(hjCh]hReturn}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM8hjBubh)}(hLlength of successful bytes read on success and negative error code on error.h]hLlength of successful bytes read on success and negative error code on error.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM8hjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_device_write (C function)c.nvmem_device_writehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(haint nvmem_device_write (struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h]jB)}(h`int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h](jH)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjDhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMWubjZ)}(h h]h }(hj)DhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjDhhhj(DhMWubjk)}(hnvmem_device_writeh]jq)}(hnvmem_device_writeh]hnvmem_device_write}(hj;DhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj7Dubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjDhhhj(DhMWubj)}(hJ(struct nvmem_device *nvmem, unsigned int offset, size_t bytes, void *buf)h](j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjWDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSDubjZ)}(h h]h }(hjdDhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjSDubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjuDhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjrDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwDmodnameN classnameNjj)}j]j)}jj=Dsbc.nvmem_device_writeasbuh1hhjSDubjZ)}(h h]h }(hjDhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjSDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSDubjq)}(hnvmemh]hnvmem}(hjDhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjSDubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjODubj)}(hunsigned int offseth](jH)}(hunsignedh]hunsigned}(hjDhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjDubjZ)}(h h]h }(hjDhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjDubjH)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjDubjZ)}(h h]h }(hjDhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjDubjq)}(hoffseth]hoffset}(hjEhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjDubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjODubj)}(h size_t bytesh](h)}(hhh]jq)}(hsize_th]hsize_t}(hjEhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jDc.nvmem_device_writeasbuh1hhjEubjZ)}(h h]h }(hj;EhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjEubjq)}(hbytesh]hbytes}(hjIEhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjODubj)}(h void *bufh](jH)}(hvoidh]hvoid}(hjbEhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhj^EubjZ)}(h h]h }(hjpEhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj^Eubj)}(hjh]h*}(hj~EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^Eubjq)}(hbufh]hbuf}(hjEhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj^Eubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjODubeh}(h]h ]h"]h$]h&]hhuh1jhjDhhhj(DhMWubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjDhhhj(DhMWubah}(h]j Dah ](jjeh"]h$]h&]jj)jhuh1j;hj(DhMWhjDhhubj)}(hhh]h)}(h"Write cell to a given nvmem deviceh]h"Write cell to a given nvmem device}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMNhjEhhubah}(h]h ]h"]h$]h&]uh1jhjDhhhj(DhMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1j6hhhjhNhNubj)}(hX**Parameters** ``struct nvmem_device *nvmem`` nvmem device to be written to. ``unsigned int offset`` offset in nvmem device. ``size_t bytes`` number of bytes to write. ``void *buf`` buffer to be written. **Return** length of bytes written or negative error code on failure.h](h)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMRhjEubj)}(hhh](j)}(h>``struct nvmem_device *nvmem`` nvmem device to be written to. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hjEh]hstruct nvmem_device *nvmem}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMPhjEubj))}(hhh]h)}(hnvmem device to be written to.h]hnvmem device to be written to.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj FhMPhj Fubah}(h]h ]h"]h$]h&]uh1j(hjEubeh}(h]h ]h"]h$]h&]uh1jhj FhMPhjEubj)}(h0``unsigned int offset`` offset in nvmem device. h](j )}(h``unsigned int offset``h]j)}(hj/Fh]hunsigned int offset}(hj1FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Fubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMQhj)Fubj))}(hhh]h)}(hoffset in nvmem device.h]hoffset in nvmem device.}(hjHFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDFhMQhjEFubah}(h]h ]h"]h$]h&]uh1j(hj)Fubeh}(h]h ]h"]h$]h&]uh1jhjDFhMQhjEubj)}(h+``size_t bytes`` number of bytes to write. h](j )}(h``size_t bytes``h]j)}(hjhFh]h size_t bytes}(hjjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfFubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMRhjbFubj))}(hhh]h)}(hnumber of bytes to write.h]hnumber of bytes to write.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}FhMRhj~Fubah}(h]h ]h"]h$]h&]uh1j(hjbFubeh}(h]h ]h"]h$]h&]uh1jhj}FhMRhjEubj)}(h$``void *buf`` buffer to be written. h](j )}(h ``void *buf``h]j)}(hjFh]h void *buf}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMShjFubj))}(hhh]h)}(hbuffer to be written.h]hbuffer to be written.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMShjFubah}(h]h ]h"]h$]h&]uh1j(hjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMShjEubeh}(h]h ]h"]h$]h&]uh1jhjEubh)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMUhjEubh)}(h:length of bytes written or negative error code on failure.h]h:length of bytes written or negative error code on failure.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMUhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2!nvmem_add_cell_table (C function)c.nvmem_add_cell_tablehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h:void nvmem_add_cell_table (struct nvmem_cell_table *table)h]jB)}(h9void nvmem_add_cell_table(struct nvmem_cell_table *table)h](jH)}(hvoidh]hvoid}(hj!GhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjGhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMoubjZ)}(h h]h }(hj0GhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjGhhhj/GhMoubjk)}(hnvmem_add_cell_tableh]jq)}(hnvmem_add_cell_tableh]hnvmem_add_cell_table}(hjBGhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>Gubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjGhhhj/GhMoubj)}(h (struct nvmem_cell_table *table)h]j)}(hstruct nvmem_cell_table *tableh](j)}(hjh]hstruct}(hj^GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZGubjZ)}(h h]h }(hjkGhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjZGubh)}(hhh]jq)}(hnvmem_cell_tableh]hnvmem_cell_table}(hj|GhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjyGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~GmodnameN classnameNjj)}j]j)}jjDGsbc.nvmem_add_cell_tableasbuh1hhjZGubjZ)}(h h]h }(hjGhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjZGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZGubjq)}(htableh]htable}(hjGhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjZGubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjVGubah}(h]h ]h"]h$]h&]hhuh1jhjGhhhj/GhMoubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjGhhhj/GhMoubah}(h]jGah ](jjeh"]h$]h&]jj)jhuh1j;hj/GhMohjGhhubj)}(hhh]h)}(h%register a table of cell info entriesh]h%register a table of cell info entries}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMkhjGhhubah}(h]h ]h"]h$]h&]uh1jhjGhhhj/GhMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1j6hhhjhNhNubj)}(hO**Parameters** ``struct nvmem_cell_table *table`` table of cell info entriesh](h)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMohjGubj)}(hhh]j)}(h=``struct nvmem_cell_table *table`` table of cell info entriesh](j )}(h"``struct nvmem_cell_table *table``h]j)}(hj"Hh]hstruct nvmem_cell_table *table}(hj$HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Hubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMqhjHubj))}(hhh]h)}(htable of cell info entriesh]htable of cell info entries}(hj;HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMmhj8Hubah}(h]h ]h"]h$]h&]uh1j(hjHubeh}(h]h ]h"]h$]h&]uh1jhj7HhMqhjHubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2!nvmem_del_cell_table (C function)c.nvmem_del_cell_tablehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h:void nvmem_del_cell_table (struct nvmem_cell_table *table)h]jB)}(h9void nvmem_del_cell_table(struct nvmem_cell_table *table)h](jH)}(hvoidh]hvoid}(hj|HhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjxHhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chM|ubjZ)}(h h]h }(hjHhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjxHhhhjHhM|ubjk)}(hnvmem_del_cell_tableh]jq)}(hnvmem_del_cell_tableh]hnvmem_del_cell_table}(hjHhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjHubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjxHhhhjHhM|ubj)}(h (struct nvmem_cell_table *table)h]j)}(hstruct nvmem_cell_table *tableh](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubjZ)}(h h]h }(hjHhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjHubh)}(hhh]jq)}(hnvmem_cell_tableh]hnvmem_cell_table}(hjHhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjHsbc.nvmem_del_cell_tableasbuh1hhjHubjZ)}(h h]h }(hjHhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjHubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubjq)}(htableh]htable}(hjIhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjHubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHubah}(h]h ]h"]h$]h&]hhuh1jhjxHhhhjHhM|ubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjtHhhhjHhM|ubah}(h]joHah ](jjeh"]h$]h&]jj)jhuh1j;hjHhM|hjqHhhubj)}(hhh]h)}(h.remove a previously registered cell info tableh]h.remove a previously registered cell info table}(hj``size_t nentries`` number of cell lookup entries in the arrayh](j )}(h``size_t nentries``h]j)}(hjYKh]hsize_t nentries}(hj[KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWKubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjSKubj))}(hhh]h)}(h*number of cell lookup entries in the arrayh]h*number of cell lookup entries in the array}(hjrKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjoKubah}(h]h ]h"]h$]h&]uh1j(hjSKubeh}(h]h ]h"]h$]h&]uh1jhjnKhMhjKubeh}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2#nvmem_del_cell_lookups (C function)c.nvmem_del_cell_lookupshNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hPvoid nvmem_del_cell_lookups (struct nvmem_cell_lookup *entries, size_t nentries)h]jB)}(hOvoid nvmem_del_cell_lookups(struct nvmem_cell_lookup *entries, size_t nentries)h](jH)}(hvoidh]hvoid}(hjKhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjKhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjKhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjKhhhjKhMubjk)}(hnvmem_del_cell_lookupsh]jq)}(hnvmem_del_cell_lookupsh]hnvmem_del_cell_lookups}(hjKhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjKubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjKhhhjKhMubj)}(h4(struct nvmem_cell_lookup *entries, size_t nentries)h](j)}(h!struct nvmem_cell_lookup *entriesh](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjZ)}(h h]h }(hjKhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjKubh)}(hhh]jq)}(hnvmem_cell_lookuph]hnvmem_cell_lookup}(hjLhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj Lubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjKsbc.nvmem_del_cell_lookupsasbuh1hhjKubjZ)}(h h]h }(hj.LhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjKubj)}(hjh]h*}(hj``size_t nentries`` number of cell lookup entries in the arrayh](j )}(h``size_t nentries``h]j)}(hj5Mh]hsize_t nentries}(hj7MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Mubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj/Mubj))}(hhh]h)}(h*number of cell lookup entries in the arrayh]h*number of cell lookup entries in the array}(hjNMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjKMubah}(h]h ]h"]h$]h&]uh1j(hj/Mubeh}(h]h ]h"]h$]h&]uh1jhjJMhMhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_dev_name (C function)c.nvmem_dev_namehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h8const char * nvmem_dev_name (struct nvmem_device *nvmem)h]jB)}(h6const char *nvmem_dev_name(struct nvmem_device *nvmem)h](j)}(hjh]hconst}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hjMhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjMhhhjMhMubjH)}(hcharh]hchar}(hjMhhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjMhhhjMhMubjZ)}(h h]h }(hjMhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjMhhhjMhMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhhjMhMubjk)}(hnvmem_dev_nameh]jq)}(hnvmem_dev_nameh]hnvmem_dev_name}(hjMhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjMubah}(h]h ](jjeh"]h$]h&]hhuh1jjhjMhhhjMhMubj)}(h(struct nvmem_device *nvmem)h]j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubjZ)}(h h]h }(hjNhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjMubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjNhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjMsbc.nvmem_dev_nameasbuh1hhjMubjZ)}(h h]h }(hj2NhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjMubj)}(hjh]h*}(hj@NhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubjq)}(hnvmemh]hnvmem}(hjMNhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjMubah}(h]h ]h"]h$]h&]hhuh1jhjMhhhjMhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhjMhhhjMhMubah}(h]jMah ](jjeh"]h$]h&]jj)jhuh1j;hjMhMhjMhhubj)}(hhh]h)}(h%Get the name of a given nvmem device.h]h%Get the name of a given nvmem device.}(hjwNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjtNhhubah}(h]h ]h"]h$]h&]uh1jhjMhhhjMhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1j6hhhjhNhNubj)}(he**Parameters** ``struct nvmem_device *nvmem`` nvmem device. **Return** name of the nvmem device.h](h)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjNubj)}(hhh]j)}(h-``struct nvmem_device *nvmem`` nvmem device. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hjNh]hstruct nvmem_device *nvmem}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjNubj))}(hhh]h)}(h nvmem device.h]h nvmem device.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1j(hjNubeh}(h]h ]h"]h$]h&]uh1jhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjNubh)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjNubh)}(hname of the nvmem device.h]hname of the nvmem device.}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2nvmem_dev_size (C function)c.nvmem_dev_sizehNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(h2size_t nvmem_dev_size (struct nvmem_device *nvmem)h]jB)}(h1size_t nvmem_dev_size(struct nvmem_device *nvmem)h](h)}(hhh]jq)}(hsize_th]hsize_t}(hj;OhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj8Oubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=OmodnameN classnameNjj)}j]j)}jnvmem_dev_sizesbc.nvmem_dev_sizeasbuh1hhj4OhhhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMubjZ)}(h h]h }(hj]OhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj4Ohhhj\OhMubjk)}(hnvmem_dev_sizeh]jq)}(hjYOh]hnvmem_dev_size}(hjoOhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjkOubah}(h]h ](jjeh"]h$]h&]hhuh1jjhj4Ohhhj\OhMubj)}(h(struct nvmem_device *nvmem)h]j)}(hstruct nvmem_device *nvmemh](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjZ)}(h h]h }(hjOhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjOubh)}(hhh]jq)}(h nvmem_deviceh]h nvmem_device}(hjOhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jWOc.nvmem_dev_sizeasbuh1hhjOubjZ)}(h h]h }(hjOhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjq)}(hnvmemh]hnvmem}(hjOhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjOubah}(h]h ]h"]h$]h&]hhuh1jhj4Ohhhj\OhMubeh}(h]h ]h"]h$]h&]hhjuh1jAjjhj0Ohhhj\OhMubah}(h]j+Oah ](jjeh"]h$]h&]jj)jhuh1j;hj\OhMhj-Ohhubj)}(hhh]h)}(h%Get the size of a given nvmem device.h]h%Get the size of a given nvmem device.}(hj PhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjPhhubah}(h]h ]h"]h$]h&]uh1jhj-Ohhhj\OhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#Pjj#Pjjjuh1j6hhhjhNhNubj)}(he**Parameters** ``struct nvmem_device *nvmem`` nvmem device. **Return** size of the nvmem device.h](h)}(h**Parameters**h]j)}(hj-Ph]h Parameters}(hj/PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Pubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj'Pubj)}(hhh]j)}(h-``struct nvmem_device *nvmem`` nvmem device. h](j )}(h``struct nvmem_device *nvmem``h]j)}(hjLPh]hstruct nvmem_device *nvmem}(hjNPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJPubah}(h]h ]h"]h$]h&]uh1j hV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhjFPubj))}(hhh]h)}(h nvmem device.h]h nvmem device.}(hjePhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaPhMhjbPubah}(h]h ]h"]h$]h&]uh1j(hjFPubeh}(h]h ]h"]h$]h&]uh1jhjaPhMhjCPubah}(h]h ]h"]h$]h&]uh1jhj'Pubh)}(h **Return**h]j)}(hjPh]hReturn}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj'Pubh)}(hsize of the nvmem device.h]hsize of the nvmem device.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/driver-api/nvmem:207: ./drivers/nvmem/core.chMhj'Pubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]internal-kernel-apiah ]h"]9. internal kernel apiah$]h&]uh1hhhhhhhhKubeh}(h]nvmem-subsystemah ]h"]nvmem subsystemah$]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_handlerjPerror_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}(jPjPjjjjj@j=j8j5jjjjjdjaj\jYjjjjjjjPjPu nametypes}(jPjjj@j8jjjdj\jjjjPuh}(jPhjj jjbj=jj5jjjCjjjaj jYjFjjgjjjjjPjj4j=jjjAjFj j j j j j jtjyjjjjj*j/j-j2jjjjj-j2j!j!j#j#j%j%j1'j6'jN)jS)j+j+jp.ju.j1j1j3j3j_6jd6j9j 9j;j;ja>jf>jAj Aj DjDjGjGjoHjtHjIjIjKjKjMjMj+Oj0Ou 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.