Lines Matching refs:csd
98 struct mmc_csd csd; /* csd decoded */ member
183 static void mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd);
184 static int mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd);
839 if (mmcbr_get_mode(dev) != mode_mmc || ivar->csd.spec_vers < 4 || in mmc_set_power_class()
1187 mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_sd() argument
1193 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_sd()
1194 csd->csd_structure = v = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_sd()
1198 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1199 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1202 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1203 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1204 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1205 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1206 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1207 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1208 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1209 csd->vdd_r_curr_min = in mmc_decode_csd_sd()
1211 csd->vdd_r_curr_max = in mmc_decode_csd_sd()
1213 csd->vdd_w_curr_min = in mmc_decode_csd_sd()
1215 csd->vdd_w_curr_max = in mmc_decode_csd_sd()
1219 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_sd()
1220 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1221 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1222 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1223 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1224 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1225 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1226 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1231 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1232 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1235 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1236 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1237 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1238 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1239 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1240 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1241 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1242 csd->capacity = ((uint64_t)mmc_get_bits(raw_csd, 128, 48, 22) + in mmc_decode_csd_sd()
1244 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1245 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1246 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1247 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1248 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1249 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1250 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1257 mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_mmc() argument
1262 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_mmc()
1263 csd->csd_structure = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_mmc()
1264 csd->spec_vers = mmc_get_bits(raw_csd, 128, 122, 4); in mmc_decode_csd_mmc()
1267 csd->tacc = exp[e] * mant[m] + 9 / 10; in mmc_decode_csd_mmc()
1268 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_mmc()
1271 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_mmc()
1272 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_mmc()
1273 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_mmc()
1274 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_mmc()
1275 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_mmc()
1276 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_mmc()
1277 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_mmc()
1278 csd->vdd_r_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 59, 3)]; in mmc_decode_csd_mmc()
1279 csd->vdd_r_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 56, 3)]; in mmc_decode_csd_mmc()
1280 csd->vdd_w_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 53, 3)]; in mmc_decode_csd_mmc()
1281 csd->vdd_w_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 50, 3)]; in mmc_decode_csd_mmc()
1284 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_mmc()
1285 csd->erase_blk_en = 0; in mmc_decode_csd_mmc()
1286 csd->erase_sector = (mmc_get_bits(raw_csd, 128, 42, 5) + 1) * in mmc_decode_csd_mmc()
1288 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 5); in mmc_decode_csd_mmc()
1289 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_mmc()
1290 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_mmc()
1291 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_mmc()
1292 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_mmc()
1663 err = mmc_decode_csd_sd(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1668 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1669 if (ivar->csd.csd_structure > 0) in mmc_discover_cards()
1671 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1672 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1673 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1704 (ivar->csd.ccc & (1 << 10))) { in mmc_discover_cards()
1763 mmc_decode_csd_mmc(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1764 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1765 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1766 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1767 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1790 if (ivar->csd.spec_vers >= 4) { in mmc_discover_cards()
1914 if (ivar->csd.read_bl_len != MMC_SECTOR_SIZE || in mmc_discover_cards()
1915 ivar->csd.write_bl_len != MMC_SECTOR_SIZE) in mmc_discover_cards()
2473 *result = ivar->csd.spec_vers; in mmc_read_ivar()
2476 *result = ivar->csd.dsr_imp; in mmc_read_ivar()