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.

Disable io reset for am335x in linux-3.2.0-psp04.06.00.11

Other Parts Discussed in Thread: AM3356

Hello all,


I use u-boot-2013.01.01-psp06.00.00.00 and linux-3.2.0-psp04.06.00.11 with an AM3356 processor for a custom board.

In the U-Boot code, I make the initialization of the pin "mcasp0" for an external component.

Then U-Boot launch the linux kernel which initialize the "mcasp0" pin before entering into the "am335x_evm_init(void)" function in "arch/arm/mach-omap2/board-am335xevm.c" file.

Do you know where is this kernel IO reset ?

I tried to stop this initialization by modifying functions in "arch/arm/mach-omap2/omap_hwmod.c" but without success.

If you have any ideas, your welcome. Thanks.

  • Hi,

    I make the initialization of the pin "mcasp0" for an external component.

    I assume that you want to access the different peripheral which is muxed with McASP0,

    Please correct me if I'm wrong,

    If it so,

    We can do pinmux for GPIO/MMC/MII which is muxed with McASP in u-boot as well as linux,

    If we did in u-boot then linux might have chance to change again so better to modify in linux itself,

    If u-boot:

    <u-boot source>/board/ti/am335x/mux.c

    <u-boot source>/board/ti/am335x/board.c

    If linux:

    1) Disable McASP related stuffs in board file

    2) linux/arch/arm/mach-omap2/mux33xx.c

    linux/arch/arm/mach-omap2/mux33xx.h

    arch/arm/mach-omap2/board-am335xevm.c

    If you are expecting different than what i posted then we can discuss,

  • Thanks for your support.

    I use the McASP0 in GPIO mode. This pin enable an external Ethernet switch.

    I need it in u-boot because I load the Linux kernel by TFTP.

     

    That I am trying to do is :

      1) Set this pin in GPIO in u-boot (done)

      2) Have no change on this pin after (my pin have to be in GPIO mode an set to output and enable my component)

    If I have any state change on this pin, my external component switch in default.

     

    Do you know how to disable the Sitara IO reset at the beginning of the Linux kernel boot ?

     

    Thanks.

  • Hi Mickael,

    Sorry I'm not understanding your use-case,

    Do you know how to disable the Sitara IO reset at the beginning of the Linux kernel boot ?


    What is IO reset and what are trying to do with this reset?

    Are your trying to access the same pin for multiple peripheral in linux?

    ex:

    Do you want to access McASP and GPIO in linux which is pinmuxed to single pin?

    Eg:

        _AM33XX_MUXENTRY(MII1_RXD3, 0,
            "mii1_rxd3", NULL, "rgmii1_rd3", "mmc0_dat5",
            "mmc1_dat2", NULL, "mcasp0_axr0", "gpio2_18"),

    Here, The MII1_RXD3 is in default state, and you can configure to RGMII1_RD3/MMC0_D15/MMC1_D2/MCASP0/GPIO,

    You can configure this pin for only one peripheral in u-boot and linux,

    You can use the same pin to only one peripheral say e.g. MMC in u-boot and able to access the same MMC pin as McASP in linux,

    If you want access the single pin for multiple mode in linux then you may have to write driver for changing the  pinmux to other peripheral than what you configured while booting.

    Please Explain your use case,

  • Hi, thanks for your answer.

    My problem is not to configure a pin or use a multiple access...

    My use case of the pin "mcasp0_aclkr" of the am3356 processor is :

      - On uboot: set this pin in gpio mode, in output, pull-up, and set to 1. It is done.

      - On linux: No changes have to happen. No change mode, no change state, no disabling... Since uboot switch on the Linux Kernel, the "mcasp0_aclkr" pin have to stay activated.

    I need a Kernel Linux which doesn't change the "mcasp0_aclkr" pin mode, doesn't change the gpio3 module clk, doesn't change the "mcasp0_aclkr" gpio pin state.

  • Hi,

    In my understanding,

    You need to use this "mcasp0_aclkr" pin as GPIO in u-boot and "mcasp0_aclkr" is same function in linux,

    U-Boot

    mcasp0_aclkr -> GPIO (through pinmux) Function = GPIO

    Linux

    mcasp0_aclkr -> Function = McASP0_ACLKR

    Please Correct me If i'm wrong.

  • Titusrathinaraj Stalin said:
    I need a Kernel Linux which doesn't change the "mcasp0_aclkr" pin mode, doesn't change the gpio3 module clk, doesn't change the "mcasp0_aclkr" gpio pin state.

  • Hi,

      - On linux: No changes have to happen. No change mode, no change state, no disabling... Since uboot switch on the Linux Kernel, the "mcasp0_aclkr" pin have to stay activated.

    I need a Kernel Linux which doesn't change the "mcasp0_aclkr" pin mode, doesn't change the gpio3 module clk, doesn't change the "mcasp0_aclkr" gpio pin state.

    From this,

    You want to retain the same value (either 0 or 1) of GPIO which is modified by u-boot.

    I ll let you know once its done,

  • Hi,

    Yes, You can maintain the  GPIO value for any GPIO after bootup linux,

    Also you have to ensure that you should not disturb the GPIO pin through pinmuxing which is configures in u-boot ,

    If the GPIO value has been changed after bootup linux & try to check in board file whether the specific pin has applied any pinmuxing or still has the same peripheral(GPIO)