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.

AM3352: GPMC wait-pin0 settings in dts file

Part Number: AM3352

Hi,

My customers saw this and avoided the error. Thank you very much.
(Related thread was posted by my colleague.)

However, only CS for which wait-pin is set has wait enabled, and wait-pin does not work with other CS.

Could you tell me how to write to operate wait-pin0(GPMC_WAIT0) in each CS.

・Synchronous Address-Data multiplex

・Processor SDK Linux 

Regards, Rei

  • Hi Rei,

    Let me look into it and get you back.

  • Hi Bin,

    Thank you for your reply. I’m looking forward to hearing from you.

    Regards, Rei

  • Hi Bin,

    Do you have any updates?

  • Hi Bin.

    Any updates?

  • Hi Rei,

    Sorry for the late response. I reviewed the kernel driver again. Please do the following change.

    - The kernel gpmc driver has to program the wait pin info for each CS CONFIG, so defining the wait pin only in the first CS device tree node doesn't solve the issue. Please change back the device tree to the one you originally have, which defines gpmc,wait-pin property in each CS node.

    - Please apply the following kernel patch, which should fix the original '-16' error issue.

    diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
    index 27bc417029e1..59b6becc8ff9 100644
    --- a/drivers/memory/omap-gpmc.c
    +++ b/drivers/memory/omap-gpmc.c
    @@ -2172,7 +2172,7 @@ static int gpmc_probe_generic_child(struct platform_device *pdev,
                                                             wait_pin, "WAITPIN",
                                                             GPIO_ACTIVE_HIGH,
                                                             GPIOD_IN);
    -               if (IS_ERR(waitpin_desc)) {
    +               if (IS_ERR(waitpin_desc) && waitpin_desc != -EBUSY) {
                            dev_err(&pdev->dev, "invalid wait-pin: %d\n", wait_pin);
                            ret = PTR_ERR(waitpin_desc);
                            goto err;
                            

    Please let me know if the two changes above will solve the issue.

  • Hi Bin,

    Thank you for the information. Customers will try it.

    Regards, Rei