Sunday, July 14, 2013

Linux Driver SPI


Driver File :

Register a driver spi : spi_register_driver

static int __init gptexttester_init(void)
{
    return spi_register_driver(&gptexttester_driver);
}
subsys_initcall(gptexttester_init);
static struct spi_driver gptexttester_driver = {
    .driver = {
        .name = "GPTextTester",
        .bus = &spi_bus_type,
        .owner = THIS_MODULE,
    },
    .probe = gptexttester_probe,
    .remove = __devexit_p(gptexttester_remove),
};

Delete a driver de spi : spi_unregister_driver

static void __exit gptexttester_exit(void)
{
    spi_unregister_driver(&gptexttester_driver);
}
module_exit(gptexttester_exit);

Board File : 

Register SPI devices for a given board

static struct spi_board_info tam3517_spi_gptexttester_info[] __initdata = {
    {
        .modalias               = "GPTextTester",
        .chip_select            = 0,
        .bus_num                = 2,
        .max_speed_hz           = 500000,
        .controller_data        = &gptexttester_mcspi_config,
        .platform_data          = &gptexttester_config,
        .mode                   = SPI_MODE_0,
    },
};
static struct omap2_mcspi_device_config gptexttester_mcspi_config = {
    .turbo_mode         = 0,
    .single_channel     = 1,    /* 0: slave, 1: master */
};
static struct gptexttester_board_platform_data gptexttester_config = {
 .mr_gpio  = TAM3517_GPTEXTTESTER_MR_GPIO,
 .latch_gpio  = TAM3517_GPTEXTTESTER_LATCH_GPIO,
 .load_gpio  = TAM3517_GPTEXTTESTER_LOAD_GPIO,
};




No comments:

Post a Comment