Lines Matching +full:rom +full:- +full:val
1 // SPDX-License-Identifier: GPL-2.0-only
8 * - Intel IQ80310 ATU.
9 * - Intel EBSA285 (blank rom programming mode). Tested working 27/09/2001
40 map_word val; in mtd_pci_read8() local
41 val.x[0]= readb(map->base + map->translate(map, ofs)); in mtd_pci_read8()
42 return val; in mtd_pci_read8()
48 map_word val; in mtd_pci_read32() local
49 val.x[0] = readl(map->base + map->translate(map, ofs)); in mtd_pci_read32()
50 return val; in mtd_pci_read32()
56 memcpy_fromio(to, map->base + map->translate(map, from), len); in mtd_pci_copyfrom()
59 static void mtd_pci_write8(struct map_info *_map, map_word val, unsigned long ofs) in mtd_pci_write8() argument
62 writeb(val.x[0], map->base + map->translate(map, ofs)); in mtd_pci_write8()
65 static void mtd_pci_write32(struct map_info *_map, map_word val, unsigned long ofs) in mtd_pci_write32() argument
68 writel(val.x[0], map->base + map->translate(map, ofs)); in mtd_pci_write32()
74 memcpy_toio(map->base + map->translate(map, to), from, len); in mtd_pci_copyto()
92 map->map.bankwidth = 1; in intel_iq80310_init()
93 map->map.read = mtd_pci_read8; in intel_iq80310_init()
94 map->map.write = mtd_pci_write8; in intel_iq80310_init()
96 map->map.size = 0x00800000; in intel_iq80310_init()
97 map->base = ioremap(pci_resource_start(dev, 0), in intel_iq80310_init()
100 if (!map->base) in intel_iq80310_init()
101 return -ENOMEM; in intel_iq80310_init()
110 map->map.map_priv_2 = win_base; in intel_iq80310_init()
118 if (map->base) in intel_iq80310_exit()
119 iounmap(map->base); in intel_iq80310_exit()
120 pci_write_config_dword(dev, 0x44, map->map.map_priv_2); in intel_iq80310_exit()
133 writel(0x00000008, map->base + 0x1558); in intel_iq80310_translate()
134 writel(0x00000000, map->base + 0x1550); in intel_iq80310_translate()
136 writel(0x00000007, map->base + 0x1558); in intel_iq80310_translate()
137 writel(0x00800000, map->base + 0x1550); in intel_iq80310_translate()
165 * No ROM resource in intel_dc21285_init()
171 * We need to re-allocate PCI BAR2 address range to the in intel_dc21285_init()
172 * PCI ROM BAR, and disable PCI BAR2. in intel_dc21285_init()
176 * Hmm, if an address was allocated to the ROM resource, but in intel_dc21285_init()
181 printk("%s: enabling expansion ROM\n", pci_name(dev)); in intel_dc21285_init()
185 return -ENXIO; in intel_dc21285_init()
187 map->map.bankwidth = 4; in intel_dc21285_init()
188 map->map.read = mtd_pci_read32; in intel_dc21285_init()
189 map->map.write = mtd_pci_write32; in intel_dc21285_init()
190 map->map.size = len; in intel_dc21285_init()
191 map->base = ioremap(base, len); in intel_dc21285_init()
193 if (!map->base) in intel_dc21285_init()
194 return -ENOMEM; in intel_dc21285_init()
202 if (map->base) in intel_dc21285_exit()
203 iounmap(map->base); in intel_dc21285_exit()
206 * We need to undo the PCI BAR2/PCI ROM BAR address alteration. in intel_dc21285_exit()
254 struct mtd_pci_info *info = (struct mtd_pci_info *)id->driver_data; in mtd_pci_probe()
268 err = -ENOMEM; in mtd_pci_probe()
272 map->map = mtd_pci_map; in mtd_pci_probe()
273 map->map.name = pci_name(dev); in mtd_pci_probe()
274 map->dev = dev; in mtd_pci_probe()
275 map->exit = info->exit; in mtd_pci_probe()
276 map->translate = info->translate; in mtd_pci_probe()
278 err = info->init(dev, map); in mtd_pci_probe()
282 mtd = do_map_probe(info->map_name, &map->map); in mtd_pci_probe()
283 err = -ENODEV; in mtd_pci_probe()
287 mtd->owner = THIS_MODULE; in mtd_pci_probe()
296 map->exit(dev, map); in mtd_pci_probe()
308 struct map_pci_info *map = mtd->priv; in mtd_pci_remove()
312 map->exit(dev, map); in mtd_pci_remove()