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?
@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
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 ?
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.