This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TDA4VM: How to modify pinmux using Board_init() in board library

Part Number: TDA4VM
Other Parts Discussed in Thread: SYSCONFIG

Can you provide an example of how to add Pinmux for a peripheral using sysconfig / Pinmux tool from

  • Let us try to understand the process of adding the PinMux for a peripheral using an example.

    Modification to PinMux in board library

    1. Go to and launch PinMux tool.

    2. Load the mcu_adc.syscfg, this gives an example on how to Pinmux MCU domain's ADC.

    • You will see adding this generates multiple files. For updating the PinMux using Board_init(BOARD_INIT_PINMUX_CONFIG) you need to use the J721e_pinmux_data.c file.
    • All 4 generated structures need to be appended (not replaced) in the original location in the SDK.
      • You might want to edit the first field (of index) in gJ721E_WkupPinmuxData{} based on which index you add the mcu_adc pinmux at.

    3. To get the full picture, load the SDK.syscfg in the tool.

    • Here I added most peripherals which are pinmuxed for the WKUP and MCU domain. I have not done any validation here, this is just for reference.
    • You will see multiple peripherals attached and will see the J721e_pinmux_data.c containing all the selected peripherals. You can add all your peripherals (for one core) and generate this file like this.

    Important note, in case there are multiple options for SoC PADs for a particular signal, check your HW schematics on what actually is pinned out.

    How to load a sysconfig project

    To load the *.syscfg files open the pinmux tool from and then File -> Open -> Upload (this is a small cloud sign) -> browse your PC and select the *.syscfg file.


    Rebuilding the board library

    Once you make your updates run the below:

    cd pdk/packages/ti/build

    /* Clean the board library, this cleans the ti.board.aer5f at pdk/packages/ti/board/lib/j721e/r5f/release/ti.board.aer5f */

    make board_clean -sj

    /* rebuild the board library, this will rebuild the ti.board.aer5f, you can verify by checking the time stamp of this */

    make board -sj

    If you are using the SDK then you don't need anything else. But if you are using this library outside of the SDK where you need to explicitly link this, then link the new ti.board.aer5f.



  • For PinMuxing in device tree for Linux, please refer -