Muxing DP1_AUX as I2C on Orin Nano Custom Board
Issue Overview
Users are experiencing difficulties when attempting to access an I2C peripheral connected to the Orin Nano module pins 98/100 (DP1_AUX_N & DP1_AUX_P) on a custom-based board. According to the pinmux configuration spreadsheet, these pins should support the alternate function I2C6 (Address map: 0x31b0000). However, users have been unable to successfully drive these pins using I2C commands. The issue appears to be related to the special nature of these pins and potentially requires specific changes in the device tree.
Possible Causes
-
Incorrect pin configuration: The DP1_AUX pins may not be properly configured for I2C functionality in the device tree or pinmux settings.
-
Display function interference: The display function associated with these pins might still be active, preventing their use as I2C.
-
Special pin handling: DP1_AUX pins may require additional setup or configuration beyond standard I2C pin muxing.
-
Device tree misconfiguration: The device tree may not correctly reflect the desired I2C configuration for these pins.
-
Hardware limitations: There might be hardware-specific limitations or requirements for using these pins as I2C on the custom board.
-
Software compatibility issues: The current software or driver implementation may not fully support the use of DP1_AUX pins as I2C on the Orin Nano platform.
Troubleshooting Steps, Solutions & Fixes
-
Verify pinmux configuration:
- Use the pinmux configuration spreadsheet to compare the settings before and after modifying the pins.
- Check if the changes are reflected correctly in the configuration.
-
Disable display function:
- Ensure that the display function associated with DP1_AUX pins is completely disabled.
- Check the device tree and board configuration files for any display-related settings that might interfere with I2C functionality.
-
Update device tree:
- Modify the device tree to explicitly configure DP1_AUX pins for I2C6 functionality.
- Add or modify the appropriate I2C6 node in the device tree, specifying the correct pin assignments.
-
Check I2C driver compatibility:
- Verify that the I2C driver in use supports the specific hardware configuration of the Orin Nano module.
- Consider updating to the latest driver version if available.
-
Investigate pin multiplexing:
- Research any specific requirements or limitations for multiplexing DP1_AUX pins on the Orin Nano platform.
- Consult NVIDIA documentation or support channels for platform-specific guidance.
-
Test with alternative I2C buses:
- If possible, try connecting the I2C peripheral to a different, known-working I2C bus on the Orin Nano module.
- Compare behavior and functionality to isolate whether the issue is specific to the DP1_AUX pins.
-
Examine board schematics:
- Review the custom board schematics to ensure proper connections and any necessary pull-up resistors are in place for I2C communication.
-
Use diagnostic tools:
- Employ I2C diagnostic tools like i2c-tools to scan the I2C bus and verify device detection.
- Example command:
i2cdetect -y <bus_number>
-
Monitor kernel logs:
- Check kernel logs for any error messages or warnings related to I2C or pin configuration.
- Use the
dmesg
command or examine/var/log/syslog
for relevant information.
-
Consult NVIDIA Developer Forums:
- Search for similar issues or post a detailed description of the problem, including your device tree modifications and pinmux settings.
- Provide information about your custom board and any specific requirements or constraints.
-
Consider alternative pin assignments:
- If possible, evaluate whether other available pins on the Orin Nano module could be used for I2C communication instead of DP1_AUX.
-
Verify software compatibility:
- Ensure that the operating system and software stack are fully compatible with the Orin Nano platform and support the desired I2C configuration.
Note: The pinmux configuration spreadsheet may not function properly with LibreOffice on Linux systems due to macro compatibility issues. Consider using alternative methods or tools to verify pinmux settings if this is a problem.