oh David, please excuse me!

On Thu, Jan 30, 2020 at 3:45 PM Embedded Systems <ivanucherdj...@gmail.com>
wrote:

> Hello Dave,
>
> Thank you for your response, but if that is correct then the driver do not
> work for imxrt1050 because of following
> #if defined(CONFIG_MMCSD_HAVE_CARDDETECT)
> #  if defined(PIN_USDHC1_CD)
>       imxrt_config_gpio(PIN_USDHC1_CD);
> #  else
>       if (priv->sw_cd_gpio != 0)
>         {
>           imxrt_config_gpio(priv->sw_cd_gpio);
>         }
> #  endif
> #endif
>
> here you initialize the  PIN_USDHC1_CD  but you never say that  sw_cd_gpio
> =   PIN_USDHC1_CD  which makes the following check to fail and never use
> the  PIN_USDHC1_CD for detecting
>
>  if (priv->sw_cd_gpio != 0)
>     {
>       present = priv->cd_invert ^ !imxrt_gpio_read(priv->sw_cd_gpio);
>     }
>   else
>     {
>
>
> so if _GPIO suffix need to stay then the following lines need to be
> changes lines 3088 - 3097
>
> #if defined(CONFIG_MMCSD_HAVE_CARDDETECT)
> #  if defined(PIN_USDHC1_CD)
>       imxrt_config_gpio(PIN_USDHC1_CD);
> #  else
>       if (priv->sw_cd_gpio != 0)
>         {
>           imxrt_config_gpio(priv->sw_cd_gpio);
>         }
> #  endif
> #endif
>
> need to be
>   #  if defined(PIN_USDHC1_CD)
>        priv->sw_cd_gpio  =  PIN_USDHC1_CD ;
>       imxrt_config_gpio(PIN_USDHC1_CD);
> #  else
>       if (priv->sw_cd_gpio != 0)
>         {
>           imxrt_config_gpio(priv->sw_cd_gpio);
>         }
> #  endif
> #endif
>
>
>
>
> On Thu, Jan 30, 2020 at 2:57 PM David Sidrane <david.sidr...@nscdg.com>
> wrote:
>
>> Hi Ivan,
>>
>>
>> It is correct. It fixes a bug that was added when the imxrt1020 came in.
>> Apparently Dave did not wire the CD pin of the IC to the socket (He used a
>> GPIO). But that change broke the case were the CD pin of the IC is wired
>> to
>> the socket
>>
>> Please See
>>
>> https://github.com/apache/incubator-nuttx/commit/2e71e0632f8106d1505d313e7171904536feec45#diff-787575b8e98a29e0a9d088767a68b280
>>
>> It is to use allow the use of a standard GPIO pin for card detect OR  the
>> use of the USDHC dedicated CD pin. (it also supports inversion of the pin
>> or
>> CD detect bit)
>>
>> If you wire CD to the USDHC CD pin you define PIN_USDHC1_CD (as
>> PIN_USDHC1_CD_n) in board.h.
>>
>> See
>>
>> https://github.com/apache/incubator-nuttx/blob/master/boards/arm/imxrt/imxrt1060-evk/include/board.h#L215
>>
>> If you use a regular GPIO you define PIN_USDHC1_CD_GPIO (as GPIO_PORTn |
>> GPIO_PINn) in board.h
>>
>> See
>>
>> https://github.com/apache/incubator-nuttx/blob/master/boards/arm/imxrt/imxrt1020-evk/include/board.h#L271
>>
>>
>> Regards,
>>
>> David
>>
>> -----Original Message-----
>> From: Embedded Systems [mailto:ivanucherdj...@gmail.com]
>> Sent: Wednesday, January 29, 2020 11:51 PM
>> To: dev@nuttx.apache.org
>> Subject: IMXRT1050 USDHC
>>
>> Hello,
>>
>> I found a typo mistake in the USDHC driver related to the card detect pin.
>> It is a pretty simple one. Can someone tell me how toapplay a patch for
>> it.
>> Or someone who know how to do it do the following changes and apply them.
>> Thank you in advance!
>>
>> in file /arch/arm/src/imxrt/imxrt_usdhc.c
>>
>> Line 379-381
>>
>>   #if defined(PIN_USDHC1_CD_GPIO)
>>     .sw_cd_gpio         = PIN_USDHC1_CD_GPIO,
>> #endif
>> should be changed to
>>   #if defined(PIN_USDHC1_CD)
>>     .sw_cd_gpio         = PIN_USDHC1_CD,
>> #endif
>>
>> And same file at lines 437-439
>>
>>  #if defined(PIN_USDHC2_CD_GPIO)
>>     .sw_cd_gpio         = PIN_USDHC2_CD_GPIO,
>> #endif
>>
>> should be changed to
>>
>>   #if defined(PIN_USDHC2_CD)
>>     .sw_cd_gpio         = PIN_USDHC2_CD,
>> #endif
>>
>>
>>
>> --
>> Kind regards,
>> Ivan Ucherdzhiev
>>
>> Team Lead @ Barin Sports
>> Bulgaria
>> skype: ipy_44
>> tel: +359888927760
>>
>
>
> --
> Kind regards,
> Ivan Ucherdzhiev
>
> Team Lead @ Barin Sports
> Bulgaria
> skype: ipy_44
> tel: +359888927760
>


-- 
Kind regards,
Ivan Ucherdzhiev

Team Lead @ Barin Sports
Bulgaria
skype: ipy_44
tel: +359888927760

Reply via email to