Hello,
Currently we are reverse engineering a device to the latest TISDK kit. Unfortunately we do not have any original documentation. We stripped the DTS from the older kernel and went from there. Everything has been going fairly well this far, we managed to get all the devices working perfectly fine, except the audio. The board uses the WM8776 which is a multi-dai soundcard. One for capture and one for playback. I will briefly post the needed information regarding the device tree here:
mcasp0_pins: mcasp0_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x994, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x998, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE0) AM33XX_IOPAD(0x9a0, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE0) AM33XX_IOPAD(0x9a8, PIN_INPUT | MUX_MODE0) AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE0) >; }; &mcasp0 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&mcasp0_pins>; rx-num-evt = <1>; tx-num-evt = <1>; serial-dir = <1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0>; num-serializer = <16>; tdm-slots = <2>; op-mode = <0>; status = "okay"; }; &i2c0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; wm8776: wm8776@1b { #sound-dai-cells = <1>; reg = <0x1b>; compatible = "wlf,wm8776"; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "Audio Card"; simple-audio-card,bitclock-inversion; simple-audio-card,dai-link@0 { format = "i2s"; bitclock-master = <&cpu1>; frame-master = <&cpu1>; simple-audio-card,bitclock-inversion; cpu1: cpu { sound-dai = <&mcasp0>; system-clock-frequency = <11289600>; }; codec { sound-dai = <&wm8776 0>; }; }; simple-audio-card,dai-link@1 { format = "i2s"; bitclock-master = <&cpu0>; frame-master = <&cpu0>; simple-audio-card,bitclock-inversion; cpu0: cpu { sound-dai = <&mcasp0>; system-clock-frequency = <11289600>; }; codec { sound-dai = <&wm8776 1>; }; }; }; };
I will also provide the original pinmux I got from the stripped DTS. Those where on old notations but I am pretty sure that I converted them correctly to todays standard.
mcasp0_pins: mcasp0_pins { pinctrl-single,pins = <0x190 0x08 0x194 0x08 0x198 0x08 0x19c 0x28 0x1a0 0x08 0x1a4 0x08 0x1a8 0x28 0x1ac 0x28>; };
One of the things I observed during using
arecord -D hw:0,1 1.wav -f cddebugging was the following:
It seems like the ADC does not have a capture stream. However, I cannot manage to figure out why. Is there anyone who can help me out figuring why this is not working as expected?
Best regards,
Lars