physmap.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * For boards with physically mapped flash and using
  3. * drivers/mtd/maps/physmap.c mapping driver.
  4. *
  5. * Copyright (C) 2003 MontaVista Software Inc.
  6. * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
  7. *
  8. * This program is free software; you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License as published by the
  10. * Free Software Foundation; either version 2 of the License, or (at your
  11. * option) any later version.
  12. *
  13. */
  14. #ifndef __LINUX_MTD_PHYSMAP__
  15. #define __LINUX_MTD_PHYSMAP__
  16. #include <linux/mtd/mtd.h>
  17. #include <linux/mtd/partitions.h>
  18. struct map_info;
  19. struct platform_device;
  20. struct physmap_flash_data {
  21. unsigned int width;
  22. int (*init)(struct platform_device *);
  23. void (*exit)(struct platform_device *);
  24. void (*set_vpp)(struct platform_device *, int);
  25. unsigned int nr_parts;
  26. unsigned int pfow_base;
  27. char *probe_type;
  28. struct mtd_partition *parts;
  29. };
  30. /*
  31. * Board needs to specify the exact mapping during their setup time.
  32. */
  33. void physmap_configure(unsigned long addr, unsigned long size,
  34. int bankwidth, void (*set_vpp)(struct map_info *, int) );
  35. /*
  36. * Machines that wish to do flash partition may want to call this function in
  37. * their setup routine.
  38. *
  39. * physmap_set_partitions(mypartitions, num_parts);
  40. *
  41. * Note that one can always override this hard-coded partition with
  42. * command line partition (you need to enable CONFIG_MTD_CMDLINE_PARTS).
  43. */
  44. void physmap_set_partitions(struct mtd_partition *parts, int num_parts);
  45. #endif /* __LINUX_MTD_PHYSMAP__ */