About using PCM3010 with jetson NANO

Hello,

As you guided me, I made a .dtsi file from an excel file
dtb file
I flashed it.

As you checked through dmesg
I think pinmux is configured correctly.

Thank you.

Hello,

In the same custom board, the devkit module (sdcard) configured using jetson-io.py worked fine.

Thank you.

Hello!

Yes I understand that. What does the following show on the eMMC board …

$ sudo grep "aud_mclk\|dap4" /sys/kernel/debug/tegra_pinctrl_reg

Jon

1 Like

Hello,

What time is it there?
This is 7am.

I’ll test it and let you know.

Thank you.

Hello,

I tested both 0000, 0002 and copied them to l4t/kernerl/dtb like this:

Could there be a problem doing this?

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

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

Thank you.

Hello,


The excel file was modified as above to create a dtsi file.

I copied and flashed the dtb file following the Updating the Bootloader Pinmux guide.

The result is like this

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-0002-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.

What am I supposed to do?

The pinmux change excel file in the download center is a little old, but please check if there is any update.

It’s embarrassing to spend too much time on this issue right now. Please.

Thank you.

Hello!

I am sorry that this is taking so much time, but it is not easy to follow what you are saying. In the above, I can clearly see two issues …

  1. The sound card is failing to probe.
  2. The AUD_MCLK pinmux is not configured correctly.

I will check on the pinmux spreadsheet.

Regards,
Jon

1 Like

Hello,

The manual says to copy 0000.
But I thought 0002 was correct, and Jonathanh thought so, but this seems to be the problem.

Could you please check?

Thank you.

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.