19 #include <linux/kernel.h>
20 #include <linux/module.h>
26 #include <linux/slab.h>
27 #include <linux/types.h>
29 #define pr_devinit(fmt, args...) ({ static const __devinitconst char __fmt[] = fmt; printk(__fmt, ## args); })
31 #define DRIVER_NAME "gpio-addr-flash"
32 #define PFX DRIVER_NAME ": "
51 #define gf_map_info_to_state(mi) ((struct async_state *)(mi)->map_priv_1)
69 value = ofs & (1 <<
i);
74 }
while (++i < state->gpio_count);
88 gf_set_gpios(state, ofs);
111 gf_set_gpios(state, from);
130 gf_set_gpios(state, ofs);
145 static void gf_copy_to(
struct map_info *map,
unsigned long to,
const void *from,
ssize_t len)
149 gf_set_gpios(state, to);
158 static const char *part_probe_types[] = {
"cmdlinepart",
"RedBoot",
NULL };
196 pdata = pdev->
dev.platform_data;
200 if (!memory || !gpios || !gpios->
end)
203 arr_size =
sizeof(
int) * gpios->
end;
204 state = kzalloc(
sizeof(*state) + arr_size,
GFP_KERNEL);
215 state->
win_size = resource_size(memory);
219 state->
map.read = gf_read;
220 state->
map.copy_from = gf_copy_from;
221 state->
map.write = gf_write;
222 state->
map.copy_to = gf_copy_to;
223 state->
map.bankwidth = pdata->
width;
227 state->
map.map_priv_1 = (
unsigned long)state;
229 platform_set_drvdata(pdev, state);
245 state->
map.bankwidth * 8);
263 struct async_state *state = platform_get_drvdata(pdev);
267 }
while (++i < state->gpio_count);
275 .probe = gpio_flash_probe,