I am trying to connect a wiznet w5500 to the Jetson TX2 using the devkit carrier board. I am running JetPack 4.3.
What I did:
compiled w5100 and w5100-spi modules and they load correctly
changed pinmux to enable SPI, validated with loop back test on J21 connector of MISO and MOSI using spidev_test that it worked
tested the actual w5100 using spidev_test and saw that it respond something
Updated device tree to switch from spidev to w5500 see [1] for changes to default DTB
It looks like everything is setup correctly, upon boot the kernel loads w5500_spi module and the fails when trying to access the interrupt pin as specified by pinctrl-0:
[ 3.818848] w5100 spi3.0: could not find pctldev for node /gpio@2200000/eth1_pins, deferring probe
It tries it a bunch of times until it fails.
I tried digging into pinctrl code of the tegra and it means that it can’t find the pin controller for eth1_pins which is gpio@2200000 (tegra main gpio)
Any idea what is the issue? Apart from adding the pin in the gpio controller do I need to add it somewhere else?
I am using GPIO19 which is gpio395 in sysfs
Suppose the eth1_pins isn’t Tegra. It could be the driver define in others platform. You may need to check if this pin need it Jetson platform to modify/remove it.
I don’t understand how it relates to my issue. pinctrl-0 is a common property used in the device tree, there are many uses of it in the Jetson DTB and it should work out of the box.
Can you explain what is the issue with my definition that prevent its usage?
Could confirm np_pctldev or of_node_is_root in below statement?
if (!np_pctldev || of_node_is_root(np_pctldev)) {
dev_info(p->dev, "could not find pctldev for node %s, deferring probe\n",
np_config->full_name);
of_node_put(np_pctldev);
/* OK let's just assume this will appear later then */
return -EPROBE_DEFER;