I tried setting the GPIO9_MOTION_INT GPIO (AA.02) to a default state during the boot up in both tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg file in BCT and my dtbfile.
In BCT file, I changed the pinmux setting to set the gpio as output-low, but I see no chnages after flashing it to the SOM. The pin was still in pull-up state.
This GPIO gets configured when I export and change it after bootup.
These changes works good when tried with other GPIOs. Only this GPIO is not configurable. Can you suggest a different method on how to configure this GPIO’s default state as output-low.?
I saw the topic referred by you. The topic discussed about the inability of the pin to set as open-drain configuration. But, our requirement is to pull down the GPIO rather than open-drain. As we mentioned in this thread, we’ve tried the above two methods and it doesn’t help us. Is there any other way to pull down the gpio(can_gpio2_paa2).
it’s due to GPIO9/MOTION_INT on Jetson-TX2 have LEVEL TRANSLATION on module, they’re unidirection.
hence, GPIO9/MOTION_INT(CAN_GPIO2_PAA2) is input only, and have on module board pull-up, so set SOC internal PD won’t work.
we are updating documents (Jetson-TX2 pinmux spreadsheet) to cover this, sorry for confusion.
I checked the Jetson_TX2_Module_Datasheet and what you are saying is correct. But, I use similar pins GPIO19/AUD_RST and GPIO8/ALS_PROX_INT along with the GPIO9/MOTION_INT. Both the GPIO19 and GPIO8 are mentioned as input pins and I was able to configure them as output with pull-down. I don’t understand why only GPIO9/MOTION_INT is not able to be configured as output-low. Can you help me out here please.
it’s due to hardware design, GPIO9/MOTION_INT is not able to configure as normal GPIO.
you may check Jetson-TX2 schematic to check the level shifters for more details.
thanks
G14/CAN_GPIO2 (GPIO AA.02) is fully configurable as either an output or an input. There is a really strong pull-up (or other logic) on the SoM. The pull-up is strong enough that you cannot override the state by just using the SoC internal pull-down configuration on the pin. However, if you just need it to be in the low state (0) all you need to do is actively drive it low as an output low GPIO. This can be done using the BCT, the kernel DT, or in user space after the system is up.
Here is the patch file that will make G14/CAN_GPIO2 be active low immediately after the MB1 executes:
Note, make sure you are patching/changing the proper .cfg file. You can check that things are working properly by reading the appropriate memory address once you are fully booted:
Note also that with this configuration properly set the pin will still glitch high for ~250 msec while the BootROM is running, but before the MB1 has a chance to apply the MB1_BCT settings.
Is the uni-directional Level Translation you mention actually on the TX2 module itself, or is it on the development carrier board? I noticed that you mentioned that it is on the module, but then referenced the schematics to the dev board.
If I am not using the dev carrier board, is there any problem with making MOTION_INT an output?