Lines Matching refs:csd
96 struct mmc_csd csd; /* csd decoded */ member
180 static void mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd);
181 static int mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd);
831 if (mmcbr_get_mode(dev) != mode_mmc || ivar->csd.spec_vers < 4 || in mmc_set_power_class()
1179 mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_sd() argument
1185 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_sd()
1186 csd->csd_structure = v = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_sd()
1190 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1191 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1194 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1195 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1196 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1197 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1198 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1199 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1200 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1201 csd->vdd_r_curr_min = in mmc_decode_csd_sd()
1203 csd->vdd_r_curr_max = in mmc_decode_csd_sd()
1205 csd->vdd_w_curr_min = in mmc_decode_csd_sd()
1207 csd->vdd_w_curr_max = in mmc_decode_csd_sd()
1211 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_sd()
1212 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1213 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1214 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1215 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1216 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1217 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1218 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1223 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1224 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1227 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1228 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1229 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1230 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1231 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1232 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1233 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1234 csd->capacity = ((uint64_t)mmc_get_bits(raw_csd, 128, 48, 22) + in mmc_decode_csd_sd()
1236 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1237 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1238 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1239 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1240 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1241 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1242 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1249 mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_mmc() argument
1254 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_mmc()
1255 csd->csd_structure = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_mmc()
1256 csd->spec_vers = mmc_get_bits(raw_csd, 128, 122, 4); in mmc_decode_csd_mmc()
1259 csd->tacc = exp[e] * mant[m] + 9 / 10; in mmc_decode_csd_mmc()
1260 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_mmc()
1263 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_mmc()
1264 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_mmc()
1265 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_mmc()
1266 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_mmc()
1267 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_mmc()
1268 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_mmc()
1269 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_mmc()
1270 csd->vdd_r_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 59, 3)]; in mmc_decode_csd_mmc()
1271 csd->vdd_r_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 56, 3)]; in mmc_decode_csd_mmc()
1272 csd->vdd_w_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 53, 3)]; in mmc_decode_csd_mmc()
1273 csd->vdd_w_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 50, 3)]; in mmc_decode_csd_mmc()
1276 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_mmc()
1277 csd->erase_blk_en = 0; in mmc_decode_csd_mmc()
1278 csd->erase_sector = (mmc_get_bits(raw_csd, 128, 42, 5) + 1) * in mmc_decode_csd_mmc()
1280 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 5); in mmc_decode_csd_mmc()
1281 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_mmc()
1282 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_mmc()
1283 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_mmc()
1284 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_mmc()
1657 err = mmc_decode_csd_sd(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1662 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1663 if (ivar->csd.csd_structure > 0) in mmc_discover_cards()
1665 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1666 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1667 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1698 (ivar->csd.ccc & (1 << 10))) { in mmc_discover_cards()
1757 mmc_decode_csd_mmc(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1758 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1759 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1760 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1761 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1784 if (ivar->csd.spec_vers >= 4) { in mmc_discover_cards()
1908 if (ivar->csd.read_bl_len != MMC_SECTOR_SIZE || in mmc_discover_cards()
1909 ivar->csd.write_bl_len != MMC_SECTOR_SIZE) in mmc_discover_cards()
2472 *result = ivar->csd.spec_vers; in mmc_read_ivar()
2475 *result = ivar->csd.dsr_imp; in mmc_read_ivar()