This patch set enables and initialises DWMMC for Exynos5250 on SMDK5250. Adds driver changes required for DWMMC. Adds FDT support for DWMMC. Adds EMMC boot support for SMDK5250.
This patch set is based on: "EXYNOS: mmc: support DesignWare Controller for Samsung-SoC", which is merged in u-boot-mmc. "Exynos: clock: support get_mmc_clk for exynos". "Add DT based ethernet driver for SMDK5250". "SMDK5250: Add FDT support" present at the following link http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/149991 Changes since V1: 1)Corrected in response to review comments. 2)Created separate board files for FDT and non-FDT versions. 3)Added binding file for DWMMC device node. 4)Removed the propname 'index' from device node. 5)Prefixed the vendor name 'samsung' before propname in device node. 6)Ensured to have same signature for the function exynos_dwmci_init() for both FDT and non-FDT versions. 7)EMMC clock setting has been moved from spl_boot.c to clock_init.c. Changes since V2: 1)Updation of commit message and resubmition of proper patch set. Changes since V3: 1)Updated to use the macro DWMCI_CTRL_SEND_AS_CCSD instead of the hard coded value (1 << 10). 2)In the file exynos_dw_mmc.c, replaced the new function exynos5_mmc_set_clk_div() with the existing function set_mmc_clk(). set_mmc_clk() will do the purpose. 3)In the file exynos_dw_mmc.c, computation of FSYS block clock divisor (pre-ratio) value is added. 4)Removed the new function exynos5_mmc_set_clk_div() from clock.c. Changes since V4: 1)Replaced the device node name 'dwmmc' with 'mmc'. 2)Updated the function dwmci_send_cmd() to use get_timer() instead of using mdelay(1) in the file drivers/mmc/dw_mmc.c. 3)Replaced 'unsigned int exynos_dwmmc_init()' with 'int exynos_dwmci_add_port(int, u32, int, u32)'. 4)The functions dram_init(), dram_init_banksize() and board_uart_init() are updated to use for loop. 5)Replaced the functions mmc_boot_open() & mmc_boot_close() with a single function mmc_boot_part_access(). 6)Added new patch which adds FDT and non-FDT support for I2C. 7)Updated in response to review comments. Amar (10): FDT: Add compatible string for DWMMC EXYNOS5: FDT: Add DWMMC device node data DWMMC: Initialise dwmci and resolve EMMC read write issues EXYNOS5: DWMMC: Added FDT support for DWMMC EXYNOS5: DWMMC: Initialise the local variable to avoid unwanted results. SMDK5250: Initialise and Enable DWMMC, support FDT and non-FDT MMC: APIs to support resize of EMMC boot partition SMDK5250: Enable EMMC booting COMMON: MMC: Command to support EMMC booting and to resize EMMC boot partition EXYNOS5: I2C: Added FDT and non-FDT support for I2C arch/arm/cpu/armv7/exynos/clock.c | 4 +- arch/arm/dts/exynos5250.dtsi | 31 +++++ arch/arm/include/asm/arch-exynos/clk.h | 3 + arch/arm/include/asm/arch-exynos/dwmmc.h | 11 +- board/samsung/dts/exynos5250-smdk5250.dts | 22 ++++ board/samsung/smdk5250/Makefile | 4 + board/samsung/smdk5250/clock_init.c | 15 +++ board/samsung/smdk5250/clock_init.h | 5 + board/samsung/smdk5250/exynos5-dt.c | 211 ++++++++++++++++++++++++++++++ board/samsung/smdk5250/smdk5250.c | 170 ++++++++---------------- board/samsung/smdk5250/spl_boot.c | 52 +++++++- common/cmd_mmc.c | 98 +++++++++++++- doc/device-tree-bindings/exynos/dwmmc.txt | 49 +++++++ drivers/i2c/s3c24x0_i2c.c | 13 +- drivers/mmc/dw_mmc.c | 23 +++- drivers/mmc/exynos_dw_mmc.c | 127 ++++++++++++++++-- drivers/mmc/mmc.c | 117 +++++++++++++++++ include/configs/exynos5250-dt.h | 6 + include/dwmmc.h | 3 + include/fdtdec.h | 1 + include/mmc.h | 24 ++++ lib/fdtdec.c | 1 + 22 files changed, 843 insertions(+), 147 deletions(-) create mode 100644 board/samsung/smdk5250/exynos5-dt.c create mode 100644 doc/device-tree-bindings/exynos/dwmmc.txt -- 1.8.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot