/ {
/* 1. Наш кастомный out-of-tree кодек-заглушка для TFA9882 */
tfa9882_codec: tfa9882 {
compatible = "tfa9882-codec";
status = "okay";
#sound-dai-cells = <0>;
};
/* 2. Аудио-карта, объединяющая два независимых канала */
sound_card {
compatible = "audio-graph-card";
dais = <&sai2_rx_port &sai2_tx_port>;
status = "okay";
};
};
/* 3. Шина I2C1 для управления SGTL5000 */
&lpi2c1 {
status = "okay";
sgtl5000_codec: sgtl5000@a {
compatible = "fsl,sgtl5000";
reg = <0x0a>; /* Измените на 0x0b, если CTRL_ADR0 подтянут к VCC */
status = "okay";
#sound-dai-cells = <0>;
clocks = <&sai2 0>;
clock-names = "mclk";
VDDA-supply = <&vcc_3v3>;
VDDIO-supply = <&vcc_3v3>;
};
};
/* 4. Конфигурация SAI2 с разделенными портами RX и TX */
&sai2 {
status = "okay";
/* ВНИМАНИЕ: Флаги nxp,tx-sync-mode/nxp,rx-sync-mode УДАЛЕНЫ. */
/* Это автоматически включает kSAI_ModeAsync в драйвере. */
pinctrl-0 = <&pinmux_sai2>;
pinctrl-names = "default";
/* Секция Приемника (RX) — подключена к SGTL5000 */
sai2_rx_port: port@0 {
reg = <0>;
sai2_rx_endpoint: endpoint {
remote-endpoint = <&sgtl5000_endpoint>;
dai-format = "i2s";
frame-master;
bitclock-master;
};
};
/* Секция Передатчика (TX) — подключена к TFA9882 */
sai2_tx_port: port@1 {
reg = <1>;
sai2_tx_endpoint: endpoint {
remote-endpoint = <&tfa9882_endpoint>;
dai-format = "i2s";
frame-master;
bitclock-master;
};
};
};
/* Настройка связей эндпоинтов для аудио-графа */
&sgtl5000_codec {
sgtl5000_port: port {
sgtl5000_endpoint: endpoint {
remote-endpoint = <&sai2_rx_endpoint>;
};
};
};
&tfa9882_codec {
tfa9882_port: port {
tfa9882_endpoint: endpoint {
remote-endpoint = <&sai2_tx_endpoint>;
};
};
};