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);
840 if (mmcbr_get_mode(dev) != mode_mmc || ivar->csd.spec_vers < 4 || in mmc_set_power_class()
1188 mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_sd() argument
1194 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_sd()
1195 csd->csd_structure = v = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_sd()
1199 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1200 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1203 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1204 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1205 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1206 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1207 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1208 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1209 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1210 csd->vdd_r_curr_min = in mmc_decode_csd_sd()
1212 csd->vdd_r_curr_max = in mmc_decode_csd_sd()
1214 csd->vdd_w_curr_min = in mmc_decode_csd_sd()
1216 csd->vdd_w_curr_max = in mmc_decode_csd_sd()
1220 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_sd()
1221 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1222 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1223 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1224 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1225 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1226 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1227 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1232 csd->tacc = (exp[e] * mant[m] + 9) / 10; in mmc_decode_csd_sd()
1233 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_sd()
1236 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_sd()
1237 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_sd()
1238 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_sd()
1239 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_sd()
1240 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_sd()
1241 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_sd()
1242 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_sd()
1243 csd->capacity = ((uint64_t)mmc_get_bits(raw_csd, 128, 48, 22) + in mmc_decode_csd_sd()
1245 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1); in mmc_decode_csd_sd()
1246 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1; in mmc_decode_csd_sd()
1247 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7); in mmc_decode_csd_sd()
1248 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_sd()
1249 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_sd()
1250 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_sd()
1251 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_sd()
1258 mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd) in mmc_decode_csd_mmc() argument
1263 memset(csd, 0, sizeof(*csd)); in mmc_decode_csd_mmc()
1264 csd->csd_structure = mmc_get_bits(raw_csd, 128, 126, 2); in mmc_decode_csd_mmc()
1265 csd->spec_vers = mmc_get_bits(raw_csd, 128, 122, 4); in mmc_decode_csd_mmc()
1268 csd->tacc = exp[e] * mant[m] + 9 / 10; in mmc_decode_csd_mmc()
1269 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100; in mmc_decode_csd_mmc()
1272 csd->tran_speed = exp[e] * 10000 * mant[m]; in mmc_decode_csd_mmc()
1273 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12); in mmc_decode_csd_mmc()
1274 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4); in mmc_decode_csd_mmc()
1275 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1); in mmc_decode_csd_mmc()
1276 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1); in mmc_decode_csd_mmc()
1277 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1); in mmc_decode_csd_mmc()
1278 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1); in mmc_decode_csd_mmc()
1279 csd->vdd_r_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 59, 3)]; in mmc_decode_csd_mmc()
1280 csd->vdd_r_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 56, 3)]; in mmc_decode_csd_mmc()
1281 csd->vdd_w_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 53, 3)]; in mmc_decode_csd_mmc()
1282 csd->vdd_w_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 50, 3)]; in mmc_decode_csd_mmc()
1285 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len; in mmc_decode_csd_mmc()
1286 csd->erase_blk_en = 0; in mmc_decode_csd_mmc()
1287 csd->erase_sector = (mmc_get_bits(raw_csd, 128, 42, 5) + 1) * in mmc_decode_csd_mmc()
1289 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 5); in mmc_decode_csd_mmc()
1290 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1); in mmc_decode_csd_mmc()
1291 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3); in mmc_decode_csd_mmc()
1292 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4); in mmc_decode_csd_mmc()
1293 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1); in mmc_decode_csd_mmc()
1666 err = mmc_decode_csd_sd(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1671 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1672 if (ivar->csd.csd_structure > 0) in mmc_discover_cards()
1674 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1675 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1676 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1707 (ivar->csd.ccc & (1 << 10))) { in mmc_discover_cards()
1766 mmc_decode_csd_mmc(ivar->raw_csd, &ivar->csd); in mmc_discover_cards()
1767 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE; in mmc_discover_cards()
1768 ivar->tran_speed = ivar->csd.tran_speed; in mmc_discover_cards()
1769 ivar->erase_sector = ivar->csd.erase_sector * in mmc_discover_cards()
1770 ivar->csd.write_bl_len / MMC_SECTOR_SIZE; in mmc_discover_cards()
1793 if (ivar->csd.spec_vers >= 4) { in mmc_discover_cards()
1917 if (ivar->csd.read_bl_len != MMC_SECTOR_SIZE || in mmc_discover_cards()
1918 ivar->csd.write_bl_len != MMC_SECTOR_SIZE) in mmc_discover_cards()
2476 *result = ivar->csd.spec_vers; in mmc_read_ivar()
2479 *result = ivar->csd.dsr_imp; in mmc_read_ivar()