Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: mmc: Read card's valid driver strength mask

In preparation for supporing drive strength selection
for eMMC, read the card's valid driver strengths.

Note that though the SD spec uses the term "drive strength",
the JEDEC eMMC spec uses the term "driver strength".

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Adrian Hunter and committed by
Ulf Hansson
b097e07f 3853a042

+3
+1
drivers/mmc/core/mmc.c
··· 437 437 card->ext_csd.raw_trim_mult = 438 438 ext_csd[EXT_CSD_TRIM_MULT]; 439 439 card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; 440 + card->ext_csd.raw_driver_strength = ext_csd[EXT_CSD_DRIVER_STRENGTH]; 440 441 if (card->ext_csd.rev >= 4) { 441 442 if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED] & 442 443 EXT_CSD_PART_SETTING_COMPLETED)
+1
include/linux/mmc/card.h
··· 97 97 u8 raw_erased_mem_count; /* 181 */ 98 98 u8 raw_ext_csd_structure; /* 194 */ 99 99 u8 raw_card_type; /* 196 */ 100 + u8 raw_driver_strength; /* 197 */ 100 101 u8 out_of_int_time; /* 198 */ 101 102 u8 raw_pwr_cl_52_195; /* 200 */ 102 103 u8 raw_pwr_cl_26_195; /* 201 */
+1
include/linux/mmc/mmc.h
··· 302 302 #define EXT_CSD_REV 192 /* RO */ 303 303 #define EXT_CSD_STRUCTURE 194 /* RO */ 304 304 #define EXT_CSD_CARD_TYPE 196 /* RO */ 305 + #define EXT_CSD_DRIVER_STRENGTH 197 /* RO */ 305 306 #define EXT_CSD_OUT_OF_INTERRUPT_TIME 198 /* RO */ 306 307 #define EXT_CSD_PART_SWITCH_TIME 199 /* RO */ 307 308 #define EXT_CSD_PWR_CL_52_195 200 /* RO */