[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