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

Simon Glass sjg at chromium.org
Sat May 11 05:25:14 CEST 2013


On Sat, Apr 27, 2013 at 12:12 AM, amar_g <amarendra.xt at samsung.com> wrote:
> 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.

The series tested on snow:

Acked-by: Simon Glass <sjg at chromium.org>
Tested-by: Simon Glass <sjg at chromium.org>

>
> 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