On Sat, Apr 27, 2013 at 12:12 AM, amar_g <[email protected]> wrote: > From: Amar <[email protected]> > > 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)Updated the function dwmci_send_cmd() to use get_timer() instead > of using mdelay(1). > 2)Replaced the function call 'exynos_dwmmc_init(0, 8);' with the > function exynos_dwmmc_add_port() in smdk5250.c. > 3)The function get_irom_func(int index) has been added to avoid > type casting at many places. > 4)Used the generic function "mmc_boot_part_access()" instead of two > functions "mmc_boot_open()" and "mmc_boot_close()". By doing so user > can specify which boot partition to be accessed (opened / closed). > > Changes since V5: > 1)Added the 'removable' flag to mmc device node. > 2)Changed the mmc clock value from 50MHz to 52MHz in the function > exynos_dwmci_add_port() present in file drivers/mmc/exynos_dw_mmc.c. > 3)Enabled CONFIG_LCD only for non-FDT operation. > 4)Removed the function call i2c_init() present inside the > function board_i2c_init(). > > Changes since V6: > 1)Re-based to the patch "SMDK5250: Add PMIC voltage settings". > > Changes since V7: > 1)Re-based to the patch > "Exynos: pwm: Remove dead code of function exynos5_get_pwm_clk". > 2)In file dw_mmc.c, updated the function dwmci_setup_bus() to > return 0 if (freq == 0).This is to avoid the run time exception > "raise:Signal # 8 caught". > 3)In the files drivers/mmc/mmc.c and common/cmd_mmc.c, the piece > of code involved in EMMC open/close and resize of EMMC boot > partition has been made conditional and is enabled only if the > macro CONFIG_SUPPORT_EMMC_BOOT is defined. > 4)The macros FSYS1_MMC0_DIV_MASK and FSYS1_MMC0_DIV_VAL are made > local to file clock_init.c. > > Changes since V8: > 1)Re-based to the patch > "exynos: fdt: Add TMU node for snow". > 2)In spl_boot.c, updated USB boot piece of code, to use > get_irom_func(int index) to avoid type casting. > 3)Updated the below in response to review comments > a)Changed the type of input parameters from u32 to u8 for the > function boot_part_access(). > b)Updated the function call to use a constant value 1, > for boot_part_access(mmc, 1, part_num, access). > c)In function dwmci_init, auto stop command is disabled, as this > feature is not required.
The series tested on snow: Acked-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]> > > Amar (9): > 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 > > arch/arm/cpu/armv7/exynos/clock.c | 4 +- > arch/arm/dts/exynos5250.dtsi | 33 +++ > arch/arm/include/asm/arch-exynos/dwmmc.h | 11 +- > board/samsung/dts/exynos5250-smdk5250.dts | 24 ++ > board/samsung/smdk5250/Makefile | 4 + > board/samsung/smdk5250/clock_init.c | 18 ++ > board/samsung/smdk5250/clock_init.h | 5 + > board/samsung/smdk5250/exynos5-dt.c | 423 > +++++++++++++++++++++++++++++ > board/samsung/smdk5250/smdk5250.c | 223 ++++------------ > board/samsung/smdk5250/spl_boot.c | 64 ++++- > common/cmd_mmc.c | 109 ++++++++- > doc/device-tree-bindings/exynos/dwmmc.txt | 54 ++++ > drivers/mmc/dw_mmc.c | 21 +- > drivers/mmc/exynos_dw_mmc.c | 127 ++++++++- > drivers/mmc/mmc.c | 134 +++++++++ > drivers/video/exynos_fb.c | 4 +- > include/configs/exynos5250-dt.h | 8 + > include/dwmmc.h | 3 + > include/fdtdec.h | 1 + > include/mmc.h | 26 ++ > lib/fdtdec.c | 1 + > 21 files changed, 1085 insertions(+), 212 deletions(-) > create mode 100644 board/samsung/smdk5250/exynos5-dt.c > create mode 100644 doc/device-tree-bindings/exynos/dwmmc.txt > > -- > 1.7.3.rc2 > _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

