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