1e7749a26SDaniel Mack /* 2e7749a26SDaniel Mack * linux/arch/arm/mach-pxa/pxa-dt.c 3e7749a26SDaniel Mack * 4e7749a26SDaniel Mack * Copyright (C) 2012 Daniel Mack 5e7749a26SDaniel Mack * 6e7749a26SDaniel Mack * This program is free software; you can redistribute it and/or modify 7e7749a26SDaniel Mack * it under the terms of the GNU General Public License version 2 as 8e7749a26SDaniel Mack * publishhed by the Free Software Foundation. 9e7749a26SDaniel Mack */ 10e7749a26SDaniel Mack 11e7749a26SDaniel Mack #include <linux/irq.h> 12e7749a26SDaniel Mack #include <linux/irqdomain.h> 13e7749a26SDaniel Mack #include <linux/of_irq.h> 14e7749a26SDaniel Mack #include <linux/of_platform.h> 15e7749a26SDaniel Mack #include <asm/mach/arch.h> 16e7749a26SDaniel Mack #include <asm/mach/time.h> 17e7749a26SDaniel Mack #include <mach/irqs.h> 18e7749a26SDaniel Mack #include <mach/pxa3xx.h> 19e7749a26SDaniel Mack 20e7749a26SDaniel Mack #include "generic.h" 21e7749a26SDaniel Mack 22e7749a26SDaniel Mack #ifdef CONFIG_PXA3xx 23e7749a26SDaniel Mack extern void __init pxa3xx_dt_init_irq(void); 24e7749a26SDaniel Mack 25e7749a26SDaniel Mack static const struct of_dev_auxdata pxa3xx_auxdata_lookup[] __initconst = { 26e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40100000, "pxa2xx-uart.0", NULL), 27e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40200000, "pxa2xx-uart.1", NULL), 28e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-uart", 0x40700000, "pxa2xx-uart.2", NULL), 29e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-uart", 0x41600000, "pxa2xx-uart.3", NULL), 30e7749a26SDaniel Mack OF_DEV_AUXDATA("marvell,pxa-mmc", 0x41100000, "pxa2xx-mci.0", NULL), 31e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-gpio", 0x40e00000, "pxa-gpio", NULL), 32e7749a26SDaniel Mack OF_DEV_AUXDATA("marvell,pxa-ohci", 0x4c000000, "pxa27x-ohci", NULL), 33e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pxa-i2c", 0x40301680, "pxa2xx-i2c.0", NULL), 34e7749a26SDaniel Mack OF_DEV_AUXDATA("mrvl,pwri2c", 0x40f500c0, "pxa3xx-i2c.1", NULL), 35e7749a26SDaniel Mack OF_DEV_AUXDATA("marvell,pxa3xx-nand", 0x43100000, "pxa3xx-nand", NULL), 36e7749a26SDaniel Mack {} 37e7749a26SDaniel Mack }; 38e7749a26SDaniel Mack 39e7749a26SDaniel Mack static void __init pxa3xx_dt_init(void) 40e7749a26SDaniel Mack { 41e7749a26SDaniel Mack of_platform_populate(NULL, of_default_bus_match_table, 42e7749a26SDaniel Mack pxa3xx_auxdata_lookup, NULL); 43e7749a26SDaniel Mack } 44e7749a26SDaniel Mack 45e7749a26SDaniel Mack static const char *pxa3xx_dt_board_compat[] __initdata = { 46e7749a26SDaniel Mack "marvell,pxa300", 47e7749a26SDaniel Mack "marvell,pxa310", 48e7749a26SDaniel Mack "marvell,pxa320", 49e7749a26SDaniel Mack NULL, 50e7749a26SDaniel Mack }; 51e7749a26SDaniel Mack #endif 52e7749a26SDaniel Mack 53e7749a26SDaniel Mack #ifdef CONFIG_PXA3xx 54e7749a26SDaniel Mack DT_MACHINE_START(PXA_DT, "Marvell PXA3xx (Device Tree Support)") 55e7749a26SDaniel Mack .map_io = pxa3xx_map_io, 56e7749a26SDaniel Mack .init_irq = pxa3xx_dt_init_irq, 57e7749a26SDaniel Mack .handle_irq = pxa3xx_handle_irq, 58e7749a26SDaniel Mack .timer = &pxa_timer, 59e7749a26SDaniel Mack .restart = pxa_restart, 60e7749a26SDaniel Mack .init_machine = pxa3xx_dt_init, 61e7749a26SDaniel Mack .dt_compat = pxa3xx_dt_board_compat, 62e7749a26SDaniel Mack MACHINE_END 63e7749a26SDaniel Mack #endif 64