| .. | .. |
|---|
| 192 | 192 | #define EXT_CSD_HS_TIMING 185 /* R/W */ |
|---|
| 193 | 193 | #define EXT_CSD_REV 192 /* RO */ |
|---|
| 194 | 194 | #define EXT_CSD_CARD_TYPE 196 /* RO */ |
|---|
| 195 | +#define EXT_CSD_CARD_TYPE 196 /* RO */ |
|---|
| 196 | +#define EXT_CSD_DRIVER_STRENGTH 197 /* RO */ |
|---|
| 195 | 197 | #define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */ |
|---|
| 196 | 198 | #define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */ |
|---|
| 197 | 199 | #define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */ |
|---|
| .. | .. |
|---|
| 231 | 233 | #define EXT_CSD_BUS_WIDTH_8 2 /* Card is in 8 bit mode */ |
|---|
| 232 | 234 | #define EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */ |
|---|
| 233 | 235 | #define EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */ |
|---|
| 236 | +#define EXT_CSD_BUS_WIDTH_STROBE BIT(7) /* Enhanced strobe mode */ |
|---|
| 234 | 237 | |
|---|
| 235 | 238 | #define EXT_CSD_TIMING_BC 0 /* Backwards compatility */ |
|---|
| 236 | 239 | #define EXT_CSD_TIMING_HS 1 /* High speed */ |
|---|
| .. | .. |
|---|
| 470 | 473 | * @return 0 if write-enabled, 1 if write-protected, -ve on error |
|---|
| 471 | 474 | */ |
|---|
| 472 | 475 | int (*execute_tuning)(struct udevice *dev, u32 opcode); |
|---|
| 476 | + /* set_enhanced_strobe() - set HS400 enhanced strobe */ |
|---|
| 477 | + int (*set_enhanced_strobe)(struct udevice *dev); |
|---|
| 473 | 478 | }; |
|---|
| 474 | 479 | |
|---|
| 475 | 480 | #define mmc_get_ops(dev) ((struct dm_mmc_ops *)(dev)->driver->ops) |
|---|
| .. | .. |
|---|
| 487 | 492 | int mmc_getcd(struct mmc *mmc); |
|---|
| 488 | 493 | int mmc_getwp(struct mmc *mmc); |
|---|
| 489 | 494 | |
|---|
| 495 | +int mmc_set_enhanced_strobe(struct mmc *mmc); |
|---|
| 490 | 496 | #else |
|---|
| 491 | 497 | struct mmc_ops { |
|---|
| 492 | 498 | bool (*card_busy)(struct mmc *mmc); |
|---|
| .. | .. |
|---|
| 511 | 517 | uint f_max; |
|---|
| 512 | 518 | uint b_max; |
|---|
| 513 | 519 | unsigned char part_type; |
|---|
| 520 | + u8 fixed_drv_type; |
|---|
| 514 | 521 | }; |
|---|
| 515 | 522 | |
|---|
| 516 | 523 | struct sd_ssr { |
|---|
| .. | .. |
|---|
| 598 | 605 | #if CONFIG_IS_ENABLED(DM_MMC) |
|---|
| 599 | 606 | struct udevice *dev; /* Device for this MMC controller */ |
|---|
| 600 | 607 | #endif |
|---|
| 608 | + u8 raw_driver_strength; |
|---|
| 601 | 609 | }; |
|---|
| 602 | 610 | |
|---|
| 603 | 611 | struct mmc_hwpart_conf { |
|---|
| .. | .. |
|---|
| 785 | 793 | */ |
|---|
| 786 | 794 | void mmc_gpio_init_direct(void); |
|---|
| 787 | 795 | |
|---|
| 796 | +#define mmc_driver_type_mask(n) (1 << (n)) |
|---|
| 797 | + |
|---|
| 788 | 798 | #endif /* _MMC_H_ */ |
|---|
| 789 | 799 | |
|---|