Ceci est destiné à fournir une documentation sur les pilotes Linux, en particulier en tant que base de connaissances All in One. La documentation est clairsemée et répartie sur Internet à l'heure actuelle. Les appareils I2C sont sur un bus à deux lignes et sont des dispositifs de plate-forme non découverts. Afin de savoir si un I2CBUS existe et / ou tout dispositif y est trouvé, vous pouvez vous l'outil I2CDETECT que l'on trouve sur divers systèmes Linux.
Exemples contenus
Qu'est-ce qu'un kobject? Voir kobject /
Utilisé pour interagir avec l'espace utilisateur. Certains pilotes peuvent être divisés en pièces, un i2C ou un pilote de plate-forme pour interagir avec un appareil et un pilote Misc pour interagir avec USERSPACE. Les pilotes Misc peuvent être enregistrés dans la fonction de sonde de la plate-forme. Misc facilite l'espace utilisateur Read and Write appels. Les pilotes Misc ne nécessitent pas de nombres majeurs et ne fournissent qu'un seul numéro mineur. (moteurs / char / misc && disc_register) Il existe également (pilotes / divers) qui sont un ensemble de pilotes qui ne rentrent pas dans d'autres catégories. Deux sujets différents.
Les appareils de plate-forme ne sont pas intrinsèquement découverts qu'ils ne peuvent pas informer les logiciels de leur présence. Les appareils I2C entrent dans cette catégorie. Le logiciel doit savoir au moment de la compilation de leur existence (via board_info ou Tree Tree (DTS).) Ils sont liés aux pilotes en correspondant à ce que vous pouvez apprendre dans le répertoire I2C /. Doit être enregistré dès que possible afin qu'ils puissent utiliser.
USB et PCI ne compteraient alors pas comme des appareils de plate-forme.
Il y a 2 exigences pour travailler avec des appareils de plate-forme
Remarquez ces choses sur les conducteurs de plate-forme
compatible qui correspond à Platform_Driver.name dans le pilote Platform_Driver_Register est l'interface de registre principalepar exemple un exemple de la source d'arborescence (DTS) d'un appareil compatible
lkmc_platform_device@101e9000 {
compatible = "lkmc_platform_device";
reg = <0x101e9000 0x1000>;
interrupts = <18>;
interrupt-controller;
#interrupt-cells = <2>;
clocks = <&pclk>;
clock-names = "apb_pclk";
lkmc-asdf = <0x12345678>;
};
Les dispositifs non plateaux tels que PCI sont intrinsèquement découvrables . Cela signifie que le logiciel peut trouver de nouveaux appareils ajoutés au système pendant l'exécution.
Remarquez ces choses sur les conducteurs non plateformes
device_add et device_del comme nous le pouvons dans la vraie vie. Le sondage n'est pas automatique, mais peut être fait après le démarrage avec Echo 1> / SYS / BUS / PCI / RESCAN.