Opérations de base sur les périphériques dans le pilote spi

J’ai besoin d’écrire un pilote spi pour omap4 à partir de zéro. Je me réfère au code du pilote http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c. Cependant, je suis incapable de comprendre comment les opérations de base du périphérique sont gérées dans ce code de pilote. Par exemple, un pilote de char a la structure

struct file_operations scull_fops = { .owner = THIS_MODULE, .llseek = scull_llseek, .read = scull_read, .write = scull_write, .ioctl = scull_ioctl, .open = scull_open, .release = scull_release, }; 

contenant les pointeurs sur les fonctions de base comme ouvrir, lire, écrire, etc …

Je ne trouve pas ces fonctions dans http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c

Quelqu’un s’il vous plaît aidez-moi à identifier comment le périphérique ouvert, lu et écrit est fourni dans le code spi-omap2-mcspi.c.

    Si vous regardez au bas du fichier que vous avez lié dans votre message, vous verrez le traitement des opérations de base du pilote de la plate-forme.

     static const struct dev_pm_ops omap2_mcspi_pm_ops = { .resume = omap2_mcspi_resume, .runtime_resume = omap_mcspi_runtime_resume, }; static struct platform_driver omap2_mcspi_driver = { .driver = { .name = "omap2_mcspi", .owner = THIS_MODULE, .pm = &omap2_mcspi_pm_ops, .of_match_table = omap_mcspi_of_match, }, .probe = omap2_mcspi_probe, .remove = omap2_mcspi_remove, }; 

    Dans l’opération de probe , vous pouvez voir la configuration des opérations spécifiques à spi pour ce pilote:

      /* the spi->mode bits understood by this driver: */ master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); master->setup = omap2_mcspi_setup; master->auto_runtime_pm = true; master->transfer_one_message = omap2_mcspi_transfer_one_message; master->cleanup = omap2_mcspi_cleanup; master->dev.of_node = node;