board-iconnect.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * arch/arm/mach-kirkwood/board-iconnect.c
  3. *
  4. * Iomega i-connect Board Setup
  5. *
  6. * This file is licensed under the terms of the GNU General Public
  7. * License version 2. This program is licensed "as is" without any
  8. * warranty of any kind, whether express or implied.
  9. */
  10. #include <linux/kernel.h>
  11. #include <linux/init.h>
  12. #include <linux/platform_device.h>
  13. #include <linux/of.h>
  14. #include <linux/of_address.h>
  15. #include <linux/of_fdt.h>
  16. #include <linux/of_irq.h>
  17. #include <linux/of_platform.h>
  18. #include <linux/mtd/partitions.h>
  19. #include <linux/mv643xx_eth.h>
  20. #include <linux/gpio.h>
  21. #include <asm/mach/arch.h>
  22. #include <mach/kirkwood.h>
  23. #include "common.h"
  24. #include "mpp.h"
  25. static struct mv643xx_eth_platform_data iconnect_ge00_data = {
  26. .phy_addr = MV643XX_ETH_PHY_ADDR(11),
  27. };
  28. static unsigned int iconnect_mpp_config[] __initdata = {
  29. MPP12_GPIO,
  30. MPP35_GPIO,
  31. MPP41_GPIO,
  32. MPP42_GPIO,
  33. MPP43_GPIO,
  34. MPP44_GPIO,
  35. MPP45_GPIO,
  36. MPP46_GPIO,
  37. MPP47_GPIO,
  38. MPP48_GPIO,
  39. 0
  40. };
  41. static struct mtd_partition iconnect_nand_parts[] = {
  42. {
  43. .name = "flash",
  44. .offset = 0,
  45. .size = MTDPART_SIZ_FULL,
  46. },
  47. };
  48. void __init iconnect_init(void)
  49. {
  50. kirkwood_mpp_conf(iconnect_mpp_config);
  51. kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
  52. kirkwood_ehci_init();
  53. kirkwood_ge00_init(&iconnect_ge00_data);
  54. }
  55. static int __init iconnect_pci_init(void)
  56. {
  57. if (of_machine_is_compatible("iom,iconnect"))
  58. kirkwood_pcie_init(KW_PCIE0);
  59. return 0;
  60. }
  61. subsys_initcall(iconnect_pci_init);