Linux: Le pilote WM8753 n'est pas conçu pour le Pi

Créé le 27 janv. 2016  ·  6Commentaires  ·  Source: raspberrypi/linux

J'essaie de faire fonctionner la puce sonore WM8753 avec le Pi sur i2c, mais je ne parviens pas à faire en sorte que le WM8753 réponde sur le bus i2c, bien qu'il soit enregistré à l'adresse. J'ai été invité ici à demander que le pilote WM8753 soit inclus dans le noyau, pouvez-vous m'aider ?

Commentaire le plus utile

Avez-vous essayé de connecter un WM8753 à Windows alors ? Je serais très surpris s'il existe une forme de pilote disponible, et les interfaces I2S et I2C ne sont pas courantes sur les PC de toute façon - USB, PCIe ou Firewire sont préférés et beaucoup plus faciles à gérer. À l'exception de l'USB, ces interfaces sont moins courantes sur les SBC.

L'ajout de modules augmente la taille de la distribution du noyau pour tout le monde, et certains modules auront également une pénalité de performance. C'est pourquoi il y a une demande générale de prouver que quelque chose fonctionne avant que le module ne soit construit par défaut. Des instructions complètes sont disponibles pour que vous puissiez construire votre propre noyau avec une configuration modifiée, donc ce n'est pas comme si vous dépendiez du fait qu'il soit dans la version par défaut.

BTW Aviez-vous remarqué https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Date de fin de vie : 31/07/2017

Construire un nouveau produit sur quelque chose qui est en fin de vie en moins d'un an n'est peut-être pas un si bon plan. Je n'ai pas comparé les WM8750 et WM8758 qu'ils proposent en remplacement.

Tous les 6 commentaires

@KevinStartup votre problème est-il résolu ? Si tel est le cas, veuillez fermer ce problème. Merci.

Nous avons développé un pilote i2c/i2s personnalisé pour prendre en charge cette puce. Cela fonctionne en quelque sorte mais nécessite plus d'attention. Comme vous pouvez le voir, je n'ai reçu absolument aucune aide de ce site !

@KevinStartup Que demandez-vous exactement ? CONFIG_SND_SOC_WM8753=m à ajouter aux configurations RPi par défaut, donc le pilote de codec est construit en tant que module ?

Si vous avez besoin d'aide avec le pilote de la machine ASoC, montrez-nous le code que vous avez déjà qui « fonctionne en quelque sorte », et dites-nous ce qui ne fonctionne pas réellement et les gens pourront peut-être proposer des suggestions ou de l'aide.

@DigitalDreamtime
Je suppose que ce que je suggère, c'est que tous les CODEC qui sont réellement inclus dans le système peuvent être chargés et configurés dans le noyau. Des CODEC existent pour le wm8753 ainsi que pour de nombreuses autres puces sonores, mais un certain travail est nécessaire pour les faire fonctionner dans le noyau Unix avec ASoC et ALSA. Nous avons en fait demandé à une autre société de bricoler un chargeur et de configurer le pilote en tant que module dans le noyau afin qu'il puisse être chargé. Actuellement, il fonctionne mais tombe en panne lorsque ALSA est utilisé en mode "mémoire mappé" utilisé par notre logiciel de son, il nécessite donc encore plus de travail. Les détails sont complexes et au-delà de mes propres capacités, je peux poster le code que nous utilisons ici si quelqu'un est intéressé, mais de manière réaliste pour le tester et travailler avec, vous auriez besoin d'un Pi connecté via i2c à une puce wm8753.
Je suppose que ma suggestion globale ici est d'essayer d'obtenir beaucoup plus de prise en charge des puces sonores dans le Pi. Il a les codecs disponibles, mais les faire fonctionner est difficile. C'est l'un des domaines où je pense que le Pi pourrait être mieux développé. Windows prend en charge à peu près toutes les cartes son auxquelles vous pouvez penser de nos jours, mais la prise en charge matérielle du Pi est limitée et complexe. Je pense juste qu'il serait bien d'évoluer vers un système plus simple pour intégrer le Pi avec différents appareils audio et visuels. Nous avons également un écran LCD personnalisé fonctionnant avec notre Pi et cela a été délicat, mais au moins plus facile à configurer car seule l'arborescence des périphériques nécessite une modification et quelques lignes dans config.txt.
Du point de vue de l'utilisateur, il semble que la moitié du travail ait été fait pour prendre en charge une large gamme de puces sonores et d'écrans, mais la configuration finale de l'utilisateur est très délicate et nécessite des connaissances spécialisées. Personnellement, je pense que c'est un domaine qui pourrait être amélioré.
S'il y a quelqu'un qui souhaite avoir le code de développement wm8753 et qui aimerait y jeter un œil, alors faites-le moi savoir et je pourrai le poster.
Cheerz
Kévin

Avez-vous essayé de connecter un WM8753 à Windows alors ? Je serais très surpris s'il existe une forme de pilote disponible, et les interfaces I2S et I2C ne sont pas courantes sur les PC de toute façon - USB, PCIe ou Firewire sont préférés et beaucoup plus faciles à gérer. À l'exception de l'USB, ces interfaces sont moins courantes sur les SBC.

L'ajout de modules augmente la taille de la distribution du noyau pour tout le monde, et certains modules auront également une pénalité de performance. C'est pourquoi il y a une demande générale de prouver que quelque chose fonctionne avant que le module ne soit construit par défaut. Des instructions complètes sont disponibles pour que vous puissiez construire votre propre noyau avec une configuration modifiée, donc ce n'est pas comme si vous dépendiez du fait qu'il soit dans la version par défaut.

BTW Aviez-vous remarqué https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Date de fin de vie : 31/07/2017

Construire un nouveau produit sur quelque chose qui est en fin de vie en moins d'un an n'est peut-être pas un si bon plan. Je n'ai pas comparé les WM8750 et WM8758 qu'ils proposent en remplacement.

@6by9
Merci pour le lien EOL, qui est très utile, je l'ai envoyé à ceux qui ont décidé d'utiliser cette puce. Il est principalement utilisé pour la compatibilité descendante avec notre logiciel pour nous éviter d'avoir à recoder beaucoup de choses car nous utilisons beaucoup d'entrée et de sortie audio de cette puce qui est toutes codées dans notre PCB et notre application logicielle, il a donc été décidé que nous Je continuerais à l'utiliser plutôt que de reconfigurer les PCB et les logiciels d'application pour y faire face (ce n'est pas ma décision et pour mémoire, j'étais contre, mais c'est une autre histoire)

Je suis d'accord, je pense aussi que l'USB est la voie à suivre et j'accepte votre point de vue selon lequel le wm8753 ne fonctionne probablement pas sur un PC et la plupart des autres choses sur i2c ne fonctionneront pas non plus ! Nous avons persévéré avec cela à un coût élevé et seul le temps nous dira si cela nous épargnera du travail dans le développement final du PCB et des applications, mais il semble qu'il soit temps d'acheter un lot de WM8753 pour les coffres !

Nous avons envisagé de passer à l'une des puces les plus récentes, en particulier celle de Cirrus Logic chargée sur leur carte audio (WM5102), mais malheureusement, la puce est trop petite pour être installée par nos machines de fabrication, nous avons donc dû opter pour l'ancienne. C'était vraiment dommage car Cirrus a également fait tout le travail pour le configurer sur le Pi.

Je suppose que vous avez raison, nous ne pouvons pas nous attendre à prendre en charge tout le matériel existant et le mécanisme est là pour le faire fonctionner - c'est vraiment très difficile ! C'était trop dur pour moi de toute façon et nous devions trouver quelqu'un avec un plus gros cerveau pour s'y essayer.

Merci pour votre participation, c'était agréable au moins d'avoir une réponse. Je vais fermer ce fil pour ranger Ruffio :)

Bonne nuit
Kévin

Cette page vous a été utile?
0 / 5 - 0 notes