It would make more sense to work with the mainline driver and fix issues with it over than working with this sun8i-i2s driver. So from what I read you have an external G-Dis DAC and some highly accurate clock board which you wish to clock both the dac and SoC with. What other connections do you have from the nanopi?, are the gpio's mentioned in the overlay used?
Overlays should be fairly straight forward, can you try this?.
// Definitions for G-Dis DAC
/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun8i-h3";
fragment@0 {
target = <&i2s0>;
__overlay__ {
pinctrl-0 = <&i2s0_pins>;
pinctrl-names = "default";
status = "okay";
};
};
fragment@1 {
target-path = "/";
__overlay__ {
i2s0_out: i2s0-out {
#sound-dai-cells = <0>;
compatible = "linux,spdif-dit";
};
sound_i2s {
simple-audio-card,name = "G-Dis DAC";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&codec_dai>;
simple-audio-card,frame-master = <&codec_dai>;
simple-audio-card,mclk-fs = <256>;
status = "okay";
simple-audio-card,cpu {
sound-dai = <&i2s0>;
};
codec_dai: simple-audio-card,codec {
sound-dai = <&i2s0_out>;
};
};
};
};
};
What did you use to get it working with the Raspberry pi?,
CK