I am trying to learn about Linux platform drivers. I have taken a driver from the following tutorial:

<http://linuxseekernel.blogspot.com/2014/05/platform-device-driver-practical.html>

It is a basic platform driver. I have compiled it and loaded the module. It loads fine, however, its probe function is never executed. There is a lot of documentation that has said as long as the devices id and drivers id match, then the probe function is called. Well I have the following driver:

```
#include <linux/module.h>
#include <linux/kernel.h>
//for platform drivers....
#include <linux/platform_device.h>
#define DRIVER_NAME "twl12xx"

MODULE_LICENSE("GPL");

/**************/
static int sample_drv_probe(struct platform_device *pdev){
    printk(KERN_ALERT "twl12xx: Probed\n");
    return 0;
}
static int sample_drv_remove(struct platform_device *pdev){
    printk(KERN_ALERT "twl12xx: Removing twl12xx\n");
    return 0;
}

static const struct platform_device_id twl12xx_id_table[] = {
    { "twl12xx", 0},
    {}
};
MODULE_DEVICE_TABLE(platform, twl12xx_id_table);

static struct platform_driver sample_pldriver = {
    .probe          = sample_drv_probe,
    .remove         = sample_drv_remove,
    .driver = {
            .name  = DRIVER_NAME,
    },
};
/**************/

int ourinitmodule(void)
{
    printk(KERN_ALERT "\n Welcome to twl12xx driver.... \n");

    /* Registering with Kernel */
    platform_driver_register(&sample_pldriver);

    return 0;
}

void ourcleanupmodule(void)
{
    printk(KERN_ALERT "\n Thanks....Exiting twl12xx driver... \n");

    /* Unregistering from Kernel */
    platform_driver_unregister(&sample_pldriver);

    return;
}

module_init(ourinitmodule);
module_exit(ourcleanupmodule);

```

I also have the following entry in my device tree:

```
twl12xx: twl12xx@2 {
    compatible = "twl12xx";
};

```

I feel like I am must be missing something or incorrectly defining my device tree.