Загрузка данных


/ {
	/* 1. Объявляем виртуальный драйвер (заглушку) для простого усилителя TFA9882 */
	tfa9882_codec: tfa9882 {
		compatible = "zephyr,audio-codec-dummy";
		status = "okay";
		#sound-dai-cells = <0>;
		/* Если у вас есть пин EN/MODE для TFA, раскомментируйте строку ниже: */
		/* power-gpios = <&gpioX Y GPIO_ACTIVE_HIGH>; */
	};

	/* 2. Собираем аудио-карту, объединяющую кодек, усилитель и процессор */
	sound_card {
		compatible = "audio-graph-card";
		dais = <&sai2_rx_port &sai2_tx_port>;
		status = "okay";
	};
};

/* 3. Настройка I2C1 для управления кодеком SGTL5000 */
&lpi2c1 {
	status = "okay";

	sgtl5000: sgtl5000@a { /* Проверьте ваш I2C адрес (обычно 0x0a) */
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
		status = "okay";
		#sound-dai-cells = <0>;
		
		/* Привязываем MCLK к источнику из SAI2 */
		clocks = <&sai2 0>; 
		clock-names = "mclk";
		
		/* Питание кодека (укажите реальные регуляторы или dummy, если они постоянные) */
		VDDA-supply = <&vcc_3v3>;
		VDDIO-supply = <&vcc_3v3>;
	};
};

/* 4. Конфигурация аудио-интерфейса SAI2 */
&sai2 {
	status = "okay";
	
	/* КРИТИЧЕСКИЙ ФЛАГ: Включает независимую (асинхронную) работу TX и RX */
	fsl,sai-asynchronous; 

	/* Настраиваем физические пины через pinctrl под вашу схему */
	pinctrl-0 = <&pinmux_sai2>;
	pinctrl-names = "default";

	/* Описываем порты аудио-графа для Zephyr Audio API */
	sai2_rx_port: port@0 {
		reg = <0>;
		sai2_rx_endpoint: endpoint {
			remote-endpoint = <&sgtl5000_endpoint>;
			dai-format = "i2s";
			/* Процессор — мастер, генерирует RX_CLK и RX_SYNC из своего MCLK */
			frame-master;
			bitclock-master;
		};
	};

	sai2_tx_port: port@1 {
		reg = <1>;
		sai2_tx_endpoint: endpoint {
			remote-endpoint = <&tfa9882_endpoint>;
			dai-format = "i2s";
			/* Процессор — мастер, независимо генерирует TX_CLK и TX_SYNC */
			frame-master;
			bitclock-master;
		};
	};
};

/* Достраиваем связи со стороны конечных устройств */
&sgtl5000 {
	sgtl5000_port: port {
		sgtl5000_endpoint: endpoint {
			remote-endpoint = <&sai2_rx_endpoint>;
		};
	};
};

&tfa9882_codec {
	tfa9882_port: port {
		tfa9882_endpoint: endpoint {
			remote-endpoint = <&sai2_tx_endpoint>;
		};
	};
};