Quelle est la différence entre une plate-forme Linux pilote et normal pilote de périphérique?
J'ai déjà eu une réflexion sur la plate-forme pilote ainsi que la normale pilote de périphérique comme :
- Plate-forme pilote pour les périphériques qui sont sur la puce.
- Normal pilote de périphérique sont pour ceux qui sont interfacés à la puce du processeur.
Avant de venir à travers un pilote i2c...
Mais ici, je suis à la lecture par le biais de multi fonction i2c pilote défini comme plate-forme pilote. J'étais passé par https://www.kernel.org/doc/Documentation/driver-model/platform.txt. Mais ne pouvait toujours pas se débarrasser de l'idée de venir à une conclusion sur la façon de définir des pilotes, comme pour les deux onchip ainsi interfacé appareils.
Veuillez quelqu'un expliquer.
- L'appareil est un MFD - multi de fonction de l'appareil. il est un domaine dans
platform_device
;struct mfd cell
qui n'est pas là dansi2c_client
structure. Peut-être la raison pour laquelle le pilote est inscrit en tant que plate-forme pilote. S'il vous plaît commentaire sur cet.!! - atmel.com/Images/doc32098.pdf .....check this out, ça pourrait aider...
- Ouais le document a été bon.. je pense que je pourrait faire usage de ce document un peu plus tard. mais je ne pouvais pas venir à la conclusion encore. J'ai demandé à un Maître qui est bon à la pilotes.. je vais poster ici une fois que j'aurai les réponses.
- linuxseekernel.blogspot.com/2014/05/...
Vous devez vous connecter pour publier un commentaire.
Vos références sont bonnes mais il manque une définition de qu'est ce qu'un dispositif de plate-forme. Il y en a un sur LWN. Ce que nous pouvons apprendre à partir de cette page:
Plate-forme de dispositifs sont intrinsèquement non détectable, c'est à dire le matériel ne peut pas dire "Hey! Je suis présent!" pour le logiciel. Des exemples typiques sont les composants i2c,
kernel/Documentation/i2c/instantiating-devices
états:Plate-forme de dispositifs sont liées à des pilotes de par correspondance des noms,
Donc, fondamentalement, la question "est-il un dispositif de plate-forme ou un standard de l'appareil?" est plus une question de quel bus il utilise. Pour travailler avec un dispositif de plate-forme, vous devez:
Pas vrai (en théorie, mais c'est vrai dans la pratique). i2c dispositifs ne sont pas onChip, mais la plate-forme de dispositifs parce qu'ils ne sont pas encore détectables. On peut aussi penser à onChip des appareils qui sont normal appareils. Exemple: un PCI intégré GPU de la puce sur un processeur x86. Il est détectable, donc pas un dispositif de plate-forme.
Pas vrai. De nombreux normal appareils sont connectés au processeur, mais pas par l'intermédiaire d'un bus i2c. Exemple: une souris USB.
[MODIFIER] Dans votre cas, jetez un oeil à
drivers/usb/host/ohci-pnx4008.c
, qui est un contrôleur hôte USB dispositif de plate-forme (Ici, le contrôleur hôte USB n'est pas détectable, alors que des périphériques USB, qui va se connecter à elle, sont). C'est un dispositif de plate-forme enregistrée par le dossier de la commission (arch/arm/mach-pnx4008/core.c:pnx4008_init
). Et à l'intérieur de la sonde de la fonction, il enregistre ses i2c appareil sur le bus aveci2c_register_driver
. On peut en déduire que le contrôleur Hôte USB chipset parle le PROCESSEUR par l'intermédiaire d'un bus i2c.Pourquoi ce que l'architecture? Parce que d'une part, ce dispositif peut être considéré comme un simple périphérique i2c fournir certaines fonctionnalités du système. D'autre part, il est un Hôte USB périphérique compatible. Il a besoin de s'inscrire à la pile USB (
usb_create_hcd
). Afin de sonder seulement i2c sera insuffisant. Jetez un oeil àDocumentation/i2c/instantiating-devices
.platform_driver_register
registres de l'USB pilote de l'Hôte contre la pile USB, alors quei2c_driver_register
est utilisé pour permettre au PROCESSEUR pourparlers pour le Contrôleur Hôte USB, via le protocole i2c. Si le contrôleur USB SPI a été capable, il y aurait unplatform_driver_register
etspi_register_driver
à la place.platform devices cannot be detected dynamically
.a device directly connected to the CPU
, J'espère que vous ne confondez pas les CPU avec SoC. Est un SoC intégré, PCI connecté GPU un dispositif de plate-forme?Minimale du module d'exemples de code
Peut-être que la différence se fera aussi devenir plus clair avec des exemples concrets.
Dispositif de plate-forme exemple
Code:
La poursuite de l'intégration des notes à: https://stackoverflow.com/a/44612957/895245
Voir comment:
-M versatilepb
description de la machine, ce qui représente la SoCcompatible
périphérique de l'arbre de la propriété qui correspond àplatform_driver.name
dans le piloteplatform_driver_register
est le registre principal de l'interfacePCI non-dispositif de plate-forme exemple
Voir comment:
vendor:device
ID (QEMU_VENDOR_ID, EDU_DEVICE_ID
exemple). C'est cuit au four dans chaque appareil, et les vendeurs doivent s'assurer de l'unicité.device_add edu
etdevice_del edu
comme on peut dans la vie réelle. Sondage n'est pas automatique, mais peut être fait après le démarrage avececho 1 > /sys/bus/pci/rescan
. Voir aussi: Pourquoi la méthode de la sonde nécessaires dans Linux, les pilotes de périphériques en plus d'init?