5 Replies Latest reply on Mar 28, 2016 6:21 AM by procaster

    Cirrus Logic Audio Card on Raspberry Pi 3 B

    procaster

      UPDATE: If you are new to the Cirrus Logic Audio Card, you should know the installation instructions in the manual as well as the Cirrus Logic wiki on Github are completely outdated and useless. Instead, follow the instructions by hiassoft at: http://www.horus.com/~hias/cirrus-driver.html

       


       

      Original Post:

       

      I've been trying to get the Raspberry Pi 3 B working with the Cirrus Logic Audio Card this weekend with no success. This Element 14 page for the card clearly says the RPi 3 B is supported so I would imagine someone actually made sure this was true. I've tried several times to follow the directions provided by Cirrus Logic in their Github repo.

       

      Here's exactly what I did:

       

      1. Set up an SD card with the latest Noobs.

       

      2. Install Rasbian and log in.

       

      3. Connect to my WiFi network.

       

      4. Change the keyboard to English US.

       

      5. Open the web browser to pull up my notes.

       

      6. Carefully run the following commands in order which I've adapted from the wiki.

       

      $ sudo apt-get update && sudo apt-get -y upgrade

      $ sudo apt-get -y install bc

       

      $ mkdir -p /tmp/AudioRepos/raspberrypi/tools

      $ mkdir -p /tmp/AudioRepos/CirrusLogic/rpi-linux

       

      $ git clone --depth 1 https://github.com/raspberrypi/tools /tmp/AudioRepos/raspberrypi/tools

      $ git clone --depth 1 https://github.com/CirrusLogic/rpi-linux /tmp/AudioRepos/CirrusLogic/rpi-linux

       

      $ make -C /tmp/AudioRepos/CirrusLogic/rpi-linux bcm2709_defconfig

      $ make -C /tmp/AudioRepos/CirrusLogic/rpi-linux -j4

      $ make -C /tmp/AudioRepos/CirrusLogic/rpi-linux -j4 modules

      $ sudo make -C /tmp/AudioRepos/CirrusLogic/rpi-linux modules_install

       

      $ /tmp/AudioRepos/raspberrypi/tools/mkimage/mkknlimg /tmp/AudioRepos/CirrusLogic/rpi-linux/arch/arm/boot/zImage /tmp/AudioRepos/raspberrypi/tools/mkimage/kernel7.img

       

      $ sudo cp /tmp/AudioRepos/raspberrypi/tools/mkimage/kernel7.img /boot/kernel7.img

      $ sudo cp /tmp/AudioRepos/CirrusLogic/rpi-linux/arch/arm/boot/dts/rpi-cirrus-wm5102-overlay.dtb /boot/overlays/

       

      $ sudo bash -c "echo 'dtoverlay=rpi-cirrus-wm5102-overlay' > /boot/config.txt"

      $ sudo bash -c "echo -e 'softdep arizona-spi pre: arizona-ldo1\nsoftdep spi-bcm2708 pre: fixed' > /etc/modprobe.d/raspi-blacklist.conf"

       

      $ git clone --depth 1 https://github.com/CirrusLogic/wiki-content /tmp/AudioRepos/CirrusLogic/wiki-content

      $ mkdir ~/AudioScripts

      $ mv /tmp/AudioRepos/CirrusLogic/wiki-content/scripts/* ~/AudioScripts/

      $ chmod +x ~/AudioScripts/*.sh

       

      $ sudo shutdown -r now

       

      Then on restart, the Pi hangs. There are several "Driver leds-gpio requests probe deferral" messages which might mean something. There is also "nonblocking pool is initialized":

      boothang.jpg

       

      In addition, there is an error related to mmc_bcm2835:

      booterror.jpg

       

      On the Cirrus Logic board itself, both lights turn on:

      CLLlightsup.jpg

       

      And I definitely have it attached completely:

      CLattached.jpg

       

       

      Anyway, even though I know a thing or two about the command line, I'm not really a low-level guy. I don't compile kernels so I'm not sure how to diagnose this, or even what these errors mean. But I can guarantee you having the CL Audio Card with a RPi 3 B and following the steps above, anyone can replicate this issue.

       

      Does anyone have first-hand knowledge that these two actually work together? Can anyone help me figure out what is wrong with my configuration?

       

      Thank you.