About using PCM3010 with jetson NANO

Hello,

The part requiring 0002 in the next part of the developer guide is explicitly specified.

Nevertheless, it seems to mean something that 0000 was deliberately written in the cp command.

3.Determine the Jetson Nano device tree version and Jetson Nano module variant. You can determine the version and variant from the device tree source file name, which can be found by executing this command on Jetson Nano:

$ cat /proc/device-tree/nvidia,dtsfilename

If the file name is:

•tegra210-p3448-0000-p3449-0000-a02.dts, the version is a02 and the module variant is SKU 0000 (uses SD card memory).

•tegra210-p3448-0002-p3449-0000-a02.dts, the version is a02 and the module variant is SKU 0002 (uses eMMC memory).

•tegra210-p3448-0000-p3449-0000-b00.dts, the version is b00 and the module variant is SKU 0000 (uses SD card memory).

•tegra210-p3448-0002-p3449-0000-b00.dts, the version is b00 and the module variant is SKU 0002 (uses eMMC memory).

4.Locate the directory that contains the pinmux spreadsheet that you modified in To customize the pinmux spreadsheet. Remember that this pathname is on the Windows host, which must be accessible to Linux through the network.

5.Copy the generated .dtsi files from the directory that contains the spreadsheet to the following locations:

jetson_nano_module-pinmux.dtsi to <src_path>/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-porg-pinmux-p3448--.dtsi

jetson_nano_module-gpio.dtsi to <src_path>/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms/tegra210-jetson-cv-gpio-p2597-2180-a00.dtsi

Where:

•<src_path> is the pathname of the kernel sources that you downloaded in step 1.

•jetson_nano_module is the filename prefix that you entered in step 7 of To customize the pinmux spreadsheet. If you did not use the recommended default, change the filenames accordingly.

• is the module’s SKU number. You must specify it as a four-digit number, i.e. 0000 or 0002.

• is the version of the Jetson Nano device tree that you identified in step 3.

6.Rebuild the device tree image:

$ cd <src_path>/kernel/kernel-4.9/

$ make ARCH=arm64 tegra_defconfig

$ make ARCH=arm64 dtbs

7.Copy the updated device tree image to the L4T release tree:

$ cp arch/arm64/boot/dts/tegra210-p3448-0000-p3449-0000-*.dtb /kernel/dtb/

8.To reflash the target device for the new pinmux configuration to be applied, follow the instructions in the section Basic Flashing Procedures of the topic Flashing and Booting the Target Device.

Thank you.

Hello,

If you have time, create a .dtsi file by setting the Excel file yourself, create dtb, and test it in the production module.

It’s because it’s weird even though I really did the same.
Devkit module works, but production modules do not.

Thank you.

Hello!

That is a bug in the doc. If you are using the eMMC, then 0002 is correct.

Jon

Hello,

Look carefully at numbers 1 and 2

  1. The customized information is expressed as .
    Isn’t it in number 2?

So it’s suspicious

Thank you.

Hello,

What should be the result of the following command?

Thank you.

This is a documentation error. We will get this corrected.

Regards
Jon

You should be able to compare this with the working board. You want them to be the same.

Jon

Hello,

Can I compare the devkit module and the production module?

Thank you.

Yes exactly. You want the pin configuration to be the same on the production module for the DAP4 and AUD_MCLK as you have on the devkit module.

Jon

1 Like

Hello!

Apologies that this is taking so long. I have updated the pinmux for the eMMC Nano and created the attached dtbs. Can you copy these to the Linux_for_Tegra/kernel/dtb directory and reflash?

You should be able to use the following flashing command …

$ sudo ./flash.sh -k DTB jetson-nano-devkit-emmc mmcblk0p1

Jonnano.zip (88.4 KB)

1 Like

Hello,

I’ll try it. 👍

Thank you.

Hello,

When the speaker test command is executed, it cannot be executed at first, and then it is executed on the second attempt.
But there is no sound.

  1. We use the pcm3010 codec.
  2. Use the jetson nano production module (emmc).
  3. Is it necessary to enter the target module into recovery mode before executing the next command?
  4. The next command has a very short flashing time.
    When finished, it says “The [DTB] has been updated successfully.” If you check this command, is flashing complete?
  5. When I opened the zip file, there were two .dtb and a .patch file.
    Can you describe the files?
  6. Was there anything wrong with the process of making .dtsi file through excel file and copying dtb repeatedly?

===================================================================
speaker-test -D hw:tegrasndt210ref,0 -c 2 -r 48000 -F S32_LE -t sine -f 500

speaker-test 1.1.3

Playback device is hw:tegrasndt210ref,0
Stream parameters are 48000Hz, S32_LE, 2 channels
Sine wave rate is 500.0000Hz
Playback open error: -16,Device or resource busy
-desktop:~$ speaker-test -D hw:tegrasndt210ref,0 -c 2 -r 48000 -F S32_LE -t sine -f 500

speaker-test 1.1.3

Playback device is hw:tegrasndt210ref,0
Stream parameters are 48000Hz, S32_LE, 2 channels
Sine wave rate is 500.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 16 to 4096
Period size range from 16 to 2048
Using max buffer size 4096
Periods = 4
was set period_size = 1024
was set buffer_size = 4096
0 - Front Left
1 - Front Right
Time per period = 5.888059
0 - Front Left
1 - Front Right
Time per period = 5.973110
0 - Front Left
1 - Front Right
Time per period = 5.973264
0 - Front Left
1 - Front Right

Thank you.

Hello,

This is result in executing command “cat /proc/asound/cards”

cat /proc/asound/cards
0 [tegrahda ]: tegra-hda - tegra-hda
tegra-hda at 0x70038000 irq 82
1 [tegrasndt210ref]: tegra-snd-t210r - tegra-snd-t210ref-mobile-rt565x
tegra-snd-t210ref-mobile-rt565x

sudo grep “aud_mclk|dap4” /sys/kernel/debug/tegra_pinctrl_reg

[sudo] password for:
Bank: 1 Reg: 0x70003144 Val: 0x00000044 → dap4_fs_pj4
Bank: 1 Reg: 0x70003148 Val: 0x00000044 → dap4_din_pj5
Bank: 1 Reg: 0x7000314c Val: 0x00000004 → dap4_dout_pj6
Bank: 1 Reg: 0x70003150 Val: 0x00000044 → dap4_sclk_pj7
Bank: 1 Reg: 0x70003180 Val: 0x00000049 → aud_mclk_pbb0

Thank you.

Hello,

before reflashing :

after :

But,
There is no sound when I connect the earphones.

Thank you.

Hello!

The AUD_MCLK is still not configured.

  1. Yes it is necessary to place the target in recovery mode
  2. Yes it is short because we are only flashing one partition
  3. The DTBs file are DTBs I generated with the pinmux set to enable the I2S4 and AUD_MCLK. The patch file is the patch I generated to update the DT source and create these DTBs. Please note that I include two DTB files because I do not know which version you have. However, the flash script should flash the correct one.
  4. No there should be nothing wrong, but like you said the pinmux spreadsheet is out of date and we are working to fix this.

Can you send the output from the following commands …

$ cat /proc/device-tree/nvidia,dtsfilename
$ find /proc/device-tree/pinmux@700008d4/ -name aud_mclk_pbb0

Regards,
Jon

1 Like

Hello!

The above is actually updating the kernel DTB partition and we need to update the bootloader DTB partition. So please use the following command …

$ sudo ./flash.sh -k RP1 jetson-nano-devkit-emmc mmcblk0p1

Regards
Jon

1 Like

Hello,

I go to work in 3 hours
I’ll tell you after running this command.

Thank you.

Hello,

I’ve been using jetson-nano-emmc.conf.
‘sudo ./flash.sh -k RP1 jetson-nano-devkit-emmc mmcblk0p1’ is also Okay?

Thank you.

Hello,

cat /proc/device-tree/nvidia,dtsfilename
arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dts

find /proc/device-tree/pinmux@700008d4/ -name aud_mclk_pbb0
/proc/device-tree/pinmux@700008d4/common/aud_mclk_pbb0

speaker-test runs, but there is still no sound.

Thank you.

Hello,

I am well aware that @jonathanh has been sincerely supporting the audio codec (pcm3010). Maybe I am not following well.
However, from the standpoint of selling products to customers, the issue of audio support is important.
In this regard, I would like to know if there is a system that can receive technical support from Nvidia Korea or remote support from Nvidia.

Thank you.