06 Oct, 2014
1 commit
-
The DMA descriptors used by the DW MMC block must be aligned to cacheline
size, otherwise we are unable to properly flush/inval cache over them and
we get data corruption.The reason I chose this approach of expanding the structure is because
the driver allocates the descriptors in bulk. This approach does waste
space by inserting slop inbetween the descriptors, but it makes access
to the descriptors easy as the compiler does know the real size of the
structure. It also makes cache operations easy, since the size of the
structure is cache aligned and the structure start address is as well.Signed-off-by: Marek Vasut
Cc: Chin Liang See
Cc: Dinh Nguyen
Cc: Albert Aribaud
Cc: Tom Rini
Cc: Wolfgang Denk
Cc: Pavel Machek
Cc: Pantelis Antoniou
Acked-by: Pavel Machek
16 May, 2014
2 commits
-
Support the DDR mode at dw-mmc controller
Signed-off-by: Jaehoon Chung
Tested-by: Lukasz Majewski
Acked-by: Lukasz Majewski
Signed-off-by: Minkyu Kang -
Restore the platdata(property of dt) into host struct.
Then data's information is maintained and reused anywhere.Signed-off-by: Jaehoon Chung
Tested-by: Lukasz Majewski
Acked-by: Lukasz Majewski
Signed-off-by: Minkyu Kang
24 Mar, 2014
1 commit
-
The way that struct mmc was implemented was a bit of a mess;
configuration and internal state all jumbled up in a single structure.On top of that the way initialization is done with mmc_register leads
to a lot of duplicated code in drivers.Typically the initialization got something like this in every driver.
struct mmc *mmc = malloc(sizeof(struct mmc));
memset(mmc, 0, sizeof(struct mmc);
/* fill in fields of mmc struct */
/* store private data pointer */
mmc_register(mmc);By using the new mmc_create call one just passes an mmc config struct
and an optional private data pointer like this:struct mmc = mmc_create(&cfg, priv);
All in tree drivers have been updated to the new form, and expect
mmc_register to go away before long.Changes since v1:
* Use calloc instead of manually calling memset.
* Mark mmc_register as deprecated.Signed-off-by: Pantelis Antoniou
07 Feb, 2014
1 commit
-
This patch corrects the divider value written to CLKDIV register.
Since SDCLKIN is divided inside controller by the DIVRATIO value set
in the CLKSEL register, we need to use the same output clock value to
calculate the CLKDIV value.
as per user manual: cclk_in = SDCLKIN / (DIVRATIO + 1)Input parameter to mmc_clk is changed to dwmci_host, since
we need the same to read DWMCI_CLKSEL register.This improves the read timing values for channel 0 on SMDK5250
from 0.288sec to 0.144secSigned-off-by: Rajeshwari S Shinde
Acked-by: Jaehoon Chung
Signed-off-by: Pantelis Antoniou
08 Dec, 2013
1 commit
-
dw-mmc.c is the general driver file.
So, remove the exynos specific code at dw-mmc.c.
Instead, exynos specific cod can be move into exynos-dw_mmc.c.Signed-off-by: Jaehoon Chung
Acked-by: Alexey Brodkin
Acked-by: Pantelis Antoniou
Acked-by: Minkyu Kang
31 Oct, 2013
2 commits
-
SMDK5420 has a new Security Management Unit added
for dwmmc driver, hence, configuring the control
registers to support booting via eMMC.Signed-off-by: Alim Akhtar
Signed-off-by: Rajeshwari Shinde
Acked-by: Simon Glass
Acked-by: Jaehoon Chung
Acked-by: Pantelis Antoniou -
To prevent the confusion, use the get_mmc_clk() instead of mmc_clk().
get_mmc_clk() is more exactly name.Signed-off-by: Jaehoon Chung
Acked-by: Pantelis Antoniou
24 Jul, 2013
1 commit
-
Signed-off-by: Wolfgang Denk
[trini: Fixup common/cmd_io.c]
Signed-off-by: Tom Rini
13 Jun, 2013
1 commit
-
This patch adds FDT support for DWMMC, by reading the DWMMC node data
from the device tree and initialising DWMMC channels as per data
obtained from the node.Signed-off-by: Vivek Gautam
Signed-off-by: Amar
Acked-by: Simon Glass
Signed-off-by: Minkyu Kang
22 Oct, 2012
1 commit
-
Support the DesginWare MMC Controller.
Signed-off-by: Jaehoon Chung
Signed-off-by: Kyungmin Park
Signed-off-by: Rajeshawari Shinde
Signed-off-by: Andy Fleming