Lines Matching refs:map
27 static int cfi_probe_chip(struct map_info *map, __u32 base,
29 static int cfi_chip_setup(struct map_info *map, struct cfi_private *cfi);
31 struct mtd_info *cfi_probe(struct map_info *map);
38 #define xip_allowed(base, map) \ argument
40 (void) map_read(map, base); \
45 #define xip_enable(base, map, cfi) \ argument
47 cfi_qry_mode_off(base, map, cfi); \
48 xip_allowed(base, map); \
51 #define xip_disable_qry(base, map, cfi) \ argument
54 cfi_qry_mode_on(base, map, cfi); \
60 #define xip_allowed(base, map) do { } while (0) argument
61 #define xip_enable(base, map, cfi) do { } while (0) argument
62 #define xip_disable_qry(base, map, cfi) do { } while (0) argument
95 static int __xipram cfi_probe_chip(struct map_info *map, __u32 base, in cfi_probe_chip() argument
100 if ((base + 0) >= map->size) { in cfi_probe_chip()
103 (unsigned long)base, map->size -1); in cfi_probe_chip()
106 if ((base + 0xff) >= map->size) { in cfi_probe_chip()
109 (unsigned long)base + 0x55, map->size -1); in cfi_probe_chip()
114 if (!cfi_qry_mode_on(base, map, cfi)) { in cfi_probe_chip()
115 xip_enable(base, map, cfi); in cfi_probe_chip()
122 return cfi_chip_setup(map, cfi); in cfi_probe_chip()
135 if (cfi_qry_present(map, start, cfi)) { in cfi_probe_chip()
138 cfi_qry_mode_off(start, map, cfi); in cfi_probe_chip()
141 if (!cfi_qry_present(map, start, cfi)) { in cfi_probe_chip()
142 xip_allowed(base, map); in cfi_probe_chip()
144 map->name, base, start); in cfi_probe_chip()
151 cfi_qry_mode_off(base, map, cfi); in cfi_probe_chip()
153 if (cfi_qry_present(map, base, cfi)) { in cfi_probe_chip()
154 xip_allowed(base, map); in cfi_probe_chip()
156 map->name, base, start); in cfi_probe_chip()
168 cfi_qry_mode_off(base, map, cfi); in cfi_probe_chip()
169 xip_allowed(base, map); in cfi_probe_chip()
172 map->name, cfi->interleave, cfi->device_type*8, base, in cfi_probe_chip()
173 map->bankwidth*8); in cfi_probe_chip()
194 static int __xipram cfi_chip_setup(struct map_info *map, in cfi_chip_setup() argument
199 int num_erase_regions = cfi_read_query(map, base + (0x10 + 28)*ofs_factor); in cfi_chip_setup()
203 xip_enable(base, map, cfi); in cfi_chip_setup()
221 xip_disable_qry(base, map, cfi); in cfi_chip_setup()
223 ((unsigned char *)cfi->cfiq)[i] = cfi_read_query(map,base + (0x10 + i)*ofs_factor); in cfi_chip_setup()
262 cfi_send_gen_cmd(0xf0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_chip_setup()
263 cfi_send_gen_cmd(0xaa, addr_unlock1, base, map, cfi, cfi->device_type, NULL); in cfi_chip_setup()
264 cfi_send_gen_cmd(0x55, addr_unlock2, base, map, cfi, cfi->device_type, NULL); in cfi_chip_setup()
265 cfi_send_gen_cmd(0x90, addr_unlock1, base, map, cfi, cfi->device_type, NULL); in cfi_chip_setup()
266 cfi->mfr = cfi_read_query16(map, base); in cfi_chip_setup()
267 cfi->id = cfi_read_query16(map, base + ofs_factor); in cfi_chip_setup()
271 cfi->id = cfi_read_query(map, base + 0xe * ofs_factor) << 8 | in cfi_chip_setup()
272 cfi_read_query(map, base + 0xf * ofs_factor); in cfi_chip_setup()
275 cfi_qry_mode_off(base, map, cfi); in cfi_chip_setup()
276 xip_allowed(base, map); in cfi_chip_setup()
281 map->name, cfi->interleave, cfi->device_type*8, base, in cfi_chip_setup()
282 map->bankwidth*8, cfi->mfr, cfi->id); in cfi_chip_setup()
431 struct mtd_info *cfi_probe(struct map_info *map) in cfi_probe() argument
437 return mtd_do_chip_probe(map, &cfi_chip_probe); in cfi_probe()