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.

AM5708: GPIO ARM and DSP control

Part Number: AM5708


SDK: ti-processor-sdk-rtos-am57xx-evm-

Customer configures GPIO from ARM linux side, but he cannot directly control GPIO unless GPIO_init is added on the DSP side. Is GPIO_init required to be called? What is the role? What is the difference with board_init?

  • Hi,


    Please go through documentation provided at pdk_am57xx_X_X_XX\packages\ti\drv\gpio\docs\doxygen\html\index.html for GPIO related information. 

    Also, as mentioned in the GPIO.h file -



    In practical, Board_init will do the basis pinmuxing, ddr initialization, etc.(FLAG specified) and GPIO init will do pinmuxing on top of that. So, if you are taking care of gpio related pinmuxing in BOARD_INIT_PINMUX , then you don't need to use gpio_init. But, to use other gpio apis, you have to declare gpio data structure. So, if you are are using structure, then its better to use gpio_init instead of updating the pinmux file.

  • Hi,


    The customer has already configured the corresponding GPIO on the arm linux side, is GPIO_init necessary on the DSP side? The situation currently encountered by customers is that they need to call GPIO_init again on the dsp side.

  • Hi,

    The customer has already configured the corresponding GPIO on the arm linux side,

    So, the pinmuxing is done. Is my understanding correct?

    is GPIO_init necessary on the DSP side?

    If they are using GPIO APIs for GPIO operations, they have to. Otherwise, if they have already enable the pinmux they have to directly write to respective registers as per their requirements(making pin high, low, etc).