physmap.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 physmap_flash_data {
  20. unsigned int width;
  21. int (*init)(struct platform_device *);
  22. void (*exit)(struct platform_device *);
  23. void (*set_vpp)(struct map_info *, int);
  24. unsigned int nr_parts;
  25. unsigned int pfow_base;
  26. char *probe_type;
  27. struct mtd_partition *parts;
  28. };
  29. /*
  30. * Board needs to specify the exact mapping during their setup time.
  31. */
  32. void physmap_configure(unsigned long addr, unsigned long size,
  33. int bankwidth, void (*set_vpp)(struct map_info *, int) );
  34. #ifdef CONFIG_MTD_PARTITIONS
  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 /* defined(CONFIG_MTD_PARTITIONS) */
  46. #endif /* __LINUX_MTD_PHYSMAP__ */