Project

General

Profile

Linux Kernel Setup Pinmux

Using TI SysConfig Tool

The PinMux Tool helps you choose a mux configuration for your system once you've specified the peripheral signals your system requires. The tool will automatically choose pins based on your requirements - you do not need to manually try multiple configurations or resolve conflicts. Once determined, the tool can either generate source code that configures the device at runtime, or a summary file showing the configuration.

  1. Open TI's Cloud Tools
    You'll need to log in or create a TI account
    Note: There is an offline pinmux tool that works but TI doesn't recommend it. http://www.ti.com/tool/PINMUXTOOL
  2. Open the SysConfig Tool
  3. Click "BROWSE" under the Open an Existing Design
  4. The following link explains how to configure pinmux for the devices you require.
    https://software-dl.ti.com/ccs/esd/pinmux/pinmux_user_guide.html
    Note: There are a few interfaces that are reserved for the SOM, these should not be changed. If you need help, feel free to create a post on the forum.
  5. After you are done, in the Generated Files section download the devicetree.dtsi file. This can be accomplished by clicking the save icon next to the file.
  6. Open your baseboard device tree file, See arch/arm64/boot/dts/ti/k3-am62x-mitysom-devkit.dts file for example.
  7. Split up pinmuxes by devices and put them in either the &main_pmx0 node (AM62x_IOPAD entries) or &mcu_pmx0 (AM62X_MCU_IOPAD entries).
  8. Compile and Commit your changes
    Note: The majority of existing mux entries have added notes such as what net name they are connected to on the devkit and if there are pullups. You may want to preserve or update these comments for your design.

Pinmux files

mitysom_am62_devkit_pinmux.pinmux - Pinmux for development kit + SOM
mitysom_am62_som_recommended.pinmux - Recommended pinmux includes SOM pinmux plus some expected/recommended pinmux defaults
mitysom_am62_som_minimum.pinmux - Pinmux contains only pins that are internal to SOM and fixed pinmuxes and should be considered a blank starting place. Only recommended if really struggling to get all the pinmuxes you want.

Pinmux availability

Leave SOM reserved pinmuxed in the tool so it doesn't try to use those pins for other functions. They should already be assigned and locked.

  • DDRSS - SOM reserved
  • I2C0 - SOM reserved
  • MCU_OSC - SOM reserved
  • MMC0 - SOM reserved for eMMC, leave pinmuxed
  • OSPI - SOM reserved for OSPI flash, leave pinmuxed
  • UART0 DBG - ARM console (changing this is not recommended, makes bring up much harder)
  • MCU_UART0 - Default M4 console
  • GPIO0_1 - SOM reserved, No Connect
  • GPIO0_12 - SOM reserved, eMMC_RESET
  • GPIO0_13 - SOM reserved, OSPI Int No Connect
  • GPIO0_14 - SOM reserved, OSPI_RESET
  • GPIO1_31 - SOM reserved, PMIC Int (Note: This pin does leave the SOM but should be left no connect in most cases)
  • CSI - Fixed pinmux
  • JTAG - Fixed pinmux
  • MCU_SYSTEM - Fixed pinmux
  • OLDI - Fixed pinmux
  • SYSTEM - Fixed pinmuxes
  • USB* - Fixed pinmux
  • WKUP_LFOSC - Fixed pinmux
  • MDIO/RGMII* - Recommended baseboard ethernet, if you only need one ethernet you can pick one or the other depending on what pins you want to free up
  • MMC1 - Recommended baseboard sdcard
  • GPIO0_31 - The device tree is set up to use this to control VSEL_SD (controls 3.3V/1.8V sdcard IO voltage). (Other gpios can be used but kept for convenience)

Go to top
Add picture from clipboard (Maximum size: 1 GB)