]> Pileus Git - ~andy/linux/blobdiff - arch/arm/mach-mxs/mach-mxs.c
Merge branch 'samsung/defconfig' into next/defconfig
[~andy/linux] / arch / arm / mach-mxs / mach-mxs.c
index 5d81a23943c6237cd3222646bc707f25c188de51..8cac94b33020c64fb1a3f2efc80a3af5b5fbba21 100644 (file)
@@ -30,8 +30,20 @@ static int __init mxs_icoll_add_irq_domain(struct device_node *np,
        return 0;
 }
 
+static int __init mxs_gpio_add_irq_domain(struct device_node *np,
+                               struct device_node *interrupt_parent)
+{
+       static int gpio_irq_base = MXS_GPIO_IRQ_START;
+
+       irq_domain_add_legacy(np, 32, gpio_irq_base, 0, &irq_domain_simple_ops, NULL);
+       gpio_irq_base += 32;
+
+       return 0;
+}
+
 static const struct of_device_id mxs_irq_match[] __initconst = {
        { .compatible = "fsl,mxs-icoll", .data = mxs_icoll_add_irq_domain, },
+       { .compatible = "fsl,mxs-gpio", .data = mxs_gpio_add_irq_domain, },
        { /* sentinel */ }
 };
 
@@ -41,6 +53,15 @@ static void __init mxs_dt_init_irq(void)
        of_irq_init(mxs_irq_match);
 }
 
+static void __init imx23_timer_init(void)
+{
+       mx23_clocks_init();
+}
+
+static struct sys_timer imx23_timer = {
+       .init = imx23_timer_init,
+};
+
 static void __init imx28_timer_init(void)
 {
        mx28_clocks_init();
@@ -69,12 +90,27 @@ static void __init mxs_machine_init(void)
                                NULL, NULL);
 }
 
+static const char *imx23_dt_compat[] __initdata = {
+       "fsl,imx23-evk",
+       "fsl,imx23",
+       NULL,
+};
+
 static const char *imx28_dt_compat[] __initdata = {
        "fsl,imx28-evk",
        "fsl,imx28",
        NULL,
 };
 
+DT_MACHINE_START(IMX23, "Freescale i.MX23 (Device Tree)")
+       .map_io         = mx23_map_io,
+       .init_irq       = mxs_dt_init_irq,
+       .timer          = &imx23_timer,
+       .init_machine   = mxs_machine_init,
+       .dt_compat      = imx23_dt_compat,
+       .restart        = mxs_restart,
+MACHINE_END
+
 DT_MACHINE_START(IMX28, "Freescale i.MX28 (Device Tree)")
        .map_io         = mx28_map_io,
        .init_irq       = mxs_dt_init_irq,