Hi! The issue is resolved, though it was not as straight-forward as expected. Helpful resources include “How to enable SPI2 interface” and “SPI1 not work on Xavier”.
I used the pinmux spreadsheet to enable the SPI2 pins of the camera connector and then generated appropriate DTSI files as explained here. Flashing the device with the newly generated files was easy enough, though I also had to add something to the kernel device tree files on the Jetson platform itself to make /dev/spidev1.0 show up. I did the following on the Jetson platform:
% I entered the dtb boot directory
cd /boot/dtb
% Converted the kernel dtb file to dts to make it human-readable
sudo dtc -I dtb -O dts -o extracted_proc.dts kernel_tegra234-p3701-0000-p3737-0000.dtb
% Open extracted_proc.dts in your favorite editor
sudo nano extracted_proc.dts
% Use STRG+W (in case of nano) to search for “spi@c260000”
% 1. Change the status from “disabled” to “okay”
% 2. Add the following code after the “prod-settings”:
spi@0 {
compatible = "tegra-spidev";
reg = <0x00>;
spi-max-frequency = <0x2faf080>;
controller-data {
nvidia,enable-hw-based-cs;
nvidia,rx-clk-tap-delay = <0x10>;
nvidia,tx-clk-tap-delay = <0x00>;
};
};
% After editing and saving the file, I converted it back to a .dtb file …
sudo dtc -I dts -O dtb -o kernel_tegra234-p3701-0000-p3737-0000.dtb extracted_proc.dts
% … and applied it
sudo dd if=kernel_tegra234-p3701-0000-p3737-0000.dtb of=/dev/mmcblk0p3
% Then I restarted the device
sudo reboot now
% Which allowed me to check whether the status was set to “okay”
sudo cat /proc/device-tree/spi@c260000/status
% Further, spidev1.0 was now present under /dev/
sudo modprobe spidev && ls -l /dev/ | grep “spidev1.0”
Note: It’s also possible to change the SPI2 pin configurations during runtime, using devmem, but the changes will be lost upon reboot, so I suppose flashing the device is required for a permanent change of the SPI2 pins.
So if anyone has a similar problem in the future, this is how I did it. SPI communication is working flawlessly now.
:-)