Lines Matching +full:mtd +full:- +full:ram

1 // SPDX-License-Identifier: GPL-2.0-only
4 * Copyright (c) 2003-2004 Joern Engel <joern@wh.fh-wedel.de>
28 #include <linux/mtd/mtd.h>
31 struct mtd_info mtd; member
37 static int phram_erase(struct mtd_info *mtd, struct erase_info *instr) in phram_erase() argument
39 u_char *start = mtd->priv; in phram_erase()
41 memset(start + instr->addr, 0xff, instr->len); in phram_erase()
46 static int phram_point(struct mtd_info *mtd, loff_t from, size_t len, in phram_point() argument
49 *virt = mtd->priv + from; in phram_point()
54 static int phram_unpoint(struct mtd_info *mtd, loff_t from, size_t len) in phram_unpoint() argument
59 static int phram_read(struct mtd_info *mtd, loff_t from, size_t len, in phram_read() argument
62 u_char *start = mtd->priv; in phram_read()
69 static int phram_write(struct mtd_info *mtd, loff_t to, size_t len, in phram_write() argument
72 u_char *start = mtd->priv; in phram_write()
84 mtd_device_unregister(&this->mtd); in unregister_devices()
85 iounmap(this->mtd.priv); in unregister_devices()
86 kfree(this->mtd.name); in unregister_devices()
94 int ret = -ENOMEM; in register_device()
100 ret = -EIO; in register_device()
101 new->mtd.priv = ioremap(start, len); in register_device()
102 if (!new->mtd.priv) { in register_device()
108 new->mtd.name = name; in register_device()
109 new->mtd.size = len; in register_device()
110 new->mtd.flags = MTD_CAP_RAM; in register_device()
111 new->mtd._erase = phram_erase; in register_device()
112 new->mtd._point = phram_point; in register_device()
113 new->mtd._unpoint = phram_unpoint; in register_device()
114 new->mtd._read = phram_read; in register_device()
115 new->mtd._write = phram_write; in register_device()
116 new->mtd.owner = THIS_MODULE; in register_device()
117 new->mtd.type = MTD_RAM; in register_device()
118 new->mtd.erasesize = PAGE_SIZE; in register_device()
119 new->mtd.writesize = 1; in register_device()
121 ret = -EAGAIN; in register_device()
122 if (mtd_device_register(&new->mtd, NULL, 0)) { in register_device()
127 list_add_tail(&new->list, &phram_list); in register_device()
131 iounmap(new->mtd.priv); in register_device()
147 if (token[len - 1] == 'i') { in parse_num64()
148 switch (token[len - 2]) { in parse_num64()
157 token[len - 2] = 0; in parse_num64()
160 return -EINVAL; in parse_num64()
178 return -ENOSPC; in parse_name()
182 return -ENOMEM; in parse_name()
207 * - phram=<device>,<address>,<size> for module case
208 * - phram.phram=<device>,<address>,<size> for built-in case
293 return -ENOSPC; in phram_param_call()
326 MODULE_AUTHOR("Joern Engel <joern@wh.fh-wedel.de>");
327 MODULE_DESCRIPTION("MTD driver for physical RAM");