Linux: O driver WM8753 não foi desenvolvido para o Pi

Criado em 27 jan. 2016  ·  6Comentários  ·  Fonte: raspberrypi/linux

Estou tentando fazer com que o chip de som WM8753 funcione com o Pi sobre i2c, mas não consigo fazer com que o WM8753 responda com o barramento i2c, apesar de estar registrado no endereço. Fui direcionado aqui para pedir que o driver WM8753 fosse incluído no kernel, você pode ajudar?

Comentários muito úteis

Você já tentou conectar um WM8753 ao Windows? Eu ficaria muito surpreso se houver qualquer tipo de driver disponível, e as interfaces I2S e I2C não são comuns em PCs de qualquer maneira - USB, PCIe ou Firewire são preferidos e muito mais fáceis de manusear. Exceto para USB, essas interfaces são menos comuns em SBCs.

Adicionar módulos aumenta o tamanho da distribuição do kernel para todos, e alguns módulos também terão uma penalidade de desempenho. É por isso que há uma solicitação geral para provar que algo funciona antes que o módulo seja construído por padrão. Instruções completas estão disponíveis para você ser capaz de construir seu próprio kernel com uma configuração modificada, então não é como se você dependesse dele estar na construção padrão.

BTW, você notou https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Data EOL: 31/07/2017

Construir um novo produto em algo que entrará no EOL em menos de um ano pode não ser um plano tão bom. Eu não comparei com o WM8750 e o WM8758 que eles estão listando como substitutos.

Todos 6 comentários

@KevinStartup seu problema foi resolvido? Em caso afirmativo, feche este problema. Obrigado.

Desenvolvemos um driver i2c / i2s personalizado para oferecer suporte a esse chip. Está funcionando, mas precisa de mais atenção. Como você pode ver, não recebi absolutamente nenhuma ajuda deste site!

@KevinStartup O que exatamente você está pedindo? CONFIG_SND_SOC_WM8753=m a ser adicionado às configurações RPi padrão, então o driver do codec é construído como módulo?

Se precisar de ajuda com o driver de máquina ASoC, mostre-nos o código que você já possui que 'está meio que funcionando' e diga-nos o que não está realmente funcionando e as pessoas podem oferecer sugestões ou ajuda.

@DigitalDreamtime
Eu acho que o que estou sugerindo é que todos os CODECs que estão realmente incluídos no sistema podem ser carregados e configurados no kernel. Existem CODECs para o wm8753, bem como muitos outros chips de som, mas algum trabalho é necessário para fazê-los funcionar dentro do kernel unix com ASoC e ALSA. Na verdade, contratamos outra empresa para montar um carregador e configurar o driver como um módulo dentro do kernel para que ele possa ser carregado. Atualmente ele funciona, mas falha quando ALSA é usado no modo "mapeado na memória" que nosso software de som está utilizando, portanto, ele precisa de mais trabalho ainda. Os detalhes são complexos e estão além de minhas próprias capacidades, posso postar o código que estamos usando aqui se alguém estiver interessado, mas realisticamente para testá-lo e trabalhar com ele, você precisaria de um Pi conectado via i2c a um chip wm8753.
Acho que minha sugestão geral aqui é tentar obter muito mais suporte de chip de som para o Pi. Ele tem os codecs disponíveis, mas é difícil fazê-los funcionar. É aqui que eu acho que o Pi poderia ser melhor desenvolvido. O Windows oferece suporte a praticamente qualquer placa de som que você possa imaginar hoje em dia, mas o suporte de hardware para o Pi é limitado e complexo. Eu simplesmente acho que seria bom mudar para um sistema mais fácil para integrar o Pi com diferentes dispositivos de áudio e visuais. Também temos uma tela LCD personalizada funcionando com nosso Pi e isso tem sido complicado, mas pelo menos mais fácil de configurar, pois apenas a árvore de dispositivos precisa ser modificada e algumas linhas em config.txt.
Do ponto de vista do usuário, parece que metade do trabalho foi feito para suportar uma ampla gama de chips de som e visores, mas a configuração do usuário final é muito complicada e requer conhecimento especializado. Pessoalmente, acho que é uma área que poderia ser melhorada.
Se houver alguém que deseja ter o código de desenvolvimento wm8753 e gostaria de dar uma olhada nele, por favor, me avise e eu posso postá-lo.
Cheerz
Kevin

Você já tentou conectar um WM8753 ao Windows? Eu ficaria muito surpreso se houver qualquer tipo de driver disponível, e as interfaces I2S e I2C não são comuns em PCs de qualquer maneira - USB, PCIe ou Firewire são preferidos e muito mais fáceis de manusear. Exceto para USB, essas interfaces são menos comuns em SBCs.

Adicionar módulos aumenta o tamanho da distribuição do kernel para todos, e alguns módulos também terão uma penalidade de desempenho. É por isso que há uma solicitação geral para provar que algo funciona antes que o módulo seja construído por padrão. Instruções completas estão disponíveis para você ser capaz de construir seu próprio kernel com uma configuração modificada, então não é como se você dependesse dele estar na construção padrão.

BTW, você notou https://www.cirrus.com/en/products/eol/detail/EOL421.html ?

WM8753
Data EOL: 31/07/2017

Construir um novo produto em algo que entrará no EOL em menos de um ano pode não ser um plano tão bom. Eu não comparei com o WM8750 e o WM8758 que eles estão listando como substitutos.

@ 6by9
Obrigado pelo link EOL, que é muito útil, já enviei para quem decidiu usar este chip. Ele está sendo usado principalmente para compatibilidade com o nosso software para evitar que tenhamos que recodificar muitas coisas, já que usamos muita entrada e saída de áudio deste chip, que está totalmente codificado em nosso PCB e aplicativo de software, então foi decidido que nós continuaria a usá-lo em vez de reorganizar os PCBs e o software de aplicativo para lidar com isso (não é minha decisão e para que fique registrado, eu era contra, mas isso é outra história)

Eu concordo, também acho que USB é o caminho a seguir e aceito seu ponto de vista de que o wm8753 provavelmente não funciona em um PC e a maioria das outras coisas no i2c também não funcionam! Nós seguimos em frente com um grande custo e só o tempo dirá se isso nos poupará trabalho no PCB final e no desenvolvimento de aplicativos, mas parece que é hora de comprar um lote de trabalho dos WM8753s para os cofres!

Vimos a possibilidade de avançar para um dos chips mais novos, especificamente o Cirrus Logic carregado em sua placa de áudio (WM5102), mas infelizmente o chip é muito pequeno para ser colocado em nosso maquinário de fabricação, então tivemos que escolher o mais antigo. Foi uma pena, pois a Cirrus fez todo o trabalho para configurá-lo no Pi também.

Acho que você está certo, não podemos esperar oferecer suporte a todos os hardwares existentes e o mecanismo existe para fazê-lo funcionar - é realmente muito difícil! De qualquer forma, era muito difícil para mim e precisávamos de alguém com um cérebro maior para tentar.

Obrigado por se envolver, foi bom pelo menos obter uma resposta. Vou fechar este tópico para arrumar para Ruffio :)

Tenha uma boa noite
Kevin

Esta página foi útil?
0 / 5 - 0 avaliações