From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Date: Fri, 01 Nov 2013 10:02:15 +0900 Subject: [U-Boot] [PATCH] arm: trats: add the sd-card power control function. In-Reply-To: <20131031180306.30f947da@amdc308.digital.local> References: <52725D29.4080106@samsung.com> <20131031180306.30f947da@amdc308.digital.local> Message-ID: <5272FD97.9080300@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Lukasz, Thanks for your comments. On 11/01/2013 02:03 AM, Lukasz Majewski wrote: > Hi Jaehoon, > >> To use the sd-card, VTF_2.8V will be enabled. >> Before this patch, VTF_2.8V is always disabled.(card can't >> initialize.) When card is detected, SD-card power will enable with >> sd_ldo_control(). >> >> Signed-off-by: Jaehoon Chung >> Signed-off-by: Kyungmin Park >> --- >> board/samsung/trats/trats.c | 38 >> ++++++++++++++++++++++++++++++++------ 1 file changed, 32 >> insertions(+), 6 deletions(-) >> >> diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c >> index 7f61d17..9b6dd12 100644 >> --- a/board/samsung/trats/trats.c >> +++ b/board/samsung/trats/trats.c >> @@ -408,11 +408,31 @@ int checkboard(void) >> #endif >> >> #ifdef CONFIG_GENERIC_MMC >> +static int sd_ldo_control(int on) >> +{ >> + struct pmic *p = pmic_get("MAX8997_PMIC"); >> + u32 val = 0; >> + int ret = 0; >> + if (pmic_probe(p)) >> + return -1; > > Maybe -1 -> -ENODEV Will fix.. > >> + >> + /* LDO17 VTF: 2.8V */ >> + val = max8997_reg_ldo(2800000) | (on? EN_LDO : DIS_LDO); > ^^^ on ? Will fix >> + ret |= pmic_reg_write(p, MAX8997_REG_LDO17CTRL, val); > ^^^^^ ret = Will fix. >> + >> + if (ret) { >> + puts("MAX8997 SD setting error!\n"); > > Please use error() instead of puts() Using error(). > >> + return -1; >> + } >> + >> + return 0; >> +} >> + >> int board_mmc_init(bd_t *bis) >> { >> struct exynos4_gpio_part2 *gpio = >> (struct exynos4_gpio_part2 >> *)samsung_get_base_gpio_part2(); >> - int err; >> + int err, err_sd = 0; > > I think that the err_sd is not needed here. Please use the err as is > was at the original code. As like the goni, I think sd_err needs herre. We need to consider the cases when eMMC is intiailzed and SD-card is failed. If SD-card is failed, then it's always retunred "Fail", although eMMC is initialized. how about? After replying your, i will send the fixing patch. Best Regards, Jaehoon Chung > >> >> /* eMMC_EN: SD_0_CDn: GPK0[2] Output High */ >> s5p_gpio_direction_output(&gpio->k0, 2, 1); >> @@ -438,14 +458,20 @@ int board_mmc_init(bd_t *bis) >> * GPX3[4] T-flash detect pin >> */ >> if (!s5p_gpio_get_value(&gpio->x3, 4)) { >> - err = exynos_pinmux_config(PERIPH_ID_SDMMC2, >> PINMUX_FLAG_NONE); >> - if (err) >> + err_sd = exynos_pinmux_config(PERIPH_ID_SDMMC2, >> PINMUX_FLAG_NONE); >> + if (err_sd) >> debug("SDMMC2 not configured\n"); >> - else >> - err = s5p_mmc_init(2, 4); >> + else { >> + if (!sd_ldo_control(1)) { >> + err_sd = s5p_mmc_init(2, 4); >> + if (err_sd) { >> + sd_ldo_control(0); >> + } > Parenthesis with this if aren't needed. >> + } >> + } >> } >> >> - return err; >> + return err & err_sd; >> } >> #endif >> > > >