| .. | .. |
|---|
| 161 | 161 | #define R1_STATE_PRG 7 |
|---|
| 162 | 162 | #define R1_STATE_DIS 8 |
|---|
| 163 | 163 | |
|---|
| 164 | +static inline bool mmc_ready_for_data(u32 status) |
|---|
| 165 | +{ |
|---|
| 166 | + /* |
|---|
| 167 | + * Some cards mishandle the status bits, so make sure to check both the |
|---|
| 168 | + * busy indication and the card state. |
|---|
| 169 | + */ |
|---|
| 170 | + return status & R1_READY_FOR_DATA && |
|---|
| 171 | + R1_CURRENT_STATE(status) == R1_STATE_TRAN; |
|---|
| 172 | +} |
|---|
| 173 | + |
|---|
| 164 | 174 | /* |
|---|
| 165 | 175 | * MMC/SD in SPI mode reports R1 status always, and R2 for SEND_STATUS |
|---|
| 166 | 176 | * R1 is the low order byte; R2 is the next highest byte, when present. |
|---|
| .. | .. |
|---|
| 315 | 325 | */ |
|---|
| 316 | 326 | |
|---|
| 317 | 327 | #define EXT_CSD_WR_REL_PARAM_EN (1<<2) |
|---|
| 328 | +#define EXT_CSD_WR_REL_PARAM_EN_RPMB_REL_WR (1<<4) |
|---|
| 318 | 329 | |
|---|
| 319 | 330 | #define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40) |
|---|
| 320 | 331 | #define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10) |
|---|
| .. | .. |
|---|
| 434 | 445 | #define MMC_SECURE_TRIM1_ARG 0x80000001 |
|---|
| 435 | 446 | #define MMC_SECURE_TRIM2_ARG 0x80008000 |
|---|
| 436 | 447 | #define MMC_SECURE_ARGS 0x80000000 |
|---|
| 437 | | -#define MMC_TRIM_ARGS 0x00008001 |
|---|
| 448 | +#define MMC_TRIM_OR_DISCARD_ARGS 0x00008003 |
|---|
| 438 | 449 | |
|---|
| 439 | 450 | #define mmc_driver_type_mask(n) (1 << (n)) |
|---|
| 440 | 451 | |
|---|
| 452 | +struct mmc_card; |
|---|
| 453 | + |
|---|
| 454 | +extern int mmc_select_bus_width(struct mmc_card *card); |
|---|
| 455 | +extern int mmc_select_hs(struct mmc_card *card); |
|---|
| 456 | +extern int mmc_select_hs_ddr(struct mmc_card *card); |
|---|
| 457 | +extern int mmc_select_hs400(struct mmc_card *card); |
|---|
| 458 | +extern int mmc_hs200_tuning(struct mmc_card *card); |
|---|
| 459 | +extern int mmc_select_timing(struct mmc_card *card); |
|---|
| 460 | + |
|---|
| 441 | 461 | #endif /* LINUX_MMC_MMC_H */ |
|---|