.. | .. |
---|
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 | |
---|