Цитата
Прошу прощения за назойливость...
Информация по ссылкам для меня - высшая математика, но получить результат хочется. Вступил в диалог с AI, он мне пояснил что объявления из оверлеев можно рвзместить и в обычных dts. Решил пойти этим путем, в итоге:
dtsi:
Код
ahub_daudio30: ahub_daudio30 {
pins = "PH5", "PH6", "PH7";
function = "i2s3";
drive-strength = <0x14>;
bias-disable;
// phandle = <0xb0>;
};
ahub_daudio31: ahub_daudio31 {
pins = "PH8";
function = "i2s3_dout0";
drive-strength = <0x14>;
bias-disable;
// phandle = <0xb1>;
};
ahub_daudio32: ahub_daudio32 {
pins = "PH9";
function = "i2s3_din0";
drive-strength = <0x14>;
bias-disable;
// phandle = <0xb2>;
};
ahub_daudio3_sleep: ahub_daudio3_sleep {
pins = "PH5", "PH6", "PH7", "PH8", "PH9";
function = "gpio_in";
drive-strength = <0x14>;
bias-disable;
// phandle = <0xb3>;
};
dts:
Код
pcm5102a_codec: pcm5102a-codec {
compatible = "ti,pcm5102a";
#sound-dai-cells = <0>;
VCC-supply = <®_bldo3>;
AVDD-supply = <®_bldo3>;
DVDD-supply = <®_bldo3>;
status = "okay";
};
ahub3_plat: ahub3_plat {
#sound-dai-cells = <0>;
compatible = "allwinner,sunxi-snd-plat-ahub";
apb_num = <2>;
dmas = <&dma 5>;
dma-names = "tx";
playback_cma = <256>;
capture_cma = <256>;
tx_fifo_size = <128>;
rx_fifo_size = <128>;
tdm_num = <3>;
tx_pin = <0>;
rx_pin = <0>;
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&ahub_daudio30>, <&ahub_daudio31>;
pinctrl-1 = <&ahub_daudio3_sleep>;
};
ahub3_mach: ahub3_mach {
compatible = "allwinner,sunxi-snd-mach";
soundcard-mach,name = "PCM5102-Sound";
soundcard-mach,format = "i2s";
soundcard-mach,frame-master = <&ahub3_cpu>;
soundcard-mach,bitclock-master = <&ahub3_cpu>;
/* soundcard-mach,frame-inversion; */
/* soundcard-mach,bitclock-inversion; */
soundcard-mach,slot-num = <2>;
soundcard-mach,slot-width = <32>;
status = "okay";
ahub3_cpu: soundcard-mach,cpu {
sound-dai = <&ahub3_plat>;
soundcard-mach,pll-fs = <0x04>;
soundcard-mach,mclk-fs = <0x200>;
};
ahub3_codec: soundcard-mach,codec {
sound-dai = <&pcm5102a_codec>;
status = "okay";
};
кое какие мелкие изменения сделаны по наущению того же AI.
buildroot собирается без ошибок. Делаю проверку аудиоустройств:
Код
# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: PCM5102Sound [PCM5102-Sound], device 0: ahub_plat-pcm5102a-hifi pcm5102a-hifi-0 [ahub_plat-pcm5102a-hifi pcm5102a-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
Казалось бы все хорошо. Но, gpioinfo показывает, что привязанные к I2S3 пины, системой не используются. Ну и разумеется, при попытке что то возпроизвести через второе "аудтоустройство", звука нет, на ножках I2S активности не наблюдается, и "воспроизведение" длится бесконечно, и не прерывается по CTRL-C.
Само собой здесь описана малая часть телодвижений по этой теме, полный список не представляет интереса...
Был бы крайне признателен за легкий пинок в нужном направлении ...