@radxa Hi!
I’ve got a soundcard based on es8388. Radxa Zero3W (is I2s clock master).
DTS enables clocks like SCLK and LRCK, but there is no MCLK (controlled with oscilloscope).
Card resides on I2S3 pins.
Below is the DTS file used:
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
/ {
metadata {
title = "ES8388 I2S sound";
compatible = "radxa,zero3";
category = "audio";
description = "ES8388 I2S sound";
exclusive = "i2s3_2ch";
};
};
&i2s3_2ch {
pinctrl-0 = <&i2s3m0_lrck &i2s3m0_mclk &i2s3m0_sclk &i2s3m0_sdi &i2s3m0_sdo>;
status = "okay";
};
&{/} {
es8388_mclk: codec-mclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12288000>;
};
};
&i2c4 {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
es8388: es8388@11 {
status = "okay";
compatible = "everest,es8328", "everest,es8388";
reg = <0x11>;
clocks = <&es8388_mclk>;
clock-names = "mclk";
#sound-dai-cells = <0>;
};
};
&{/} {
sound_es8388_card: sound-es8388-card {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,snd-es8388-codec";
i2s-controller = <&i2s3_2ch>;
codec = <&es8388>;
simple-audio-card,dai-link@0 {
reg = <0>;
format = "i2s";
cpu {
sound-dai = <&i2s3_2ch>;
};
codec {
sound-dai = <&es8388>;
};
};
};
};