This is an automated email from the ASF dual-hosted git repository.

ligd pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 32717ae353 sdio_probe: set voltage use CMD5
32717ae353 is described below

commit 32717ae353a1cc411111b446b9dfc27ab6d3f034
Author: zhanghu5 <zhang...@xiaomi.com>
AuthorDate: Fri Dec 15 18:13:56 2023 +0800

    sdio_probe: set voltage use CMD5
    
    reference doc: 
https://www.infineon.com/dgdl/Infineon-SDIO_platform_support_guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c8c3de074018c8ba3a9973619
    
    Signed-off-by: zhanghu5 <zhang...@xiaomi.com>
---
 drivers/mmcsd/sdio.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/mmcsd/sdio.c b/drivers/mmcsd/sdio.c
index e1c284d004..0bd1e0cbea 100644
--- a/drivers/mmcsd/sdio.c
+++ b/drivers/mmcsd/sdio.c
@@ -380,6 +380,7 @@ int sdio_set_wide_bus(FAR struct sdio_dev_s *dev)
 int sdio_probe(FAR struct sdio_dev_s *dev)
 {
   int ret;
+  int bit;
   uint32_t data = 0;
 
   nxmutex_init(&dev->mutex);
@@ -412,6 +413,26 @@ int sdio_probe(FAR struct sdio_dev_s *dev)
       goto err;
     }
 
+  /* Get the maximun and minimum values for VDD */
+
+  bit = ffs(data);
+  if (bit)
+    {
+      bit -= 1;
+      data &= 3 << bit;
+    }
+  else
+    {
+      ret = -EINVAL;
+      goto err;
+    }
+
+  ret = sdio_sendcmdpoll(dev, SDIO_CMD5, data);
+  if (ret != OK)
+    {
+      goto err;
+    }
+
   /* Device is in Card Identification Mode, request device RCA */
 
   ret = sdio_sendcmdpoll(dev, SD_CMD3, 0);

Reply via email to