-/*\r
- * Synopsys DesignWare Multimedia Card Interface driver\r
- *\r
- * Copyright (C) 2014 Fuzhou Rockchip Electronics Co.Ltd.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- */\r
-#include "rk_sdmmc_of.h"\r
-\r
-u32 mmc_debug_level= MMC_DBG_ERROR;//MMC_DBG_CMD//set the value refer to file rk_sdmmc_of.h\r
-char dbg_flag[]="mmc0mmc1mmc2"; \r
-\r
-static void rockchip_mmc_of_dump(struct rk_sdmmc_of *rk_mmc_property)\r
-{ \r
- printk("=========rockchip mmc dts dump info start== 2014-03-14 20:39 ======");\r
- mmc_debug(MMC_DBG_BOOT,"mmc,caps: 0x%x\n",rk_mmc_property->mmc_caps);\r
- mmc_debug(MMC_DBG_BOOT,"mmc,ocr: 0x%x\n",rk_mmc_property->mmc_ocr);\r
- mmc_debug(MMC_DBG_BOOT,"mmc,int: 0x%x\n",rk_mmc_property->mmc_int_type);\r
- mmc_debug(MMC_DBG_BOOT,"mmc,emmc_is_selected: 0x%x\n",rk_mmc_property->emmc_is_selected);\r
- mmc_debug(MMC_DBG_BOOT,"mmc,use_dma: %d %d\n",rk_mmc_property->mmc_dma_is_used[0],\r
- rk_mmc_property->mmc_dma_is_used[1]);\r
- mmc_debug(MMC_DBG_BOOT,"mmc,dma_ch: %d\n",rk_mmc_property->mmc_dma_chn);\r
- mmc_debug(MMC_DBG_BOOT,"=========rockchip mmc dts dump info end================\n");\r
-}\r
-\r
-\r
-void rockchip_mmc_of_probe(struct device_node *np,struct rk_sdmmc_of *rk_mmc_property)\r
-{\r
- of_property_read_u32(np, "mmc,caps", &rk_mmc_property->mmc_caps);\r
- of_property_read_u32(np, "mmc,ocr", &rk_mmc_property->mmc_ocr);\r
- of_property_read_u32(np, "mmc,int", &rk_mmc_property->mmc_int_type);\r
- of_property_read_u32(np, "mmc,emmc_is_selected", &rk_mmc_property->emmc_is_selected);\r
- of_property_read_u32_array(np, "mmc,use_dma", rk_mmc_property->mmc_dma_is_used,2);\r
-/*\r
- if((&rk_mmc_property->mmc_dma_is_used[0] == MMC_USE_DMA))\r
- { \r
- if(rk_mmc_property->mmc_dma_is_used[1] == 0)\r
- rk_mmc_property->mmc_dma_name = "dma_mmc0";\r
- else if(rk_mmc_property->mmc_dma_is_used[1] == 1)\r
- rk_mmc_property->mmc_dma_name = "dma_mmc1";\r
- else \r
- rk_mmc_property->mmc_dma_name = "dma_mmc2";\r
-\r
- //of_property_read_string(np, "mmc,dma_name", &(rk_mmc_property->mmc_dma_name)); \r
- of_property_read_u32(np, "mmc,dma_ch", &rk_mmc_property->mmc_dma_chn);\r
- \r
- }else{\r
- mmc_debug(MMC_DBG_WARN,"Device Tree configure mmc drivers to use pio!\n");\r
- }\r
- */ \r
- rockchip_mmc_of_dump(rk_mmc_property);\r
- return ;\r
-\r
-}\r
-EXPORT_SYSMBOL(rockchip_mmc_of_probe);\r
-\r
-\r
+/*
+ * Synopsys DesignWare Multimedia Card Interface driver
+ *
+ * Copyright (C) 2014 Fuzhou Rockchip Electronics Co.Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+#include "rk_sdmmc_of.h"
+
+u32 mmc_debug_level= MMC_DBG_ERROR;//MMC_DBG_CMD//set the value refer to file rk_sdmmc_of.h
+char dbg_flag[]="mmc0mmc1mmc2";
+
+#if DW_MMC_OF_PROBE
+static void rockchip_mmc_of_dump(struct rk_sdmmc_of *rk_mmc_property)
+{
+ printk("=========rockchip mmc dts dump info start== 2014-03-14 20:39 ======");
+ mmc_debug(MMC_DBG_BOOT,"mmc,caps: 0x%x\n",rk_mmc_property->mmc_caps);
+ mmc_debug(MMC_DBG_BOOT,"mmc,ocr: 0x%x\n",rk_mmc_property->mmc_ocr);
+ mmc_debug(MMC_DBG_BOOT,"mmc,int: 0x%x\n",rk_mmc_property->mmc_int_type);
+ mmc_debug(MMC_DBG_BOOT,"mmc,emmc_is_selected: 0x%x\n",rk_mmc_property->emmc_is_selected);
+ mmc_debug(MMC_DBG_BOOT,"mmc,use_dma: %d %d\n",rk_mmc_property->mmc_dma_is_used[0],
+ rk_mmc_property->mmc_dma_is_used[1]);
+ mmc_debug(MMC_DBG_BOOT,"mmc,dma_ch: %d\n",rk_mmc_property->mmc_dma_chn);
+ mmc_debug(MMC_DBG_BOOT,"=========rockchip mmc dts dump info end================\n");
+}
+
+
+void rockchip_mmc_of_probe(struct device_node *np,struct rk_sdmmc_of *rk_mmc_property)
+{
+ of_property_read_u32(np, "mmc,caps", &rk_mmc_property->mmc_caps);
+ of_property_read_u32(np, "mmc,ocr", &rk_mmc_property->mmc_ocr);
+ of_property_read_u32(np, "mmc,int", &rk_mmc_property->mmc_int_type);
+ of_property_read_u32(np, "mmc,emmc_is_selected", &rk_mmc_property->emmc_is_selected);
+ of_property_read_u32_array(np, "mmc,use_dma", rk_mmc_property->mmc_dma_is_used,2);
+/*
+ if((&rk_mmc_property->mmc_dma_is_used[0] == MMC_USE_DMA))
+ {
+ if(rk_mmc_property->mmc_dma_is_used[1] == 0)
+ rk_mmc_property->mmc_dma_name = "dma_mmc0";
+ else if(rk_mmc_property->mmc_dma_is_used[1] == 1)
+ rk_mmc_property->mmc_dma_name = "dma_mmc1";
+ else
+ rk_mmc_property->mmc_dma_name = "dma_mmc2";
+
+ //of_property_read_string(np, "mmc,dma_name", &(rk_mmc_property->mmc_dma_name));
+ of_property_read_u32(np, "mmc,dma_ch", &rk_mmc_property->mmc_dma_chn);
+
+ }else{
+ mmc_debug(MMC_DBG_WARN,"Device Tree configure mmc drivers to use pio!\n");
+ }
+ */
+ rockchip_mmc_of_dump(rk_mmc_property);
+ return ;
+
+}
+EXPORT_SYSMBOL(rockchip_mmc_of_probe);
+#endif /*DW_MMC_OF_PROBE*/
+
+
-/*\r
- * Synopsys DesignWare Multimedia Card Interface driver\r
- *\r
- * Copyright (C) 2014 Fuzhou Rockchip Electronics Co.Ltd.\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- */\r
- \r
-#ifndef __RK_SDMMC_OF_H\r
-#define __RK_SDMMC_OF_H\r
-\r
-#include <linux/of_gpio.h>\r
-#include <linux/of_i2c.h>\r
-#include <linux/types.h>\r
-#include <linux/bitops.h>\r
-\r
-\r
-#define DRIVER_NAME "rk_sdmmc"\r
-#define DRIVER_PREFIX DRIVER_NAME ": "\r
-\r
-enum MMC_DBG_MASK{\r
- MMC_DBG_NONE = 0,\r
- MMC_DBG_BOOT = BIT(0), \r
- MMC_DBG_ERROR= BIT(1), \r
- MMC_DBG_WARN = BIT(2),\r
- MMC_DBG_INFO = BIT(3),\r
- MMC_DBG_CMD = BIT(4),\r
- MMC_DBG_DBG = BIT(5),\r
- MMC_DBG_ALL = 0xFF,\r
- \r
-};\r
-\r
-extern u32 mmc_debug_level;\r
-extern char dbg_flag[];\r
-\r
-#define MMC_DBG_FUNC_CONFIG 1\r
-#if MMC_DBG_FUNC_CONFIG\r
-#define MMC_DBG_BOOT_FUNC(mmc_host,fmt, arg...) \\r
- do { \\r
- if(mmc_debug_level >= MMC_DBG_BOOT) { \\r
- if(NULL != strpbrk(dbg_flag,mmc_hostname(mmc_host))) { \\r
- printk(DRIVER_PREFIX "BOOT " fmt "\n", ##arg);\\r
- } \\r
- } \\r
- }while(0)\r
-#define MMC_DBG_ERR_FUNC(mmc_host,fmt, arg...) \\r
- do{ \\r
- if(mmc_debug_level >= MMC_DBG_ERROR) { \\r
- if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \\r
- printk(DRIVER_PREFIX "ERROR " fmt "\n", ##arg);\\r
- } \\r
- } \\r
- }while(0)\r
-#define MMC_DBG_WARN_FUNC(mmc_host,fmt, arg...) \\r
- do { \\r
- if(mmc_debug_level >= MMC_DBG_WARN) { \\r
- if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \\r
- printk(DRIVER_PREFIX "WARN " fmt "\n", ##arg);\\r
- } \\r
- } \\r
- }while(0)\r
-#define MMC_DBG_INFO_FUNC(mmc_host,fmt, arg...) \\r
- do { \\r
- if(mmc_debug_level >= MMC_DBG_INFO) { \\r
- if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \\r
- printk(DRIVER_PREFIX "INFO " fmt "\n", ##arg);\\r
- } \\r
- } \\r
- }while(0)\r
-#define MMC_DBG_CMD_FUNC(mmc_host,fmt, arg...) \\r
- do { \\r
- if(mmc_debug_level >= MMC_DBG_CMD) { \\r
- if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \\r
- printk(DRIVER_PREFIX "CMD " fmt "\n", ##arg);\\r
- } \\r
- } \\r
- }while(0)\r
-#else\r
-#define MMC_DBG_BOOT_FUNC(mmc_host,fmt, arg...) {printk(DRIVER_PREFIX "BOOT " fmt "\n", ##arg);}\r
-#define MMC_DBG_ERR_FUNC(mmc_host,fmt, arg...)\r
-#define MMC_DBG_WARN_FUNC(mmc_host,fmt, arg...)\r
-#define MMC_DBG_INFO_FUNC(mmc_host,fmt, arg...)\r
-#define MMC_DBG_CMD_FUNC(mmc_host,fmt, arg...)\r
-#endif\r
-\r
-#if defined(CONFIG_DYNAMIC_DEBUG)\r
- #define mmc_debug(level, fmt, arg...) \\r
- do { \\r
- if (unlikely(level & mmc_debug_level)) \\r
- dynamic_pr_debug(DRIVER_PREFIX fmt "\n", ##arg); \\r
- } while (0)\r
-#else\r
- #define mmc_debug(level, fmt, arg...) \\r
- do { \\r
- if (unlikely(level & mmc_debug_level)) \\r
- printk(KERN_DEBUG pr_fmt(DRIVER_PREFIX fmt "\n"), \\r
- ##arg); \\r
- } while (0)\r
-#endif\r
-\r
-struct rk_sdmmc_of\r
-{\r
- u32 mmc_caps; \r
- u32 mmc_int_type;\r
- u32 mmc_ocr;\r
- u32 mmc_dma_is_used[2]; /*Bit 1: use dma or not ; Bit 2:general dma or idma*/\r
- u32 emmc_is_selected;\r
- u32 mmc_dma_chn;\r
- const char *mmc_dma_name;\r
-};\r
-\r
-#endif\r
+/*
+ * Synopsys DesignWare Multimedia Card Interface driver
+ *
+ * Copyright (C) 2014 Fuzhou Rockchip Electronics Co.Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef __RK_SDMMC_OF_H
+#define __RK_SDMMC_OF_H
+
+#include <linux/of_gpio.h>
+#include <linux/of_i2c.h>
+#include <linux/types.h>
+#include <linux/bitops.h>
+
+
+#define DRIVER_NAME "rk_sdmmc"
+#define DRIVER_PREFIX DRIVER_NAME ": "
+#define DRIVER_VER "Dw-mci-rockchip"
+#define DW_MMC_OF_PROBE 0
+
+enum MMC_DBG_MASK{
+ MMC_DBG_NONE = 0,
+ MMC_DBG_BOOT = BIT(0),
+ MMC_DBG_ERROR= BIT(1),
+ MMC_DBG_WARN = BIT(2),
+ MMC_DBG_INFO = BIT(3),
+ MMC_DBG_CMD = BIT(4),
+ MMC_DBG_DBG = BIT(5),
+ MMC_DBG_ALL = 0xFF,
+
+};
+
+extern u32 mmc_debug_level;
+extern char dbg_flag[];
+
+#define MMC_DBG_FUNC_CONFIG 1
+#if MMC_DBG_FUNC_CONFIG
+#define MMC_DBG_BOOT_FUNC(mmc_host,fmt, arg...) \
+ do { \
+ if(mmc_debug_level >= MMC_DBG_BOOT) { \
+ if(NULL != strpbrk(dbg_flag,mmc_hostname(mmc_host))) { \
+ printk(DRIVER_PREFIX "BOOT " fmt "\n", ##arg);\
+ } \
+ } \
+ }while(0)
+#define MMC_DBG_ERR_FUNC(mmc_host,fmt, arg...) \
+ do{ \
+ if(mmc_debug_level >= MMC_DBG_ERROR) { \
+ if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \
+ printk(DRIVER_PREFIX "ERROR " fmt "\n", ##arg);\
+ } \
+ } \
+ }while(0)
+#define MMC_DBG_WARN_FUNC(mmc_host,fmt, arg...) \
+ do { \
+ if(mmc_debug_level >= MMC_DBG_WARN) { \
+ if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \
+ printk(DRIVER_PREFIX "WARN " fmt "\n", ##arg);\
+ } \
+ } \
+ }while(0)
+#define MMC_DBG_INFO_FUNC(mmc_host,fmt, arg...) \
+ do { \
+ if(mmc_debug_level >= MMC_DBG_INFO) { \
+ if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \
+ printk(DRIVER_PREFIX "INFO " fmt "\n", ##arg);\
+ } \
+ } \
+ }while(0)
+#define MMC_DBG_CMD_FUNC(mmc_host,fmt, arg...) \
+ do { \
+ if(mmc_debug_level >= MMC_DBG_CMD) { \
+ if(strstr(dbg_flag,mmc_hostname(mmc_host))) { \
+ printk(DRIVER_PREFIX "CMD " fmt "\n", ##arg);\
+ } \
+ } \
+ }while(0)
+#else
+#define MMC_DBG_BOOT_FUNC(mmc_host,fmt, arg...) {printk(DRIVER_PREFIX "BOOT " fmt "\n", ##arg);}
+#define MMC_DBG_ERR_FUNC(mmc_host,fmt, arg...)
+#define MMC_DBG_WARN_FUNC(mmc_host,fmt, arg...)
+#define MMC_DBG_INFO_FUNC(mmc_host,fmt, arg...)
+#define MMC_DBG_CMD_FUNC(mmc_host,fmt, arg...)
+#endif
+
+#if defined(CONFIG_DYNAMIC_DEBUG)
+ #define mmc_debug(level, fmt, arg...) \
+ do { \
+ if (unlikely(level & mmc_debug_level)) \
+ dynamic_pr_debug(DRIVER_PREFIX fmt "\n", ##arg); \
+ } while (0)
+#else
+ #define mmc_debug(level, fmt, arg...) \
+ do { \
+ if (unlikely(level & mmc_debug_level)) \
+ printk(KERN_DEBUG pr_fmt(DRIVER_PREFIX fmt "\n"), \
+ ##arg); \
+ } while (0)
+#endif
+
+#if DW_MMC_OF_PROBE
+struct rk_sdmmc_of
+{
+ u32 mmc_caps;
+ u32 mmc_int_type;
+ u32 mmc_ocr;
+ u32 mmc_dma_is_used[2]; /*Bit 1: use dma or not ; Bit 2:general dma or idma*/
+ u32 emmc_is_selected;
+ u32 mmc_dma_chn;
+ const char *mmc_dma_name;
+
+};
+#endif /*DW_MMC_OF_PROBE*/
+
+#endif