Jetson Nano devkit works with resistive 4" Waveshare touchscreen - success story

Hi all,

after several days of struggling I finally have Jetson Nano devkit working with XPT2046 based Waveshare 4inch HDMI LCD (resistive touchscreen, SKU 12030). More, there is no need a single small solder!

Prerequisites:

Steps from scratch (a bit excessive, omit unneeded steps at your own):

  1. Plug the display onto the J41 header, starting from pin 1. Thank you Nvidia guys who made it compatible with RasPi!
  2. Connect Jetson and display with HDMI cable.
  3. Falsh a 32+Gb SD card with balenaEtcher as described in Jetson Nano quick start. (I had to unzip sd_blob_b01.img from jetson-nano-developer-kit-sd-card-image.zip first), insert the card into Nano
  4. Power up the board. At this point the screen will show Ubuntu setup. Follow the wizard, reboot as needed. Set up networking for future downloads.

apt update && apt upgrade

  1. git clone GitHub - JetsonHacksNano/buildKernelAndModules: Build the Linux Kernel and Modules on board the NVIDIA Jetson Nano Developer Kit

cd buildKernelAndModules

  1. Edit getKernelSources.sh: set L4T_TARGET=“32.4.3 (as of Aug 2020)

./getKernelSources.sh

As expected, this will download kernel sources :)
9.

apt install libncurses-dev && ./editConfig.sh

In Device drivers - Input device suppiort - Touchscreens select “ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens” and mark it with asterisk (driver built into kernel). Exit, exit, exit, exit, yes. Way too boring :)
10.

./makeKernel.sh

  1. In the case of error-free build,

./copyImage.sh

— At this point we have a new kernel built abd installed in system. —
— Now let’s update device tree —
12. (This step is best of all done over ssh, in extended window)

sudo /opt/nvidia/jetson-io/jetson-io.py
Configure 40-pin expansion header
Mark “spi1” with asterisk
Back
Save and exit without rebooting
At this step copy resulting file location. It will be something like /boot/tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb

  1. Decompile device tree:

dtc -O dts -o tegra.dts /boot/tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb

  1. Replace
           spi@1 {
                    compatible = "spidev";
                    reg = <0x1>;
                    spi-max-frequency = <0x1f78a40>;

                    controller-data {
                            nvidia,enable-hw-based-cs;
                            nvidia,rx-clk-tap-delay = <0x7>;
                    };
            };

with

          spi@1 {
                compatible = "ti,ads7846";
                reg = <0x1>; // CS1 of SPI
                spi-max-frequency = <0x7a120>;
                nvidia,enable-hw-based-cs;
                nvidia,rx-clk-tap-delay = <0x7>;
                interrupt-parent = <0x56>; // phandle of "gpio@6000d000"
                interrupts = <0x0d 0x1>; // pin 22 is gpio13, IRQ13
                pendown-gpio = <0x56 0x0d 0x0>; 
                vcc-supply = <0x47>; // phandle of "regulator@2"
                //ti,swap-xy = <0x1>; // uncomment to swap axes 
                ti,x-min = [00 00];
                ti,x-max = [1f 40];
                ti,y-min = [00 00];
                ti,y-max = [12 c0];
                ti,x-plate-ohms = [00 28];
                ti,pressure-max = [00 ff];
                wakeup-source;
                controller-data {
                    nvidia,cs-setup-clk-count = <0x1e>;
                    nvidia,cs-hold-clk-count = <0x1e>;
                    nvidia,rx-clk-tap-delay = <0x1f>;
                    nvidia,tx-clk-tap-delay = <0x0>;
                };
            };
  1. Build device tree blob then copy it into /boot. This is where you will need the loooong previously copied file name:

dtc -O dtb tegra.dts -o tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb
cp /boot/tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb /boot/tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb.orig
cp tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb /boot

apt install xinput_calibrator

  1. Reboot.
  2. (from screen and keyboard, use Ctrl+Alt+T to open terminal)

xinput_calibrator

Enjoy :)

V_20200831_180430

4 Likes

Thanks for your kind share!

1 Like

Hello.
Thank you for letting me know in detail how to use the touchscreen.
I am trying to use a 3.5inch HDMI LCD, 480x320, IPS touchscreen on a jetson xavier nx.

It was the same as the method you informed, and spi1 was modified as follows to suit Jetson Xavier NX.
spi@1 {
compatible = “ti,ads7846”;
reg = <0x1>; // CS1 of SPI
spi-max-frequency = <0x7a120>;
nvidia,enable-hw-based-cs;
nvidia,rx-clk-tap-delay = <0x10>;
interrupt-parent = <0x13>; // phandle of “gpio@2200000”
interrupts = <0x42 0x1>;
pendown-gpio = <0x13 0x42 0x0>;
vcc-supply = <0x27>; // phandle of “regulator@101”
//ti,swap-xy = <0x1>; // uncomment to swap axes
ti,x-min = [00 00];
ti,x-max = [1f 40];
ti,y-min = [00 00];
ti,y-max = [12 c0];
ti,x-plate-ohms = [00 28];
ti,pressure-max = [00 ff];
wakeup-source;
controller-data {
nvidia,cs-setup-clk-count = <0x1e>;
nvidia,cs-hold-clk-count = <0x1e>;
nvidia,rx-clk-tap-delay = <0x1f>;
nvidia,tx-clk-tap-delay = <0x0>;
};
};

But When I try ‘dmesg | grep spi’, the following error message appears.
Do you know anything about this error message?


Thank you.

One thing I can expect is wrong interrupt. In this case you receive an interrupt from a different device (e.g. USB or LAN), which results in unexpected transfer start and subsequent failure (while device is seen on SPI). How did you choose settings for your “interrupts” line?

The changes I made are as follows.

nvidia,rx-clk-tap-delay = <0x7>; → nvidia,rx-clk-tap-delay = <0x10>;
→ In xavier NX, the value of nvidia,rx-clk-tap-delay is 0x10, so it has been modified to 0x10.

interrupt-parent = <0x56>; // phandle of “gpio@6000d000” → interrupt-parent = <0x13>;
→ Modified to phandle of gpio@2200000.

interrupts = <0x0d 0x1>; // pin 22 is gpio13, IRQ13 → interrupts = <0x42 0x1>;
→ I didn’t understand about “// pin 22 is gpio13, IRQ13” (I’m not sure what value to put in jetson xavier NX).
So I checked IRQ13 of jetson nano.
The jetson nano’s IRQ13 was 6000c800.actmon.
As a result of checking the interrupt of jetson xavier NX, the IRQ corresponding to actmon in jetson xavier NX was 66.
So I changed 0x0d to 0x42.

pendown-gpio = <0x56 0x0d 0x0>; → pendown-gpio = <0x13 0x42 0x0>;
→ 0x13 is thought to be’phandle of gpio@2200000’ and 0x42 is’interrupt’, so I modified it.

vcc-supply = <0x47>; → vcc-supply = <0x27>;
→ Because the name of “regulator@2” is vdd-3v3-sys, I thought that “regulator@101” is suitable for jetson xaiver nx. (The name of “regulator@101” is vdd-3v3-cvb)

jetson nano → pin 22 is gpio13,
jetson xavier nx → pin22 is gpio481

Can I modify the following in jetson xavier nx?
interrupts = <0x01E1 0x1>
pendown-gpio = <0x13 0x01E1 0x0>;

I need to look into datasheets, but I’m out of office these days. Please wait
till next week - or just try :)

jetson nano ->> pin 22 is gpio13,
jetson xavier nx ->> pin22 is gpio481

_vNDF> Can I modify the following in jetson xavier nx?
_vNDF> interrupts = <0x01E1 0x1>
_vNDF> pendown-gpio = <0x13 0x01E1 0x0>;

_vNDF> —
_vNDF> Visit
_vNDF> Topic

_vNDF> or reply to this email to respond.

_vNDF> To unsubscribe from these emails, click
_vNDF> here
.

Yes, I will wait until next week. please check.
This is my progress so far.

I tried by changing below and the touchscreen device does not get caught.
Interrupt = <0x01E1 0x1>
pendown-gpio = <0x13 0x01E1 0x0>;

So I tried to modify it as below.
But I still get spi error.

Interrupt = <0xC1 0x1>
pendown-gpio = <0x13 0xC1 0x0>;
image

This is the result of checking sudo /sys/kernel/debug/gpio.

I am using a touchscreen on jetson nano.
The screen was rotated 90 degrees like the video you showed.
(setting - Display - clockwise)
And’ti, swap-xy = <0x1>; // Uncomment the comment for axis replacement.
However, the y-axis is touched in reverse (the x-axis is normally touched)

What should I do in order for the touch to proceed normally as in your video?

Did you use xinput_calibrator? It should solve the issue. You will need to try both combinations: with and without “’ti, swap-xy = <0x1>;”

Just stepped on the same rake and understood your possible problems. Sorry for late reply.
I used “touchcalib” script found somewhere:

device=$(xinput_calibrator --list)
device=$(sed -n ‘s/.Device\s"(.)".*/\1/p’ <<< $device)

#reset xinput matrix
xinput set-prop “$device” ‘Coordinate Transformation Matrix’ 1 0 0 0 1 0 0 0 1

out=$(xinput_calibrator)

device_name=$(sed -n ‘s/.MatchProduct"\s"([0-9]).*/\1/p’ <<< $out)

wtot=$(sed -n ‘s/.max_x=([0-9])./\1/p’ <<< $out)
htot=$(sed -n 's/.max_y=([0-9]).
/\1/p’ <<< $out)

minx=$(sed -n ‘s/.MinX"\s"([0-9])./\1/p’ <<< $out)
maxx=$(sed -n 's/.MaxX"\s"([0-9]).
/\1/p’ <<< $out)
miny=$(sed -n ‘s/.MinY"\s"([0-9])./\1/p’ <<< $out)
maxy=$(sed -n 's/.MaxY"\s"([0-9]).
/\1/p’ <<< $out)

wtouch=$(bc <<< “$maxx - $minx”)
htouch=$(bc <<< “$maxy - $miny”)

c0=$(bc -l <<< “$wtot / $wtouch”)
c1=$(bc -l <<< “-$minx / $wtouch”)
c2=$(bc -l <<< “$htot / $htouch”)
c3=$(bc -l <<< “-$miny / $htouch”)

tf_matrix=“$c0 0 $c1 0 $c2 $c3 0 0 1”

#alter the setting for now
xinput set-prop “$device” ‘Coordinate Transformation Matrix’ $tf_matrix

echo “To make this permanent, save the following content under ‘/etc/X11/xorg.conf.d/98-screen-calibration.conf’ or ‘/usr/share/X11/xorg.conf.d/98-screen-calibration.conf’”
echo “Section "InputClass"”
echo " Identifier "calibration""
echo " MatchProduct "$device""
echo " Option "TransformationMatrix" "$tf_matrix""
echo “EndSection”

After running this script I created /etc/X11/xorg.conf.d/98-screen-calibration.conf:

Section “InputClass”
Identifier “calibration”
MatchProduct “ADS7846 Touchscreen”
Option “SwapXY” “1”
Option “TransformationMatrix” “-2.17789372237546110132 0 1.04380047190189757734 0 1.31869126909068957884 -.07280117512123468217 0 0 1”
EndSection

My /etc/X11/xorg.conf is:

# Copyright (c) 2011-2013 NVIDIA CORPORATION. All Rights Reserved.

#
# This is the minimal configuration necessary to use the Tegra driver.
# Please refer to the xorg.conf man page for more configuration
# options provided by the X server, including display-related options
# provided by RandR 1.2 and higher.

# Disable extensions not useful on Tegra.
Section “Module”
Disable “dri”
SubSection “extmod”
Option “omit xfree86-dga”
EndSubSection
EndSection

Section “Device”
Identifier “Tegra0”
Driver “nvidia”
# Allow X server to be started even if no display devices are connected.
Option “AllowEmptyInitialConfiguration” “true”
Option “RandRRotation” “on”
Option “Rotate” “left”
EndSection

Section “Screen”
Identifier “Screen0”
Monitor “Monitor0”
SubSection “Display”
Viewport 0 0
Modes “480x800”
Depth 24
Virtual 480 800
Option “Rotate” “left”
EndSubSection
EndSection

Hope this helps.

One more issue from November 2020: actual L4T release is 32.4.4, and the sequence above did not work out for me. Meanwhile start with L4T32.4.3 image and do not run “apt upgrade” in the step 5 above.

Please comment if you made the stuff work on 32.4.4.

Hi, GrayDaemon
I am using a 3.5 inch HDMI LCD
However, the icon shakes when touched.
When I watch your video, the icon doesn’t seem to shake.
So I bought and tried a 4 inch HDMI LCD, but the results were the same.
Are you good at touch? Is there any problem with the icon shaking?
(The video is connected to the Raspberry Pi, but the same symptoms appear when connected to the Jetson Nano and run)
3.5LCD problem.zip (3.9 MB)

+) Do you know how to do it in L4T 32.4.4?
I initially tried it on L4T 32.4.4, but after failure it worked on L4T 32.4.3.

No, my icons don’t shake.
I can expect this due to screen setup and calibration. If you use touchcalib script above your transformation matrix coefficients must be relatively small, from 0.001 to 2-3. If you have values around 100 or even 1000 it leads to extreme sensivity of screen and any small EMI will cause sensor to produce shake or move.I this case you need to try the trick above with “ti, swap-xy = <0x1>;” and calibrate again, second calibration will probably give you small (correct) coefficients. Be sure to decompile, modify and recompile your existing DTB. After decompilation the string ’ti, swap-xy = <0x1>;’ will be missing from code, you need to add it manually.

Also check if your workplace has excessive EMI or power supply is not stable enough. This can also affect the screen behaviour.

Unfortunately, I don’t have enough time now to make this thing work on 32.4.4, in my test ADS7846 could not be probed. Need to dive into driver source code to figure out the issue. Last time it took few workdays to fix.

device=(xinput_calibrator --list) device=(sed -n ‘s/. Device\s"(. )".*/\1/p’ <<< $device)

#reset xinput matrix
xinput set-prop “$device” ‘Coordinate Transformation Matrix’ 1 0 0 0 1 0 0 0 1

out=$(xinput_calibrator)

device_name=$(sed -n ‘s/. MatchProduct"\s"([0-9] ).*/\1/p’ <<< $out)

wtot=$(sed -n ‘s/. max_x=([0-9] ). /\1/p’ <<< out) htot=(sed -n 's/. max_y=([0-9] ). /\1/p’ <<< $out)

minx=$(sed -n ‘s/. MinX"\s"([0-9] ). /\1/p’ <<< out) maxx=(sed -n 's/. MaxX"\s"([0-9] ). /\1/p’ <<< out) miny=(sed -n ‘s/. MinY"\s"([0-9] ). /\1/p’ <<< out) maxy=(sed -n 's/. MaxY"\s"([0-9] ). /\1/p’ <<< $out)

wtouch=$(bc <<< “$maxx - minx”) htouch=(bc <<< “$maxy - $miny”)

c0=$(bc -l <<< “$wtot / wtouch”) c1=(bc -l <<< “-$minx / wtouch”) c2=(bc -l <<< “$htot / htouch”) c3=(bc -l <<< “-$miny / $htouch”)

tf_matrix=“$c0 0 $c1 0 $c2 $c3 0 0 1”

#alter the setting for now
xinput set-prop “$device” ‘Coordinate Transformation Matrix’ $tf_matrix

echo “To make this permanent, save the following content under ‘/etc/X11/xorg.conf.d/98->screen-calibration.conf’ or ‘/usr/share/X11/xorg.conf.d/98-screen-calibration.conf’”
echo “Section “InputClass””
echo " Identifier “calibration”"
echo " MatchProduct “$device”"
echo " Option “TransformationMatrix” “$tf_matrix”"
echo “EndSection”

How do I use the touchcalib script? (I am not sure how to use it)

Put this code into a file, make this file runnable, run it. It will load xinput_calibrator, touch screen 4 times as written there and touchcalib will show the transformation matrix and instructions to use it. Insert this matrix into /etc/X11/xorg.conf.d/98-screen-calibration.conf as written above.

Do I need to edit’/etc/X11/xorg.conf’ as well?
I created /etc/X11/xorg.conf.d/98-screen-calibration.conf after running touchclib.
But it won’t boot.

You can check /var/log/Xorg.0.log and other logs first. Use ssh to access.them.

I did all the steps until:

Paso 13.Decompile device tree:

dtc -O dts -o tegra.dts/boot/kernel_tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb

It gets stuck there. Any idea?

Sorry, I get all this long message. And I am stuck here.

print@print-desktop:~$ dtc -O dts -o tegra.dts /boot/kernel_tegra210-p3448-0000-p3449-0000-b00-user-custom.dtb
tegra.dts: Warning (unit_address_vs_reg): Node /clock has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /reserved-memory/iram-carveout has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /reserved-memory/ramoops_carveout has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /reserved-memory/fb0_carveout has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /reserved-memory/fb1_carveout has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /iommu has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /bpmp has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /mc has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /interrupt-controller has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/adsp has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub/ope@702d8000/peq@702d8100 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub/ope@702d8000/mbdrc@702d8200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub/ope@702d8400/peq@702d8500 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub/ope@702d8400/mbdrc@702d8600 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /aconnect@702c0000/ahub/mvc@0x702da200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /rtc has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /usb_cd has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/vi has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/dsi has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/vic has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvenc has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/tsec has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/tsecb has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvdec has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvjpg has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/sor has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/sor1 has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/dpaux has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/dpaux1 has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi/channel@0/ports/port@0/endpoint@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi/channel@0/ports/port@1/endpoint@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi/channel@1/ports/port@2/endpoint@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi/channel@1/ports/port@3/endpoint@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/csi_base/csi_chan0/ports/csi_chan0_port0/endpoint@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/csi_base/csi_chan0/ports/csi_chan0_port1/endpoint@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/csi_base/csi_chan1/ports/csi_chan1_port0/endpoint@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /host1x/csi_base/csi_chan1/ports/csi_chan1_port1/endpoint@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /gpu has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /mipical has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000c400/iqs263@44 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000c500/battery-charger@6b has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000d000/max77620@3c/pinmux@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000d000/max77620@3c/fps/fps0 has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000d000/max77620@3c/fps/fps1 has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /i2c@7000d000/max77620@3c/fps/fps2 has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/fuse_war@fuse_rev_0_1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/fuse_war@fuse_rev_2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/throttle@critical has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/throttle@heavy has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/throttle_dev@cpu_high has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /soctherm@0x700E2000/throttle_dev@gpu_high has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /tegra_cec has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /ptm has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /mselect has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /adma@702e2000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/admaif@0x702d0000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/sfc@702d2000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/sfc@702d2200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/sfc@702d2400 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/sfc@702d2600 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/spkprot@702d8c00 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/amixer@702dbb00 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/i2s@702d1000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/i2s@702d1100 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/i2s@702d1200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/i2s@702d1300 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/i2s@702d1400 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/amx@702d3000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/amx@702d3100 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/adx@702d3800 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/adx@702d3900 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/dmic@702d4000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/dmic@702d4100 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/dmic@702d4200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7100 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7300 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7400 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/afc@702d7500 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/mvc@702da000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/mvc@702da200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/iqc@702de000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/iqc@702de200 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/ope@702d8000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /ahub/ope@702d8400 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /sata@70020000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csia has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csib has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csic has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csid has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csie has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /camera-pcl/dpd/csif has a reg or ranges property, but no unit name
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@0/emc-table@204000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@0/emc-table@1600000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@0/emc-table-derated@204000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@0/emc-table-derated@1600000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@1/emc-table@204000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@1/emc-table@1600000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@1/emc-table-derated@204000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /external-memory-controller@7001b000/emc-table@1/emc-table-derated@1600000 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /lens_imx219@RBPCV2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0/override@0/overlay/channel@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0/override@0/overlay/channel@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@1/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@2/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@2/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@2/override@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@3/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@3/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@4 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@4/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@4/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@4/override@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@5 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@5/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@5/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@5/override@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@6 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@6/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@7 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@7/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@8 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@8/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@4 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@5 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@6 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@7 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@8 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@9 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@10 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@11 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@12 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@13 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@14 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@15 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@9/override@16 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@4 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@5 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@6 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@7 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@8 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@9 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@10 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@11 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@12 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@13 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@14 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@15 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@16 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@17 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@18 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@19 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@20 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@21 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@22 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@23 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@24 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@25 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@26 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@27 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@28 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@29 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@30 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@10/override@31 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@12 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@12/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment@12/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@13 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@13/override@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@13/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@13/override@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@13/override@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@4 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@6 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@7 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@8 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@9 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@10 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@11 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/override@12 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1/overrides@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2/overrides@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2/override@1 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-pins@3 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-pins@3/overrides@0 has a unit name, but no reg property
tegra.dts: Warning (unit_address_vs_reg): Node /dfll-max77621@70110000 has a unit name, but no reg property
tegra.dts: Warning (pci_bridge): Node /pcie@1003000/pci@1,0 missing bus-range for PCI bridge
tegra.dts: Warning (pci_bridge): Node /pcie@1003000/pci@2,0 missing bus-range for PCI bridge
tegra.dts: Warning (unit_address_format): Failed prerequisite ‘pci_bridge’
tegra.dts: Warning (pci_device_reg): Failed prerequisite ‘pci_bridge’
tegra.dts: Warning (pci_device_bus_num): Failed prerequisite ‘pci_bridge’
tegra.dts: Warning (simple_bus_reg): Node /host1x/vi simple-bus unit address format error, expected “54080000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/vi/ports missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /host1x/vi-bypass missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /host1x/dsi simple-bus unit address format error, expected “54300000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/vic simple-bus unit address format error, expected “54340000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/nvenc simple-bus unit address format error, expected “544c0000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/tsec simple-bus unit address format error, expected “54500000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/tsecb simple-bus unit address format error, expected “54100000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/nvdec simple-bus unit address format error, expected “54480000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/nvjpg simple-bus unit address format error, expected “54380000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/sor simple-bus unit address format error, expected “54540000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/sor1 simple-bus unit address format error, expected “54580000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/dpaux simple-bus unit address format error, expected “545c0000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/dpaux1 simple-bus unit address format error, expected “54040000”
tegra.dts: Warning (simple_bus_reg): Node /host1x/nvcsi missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /host1x/vi_base missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /host1x/csi_base missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /extcon/disp-state missing or empty reg/ranges property
tegra.dts: Warning (simple_bus_reg): Node /regulators/regulator@10 simple-bus unit address format error, expected “a”
tegra.dts: Warning (simple_bus_reg): Node /mods-simple-bus/mods-clocks missing or empty reg/ranges property
tegra.dts: Warning (gpios_property): Missing property ‘#gpio-cells’ in node /thermal-zones/AO-therm/trips/gpu-scaling5 or bad phandle (referred from /plugin-manager/fragment-e2614-pins@3/overrides@0/overlay:gpios[0])
tegra.dts: Warning (gpios_property): property ‘gpio’ size (15) is invalid, expected multiple of 4 in node /symbols