How to create Boss Audio i2s PCM5122 DAC Board Device Tree? (custom clocks)

Hi,

I am trying to get the Boss i2S DAC ( https://www.allo.com/sparky/boss-dac.html ) and other variants working on the rockpi s. It is basically a PCM5122 with its own generated clock. This means that the rock chip will need to use its MCLK as a slave clock. I have been able to compile the drivers into the kernel but I am having problems trying to figure out where to include the clocks since the /clocks node isn’t present in the rockchip’s DTS.

Thanks for your help!

Here is the device tree overlay meant for the raspberry pi:

/*
 * Definitions for Allo Boss DAC board
 */

/dts-v1/;
/plugin/;

/ {
	compatible = "brcm,bcm2835";

	fragment@0 {
		target-path = "/clocks";
		__overlay__ {
			boss_osc: boss_osc {
				compatible = "allo,dac-clk";
				#clock-cells = <0>;
			};
		};
	};

	fragment@1 {
		target = <&i2s>;
		__overlay__ {
			status = "okay";
		};
	};

	fragment@2 {
		target = <&i2c1>;
		__overlay__ {
			#address-cells = <1>;
			#size-cells = <0>;
			status = "okay";

			pcm5122@4d {
				#sound-dai-cells = <0>;
				compatible = "ti,pcm5122";
				clocks = <&boss_osc>;
				reg = <0x4d>;
				status = "okay";
			};
		};
	};

	fragment@3 {
		target = <&sound>;
		boss_dac: __overlay__ {
			compatible = "allo,boss-dac";
			i2s-controller = <&i2s>;
			mute-gpios = <&gpio 6 1>;
			status = "okay";
		};
	};

	__overrides__ {
		24db_digital_gain = <&boss_dac>,"allo,24db_digital_gain?";
		slave = <&boss_dac>,"allo,slave?";
	};
};

I could give you a hint to start with. The only i2s routed to the pins is i2s@ff300000 try to replace &i2s with &i2s_8ch_0.
You should also disable i2s_8ch_2
fragment@1 {
target = <&i2s_8ch_2>;

            __overlay__ {
                    #sound-dai-cells = <0>;
                    status = "disabled";
                    };
           };

that is enabled in DTB.
Have you find your device at 4d with i2cdetect?