]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/mmc.h
fdt: introduce fdt_create_phandle()
[karo-tx-uboot.git] / include / mmc.h
index f7f2286981d3c0c1532d1f1aaa44c712b65c0402..aeacdee3095d8a5356b791b11944ea54587800dd 100644 (file)
 #define MMC_STATUS_MASK                (~0x0206BF7F)
 #define MMC_STATUS_RDY_FOR_DATA (1 << 8)
 #define MMC_STATUS_CURR_STATE  (0xf << 9)
+#define MMC_STATUS_ERROR       (1 << 19)
 
 #define MMC_VDD_165_195                0x00000080      /* VDD voltage 1.65 - 1.95 */
 #define MMC_VDD_20_21          0x00000100      /* VDD voltage 2.0 ~ 2.1 */
  * EXT_CSD fields
  */
 
+#define EXT_CSD_PART_CONF      179     /* R/W */
 #define EXT_CSD_BUS_WIDTH      183     /* R/W */
 #define EXT_CSD_HS_TIMING      185     /* R/W */
 #define EXT_CSD_CARD_TYPE      196     /* RO */
 #define MMC_RSP_R6     (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
 #define MMC_RSP_R7     (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
 
+#define MMCPART_NOAVAILABLE    (0xff)
+#define PART_ACCESS_MASK       (0x7)
+#define PART_SUPPORT           (0x1)
 
 struct mmc_cid {
        unsigned long psn;
@@ -262,6 +267,7 @@ struct mmc {
        void *priv;
        uint voltages;
        uint version;
+       uint has_init;
        uint f_min;
        uint f_max;
        int high_capacity;
@@ -274,6 +280,8 @@ struct mmc {
        uint csd[4];
        uint cid[4];
        ushort rca;
+       char part_config;
+       char part_num;
        uint tran_speed;
        uint read_bl_len;
        uint write_bl_len;
@@ -294,7 +302,9 @@ void mmc_set_clock(struct mmc *mmc, uint clock);
 struct mmc *find_mmc_device(int dev_num);
 int mmc_set_dev(int dev_num);
 void print_mmc_devices(char separator);
+int get_mmc_num(void);
 int board_mmc_getcd(u8 *cd, struct mmc *mmc);
+int mmc_switch_part(int dev_num, unsigned int part_num);
 
 #ifdef CONFIG_GENERIC_MMC
 int atmel_mci_init(void *regs);