| /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 configuration to nvmem_register(), on success core would return a valid 62 Device drivers can define and register an nvmem cell using the nvmem_cell_info [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<id>" name will be assigned to the device if [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); [all …]
|
| /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.yaml 21 - $ref: /schemas/nvmem/nvmem.yaml# 22 - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml# 26 const: nvmem-cells [all …]
|
| /linux/drivers/nvmem/ |
| H A D | layouts.c | 3 * NVMEM layout bus handling 11 #include <linux/nvmem-consumer.h> 12 #include <linux/nvmem-provider.h> 61 .name = "nvmem-layout", 92 static int nvmem_layout_create_device(struct nvmem_device *nvmem, in nvmem_layout_create_device() argument 104 layout->nvmem = nvmem; in nvmem_layout_create_device() 105 nvmem->layout = layout; in nvmem_layout_create_device() 110 dev->parent = &nvmem->dev; in nvmem_layout_create_device() 128 static int nvmem_layout_bus_populate(struct nvmem_device *nvmem, in nvmem_layout_bus_populate() argument 147 /* NVMEM layout buses expect only a single device representing the layout */ in nvmem_layout_bus_populate() [all …]
|
| H A D | max77759-nvmem.c | 6 // NVMEM driver for Maxim MAX77759 14 #include <linux/nvmem-provider.h> 21 * NVMEM commands have a three byte header (which becomes part of the command), 35 struct max77759_nvmem *nvmem = priv; in max77759_nvmem_reg_read() local 47 ret = max77759_maxq_command(nvmem->max77759, cmd, rsp); in max77759_nvmem_reg_read() 52 dev_warn(nvmem->dev, "protocol error (read)\n"); in max77759_nvmem_reg_read() 64 struct max77759_nvmem *nvmem = priv; in max77759_nvmem_reg_write() local 78 ret = max77759_maxq_command(nvmem->max77759, cmd, rsp); in max77759_nvmem_reg_write() 83 dev_warn(nvmem->dev, "protocol error (write)\n"); in max77759_nvmem_reg_write() 104 struct max77759_nvmem *nvmem; in max77759_nvmem_probe() local [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-cell-names [all …]
|
| H A D | mediatek,lvts-thermal.yaml | 46 nvmem-cells: 52 nvmem-cell-names: 75 nvmem-cells: 78 nvmem-cell-names: 91 nvmem-cells: 94 nvmem-cell-names: 114 - nvmem-cells 115 - nvmem-cell-names 136 nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>; 137 nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2";
|
| /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-reboot-mode"; [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-cell-cells = <1>;
|
| H A D | nvmem-layout.yaml | 4 $id: http://devicetree.org/schemas/nvmem/layouts/nvmem-layout.yaml# 7 title: NVMEM (Non Volatile Memory) layouts 15 Most NVMEM layouts are static and thus do not require additional description 17 define and might require dynamic reading of the NVMEM device in order to 18 perform their parsing. The nvmem-layout container is here to describe these.
|
| /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-cell-names = "mac-address"; [all …]
|
| H A D | fsl-ls1028a-kontron-sl28-var2.dts | 39 nvmem-cells = <&base_mac_address 2>; 40 nvmem-cell-names = "mac-address"; 45 nvmem-cells = <&base_mac_address 3>; 46 nvmem-cell-names = "mac-address"; 59 nvmem-cells = <&base_mac_address 0>; 60 nvmem-cell-names = "mac-address"; 69 nvmem-cells = <&base_mac_address 1>; 70 nvmem-cell-names = "mac-address";
|
| /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-cell-names = "big_scale_calib1", "big_scale_calib2",
|
| /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-cell-names = "mac-address";
|
| H A D | nixge.txt | 15 - nvmem-cells: Phandle of nvmem cell containing the MAC address 16 - nvmem-cell-names: Should be "address" 31 nvmem-cells = <ð1_addr>; 32 nvmem-cell-names = "address"; 54 nvmem-cells = <ð1_addr>; 55 nvmem-cell-names = "address"; 70 nvmem-cells = <ð1_addr>; 71 nvmem-cell-names = "address";
|
| /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/nvmem/ |
| H A D | nvmem.yaml | 4 $id: http://devicetree.org/schemas/nvmem/nvmem.yaml# 7 title: NVMEM (Non Volatile Memory) 17 some data on NVMEM, for the OS to be able to retrieve these 42 nvmem-layout: 43 $ref: /schemas/nvmem/layouts/nvmem-layout.yaml 45 Alternative to the statically defined nvmem cells, this 65 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/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/soc/tegra/fuse/ |
| H A D | fuse-tegra.c | 12 #include <linux/nvmem-consumer.h> 13 #include <linux/nvmem-provider.h> 142 struct nvmem_config nvmem; in tegra_fuse_probe() local 203 memset(&nvmem, 0, sizeof(nvmem)); in tegra_fuse_probe() 204 nvmem.dev = &pdev->dev; in tegra_fuse_probe() 205 nvmem.name = "fuse"; in tegra_fuse_probe() 206 nvmem.id = -1; in tegra_fuse_probe() 207 nvmem.owner = THIS_MODULE; in tegra_fuse_probe() 208 nvmem.cells = fuse->soc->cells; in tegra_fuse_probe() 209 nvmem.ncells = fuse->soc->num_cells; in tegra_fuse_probe() [all …]
|
| /linux/Documentation/devicetree/bindings/soc/imx/ |
| H A D | imx8m-soc.yaml | 51 nvmem-cells: 53 description: Phandle to the SOC Unique ID provided by a nvmem node 55 nvmem-cell-names: 60 - nvmem-cells 61 - nvmem-cell-names 81 nvmem-cells = <&imx8mm_uid>; 82 nvmem-cell-names = "soc_unique_id";
|