magx-zn5.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright 2009 Dmitriy Taychenachev <dimichxp@gmail.com>
  3. *
  4. * This file is released under the GPLv2 or later.
  5. */
  6. #include <linux/irq.h>
  7. #include <linux/init.h>
  8. #include <linux/device.h>
  9. #include <asm/mach-types.h>
  10. #include <asm/mach/time.h>
  11. #include <asm/mach/arch.h>
  12. #include <mach/common.h>
  13. #include <mach/hardware.h>
  14. #include <mach/iomux-mxc91231.h>
  15. #include <mach/mmc.h>
  16. #include <mach/imx-uart.h>
  17. #include "devices.h"
  18. static struct imxuart_platform_data uart_pdata = {
  19. };
  20. static struct imxmmc_platform_data sdhc_pdata = {
  21. };
  22. static void __init zn5_init(void)
  23. {
  24. pm_power_off = mxc91231_power_off;
  25. mxc_iomux_alloc_pin(MXC91231_PIN_SP_USB_DAT_VP__RXD2, "uart2-rx");
  26. mxc_iomux_alloc_pin(MXC91231_PIN_SP_USB_SE0_VM__TXD2, "uart2-tx");
  27. mxc_register_device(&mxc_uart_device1, &uart_pdata);
  28. mxc_register_device(&mxc_uart_device0, &uart_pdata);
  29. mxc_register_device(&mxc_sdhc_device0, &sdhc_pdata);
  30. mxc_register_device(&mxc_wdog_device0, NULL);
  31. return;
  32. }
  33. static void __init zn5_timer_init(void)
  34. {
  35. mxc91231_clocks_init(26000000); /* 26mhz ckih */
  36. }
  37. struct sys_timer zn5_timer = {
  38. .init = zn5_timer_init,
  39. };
  40. MACHINE_START(MAGX_ZN5, "Motorola Zn5")
  41. .phys_io = MXC91231_AIPS1_BASE_ADDR,
  42. .io_pg_offst = ((MXC91231_AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
  43. .boot_params = PHYS_OFFSET + 0x100,
  44. .map_io = mxc91231_map_io,
  45. .init_irq = mxc91231_init_irq,
  46. .timer = &zn5_timer,
  47. .init_machine = zn5_init,
  48. MACHINE_END