mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 00:49:43 +00:00
d3e016cc28
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.144sec Signed-off-by: Rajeshwari S Shinde <rajeshwari.s@samsung.com> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
33 lines
928 B
C
33 lines
928 B
C
/*
|
|
* (C) Copyright 2012 SAMSUNG Electronics
|
|
* Jaehoon Chung <jh80.chung@samsung.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#define DWMCI_CLKSEL 0x09C
|
|
#define DWMCI_SET_SAMPLE_CLK(x) (x)
|
|
#define DWMCI_SET_DRV_CLK(x) ((x) << 16)
|
|
#define DWMCI_SET_DIV_RATIO(x) ((x) << 24)
|
|
|
|
#define EMMCP_MPSBEGIN0 0x1200
|
|
#define EMMCP_SEND0 0x1204
|
|
#define EMMCP_CTRL0 0x120C
|
|
|
|
#define MPSCTRL_SECURE_READ_BIT (0x1<<7)
|
|
#define MPSCTRL_SECURE_WRITE_BIT (0x1<<6)
|
|
#define MPSCTRL_NON_SECURE_READ_BIT (0x1<<5)
|
|
#define MPSCTRL_NON_SECURE_WRITE_BIT (0x1<<4)
|
|
#define MPSCTRL_USE_FUSE_KEY (0x1<<3)
|
|
#define MPSCTRL_ECB_MODE (0x1<<2)
|
|
#define MPSCTRL_ENCRYPTION (0x1<<1)
|
|
#define MPSCTRL_VALID (0x1<<0)
|
|
|
|
/* CLKSEL Register */
|
|
#define DWMCI_DIVRATIO_BIT 24
|
|
#define DWMCI_DIVRATIO_MASK 0x7
|
|
|
|
#ifdef CONFIG_OF_CONTROL
|
|
int exynos_dwmmc_init(const void *blob);
|
|
#endif
|
|
int exynos_dwmci_add_port(int index, u32 regbase, int bus_width, u32 clksel);
|