Codamaで搭載しているXMOS XVF3100を動かす為のドライバは、XMOSが出しているものを利用しているので、Raspberry Pi Zero (W)に搭載されているBroadcom BCM2835には対応していません。
しかし、Broadcom BCM2835と、Broadcom BCM2837の違い、I2Sに限って言えば、ドライバの処理は何も変更する必要はなく、定義を変えるだけなんですね。
vocalfusion-rpi-setup/loader/i2s_slave/loader.c にある、3f203000.i2s を 20203000.i2s にするだけ。 Raspberry Pi 3 (Model B+/B) / 2 (Model B) の場合:
3f203000.i2s Raspberry Pi Zero (W)(WH) / 1 (初代) (Model B+/A+) の場合:
20203000.i2s
#!/bin/sh
if [ ! -f /sys/class/gpio/gpio27/value ]; then
echo 27 > /sys/class/gpio/export
fi
TRGWORD=0
while true
do
if [ "`cat /sys/class/gpio/gpio27/value`" = 1 ] ; then
if [ $TRGWORD = 0 ] ; then
aplay -c1 -r16000 -fS16_LE part5.wav &
TRGWORD=1
fi
else
if [ $TRGWORD = 1 ] ; then
TRGWORD=0
fi
fi
sleep 0.2
done