In .config of kernel_output, all PPS related variables are set like this:
#
# PPS support
#
CONFIG_PPS=y
CONFIG_PPS_DEBUG=y
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=y
CONFIG_PPS_CLIENT_GPIO=y
#
# PPS generators support
#
Compiled the kernel:
(CROSS_COMPILE is set in .bashrc)
make ARCH=arm64 LOCALVERSION=-tegra O=…/kernel_out -j8
Copied Image and dtbs from kernel_out to JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_tegra/kernel
(I’ve also decompiled tegra186-quill-p3310-1000-c03-00-base.dtb and I can assert that the device is there.)
Flashed Tx2 with sudo ./flash -r jetson-xavier-nx-devkit-tx2-nx mmcblk0p1
When I boot my tx2 I’ve tried to:
ls /dev/pps*, which yield no result
dmesg | grep pps; which shows:
Also sudo cat /sys/kernel/debug/gpio does not show any pps gpio.
I am very likely to be doing something wrong, since this appears to be a very straight forward procedure.
Please anyone knows anything that might help?
Additional info. It is a TX2 NX, forgot to mension.
Also, we’ve tried adding the device in (the same way as i mentioned in the post) /sources/kernel/kernel-4.9/…/…/hardware/nvidia/soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi
but when we try to compile the changes we get an error saying it is unable to parse input tree. Syntax is correct, as far as we can tell, so the parsing error must be something we are not aware of.
note, TX2 NX is using different device tree than TX2 DevKit.
you should examine tegra186-p3636-0001-p3509-0000-a01.dtb to confirm you’ve all changes included.
I have examined the file you mentioned and I am not seeing any changes, so I am doing something wrong here.
Would you mind giving me the name of the file that I need to add the device to? I previously added the device to sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-common.dtsi, then fully compiled the kernel and I’m not able to see any changes in the file you mentioned.
Do I need to edit a different file? Do i need to then compile the dtsi into a dtb and copy it manually to somewhere else before compiling the kernel? Or (if that’s reasonable to ask) would you mind giving me the steps of how I should edit the device trees and compile them in order to make that change?
to /sources/hardware/nvidia/soc/t18x/kernel-dts/tegra186-soc/tegra186-soc-base.dtsi
But when I try to compile i get a “FATAL ERROR: Unable to parse input tree”.
it looks you’re having incorrect definition here.
please have GPIO pin definition as following, i.e. gpios = <&tegra_main_gpio TEGRA194_MAIN_GPIO(J, 4) GPIO_ACTIVE_HIGH>;
I had to refer to this post GPIO doesn't work? to find where the defines were. Now I know which ones I am able to use. I can only assume that the errors parsing the tree were due to invalid values and not due to some syntax error, per say.
Thank you for your answer. Problem is solved afaik.