Exynos4412: pinmux: disable pull for MMC pins
Subsystems (4)
PATCH 1/2 Exynos4412: pinmux: disable pull for MMC pins
There are 8 pins for SD card in Exynos, but the MUX was configured only for 7, since the one was used for card detection. This caused the pin's pull wrong configuration.
This commit fixes this and the card detect can work properly, after call this function.
Tested-on: Odroid U3 and Odroid X2.
--- arch/arm/mach-exynos/pinmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-exynos/pinmux.c +1 -1
@@ -737,10 +737,10 @@ static int exynos4x12_mmc_config(int peripheral, int flags)return -1 ; }for (i = start; i < (start +7 ); i++) { +gpio_set_pull (i,S5P_GPIO_PULL_NONE );if (i == (start +2 ))continue ;gpio_cfg_pin (i, func); -gpio_set_pull (i,S5P_GPIO_PULL_NONE );gpio_set_drv (i,S5P_GPIO_DRV_4X ); }if (flags &PINMUX_FLAG_8BIT_MODE ) {
Signature · 1 line
1.9.1
PATCH 2/2 s5p sdhci: call pinmux for card's gpio pins before use them
The SD card detection depends on checking one pin state. But the pin was configured after card was detected, which is wrong.
This commit fixes this, by moving call to pinmux before use the pin.
Tested-on: Odroid U3 and Odroid X2.
--- drivers/mmc/s5p_sdhci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/mmc/s5p_sdhci.c +7 -7
@@ -106,6 +106,12 @@ static int do_sdhci_init(struct sdhci_host *host) flag = host->bus_width ==8 ?PINMUX_FLAG_8BIT_MODE :PINMUX_FLAG_NONE ; dev_id = host->index +PERIPH_ID_SDMMC0 ; + ret =exynos_pinmux_config (dev_id, flag); +if (ret) { +printf ("external SD not configured\n" ); +return ret; + } +if (dm_gpio_is_valid (&host->pwr_gpio)) {dm_gpio_set_value (&host->pwr_gpio,1 ); ret =exynos_pinmux_config (dev_id, flag);
@@ -121,12 +127,6 @@ static int do_sdhci_init(struct sdhci_host *host)debug ("no SD card detected (%d)\n" , ret);return -ENODEV ; } - - ret =exynos_pinmux_config (dev_id, flag); -if (ret) { -printf ("external SD not configured\n" ); -return ret; - } }return s5p_sdhci_core_init (host);
@@ -193,7 +193,7 @@ static int process_nodes(const void *blob, int node_list[], int count) } ret =do_sdhci_init (host); -if (ret) { +if (ret && ret != -ENODEV ) {printf ("%s: failed to initialize dev %d (%d)\n" , __func__, i, ret); failed++; }
Signature · 1 line
1.9.1
PATCH 2/2 s5p sdhci: call pinmux for card's gpio pins before use them
Hi,
Looks good to me.
Best Regards,
Jaehoon Chung
Quoted 57 lines · Przemyslaw Marczak
The SD card detection depends on checking one pin state. But the pin was configured after card was detected, which is wrong.
This commit fixes this, by moving call to pinmux before use the pin.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>--- drivers/mmc/s5p_sdhci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)drivers/mmc/s5p_sdhci.c +7
-7@@ -106,6 +106,12 @@ static int do_sdhci_init(struct sdhci_host *host) flag = host->bus_width ==8 ?PINMUX_FLAG_8BIT_MODE :PINMUX_FLAG_NONE ; dev_id = host->index +PERIPH_ID_SDMMC0 ; + ret =exynos_pinmux_config (dev_id, flag); +if (ret) { +printf ("external SD not configured\n" ); +return ret; + } +if (dm_gpio_is_valid (&host->pwr_gpio)) {dm_gpio_set_value (&host->pwr_gpio,1 ); ret =exynos_pinmux_config (dev_id, flag);@@ -121,12 +127,6 @@ static int do_sdhci_init(struct sdhci_host *host)debug ("no SD card detected (%d)\n" , ret);return -ENODEV ; } - - ret =exynos_pinmux_config (dev_id, flag); -if (ret) { -printf ("external SD not configured\n" ); -return ret; - } }return s5p_sdhci_core_init (host);@@ -193,7 +193,7 @@ static int process_nodes(const void *blob, int node_list[], int count) } ret =do_sdhci_init (host); -if (ret) { +if (ret && ret != -ENODEV ) {printf ("%s: failed to initialize dev %d (%d)\n" , __func__, i, ret); failed++; }
PATCH 2/2 s5p sdhci: call pinmux for card's gpio pins before use them
In reply to Przemyslaw MarczakHi Przemyslaw,
Quoted 48 lines
The SD card detection depends on checking one pin state. But the pin was configured after card was detected, which is wrong.
This commit fixes this, by moving call to pinmux before use the pin.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>--- drivers/mmc/s5p_sdhci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)drivers/mmc/s5p_sdhci.c +6
-6@@ -106,6 +106,12 @@ static int do_sdhci_init(struct sdhci_host *host) flag = host->bus_width ==8 ?PINMUX_FLAG_8BIT_MODE :PINMUX_FLAG_NONE ; dev_id = host->index +PERIPH_ID_SDMMC0 ; + ret =exynos_pinmux_config (dev_id, flag); +if (ret) { +printf ("external SD not configured\n" ); +return ret; + } +if (dm_gpio_is_valid (&host->pwr_gpio)) {dm_gpio_set_value (&host->pwr_gpio,1 ); ret =exynos_pinmux_config (dev_id, flag);@@ -121,12 +127,6 @@ static int do_sdhci_init(struct sdhci_host *host)debug ("no SD card detected (%d)\n" , ret);return -ENODEV ; } - - ret =exynos_pinmux_config (dev_id, flag); -if (ret) { -printf ("external SD not configured\n" ); -return ret; - } }return s5p_sdhci_core_init (host);
drivers/mmc/s5p_sdhci.c static int process_nodes(const void *blob, int · line 199
Quoted 8 lines
drivers/mmc/s5p_sdhci.c +1
-1@@ -193,7 +193,7 @@ static int process_nodes(const void *blob, int node_list[], int count) } ret =do_sdhci_init (host); -if (ret) { +if (ret && ret != -ENODEV ) {printf ("%s: failed to initialize dev %d (%d)\n", __func__, i, ret); failed++; }
Test HW: Exynos 4210 - Trats board.
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 2/2 s5p sdhci: call pinmux for card's gpio pins before use them
In reply to Przemyslaw MarczakQuoted 13 lines · Przemyslaw Marczak
The SD card detection depends on checking one pin state. But the pin was configured after card was detected, which is wrong.
This commit fixes this, by moving call to pinmux before use the pin.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>
Quoted 4 lines
--- drivers/mmc/s5p_sdhci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
applied to u-boot-samsung.
Thanks,
Minkyu Kang.
PATCH 1/2 Exynos4412: pinmux: disable pull for MMC pins
In reply to Przemyslaw MarczakHi,
Looks good to me.
Best Regards,
Jaehoon Chung
Quoted 36 lines · Przemyslaw Marczak
There are 8 pins for SD card in Exynos, but the MUX was configured only for 7, since the one was used for card detection. This caused the pin's pull wrong configuration.
This commit fixes this and the card detect can work properly, after call this function.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>--- arch/arm/mach-exynos/pinmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/mach-exynos/pinmux.c +1
-1@@ -737,10 +737,10 @@ static int exynos4x12_mmc_config(int peripheral, int flags)return -1 ; }for (i = start; i < (start +7 ); i++) { +gpio_set_pull (i,S5P_GPIO_PULL_NONE );if (i == (start +2 ))continue ;gpio_cfg_pin (i, func); -gpio_set_pull (i,S5P_GPIO_PULL_NONE );gpio_set_drv (i,S5P_GPIO_DRV_4X ); }if (flags &PINMUX_FLAG_8BIT_MODE ) {
PATCH 1/2 Exynos4412: pinmux: disable pull for MMC pins
In reply to Przemyslaw MarczakHi Przemyslaw,
Quoted 25 lines
There are 8 pins for SD card in Exynos, but the MUX was configured only for 7, since the one was used for card detection. This caused the pin's pull wrong configuration.
This commit fixes this and the card detect can work properly, after call this function.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>--- arch/arm/mach-exynos/pinmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)(quoted diff) +0
-0
b/arch/arm/mach-exynos/pinmux.cindex 179b294..925bd0a 100644arch/arm/mach-exynos/pinmux.c +0
-0@@ -737,10 +737,10 @@ static int exynos4x12_mmc_config(int peripheral, int flags) return -1;
arch/arm/mach-exynos/pinmux.c static int exynos4x12_mmc_config(int · line 746
Quoted 10 lines
arch/arm/mach-exynos/pinmux.c +1
-1}for (i = start; i < (start +7 ); i++) { +gpio_set_pull (i,S5P_GPIO_PULL_NONE );if (i == (start +2 ))continue ;gpio_cfg_pin (i, func); -gpio_set_pull (i,S5P_GPIO_PULL_NONE );gpio_set_drv (i,S5P_GPIO_DRV_4X ); }if (flags &PINMUX_FLAG_8BIT_MODE ) {
Test HW: Exynos 4210 - Trats board.
Signature · 5 lines
Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
PATCH 1/2 Exynos4412: pinmux: disable pull for MMC pins
In reply to Przemyslaw MarczakQuoted 15 lines · Przemyslaw Marczak
There are 8 pins for SD card in Exynos, but the MUX was configured only for 7, since the one was used for card detection. This caused the pin's pull wrong configuration.
This commit fixes this and the card detect can work properly, after call this function.
Tested-on: Odroid U3 and Odroid X2.
Signed-off-by Przemyslaw Marczak <[email protected]>Cc Guillaume GARDET <[email protected]>Cc Lukasz Majewski <[email protected]>Cc Jaehoon Chung <[email protected]>Cc Minkyu Kang <[email protected]>Cc Simon Glass <[email protected]>
Quoted 4 lines
--- arch/arm/mach-exynos/pinmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
applied to u-boot-samsung.
Thanks,
Minkyu Kang.