diff --git a/sys/dev/sdmmc/sdmmc_mem.c b/sys/dev/sdmmc/sdmmc_mem.c index d496938ac46a..4c072e75838e 100644 --- a/sys/dev/sdmmc/sdmmc_mem.c +++ b/sys/dev/sdmmc/sdmmc_mem.c @@ -1,4 +1,4 @@ -/* $NetBSD: sdmmc_mem.c,v 1.28 2013/05/03 16:13:48 matt Exp $ */ +/* $NetBSD: sdmmc_mem.c,v 1.29 2013/05/03 16:38:35 matt Exp $ */ /* $OpenBSD: sdmmc_mem.c,v 1.10 2009/01/09 10:55:22 jsg Exp $ */ /* @@ -45,7 +45,7 @@ /* Routines for SD/MMC memory cards. */ #include -__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.28 2013/05/03 16:13:48 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sdmmc_mem.c,v 1.29 2013/05/03 16:38:35 matt Exp $"); #ifdef _KERNEL_OPT #include "opt_sdmmc.h" @@ -717,7 +717,10 @@ sdmmc_mem_mmc_init(struct sdmmc_softc *sc, struct sdmmc_function *sf) sf->csd.tran_speed = 26000; /* 26MHz */ break; - case EXT_CSD_CARD_TYPE_52M | EXT_CSD_CARD_TYPE_26M: + case EXT_CSD_CARD_TYPE_52M: + case EXT_CSD_CARD_TYPE_52M_V18: + case EXT_CSD_CARD_TYPE_52M_V12: + case EXT_CSD_CARD_TYPE_52M_V12_18: sf->csd.tran_speed = 52000; /* 52MHz */ hs_timing = 1; break; diff --git a/sys/dev/sdmmc/sdmmcreg.h b/sys/dev/sdmmc/sdmmcreg.h index ce28789bbe43..b02140288212 100644 --- a/sys/dev/sdmmc/sdmmcreg.h +++ b/sys/dev/sdmmc/sdmmcreg.h @@ -1,4 +1,4 @@ -/* $NetBSD: sdmmcreg.h,v 1.13 2012/12/15 00:03:00 jakllsch Exp $ */ +/* $NetBSD: sdmmcreg.h,v 1.14 2013/05/03 16:38:35 matt Exp $ */ /* $OpenBSD: sdmmcreg.h,v 1.4 2009/01/09 10:55:22 jsg Exp $ */ /* @@ -132,8 +132,17 @@ #define EXT_CSD_STRUCTURE_VER_1_2 2 /* Version 4.1-4.2-4.3 */ /* EXT_CSD_CARD_TYPE */ -#define EXT_CSD_CARD_TYPE_26M (1 << 0) -#define EXT_CSD_CARD_TYPE_52M (1 << 1) +/* The only currently valid values for this field are 0x01, 0x03, 0x07, + * 0x0B and 0x0F. */ +#define EXT_CSD_CARD_TYPE_F_26M (1 << 0) +#define EXT_CSD_CARD_TYPE_F_52M (1 << 1) +#define EXT_CSD_CARD_TYPE_F_52M_1_8V (1 << 2) +#define EXT_CSD_CARD_TYPE_F_52M_1_2V (1 << 3) +#define EXT_CSD_CARD_TYPE_26M 0x01 +#define EXT_CSD_CARD_TYPE_52M 0x03 +#define EXT_CSD_CARD_TYPE_52M_V18 0x07 +#define EXT_CSD_CARD_TYPE_52M_V12 0x0b +#define EXT_CSD_CARD_TYPE_52M_V12_18 0x0f /* MMC_SWITCH access mode */ #define MMC_SWITCH_MODE_CMD_SET 0x00 /* Change the command set */