display@13800000 {
/* os_gpio_hotplug_a is used for hotplug */
os_gpio_hotplug_a = <&gpio TEGRA234_MAIN_GPIO(M, 0) GPIO_ACTIVE_HIGH>;
status = "okay";
};
As I don’t need the display, I disabled that node: (status=“disabled”). However, after re-compiling and updating the DT, the GPIO owner is still “kernel”.
On JP5, the GPIO is free to be used.
Is there something else that is defining the owner? I’m curious because, usually if a driver owns the GPIO we see the selected gpio name instead of just “kernel”, for example:
I am not sure how you updated the device tree. Everything related to display must go with full reflash because there is another DCE firmware to handle display request. If you don’t do full reflash, then DCE side won’t get updated.
Thank you for your answer! However, I tried reflashing the board and I still see the same problem.
I already tried disabling the nodes related to the display from the device-tree: I removed the display@13800000 and dce@d800000 nodes from the device-tree. I also removed the tegra234-dcb-p3737-0000-p3701-0000.dtsi include.
Do you think am I missing something?
I still see the resource being used by “kernel” and I noticed some others gpios are also used by kernel:
line 56: "PI.05" kernel input active-high [used]
line 76: "PM.00" kernel input active-high [used]
line 114: "PX.00" kernel input active-high [used]
line 115: "PX.01" kernel input active-high [used]
I checked that on JP5, all of those gpios are unused. So, it looks like until JP6, this kernel owner appears.
Is there a way to know which controls these resources when they are labeled as “kernel”?
I would like to track the right owner of the gpio to disable it and be able to control it myself.
Well, according to the log from the sdkmanager when I flashed, the board name is “jetson-orin-nano-devkit”. So, checking the jetson-orin-nano-devkit.conf, I just see one overlay:
I also tried disabling the much services that I could, leaving just these:
nvidia@ubuntu:~$ systemctl --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
dbus.service loaded active running D-Bus System Message Bus
rsyslog.service loaded active running System Logging Service
ssh.service loaded active running OpenBSD Secure Shell server
systemd-journald.service loaded active running Journal Service
I’m wondering if this kernel owning is defined by a binary file used at bootime or something different than a device-tree or kernel driver.
gpioset --mode=wait `gpiofind "PM.00"`=0
gpioset: error setting the GPIO line values: Invalid argument
That didn’t happend for example PM.01, which is not used:
gpioset --mode=wait `gpiofind "PM.01"`=0
# No error, it hangs
What’s the point of rebooting after doing an rmmod, if after rebooting the board, the driver will be automatically loaded again? I tried removing the .ko files from the /lib directory to avoid the loading at all and I still seeing the problem. I also checked that the modules are not loaded at all with my first DTB changes removing the display nodes.
I already checked that, and it’s weird because the state of that is free. However gpioinfo says that is busy, so there’s a contradiction: