I.MX6 uSDHC SD card register

简介: /**************************************************************************** * I.MX6 uSDHC SD card register * 声明: * 本文主要是记录SD card注册的相关流程及遇到的一些问题。
/****************************************************************************
 *                  I.MX6 uSDHC SD card register
 * 声明:
 *     本文主要是记录SD card注册的相关流程及遇到的一些问题。
 *
 *                                       2015-12-20 深圳 南山平山村 曾剑锋
 ***************************************************************************/


                    \\\\\\\\\\\\\-*- 目录 -*-/////////////
                    |  一、参考文章:    
                    |  二、引脚配置:    
                    |  三、板级文件配置:    
                    |  四、开启SDHCI驱动:    
                    |  五、解决ExExplorer无法删除文件    
                    -------------------------------------


一、参考文章:
    Android 4.4.2 SD卡权限修复器1.2中文版
        http://www.sonyue.com/bbs/forum.php?mod=viewthread&tid=93351

二、引脚配置:
    cat arch/arm/mach-mx6/board-mx6dl_sabresd.h
        ......
        static iomux_v3_cfg_t mx6dl_sabresd_pads[] = {
            ......
            /* USDHC3 */ 
            MX6DL_PAD_SD3_CLK__USDHC3_CLK_50MHZ, 
            MX6DL_PAD_SD3_CMD__USDHC3_CMD_50MHZ, 
            MX6DL_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ,
            MX6DL_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ,
            MX6DL_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ,
            MX6DL_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ,
        
            /* SD3_CD */
            MX6DL_PAD_KEY_COL2__GPIO_4_10,
            /* SD3_WP  未使用*/
            MX6DL_PAD_SD3_RST__GPIO_7_8,
            ......
        }
        .....

三、板级文件配置:
    cat arch/arm/mach-mx6/board-mx6q_sabresd.c
        ......
        #define SABRESD_SD3_CD      IMX_GPIO_NR(4, 10)
        ......
        static const struct esdhc_platform_data mx6q_sabresd_sd3_data __initconst = {
            .cd_gpio = SABRESD_SD3_CD,
            //没有接,所以不用,另一个原因是我们使用的是TF卡,没有写保护的问题
            //.wp_gpio = SABRESD_SD3_WP, 
            .keep_power_at_suspend = 1,
            .support_8bit = 1,
            .delay_line = 0,
            .cd_type = ESDHC_CD_CONTROLLER,
            .runtime_pm = 1,
        };
        ......
        /**
         * Board specific initialization.
         */
        static void __init mx6_sabresd_board_init(void)
        {
            ......
            //当前我们的SD卡挂载在这个上面
            imx6q_add_sdhci_usdhc_imx(2, &mx6q_sabresd_sd3_data);
            ......
        }
        .....

四、开启SDHCI驱动:
    打开下列红线框出的驱动:
    ────────────────────────────────────────────────────────────────────────────── 
    ┌───────────────────────── MMC/SD/SDIO card support ─────────────────────────┐
    │  Arrow keys navigate the menu.  <Enter> selects submenus --->.             │  
    │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes,    │  
    │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </>    │  
    │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module   │  
    │ ┌────^(-)────────────────────────────────────────────────────────────────┐ │  
    │ │    [*]     Deferr MMC layer resume until I/O is requested              │ │  
    │ │    < >   SDIO UART/GPS class support                                   │ │  
    │ │    <*>   MMC host test driver                                          │ │  
    │ │          *** MMC/SD/SDIO Host Controller Drivers ***                   │ │  
    │ │    < >   ARM AMBA Multimedia Card Interface support                    │ │  
    │ │    <*>   Secure Digital Host Controller Interface support              │ │  
    │ │    < >   SDHCI support on PCI bus                                      │ │  
    │ │    <*>   SDHCI support on the platform specific bus                    │ │  
    │ │    [*]     SDHCI platform support for the Freescale eSDHC i.MX controll│ │  
    │ │    < >   TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)       │ │  
    │ │    < >   ENE CB710 MMC/SD Interface support                            │ │  
    │ │    < >   VIA SD/MMC Card Reader Driver                                 │ │  
    │ └────v(+)────────────────────────────────────────────────────────────────┘ │  
    ├────────────────────────────────────────────────────────────────────────────┤  
    │                      <Select>    < Exit >    < Help >                      │  
    └────────────────────────────────────────────────────────────────────────────┘  

五、解决ExExplorer无法删除文件
    1. 从Android 4.4.2开始,谷歌系统禁用了外置存储卡的第三方程序写入权限,于是大容量的SD卡无用武之地。
    2. 搜索网络,我们可以找到解决的办法,但太复杂,而且容易搞错。
    3. 添加外置卡的写入权限
    4. RE管理器, 用文本编辑器打开/system/etc/permissions目录下的“"platform.xml”文件(挂载读写),在
            <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
            < group gid="sdcard_rw" />
        下面添一行
            <group gid="media_rw" />
       (注意段首对齐,"media_rw"和/>之间有空格) 保存并退出,重启系统即可.

 

目录
相关文章
|
8月前
|
调度
NR PDSCH(六) DL data operation
NR中,网络端会根据UE业务动态的调整BWP,进而改变频域资源范围;不同的BWP会配置CORESET/Searchspace确定不同的时频域资源,让UE在对应的资源上进行盲检接收DCI;通过DCI获得调度信息后,再去PDSCH对应的时域资源和频域资源上 decode data。
|
9月前
|
Linux
device_node转换成platform_device
device_node转换成platform_device
77 0
一文了解USB Type-C
现在的USB Type-C已经被广泛使用,移动设备基本都是使用Type-C。它主要是用于快充和作为音频接口。最近欧盟还要求电子设备统一使用Type-C接口,来防止浪费。接下来我们来简单了解这个接口。
NotImplementedError: Invalid CAN Bus Type - None
NotImplementedError: Invalid CAN Bus Type - None
|
芯片 C++ 异构计算
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
902 0
DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided
【1153】Decode Registration Card of PAT (25分)
【1153】Decode Registration Card of PAT (25分) 【1153】Decode Registration Card of PAT (25分)
97 0
|
Linux
Wedge 100-32X 100GbE Data Center Switch
1、总体设计 (https://www.edge-core.com/productsList.php?cls=1&cls2=5&cls3=67) 基于 Facebook’s Wedge 100 design.
1413 0