device-tree mismatch: .probe never called
<p>I'm having trouble understanding how device-tree works, or specifically why this driver won't init. This is in the rockchip vendor kernel for android, version 3.10</p>

<p><strong>drivers/watchdog/rk29_wdt.c</strong> (reduced for readability)</p>

<pre><code>static const struct of_device_id of_rk29_wdt_match[] = {
    { .compatible = "rockchip,watch dog" }
};
static struct platform_driver rk29_wdt_driver = {
    .probe          = rk29_wdt_probe,
    [..]
            .of_match_table = of_rk29_wdt_match,
            .name   = "rk29-wdt",
    },
};

static int __init watchdog_init(void)
{ 
    printk("watchdog_init\n");
    return platform_driver_register(&amp;rk29_wdt_driver);
}
</code></pre>

<p>and this is the soc dtsi</p>

<p><strong>arch/arm/boot/dts/rk3288.dtsi</strong></p>

<pre><code>    watchdog: wdt@2004c000 {
            compatible = "rockchip,watch dog";
            reg = &lt;0xff800000 0x100&gt;;
            clocks = &lt;&amp;pclk_pd_alive&gt;;
            clock-names = "pclk_wdt";
            interrupts = &lt;GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH&gt;;
            rockchip,irq = &lt;0&gt;;
            rockchip,timeout = &lt;2&gt;;
            rockchip,atboot = &lt;1&gt;;
            rockchip,debug = &lt;0&gt;;
            status = "okay";
    };
</code></pre>

<p>however, the .probe function of the driver is never called. It is compiled in and the __init function is called. I suspect it has something to do witch the device tree entry not matching? Maybe the space is an issue? </p>

<p><strong>Or is there anything else that runs before .probe that determines if the driver should continue?</strong></p>

<p>Also i'm not sure how a flattened tree works, so maybe this is relevant:</p>

<p><strong>arch/arm/mach-rockchip/rk3288</strong></p>

<pre><code>DT_MACHINE_START(RK3288_DT, "Rockchip RK3288 (Flattened Device Tree)")
    .smp            = smp_ops(rockchip_smp_ops),
    .map_io         = rk3288_dt_map_io,
    .init_time      = rk3288_dt_init_timer,
    .dt_compat      = rk3288_dt_compat,
    .init_late      = rk3288_init_late,
    .reserve        = rk3288_reserve,
    .restart        = rk3288_restart,
MACHINE_END
</code></pre>