]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - include/mmc.h
fdt: print error messages with 'printf' rather than 'debug'
[karo-tx-uboot.git] / include / mmc.h
index 8f309f1f71c510b10b6ed81403b2b00bcf4b9c52..e815eb3736c92516d241fd47da2d04145d80149d 100644 (file)
@@ -11,6 +11,7 @@
 #define _MMC_H_
 
 #include <linux/list.h>
+#include <linux/sizes.h>
 #include <linux/compiler.h>
 #include <part.h>
 
 #define MMC_DATA_READ          1
 #define MMC_DATA_WRITE         2
 
-#define NO_CARD_ERR            -16 /* No SD/MMC card inserted */
-#define UNUSABLE_ERR           -17 /* Unusable Card */
-#define COMM_ERR               -18 /* Communications Error */
-#define TIMEOUT                        -19
-#define SWITCH_ERR             -20 /* Card reports failure to switch mode */
-
 #define MMC_CMD_GO_IDLE_STATE          0
 #define MMC_CMD_SEND_OP_COND           1
 #define MMC_CMD_ALL_SEND_CID           2
 #define SD_CMD_SWITCH_UHS18V           11
 
 #define SD_CMD_APP_SET_BUS_WIDTH       6
+#define SD_CMD_APP_SD_STATUS           13
 #define SD_CMD_ERASE_WR_BLK_START      32
 #define SD_CMD_ERASE_WR_BLK_END                33
 #define SD_CMD_APP_SEND_OP_COND                41
@@ -398,6 +394,12 @@ struct mmc_config {
        unsigned char part_type;
 };
 
+struct sd_ssr {
+       unsigned int au;                /* In sectors */
+       unsigned int erase_timeout;     /* In milliseconds */
+       unsigned int erase_offset;      /* In milliseconds */
+};
+
 /*
  * With CONFIG_DM_MMC enabled, struct mmc can be accessed from the MMC device
  * with mmc_get_mmc_dev().
@@ -432,6 +434,7 @@ struct mmc {
        uint write_bl_len;
        uint erase_grp_size;    /* in 512-byte sectors */
        uint hc_wp_grp_size;    /* in 512-byte sectors */
+       struct sd_ssr   ssr;    /* SD status register */
        u64 capacity;
        u64 capacity_user;
        u64 capacity_boot;
@@ -503,6 +506,12 @@ 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);
+
+/**
+ * get_mmc_num() - get the total MMC device number
+ *
+ * @return 0 if there is no MMC device, else the number of devices
+ */
 int get_mmc_num(void);
 int mmc_hwpart_config(struct mmc *mmc, const struct mmc_hwpart_conf *conf,
                      enum mmc_hwpart_conf_mode mode);