Hi, support team:
we developed our custom carrier port NAU88C22 driver using the Orin NX 8GB module, we encountered audio codec driver issues. We use the the jetpack R35.4.1 development kit.
we use two ECM microphones, and two speakers.
The schematic diagram of the hardware we use is shown below:
codec:
I2S:
and the GPIO09 output the audio mclk,pin 211.
I2C:
DTS:
hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-p3767-common-audio.dtsi
// SPDX-License-Identifier: GPL-2.0-only
/*
* Common Audio DT bindings
*
* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*
*/
#include <audio/tegra-platforms-audio-dai-links.dtsi>
#include <audio/tegra186-audio-dai-links.dtsi>
#include <audio/tegra186-audio-graph.dtsi>
/ {
hdr40_i2c1: i2c@c250000 { };
//&i2c0
i2c@3160000{
fsync-width = <0>;
nau8822:nau8822.0-001a@1a{
compatible = "nuvoton,nau8822";
status = "okay";
reg = <0x1a>;
clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
//clocks = <&tegra_car TEGRA186_CLK_AUD_MCLK>;
clock-names = "mclk";
#sound-dai-cells = <1>;
sound-name-prefix = "nau";
};
};
clocks {
nau8822_mclk: nau8822_mclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12288000>;
clock-output-names = "nau8822-mclk";
status = "okay";
};
};
aconnect@2a41000 {
agic-controller@2a41000 {
status = "okay";
};
adsp@2993000 {
status = "okay";
};
};
hda@3510000 {
nvidia,model = "NVIDIA Jetson AGX Orin HDA";
status = "okay";
};
i2s@2901100{
status = "okay";
bit-format = "s16_le";
bclk_ratio = <1>;
srate = <48000>;
num-channel = <2>;
ignore_suspend;
link-name = "nau-capture";
bitclock-master;
frame-master;
codec {
sound-dai = <&nau8822 0>;
prefix = "nau";
};
};
tegra_sound: sound {
compatible = "nvidia,tegra186-ape";
nvidia-audio-card,name = "NVIDIA Jetson Orin NX APE";
clocks = <&bpmp_clks TEGRA234_CLK_PLLA>,
<&bpmp_clks TEGRA234_CLK_PLLA_OUT0>,
<&bpmp_clks TEGRA234_CLK_AUD_MCLK>;
clock-names = "pll_a", "pll_a_out0", "extern1";
assigned-clocks = <&bpmp_clks TEGRA234_CLK_PLLA_OUT0>,
<&bpmp_clks TEGRA234_CLK_AUD_MCLK>;
assigned-clock-parents = <&bpmp_clks TEGRA234_CLK_PLLA>,
<&bpmp_clks TEGRA234_CLK_PLLA_OUT0>;
nvidia-audio-card,widgets =
"Microphone", "nau Mic",
"Headphone", "nau Headphone",
"Line", "nau Line In",
"Line", "nau Line Out";
nvidia-audio-card,routing =
"nau Headphone", "nau LHP",
"nau Headphone", "nau RHP",
"nau LHP", "nau Left Headphone Out",
"nau RHP", "nau Right Headphone Out",
"nau Left Input Mixer", "nau Mic",
"nau Right Input Mixer", "nau Mic",
"nau MICBIAS", "nau Mic",
"nau Capture", "nau ADC";
nvidia-audio-card,mclk-fs = <256>;
status = "okay";
};
tegra_sound_graph: sound_graph {
compatible = "nvidia,tegra186-audio-graph-card";
status = "disabled";
};
};
hdr40_snd_link_i2s: &i2s2_to_codec { };
/* Audio graph related bindings */
hdr40_snd_i2s_dap_ep: &i2s2_dap_ep { };
the driver use the default kernel sources, the path kernel/kernel-5.10/sound/soc/codecs/nau8822.c
the log:
Kconfig:

I2C detect and cards:
my question
- Do I need to add the tegra_nau8822.c in the path: /sound/soc/tegra/? just like the tegra_sgtl5000.c
- is there any errors in DTS file?







