|
@@ -383,6 +383,15 @@ struct dm_mmc_ops {
|
|
|
* @return 0 if write-enabled, 1 if write-protected, -ve on error
|
|
|
*/
|
|
|
int (*get_wp)(struct udevice *dev);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * execute_tuning() - Start the tuning process
|
|
|
+ *
|
|
|
+ * @dev: Device to start the tuning
|
|
|
+ * @opcode: Command opcode to send
|
|
|
+ * @return 0 if OK, -ve on error
|
|
|
+ */
|
|
|
+ int (*execute_tuning)(struct udevice *dev, uint opcode);
|
|
|
};
|
|
|
|
|
|
#define mmc_get_ops(dev) ((struct dm_mmc_ops *)(dev)->driver->ops)
|
|
@@ -393,12 +402,14 @@ int dm_mmc_set_ios(struct udevice *dev);
|
|
|
void dm_mmc_send_init_stream(struct udevice *dev);
|
|
|
int dm_mmc_get_cd(struct udevice *dev);
|
|
|
int dm_mmc_get_wp(struct udevice *dev);
|
|
|
+int dm_mmc_execute_tuning(struct udevice *dev, uint opcode);
|
|
|
|
|
|
/* Transition functions for compatibility */
|
|
|
int mmc_set_ios(struct mmc *mmc);
|
|
|
void mmc_send_init_stream(struct mmc *mmc);
|
|
|
int mmc_getcd(struct mmc *mmc);
|
|
|
int mmc_getwp(struct mmc *mmc);
|
|
|
+int mmc_execute_tuning(struct mmc *mmc, uint opcode);
|
|
|
|
|
|
#else
|
|
|
struct mmc_ops {
|