/linux/drivers/nvmem/ |
H A D | core.c | 3 * nvmem framework core. 16 #include <linux/nvmem-consumer.h> 17 #include <linux/nvmem-provider.h> 37 struct nvmem_device *nvmem; member 55 static int __nvmem_reg_read(struct nvmem_device *nvmem, unsigned int offset, in __nvmem_reg_read() argument 58 if (nvmem->reg_read) in __nvmem_reg_read() 59 return nvmem->reg_read(nvmem->priv, offset, val, bytes); in __nvmem_reg_read() 64 static int __nvmem_reg_write(struct nvmem_device *nvmem, unsigned int offset, in __nvmem_reg_write() argument 69 if (nvmem in __nvmem_reg_write() 79 nvmem_access_with_keepouts(struct nvmem_device * nvmem,unsigned int offset,void * val,size_t bytes,int write) nvmem_access_with_keepouts() argument 143 nvmem_reg_read(struct nvmem_device * nvmem,unsigned int offset,void * val,size_t bytes) nvmem_reg_read() argument 152 nvmem_reg_write(struct nvmem_device * nvmem,unsigned int offset,void * val,size_t bytes) nvmem_reg_write() argument 177 struct nvmem_device *nvmem = to_nvmem_device(dev); type_show() local 187 struct nvmem_device *nvmem = to_nvmem_device(dev); force_ro_show() local 195 struct nvmem_device *nvmem = to_nvmem_device(dev); force_ro_store() local 217 struct nvmem_device *nvmem; bin_attr_nvmem_read() local 250 struct nvmem_device *nvmem; bin_attr_nvmem_write() local 278 nvmem_bin_attr_get_umode(struct nvmem_device * nvmem) nvmem_bin_attr_get_umode() argument 302 struct nvmem_device *nvmem = to_nvmem_device(dev); nvmem_bin_attr_is_visible() local 312 struct nvmem_device *nvmem = to_nvmem_device(dev); nvmem_bin_attr_size() local 321 struct nvmem_device *nvmem = to_nvmem_device(dev); nvmem_attr_is_visible() local 414 nvmem_sysfs_setup_compat(struct nvmem_device * nvmem,const struct nvmem_config * config) nvmem_sysfs_setup_compat() argument 448 nvmem_sysfs_remove_compat(struct nvmem_device * nvmem,const struct nvmem_config * config) nvmem_sysfs_remove_compat() argument 455 nvmem_populate_sysfs_cells(struct nvmem_device * nvmem) nvmem_populate_sysfs_cells() argument 522 nvmem_sysfs_setup_compat(struct nvmem_device * nvmem,const struct nvmem_config * config) nvmem_sysfs_setup_compat() argument 527 nvmem_sysfs_remove_compat(struct nvmem_device * nvmem,const struct nvmem_config * config) nvmem_sysfs_remove_compat() argument 536 struct nvmem_device *nvmem = to_nvmem_device(dev); nvmem_release() local 562 nvmem_device_remove_all_cells(const struct nvmem_device * nvmem) nvmem_device_remove_all_cells() argument 578 nvmem_cell_info_to_nvmem_cell_entry_nodup(struct nvmem_device * nvmem,const struct nvmem_cell_info * info,struct nvmem_cell_entry * cell) nvmem_cell_info_to_nvmem_cell_entry_nodup() argument 622 nvmem_cell_info_to_nvmem_cell_entry(struct nvmem_device * nvmem,const struct nvmem_cell_info * info,struct nvmem_cell_entry * cell) nvmem_cell_info_to_nvmem_cell_entry() argument 647 nvmem_add_one_cell(struct nvmem_device * nvmem,const struct nvmem_cell_info * info) nvmem_add_one_cell() argument 678 nvmem_add_cells(struct nvmem_device * nvmem,const struct nvmem_cell_info * info,int ncells) nvmem_add_cells() argument 720 nvmem_find_cell_entry_by_name(struct nvmem_device * nvmem,const char * cell_id) nvmem_find_cell_entry_by_name() argument 736 nvmem_validate_keepouts(struct nvmem_device * nvmem) nvmem_validate_keepouts() argument 789 nvmem_add_cells_from_dt(struct nvmem_device * nvmem,struct device_node * np) nvmem_add_cells_from_dt() argument 841 nvmem_add_cells_from_legacy_of(struct nvmem_device * nvmem) nvmem_add_cells_from_legacy_of() argument 846 nvmem_add_cells_from_fixed_layout(struct nvmem_device * nvmem) nvmem_add_cells_from_fixed_layout() argument 905 struct nvmem_device *nvmem; nvmem_register() local 1054 struct nvmem_device *nvmem; nvmem_device_release() local 1073 nvmem_unregister(struct nvmem_device * nvmem) nvmem_unregister() argument 1080 devm_nvmem_unregister(void * nvmem) devm_nvmem_unregister() argument 1099 struct nvmem_device *nvmem; devm_nvmem_register() local 1117 struct nvmem_device *nvmem = NULL; __nvmem_device_get() local 1142 __nvmem_device_put(struct nvmem_device * nvmem) __nvmem_device_put() argument 1163 struct nvmem_device *nvmem; of_nvmem_device_get() local 1192 struct nvmem_device *nvmem; nvmem_device_get() local 1223 struct nvmem_device **nvmem = res; devm_nvmem_device_match() local 1243 devm_nvmem_device_put(struct device * dev,struct nvmem_device * nvmem) devm_nvmem_device_put() argument 1259 nvmem_device_put(struct nvmem_device * nvmem) nvmem_device_put() argument 1277 struct nvmem_device **ptr, *nvmem; devm_nvmem_device_get() local 1326 struct nvmem_device *nvmem; nvmem_cell_get_from_lookup() local 1366 nvmem_layout_module_put(struct nvmem_device * nvmem) nvmem_layout_module_put() argument 1374 nvmem_find_cell_entry_by_node(struct nvmem_device * nvmem,struct device_node * np) nvmem_find_cell_entry_by_node() argument 1390 nvmem_layout_module_get_optional(struct nvmem_device * nvmem) nvmem_layout_module_get_optional() argument 1417 struct nvmem_device *nvmem; of_nvmem_cell_get() local 1593 struct nvmem_device *nvmem = cell->entry->nvmem; nvmem_cell_put() local 1645 __nvmem_cell_read(struct nvmem_device * nvmem,struct nvmem_cell_entry * cell,void * buf,size_t * len,const char * id,int index) __nvmem_cell_read() argument 1686 struct nvmem_device *nvmem = entry->nvmem; nvmem_cell_read() local 1710 struct nvmem_device *nvmem = cell->nvmem; nvmem_cell_prepare_write_buffer() local 1762 struct nvmem_device *nvmem = cell->nvmem; __nvmem_cell_entry_write() local 2006 nvmem_device_cell_read(struct nvmem_device * nvmem,struct nvmem_cell_info * info,void * buf) nvmem_device_cell_read() argument 2037 nvmem_device_cell_write(struct nvmem_device * nvmem,struct nvmem_cell_info * info,void * buf) nvmem_device_cell_write() argument 2065 nvmem_device_read(struct nvmem_device * nvmem,unsigned int offset,size_t bytes,void * buf) nvmem_device_read() argument 2093 nvmem_device_write(struct nvmem_device * nvmem,unsigned int offset,size_t bytes,void * buf) nvmem_device_write() argument 2154 nvmem_dev_name(struct nvmem_device * nvmem) nvmem_dev_name() argument 2167 nvmem_dev_size(struct nvmem_device * nvmem) nvmem_dev_size() argument [all...] |
H A D | Makefile | 3 # Makefile for nvmem drivers. 13 obj-$(CONFIG_NVMEM_APPLE_EFUSES) += nvmem-apple-efuses.o 14 nvmem-apple-efuses-y := apple-efuses.o 16 apple_nvmem_spmi-y := apple-spmi-nvmem.o 17 obj-$(CONFIG_NVMEM_BCM_OCOTP) += nvmem-bcm-ocotp.o 18 nvmem-bcm-ocotp-y := bcm-ocotp.o 21 obj-$(CONFIG_NVMEM_IMX_IIM) += nvmem-imx-iim.o 22 nvmem-imx-iim-y := imx-iim.o 23 obj-$(CONFIG_NVMEM_IMX_OCOTP) += nvmem-imx-ocotp.o 24 nvmem [all...] |
H A D | layouts.c | 3 * NVMEM layout bus handling 11 #include <linux/nvmem-consumer.h> 12 #include <linux/nvmem-provider.h> 49 .name = "nvmem-layout", 79 static int nvmem_layout_create_device(struct nvmem_device *nvmem, in nvmem_layout_create_device() argument 91 layout->nvmem = nvmem; in nvmem_layout_create_device() 92 nvmem->layout = layout; in nvmem_layout_create_device() 97 dev->parent = &nvmem->dev; in nvmem_layout_create_device() 120 static int nvmem_layout_bus_populate(struct nvmem_device *nvmem, in nvmem_layout_bus_populate() argument 155 of_nvmem_layout_get_container(struct nvmem_device * nvmem) of_nvmem_layout_get_container() argument 165 nvmem_populate_layout(struct nvmem_device * nvmem) nvmem_populate_layout() argument 183 nvmem_destroy_layout(struct nvmem_device * nvmem) nvmem_destroy_layout() argument [all...] |
H A D | Kconfig | 2 menuconfig NVMEM config 3 bool "NVMEM Support" 6 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES... 8 This framework is designed to provide a generic interface to NVMEM 13 if NVMEM 16 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)" 20 Say Y here to add a sysfs interface for NVMEM. 23 read/write directly into nvmem. 27 source "drivers/nvmem/layout [all...] |
H A D | max77759-nvmem.c | 6 // NVMEM driver for Maxim MAX77759 15 #include <linux/nvmem-provider.h> 22 * NVMEM commands have a three byte header (which becomes part of the command), 36 struct max77759_nvmem *nvmem = priv; in max77759_nvmem_reg_read() local 48 ret = max77759_maxq_command(nvmem->max77759, cmd, rsp); in max77759_nvmem_reg_read() 53 dev_warn(nvmem->dev, "protocol error (read)\n"); in max77759_nvmem_reg_read() 65 struct max77759_nvmem *nvmem = priv; in max77759_nvmem_reg_write() local 79 ret = max77759_maxq_command(nvmem->max77759, cmd, rsp); in max77759_nvmem_reg_write() 84 dev_warn(nvmem->dev, "protocol error (write)\n"); in max77759_nvmem_reg_write() 105 struct max77759_nvmem *nvmem; in max77759_nvmem_probe() local [all...] |
/linux/Documentation/driver-api/ |
H A D | nvmem.rst | 4 NVMEM Subsystem 9 This document explains the NVMEM Framework along with the APIs provided, 14 *NVMEM* is the abbreviation for Non Volatile Memory layer. It is used to 18 Before this framework existed, NVMEM drivers like eeprom were stored in 31 NVMEM Providers 34 NVMEM provider refers to an entity that implements methods to initialize, read 37 2. Registering/Unregistering the NVMEM provider 40 A NVMEM provider can register with NVMEM core by supplying relevant 41 nvmem configuratio [all...] |
/linux/Documentation/devicetree/bindings/nvmem/ |
H A D | nvmem-consumer.yaml | 4 $id: http://devicetree.org/schemas/nvmem/nvmem-consumer.yaml# 7 title: NVMEM (Non Volatile Memory) Consumer 15 nvmem: 18 List of phandle to the nvmem providers. 20 nvmem-cells: 23 List of phandle to the nvmem data cells. 25 nvmem-names: 27 Names for the each nvmem provider. 29 nvmem [all...] |
H A D | apple,spmi-nvmem.yaml | 4 $id: http://devicetree.org/schemas/nvmem/apple,spmi-nvmem.yaml# 7 title: Apple SPMI NVMEM 9 description: Exports a series of SPMI registers as NVMEM cells 15 - $ref: nvmem.yaml# 24 - const: apple,spmi-nvmem 40 compatible = "apple,maverick-pmic", "apple,spmi-nvmem"; 43 nvmem-layout {
|
H A D | xlnx,zynqmp-nvmem.yaml | 4 $id: http://devicetree.org/schemas/nvmem/xlnx,zynqmp-nvmem.yaml# 18 - $ref: nvmem.yaml# 22 const: xlnx,zynqmp-nvmem-fw 31 soc-nvmem { 32 compatible = "xlnx,zynqmp-nvmem-fw"; 33 nvmem-layout {
|
/linux/Documentation/devicetree/bindings/mtd/partitions/ |
H A D | nvmem-cells.yaml | 4 $id: http://devicetree.org/schemas/mtd/partitions/nvmem-cells.yaml# 7 title: Nvmem cells 10 Any partition containing the compatible "nvmem-cells" will register as a 11 nvmem provider. 12 Each direct subnodes represents a nvmem cell following the nvmem binding. 13 Nvmem binding to declare nvmem-cells can be found in: 14 Documentation/devicetree/bindings/nvmem/nvmem [all...] |
/linux/Documentation/devicetree/bindings/thermal/ |
H A D | sprd-thermal.yaml | 30 nvmem-cells: 33 Reference to nvmem nodes for the calibration data. 35 nvmem-cell-names: 60 nvmem-cells: 63 Reference to an nvmem node for the calibration data. 65 nvmem-cell-names: 70 - nvmem-cells 71 - nvmem-cell-names 80 - nvmem-cells 81 - nvmem [all...] |
H A D | mediatek,lvts-thermal.yaml | 43 nvmem-cells: 49 nvmem-cell-names: 72 nvmem-cells: 75 nvmem-cell-names: 88 nvmem-cells: 91 nvmem-cell-names: 100 - nvmem-cells 101 - nvmem-cell-names 122 nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>; 123 nvmem [all...] |
/linux/include/linux/ |
H A D | nvmem-provider.h | 3 * nvmem framework provider. 40 * struct nvmem_keepout - NVMEM register keepout range. 53 * struct nvmem_cell_info - NVMEM cell description 55 * @offset: Offset within the NVMEM device. 78 * struct nvmem_config - NVMEM device configuration 84 * @cells: Optional array of pre-defined NVMEM cells. 86 * @add_legacy_fixed_of_cells: Read fixed NVMEM cells from old OF syntax. 91 * @type: Type of the nvmem storage 102 * @layout: Fixed layout associated with this nvmem device. 104 * Note: A default "nvmem<i 156 struct nvmem_device *nvmem; global() member 196 nvmem_unregister(struct nvmem_device * nvmem) nvmem_unregister() argument 204 nvmem_add_one_cell(struct nvmem_device * nvmem,const struct nvmem_cell_info * info) nvmem_add_one_cell() argument 233 of_nvmem_layout_get_container(struct nvmem_device * nvmem) of_nvmem_layout_get_container() argument [all...] |
H A D | nvmem-consumer.h | 3 * nvmem framework consumer. 27 * @cell_name: Name of the nvmem cell as defined in the name field of 68 /* direct nvmem device read/write interface */ 72 void nvmem_device_put(struct nvmem_device *nvmem); 73 void devm_nvmem_device_put(struct device *dev, struct nvmem_device *nvmem); 74 int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset, 76 int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset, 78 ssize_t nvmem_device_cell_read(struct nvmem_device *nvmem, 80 int nvmem_device_cell_write(struct nvmem_device *nvmem, 83 const char *nvmem_dev_name(struct nvmem_device *nvmem); 181 nvmem_device_put(struct nvmem_device * nvmem) nvmem_device_put() argument 186 devm_nvmem_device_put(struct device * dev,struct nvmem_device * nvmem) devm_nvmem_device_put() argument 190 nvmem_device_cell_read(struct nvmem_device * nvmem,struct nvmem_cell_info * info,void * buf) nvmem_device_cell_read() argument 197 nvmem_device_cell_write(struct nvmem_device * nvmem,struct nvmem_cell_info * info,void * buf) nvmem_device_cell_write() argument 204 nvmem_device_read(struct nvmem_device * nvmem,unsigned int offset,size_t bytes,void * buf) nvmem_device_read() argument 211 nvmem_device_write(struct nvmem_device * nvmem,unsigned int offset,size_t bytes,void * buf) nvmem_device_write() argument 218 nvmem_dev_name(struct nvmem_device * nvmem) nvmem_dev_name() argument [all...] |
/linux/Documentation/devicetree/bindings/power/reset/ |
H A D | nvmem-reboot-mode.yaml | 4 $id: http://devicetree.org/schemas/power/reset/nvmem-reboot-mode.yaml# 7 title: Generic NVMEM reboot mode 14 and stores it in the NVMEM cell named "reboot-mode". The bootloader can 19 const: nvmem-reboot-mode 21 nvmem-cells: 23 A phandle pointing to the nvmem-cells node where the vendor-specific 27 nvmem-cell-names: 40 - nvmem-cells 41 - nvmem-cell-names 48 compatible = "nvmem [all...] |
/linux/Documentation/devicetree/bindings/nvmem/layouts/ |
H A D | fixed-layout.yaml | 4 $id: http://devicetree.org/schemas/nvmem/layouts/fixed-layout.yaml# 7 title: NVMEM layout for fixed NVMEM cells 10 Many NVMEM devices have hardcoded cells layout (offset and size of defined 11 NVMEM content doesn't change). 13 This binding allows defining such NVMEM layout with its cells. It can be used 14 on top of any NVMEM device. 42 nvmem-layout { 50 #nvmem-cell-cells = <1>; 56 #nvmem [all...] |
/linux/arch/arm64/boot/dts/freescale/ |
H A D | fsl-ls1028a-kontron-kbox-a-230-ls.dts | 59 nvmem-cells = <&base_mac_address 2>; 60 nvmem-cell-names = "mac-address"; 65 nvmem-cells = <&base_mac_address 3>; 66 nvmem-cell-names = "mac-address"; 87 nvmem-cells = <&base_mac_address 4>; 88 nvmem-cell-names = "mac-address"; 97 nvmem-cells = <&base_mac_address 5>; 98 nvmem-cell-names = "mac-address"; 107 nvmem-cells = <&base_mac_address 6>; 108 nvmem [all...] |
/linux/Documentation/devicetree/bindings/iio/adc/ |
H A D | sprd,sc2720-adc.yaml | 37 nvmem-cells: true 39 nvmem-cell-names: true 51 nvmem-cells: 53 nvmem-cell-names: 60 nvmem-cells: 62 nvmem-cell-names: 77 - nvmem-cells 78 - nvmem-cell-names 95 nvmem-cells = <&adc_bcal1>, <&adc_bcal2>, 98 nvmem [all...] |
/linux/Documentation/ABI/stable/ |
H A D | sysfs-bus-nvmem | 1 What: /sys/bus/nvmem/devices/.../force_ro 18 What: /sys/bus/nvmem/devices/.../nvmem 23 This file allows user to read/write the raw NVMEM contents. 24 Permissions for write to this file depends on the nvmem 31 hexdump /sys/bus/nvmem/devices/qfprom0/nvmem 41 What: /sys/bus/nvmem/devices/.../type 46 This read-only attribute allows user to read the NVMEM
|
/linux/Documentation/devicetree/bindings/net/ |
H A D | sunplus,sp7021-emac.yaml | 62 nvmem-cells: 64 - description: nvmem cell address of MAC address 66 nvmem-cell-names: 67 description: names corresponding to the nvmem cells 75 - nvmem-cells 76 - nvmem-cell-names 117 nvmem-cells = <&mac_addr0>; 118 nvmem-cell-names = "mac-address"; 125 nvmem-cells = <&mac_addr1>; 126 nvmem [all...] |
/linux/drivers/mtd/ubi/ |
H A D | nvmem.c | 6 /* UBI NVMEM provider */ 8 #include <linux/nvmem-provider.h> 10 /* List of all NVMEM devices */ 15 struct nvmem_device *nvmem; member 71 if (!of_get_child_by_name(np, "nvmem-layout")) in ubi_nvmem_add() 99 unv->nvmem = nvmem_register(&config); in ubi_nvmem_add() 100 if (IS_ERR(unv->nvmem)) { in ubi_nvmem_add() 101 ret = dev_err_probe(vi->dev, PTR_ERR(unv->nvmem), in ubi_nvmem_add() 102 "Failed to register NVMEM device\n"); in ubi_nvmem_add() 132 nvmem_unregister(unv->nvmem); in ubi_nvmem_remove() [all...] |
/linux/arch/arm/boot/dts/broadcom/ |
H A D | bcm47094-asus-rt-ac3100.dts | 16 #nvmem-cell-cells = <1>; 22 nvmem-cells = <&et0macaddr 0>; 23 nvmem-cell-names = "mac-address"; 27 nvmem-cells = <&et0macaddr 1>; 28 nvmem-cell-names = "mac-address"; 32 nvmem-cells = <&et0macaddr 2>; 33 nvmem-cell-names = "mac-address";
|
/linux/drivers/rtc/ |
H A D | nvmem.c | 3 * RTC subsystem, nvmem interface 10 #include <linux/nvmem-consumer.h> 17 struct nvmem_device *nvmem; in devm_rtc_nvmem_register() local 25 nvmem = devm_nvmem_register(dev, nvmem_config); in devm_rtc_nvmem_register() 26 if (IS_ERR(nvmem)) in devm_rtc_nvmem_register() 27 dev_err(dev, "failed to register nvmem device for RTC\n"); in devm_rtc_nvmem_register() 29 return PTR_ERR_OR_ZERO(nvmem); in devm_rtc_nvmem_register()
|
/linux/Documentation/devicetree/bindings/phy/ |
H A D | sunplus,sp7021-usb2-phy.yaml | 36 nvmem-cell-names: 37 description: names corresponding to the nvmem cells of disconnect voltage 40 nvmem-cells: 41 description: nvmem cell address of disconnect voltage 55 - nvmem-cell-names 56 - nvmem-cells 70 nvmem-cell-names = "disc_vol"; 71 nvmem-cells = <&disc_vol>;
|
/linux/drivers/nvmem/layouts/ |
H A D | sl28vpd.c | 5 #include <linux/nvmem-consumer.h> 6 #include <linux/nvmem-provider.h> 56 static int sl28vpd_v1_check_crc(struct device *dev, struct nvmem_device *nvmem) in sl28vpd_v1_check_crc() argument 65 ret = nvmem_device_read(nvmem, 0, sizeof(data_v1), &data_v1); in sl28vpd_v1_check_crc() 85 struct nvmem_device *nvmem = layout->nvmem; in sl28vpd_add_cells() local 94 ret = nvmem_device_read(nvmem, 0, sizeof(hdr), &hdr); in sl28vpd_add_cells() 110 ret = sl28vpd_v1_check_crc(dev, nvmem); in sl28vpd_add_cells() 114 layout_np = of_nvmem_layout_get_container(nvmem); in sl28vpd_add_cells() 127 ret = nvmem_add_one_cell(nvmem, in sl28vpd_add_cells() [all...] |