* Control drive strength in software
@ 2013-02-04 13:08 Jeremie Samuel
2013-02-11 17:55 ` Chris Ball
0 siblings, 1 reply; 2+ messages in thread
From: Jeremie Samuel @ 2013-02-04 13:08 UTC (permalink / raw)
To: linux-mmc@vger.kernel.org
Hi,
I'm working on a SDHCI driver for linux kernel 3.4.
The IP that I have to control does not control the Driver Strength.
Driver Type B is always selected. On the other hand, I can control the
drive strength of the pads in software.
I would like to use the interface select_drive_strength of the
mmc_host_ops. Is it a good idea?
If so, I have an other issue.
This function doesn't have an mmc_host as parameter. It is an issue for
me since the drive strength parameters can be board specific.
A solution would be to add this parameter:
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 5674504..cb6d117 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -134,7 +134,7 @@ struct mmc_host_ops {
/* The tuning command opcode value is different for SD and eMMC
cards */
int (*execute_tuning)(struct mmc_host *host, u32 opcode);
void (*enable_preset_value)(struct mmc_host *host, bool enable);
- int (*select_drive_strength)(unsigned int max_dtr, int
host_drv, int card_drv);
+ int (*select_drive_strength)(struct mmc_host *host, unsigned
int max_dtr, int host_drv, int card_drv);
void (*hw_reset)(struct mmc_host *host);
};
Is this solution a good idea?
Also, the drive strength configuration might be different according to
the mode (not only UHS). So, I would like to control the drive strength
for the default speed and the high speed. Would it be relevant to add
this a call to this function in mmc_sd_switch_hs or in mmc_sd_init_card?
Thanks,
Jeremie Samuel
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: Control drive strength in software
2013-02-04 13:08 Control drive strength in software Jeremie Samuel
@ 2013-02-11 17:55 ` Chris Ball
0 siblings, 0 replies; 2+ messages in thread
From: Chris Ball @ 2013-02-11 17:55 UTC (permalink / raw)
To: Jeremie Samuel; +Cc: linux-mmc@vger.kernel.org
Hi Jeremie,
On Mon, Feb 04 2013, Jeremie Samuel wrote:
> This function doesn't have an mmc_host as parameter. It is an issue
> for me since the drive strength parameters can be board specific.
> A solution would be to add this parameter:
>
> diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
> index 5674504..cb6d117 100644
> --- a/include/linux/mmc/host.h
> +++ b/include/linux/mmc/host.h
> @@ -134,7 +134,7 @@ struct mmc_host_ops {
> /* The tuning command opcode value is different for SD and
> eMMC cards */
> int (*execute_tuning)(struct mmc_host *host, u32 opcode);
> void (*enable_preset_value)(struct mmc_host *host, bool enable);
> - int (*select_drive_strength)(unsigned int max_dtr, int
> host_drv, int card_drv);
> + int (*select_drive_strength)(struct mmc_host *host,
> unsigned int max_dtr, int host_drv, int card_drv);
> void (*hw_reset)(struct mmc_host *host);
> };
>
> Is this solution a good idea?
Yes, sounds good. Want to send a formal patch?
> Also, the drive strength configuration might be different according to
> the mode (not only UHS). So, I would like to control the drive
> strength for the default speed and the high speed. Would it be
> relevant to add this a call to this function in mmc_sd_switch_hs or in
> mmc_sd_init_card?
Yes, that sounds sensible too.
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-02-11 17:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-04 13:08 Control drive strength in software Jeremie Samuel
2013-02-11 17:55 ` Chris Ball
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).