Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / arch / arm / include / asm / arch-pxa / regs-mmc.h
diff --git a/qemu/roms/u-boot/arch/arm/include/asm/arch-pxa/regs-mmc.h b/qemu/roms/u-boot/arch/arm/include/asm/arch-pxa/regs-mmc.h
new file mode 100644 (file)
index 0000000..1b18eea
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef __REGS_MMC_H__
+#define __REGS_MMC_H__
+
+#define MMC0_BASE      0x41100000
+#define MMC1_BASE      0x42000000
+
+int pxa_mmc_register(int card_index);
+
+struct pxa_mmc_regs {
+       uint32_t        strpcl;
+       uint32_t        stat;
+       uint32_t        clkrt;
+       uint32_t        spi;
+       uint32_t        cmdat;
+       uint32_t        resto;
+       uint32_t        rdto;
+       uint32_t        blklen;
+       uint32_t        nob;
+       uint32_t        prtbuf;
+       uint32_t        i_mask;
+       uint32_t        i_reg;
+       uint32_t        cmd;
+       uint32_t        argh;
+       uint32_t        argl;
+       uint32_t        res;
+       uint32_t        rxfifo;
+       uint32_t        txfifo;
+};
+
+/* MMC_STRPCL */
+#define MMC_STRPCL_STOP_CLK            (1 << 0)
+#define MMC_STRPCL_START_CLK           (1 << 1)
+
+/* MMC_STAT */
+#define MMC_STAT_END_CMD_RES           (1 << 13)
+#define MMC_STAT_PRG_DONE              (1 << 12)
+#define MMC_STAT_DATA_TRAN_DONE                (1 << 11)
+#define MMC_STAT_CLK_EN                        (1 << 8)
+#define MMC_STAT_RECV_FIFO_FULL                (1 << 7)
+#define MMC_STAT_XMIT_FIFO_EMPTY       (1 << 6)
+#define MMC_STAT_RES_CRC_ERROR         (1 << 5)
+#define MMC_STAT_SPI_READ_ERROR_TOKEN  (1 << 4)
+#define MMC_STAT_CRC_READ_ERROR                (1 << 3)
+#define MMC_STAT_CRC_WRITE_ERROR       (1 << 2)
+#define MMC_STAT_TIME_OUT_RESPONSE     (1 << 1)
+#define MMC_STAT_READ_TIME_OUT         (1 << 0)
+
+/* MMC_CLKRT */
+#define MMC_CLKRT_20MHZ                        0
+#define MMC_CLKRT_10MHZ                        1
+#define MMC_CLKRT_5MHZ                 2
+#define MMC_CLKRT_2_5MHZ               3
+#define MMC_CLKRT_1_25MHZ              4
+#define MMC_CLKRT_0_625MHZ             5
+#define MMC_CLKRT_0_3125MHZ            6
+
+/* MMC_SPI */
+#define MMC_SPI_EN                     (1 << 0)
+#define MMC_SPI_CS_EN                  (1 << 2)
+#define MMC_SPI_CS_ADDRESS             (1 << 3)
+#define MMC_SPI_CRC_ON                 (1 << 1)
+
+/* MMC_CMDAT */
+#define MMC_CMDAT_SD_4DAT              (1 << 8)
+#define MMC_CMDAT_MMC_DMA_EN           (1 << 7)
+#define MMC_CMDAT_INIT                 (1 << 6)
+#define MMC_CMDAT_BUSY                 (1 << 5)
+#define MMC_CMDAT_BCR                  (MMC_CMDAT_BUSY | MMC_CMDAT_INIT)
+#define MMC_CMDAT_STREAM               (1 << 4)
+#define MMC_CMDAT_WRITE                        (1 << 3)
+#define MMC_CMDAT_DATA_EN              (1 << 2)
+#define MMC_CMDAT_R0                   0
+#define MMC_CMDAT_R1                   1
+#define MMC_CMDAT_R2                   2
+#define MMC_CMDAT_R3                   3
+
+/* MMC_RESTO */
+#define MMC_RES_TO_MAX_MASK            0x7f
+
+/* MMC_RDTO */
+#define MMC_READ_TO_MAX_MASK           0xffff
+
+/* MMC_BLKLEN */
+#define MMC_BLK_LEN_MAX_MASK           0x3ff
+
+/* MMC_PRTBUF */
+#define MMC_PRTBUF_BUF_PART_FULL       (1 << 0)
+
+/* MMC_I_MASK */
+#define MMC_I_MASK_TXFIFO_WR_REQ       (1 << 6)
+#define MMC_I_MASK_RXFIFO_RD_REQ       (1 << 5)
+#define MMC_I_MASK_CLK_IS_OFF          (1 << 4)
+#define MMC_I_MASK_STOP_CMD            (1 << 3)
+#define MMC_I_MASK_END_CMD_RES         (1 << 2)
+#define MMC_I_MASK_PRG_DONE            (1 << 1)
+#define MMC_I_MASK_DATA_TRAN_DONE      (1 << 0)
+#define MMC_I_MASK_ALL                 0x7f
+
+
+/* MMC_I_REG */
+#define MMC_I_REG_TXFIFO_WR_REQ                (1 << 6)
+#define MMC_I_REG_RXFIFO_RD_REQ                (1 << 5)
+#define MMC_I_REG_CLK_IS_OFF           (1 << 4)
+#define MMC_I_REG_STOP_CMD             (1 << 3)
+#define MMC_I_REG_END_CMD_RES          (1 << 2)
+#define MMC_I_REG_PRG_DONE             (1 << 1)
+#define MMC_I_REG_DATA_TRAN_DONE       (1 << 0)
+
+/* MMC_CMD */
+#define MMC_CMD_INDEX_MAX              0x6f
+
+#define MMC_R1_IDLE_STATE              0x01
+#define MMC_R1_ERASE_STATE             0x02
+#define MMC_R1_ILLEGAL_CMD             0x04
+#define MMC_R1_COM_CRC_ERR             0x08
+#define MMC_R1_ERASE_SEQ_ERR           0x01
+#define MMC_R1_ADDR_ERR                        0x02
+#define MMC_R1_PARAM_ERR               0x04
+
+#define MMC_R1B_WP_ERASE_SKIP          0x0002
+#define MMC_R1B_ERR                    0x0004
+#define MMC_R1B_CC_ERR                 0x0008
+#define MMC_R1B_CARD_ECC_ERR           0x0010
+#define MMC_R1B_WP_VIOLATION           0x0020
+#define MMC_R1B_ERASE_PARAM            0x0040
+#define MMC_R1B_OOR                    0x0080
+#define MMC_R1B_IDLE_STATE             0x0100
+#define MMC_R1B_ERASE_RESET            0x0200
+#define MMC_R1B_ILLEGAL_CMD            0x0400
+#define MMC_R1B_COM_CRC_ERR            0x0800
+#define MMC_R1B_ERASE_SEQ_ERR          0x1000
+#define MMC_R1B_ADDR_ERR               0x2000
+#define MMC_R1B_PARAM_ERR              0x4000
+
+#endif /* __REGS_MMC_H__ */