[U-Boot] [PATCH V9 0/9] EXYNOS5: Enable DWMMC, add FDT support for DWMMC and enable EMMC boot

amar_g amarendra.xt at samsung.com
Sat Apr 27 08:12:51 CEST 2013


From: Amar <amarendra.xt at samsung.com>

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.

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



More information about the U-Boot mailing list