diff options
author | Markus Niebel <Markus.Niebel@tqs.de> | 2014-01-14 09:23:34 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-01-15 15:22:43 +0100 |
commit | 78b9e4e041461047ffb27f4a12c8c7346ca34149 (patch) | |
tree | 09449787815f42d3394b70efa095e47a83fcf878 /include/mci.h | |
parent | 96da2169915df634e113e444c357d0cde7c054b8 (diff) | |
download | barebox-78b9e4e041461047ffb27f4a12c8c7346ca34149.tar.gz barebox-78b9e4e041461047ffb27f4a12c8c7346ca34149.tar.xz |
mci: add DSR support
The eMMC and the SD-Card specifications describe the optional SET_DSR command.
During measurements at our lab we found that some cards implementing this feature
having really strong driver strengts per default. This can lead to voltage peaks
above the specification of the host on signal edges for data sent from a card to
the host.
Since availability of a given card type may be shorter than the time a certain
hardware will be produced it is useful to have support for this command (Alternative
would be changing termination resistors and adapting the driver strength of the
host to the used card.)
Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/mci.h')
-rw-r--r-- | include/mci.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/mci.h b/include/mci.h index 65f90ca34e..40a712b4dc 100644 --- a/include/mci.h +++ b/include/mci.h @@ -299,6 +299,8 @@ struct mci_host { unsigned clock; /**< Current clock used to talk to the card */ unsigned bus_width; /**< used data bus width to the card */ unsigned max_req_size; + unsigned dsr_val; /**< optional dsr value */ + int use_dsr; /**< optional dsr usage flag */ /** init the host interface */ int (*init)(struct mci_host*, struct device_d*); @@ -349,6 +351,7 @@ struct mci { unsigned write_bl_len; uint64_t capacity; /**< Card's data capacity in bytes */ int ready_for_use; /** true if already probed */ + int dsr_imp; /**< DSR implementation state from CSD */ char *ext_csd; int probe; struct param_d *param_probe; |