mx25pdk.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <linux/types.h>
  2. #include <linux/init.h>
  3. #include <linux/clk.h>
  4. #include <linux/irq.h>
  5. #include <linux/gpio.h>
  6. #include <linux/smsc911x.h>
  7. #include <linux/platform_device.h>
  8. #include <mach/hardware.h>
  9. #include <asm/mach-types.h>
  10. #include <asm/mach/arch.h>
  11. #include <asm/mach/time.h>
  12. #include <asm/memory.h>
  13. #include <asm/mach/map.h>
  14. #include <mach/common.h>
  15. #include <mach/imx-uart.h>
  16. #include <mach/mx25.h>
  17. #include <mach/mxc_nand.h>
  18. #include "devices.h"
  19. #include <mach/iomux-v3.h>
  20. static struct imxuart_platform_data uart_pdata = {
  21. .flags = IMXUART_HAVE_RTSCTS,
  22. };
  23. static struct mxc_nand_platform_data nand_board_info = {
  24. .width = 1,
  25. .hw_ecc = 1,
  26. };
  27. static void __init mx25pdk_init(void)
  28. {
  29. mxc_register_device(&mxc_uart_device0, &uart_pdata);
  30. mxc_register_device(&mxc_usbh2, NULL);
  31. mxc_register_device(&mxc_nand_device, &nand_board_info);
  32. }
  33. static void __init mx25pdk_timer_init(void)
  34. {
  35. mx25_clocks_init(26000000);
  36. }
  37. static struct sys_timer mx25pdk_timer = {
  38. .init = mx25pdk_timer_init,
  39. };
  40. MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)")
  41. /* Maintainer: Freescale Semiconductor, Inc. */
  42. .phys_io = MX25_AIPS1_BASE_ADDR,
  43. .io_pg_offst = ((MX25_AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
  44. .boot_params = PHYS_OFFSET + 0x100,
  45. .map_io = mx25_map_io,
  46. .init_irq = mx25_init_irq,
  47. .init_machine = mx25pdk_init,
  48. .timer = &mx25pdk_timer,
  49. MACHINE_END