Lines Matching +full:nvmem +full:- +full:rmem

1 // SPDX-License-Identifier: GPL-2.0+
9 #include <linux/nvmem-provider.h>
14 struct rmem { struct
16 struct nvmem_device *nvmem; member
21 int (*checksum)(struct rmem *priv); argument
35 struct rmem *priv = context; in rmem_read()
38 if ((phys_addr_t)offset + bytes > priv->mem->size) in rmem_read()
39 return -EIO; in rmem_read()
44 * uses-cases for this driver, the performance hit isn't a concern. in rmem_read()
45 * Nor is likely to be, given the nature of the subsystem. Most nvmem in rmem_read()
51 addr = memremap(priv->mem->base, priv->mem->size, MEMREMAP_WB); in rmem_read()
53 dev_err(priv->dev, "Failed to remap memory region\n"); in rmem_read()
54 return -ENOMEM; in rmem_read()
64 static int rmem_eyeq5_checksum(struct rmem *priv) in rmem_eyeq5_checksum()
77 return -EINVAL; in rmem_eyeq5_checksum()
83 if (header.size > priv->mem->size) in rmem_eyeq5_checksum()
84 return -EINVAL; in rmem_eyeq5_checksum()
87 * 0 +-------------------+ in rmem_eyeq5_checksum()
89 * +-------------------+ | in rmem_eyeq5_checksum()
93 * data_size +-------------------+ in rmem_eyeq5_checksum()
95 * header.size +-------------------+ in rmem_eyeq5_checksum()
100 return -ENOMEM; in rmem_eyeq5_checksum()
106 data_size = header.size - sizeof(*target_crc); in rmem_eyeq5_checksum()
113 dev_err(priv->dev, in rmem_eyeq5_checksum()
116 return -EINVAL; in rmem_eyeq5_checksum()
122 struct device *dev = &pdev->dev; in rmem_probe()
125 struct rmem *priv; in rmem_probe()
129 return -ENOMEM; in rmem_probe()
130 priv->dev = dev; in rmem_probe()
132 mem = of_reserved_mem_lookup(dev->of_node); in rmem_probe()
135 return -EINVAL; in rmem_probe()
137 priv->mem = mem; in rmem_probe()
141 config.name = "rmem"; in rmem_probe()
143 config.size = mem->size; in rmem_probe()
146 if (match_data && match_data->checksum) { in rmem_probe()
147 int ret = match_data->checksum(priv); in rmem_probe()
161 { .compatible = "mobileye,eyeq5-bootloader-config", .data = &rmem_eyeq5_match_data },
162 { .compatible = "nvmem-rmem", },
170 .name = "rmem",
177 MODULE_DESCRIPTION("Reserved Memory Based nvmem Driver");