Patchwork [U-Boot,1/3] arm:mmc:goni/exynos: Fix wrong mmc base register devices offset.

login
register
mail settings
Submitter Przemyslaw Marczak
Date Aug. 20, 2013, 10:53 a.m.
Message ID <1376995992-20870-1-git-send-email-p.marczak@samsung.com>
Download mbox | patch
Permalink /patch/268488/
State Changes Requested
Delegated to: Minkyu Kang
Headers show

Comments

Przemyslaw Marczak - Aug. 20, 2013, 10:53 a.m.
On s5pc1xx mmc devices offset is multiply of 0x100000,
wrong value was 0x10000. Register offset always points
to mmc 0 before this change.

Add macro definition of mmc dev register offset to s5pc1xx and
exynos mmc.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Minkyu Kang <mk7.kang@samsung.com>
---
 arch/arm/include/asm/arch-exynos/mmc.h  |    6 +++++-
 arch/arm/include/asm/arch-s5pc1xx/mmc.h |    6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
Przemyslaw Marczak - Aug. 28, 2013, 7:11 a.m.
Hi Minkyu,

 > On s5pc1xx mmc devices offset is multiply of 0x100000,
> wrong value was 0x10000. Register offset always points
> to mmc 0 before this change.
>
> Add macro definition of mmc dev register offset to s5pc1xx and
> exynos mmc.

Could you review this patch, please?

>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> CC: Minkyu Kang <mk7.kang@samsung.com>
> ---
>   arch/arm/include/asm/arch-exynos/mmc.h  |    6 +++++-
>   arch/arm/include/asm/arch-s5pc1xx/mmc.h |    6 +++++-
>   2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-exynos/mmc.h b/arch/arm/include/asm/arch-exynos/mmc.h
> index 96610b8..98312d1 100644
> --- a/arch/arm/include/asm/arch-exynos/mmc.h
> +++ b/arch/arm/include/asm/arch-exynos/mmc.h
> @@ -8,6 +8,8 @@
>   #ifndef __ASM_ARCH_MMC_H_
>   #define __ASM_ARCH_MMC_H_
>
> +#define S5P_MMC_DEV_OFFSET	0x10000
> +
>   #define SDHCI_CONTROL2		0x80
>   #define SDHCI_CONTROL3		0x84
>   #define SDHCI_CONTROL4		0x8C
> @@ -55,7 +57,9 @@ int s5p_sdhci_init(u32 regbase, int index, int bus_width);
>
>   static inline unsigned int s5p_mmc_init(int index, int bus_width)
>   {
> -	unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
> +	unsigned int base = samsung_get_base_mmc() +
> +				(S5P_MMC_DEV_OFFSET * index);
> +
>   	return s5p_sdhci_init(base, index, bus_width);
>   }
>   #endif
> diff --git a/arch/arm/include/asm/arch-s5pc1xx/mmc.h b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
> index 96610b8..55ff10b 100644
> --- a/arch/arm/include/asm/arch-s5pc1xx/mmc.h
> +++ b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
> @@ -8,6 +8,8 @@
>   #ifndef __ASM_ARCH_MMC_H_
>   #define __ASM_ARCH_MMC_H_
>
> +#define S5P_MMC_DEV_OFFSET	0x100000
> +
>   #define SDHCI_CONTROL2		0x80
>   #define SDHCI_CONTROL3		0x84
>   #define SDHCI_CONTROL4		0x8C
> @@ -55,7 +57,9 @@ int s5p_sdhci_init(u32 regbase, int index, int bus_width);
>
>   static inline unsigned int s5p_mmc_init(int index, int bus_width)
>   {
> -	unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
> +	unsigned int base = samsung_get_base_mmc() +
> +				 (S5P_MMC_DEV_OFFSET * index);
> +
>   	return s5p_sdhci_init(base, index, bus_width);
>   }
>   #endif
>
Jaehoon Chung - Aug. 28, 2013, 8:45 a.m.
Looks good to me.

Acked-by: Jaehoon Chung <jh80.chung@samsung.com>

On 08/28/2013 04:11 PM, Przemyslaw Marczak wrote:
> Hi Minkyu,
> 
>> On s5pc1xx mmc devices offset is multiply of 0x100000,
>> wrong value was 0x10000. Register offset always points
>> to mmc 0 before this change.
>>
>> Add macro definition of mmc dev register offset to s5pc1xx and
>> exynos mmc.
> 
> Could you review this patch, please?
> 
>>
>> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> CC: Minkyu Kang <mk7.kang@samsung.com>
>> ---
>>   arch/arm/include/asm/arch-exynos/mmc.h  |    6 +++++-
>>   arch/arm/include/asm/arch-s5pc1xx/mmc.h |    6 +++++-
>>   2 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/arch-exynos/mmc.h b/arch/arm/include/asm/arch-exynos/mmc.h
>> index 96610b8..98312d1 100644
>> --- a/arch/arm/include/asm/arch-exynos/mmc.h
>> +++ b/arch/arm/include/asm/arch-exynos/mmc.h
>> @@ -8,6 +8,8 @@
>>   #ifndef __ASM_ARCH_MMC_H_
>>   #define __ASM_ARCH_MMC_H_
>>
>> +#define S5P_MMC_DEV_OFFSET    0x10000
>> +
>>   #define SDHCI_CONTROL2        0x80
>>   #define SDHCI_CONTROL3        0x84
>>   #define SDHCI_CONTROL4        0x8C
>> @@ -55,7 +57,9 @@ int s5p_sdhci_init(u32 regbase, int index, int bus_width);
>>
>>   static inline unsigned int s5p_mmc_init(int index, int bus_width)
>>   {
>> -    unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
>> +    unsigned int base = samsung_get_base_mmc() +
>> +                (S5P_MMC_DEV_OFFSET * index);
>> +
>>       return s5p_sdhci_init(base, index, bus_width);
>>   }
>>   #endif
>> diff --git a/arch/arm/include/asm/arch-s5pc1xx/mmc.h b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
>> index 96610b8..55ff10b 100644
>> --- a/arch/arm/include/asm/arch-s5pc1xx/mmc.h
>> +++ b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
>> @@ -8,6 +8,8 @@
>>   #ifndef __ASM_ARCH_MMC_H_
>>   #define __ASM_ARCH_MMC_H_
>>
>> +#define S5P_MMC_DEV_OFFSET    0x100000
>> +
>>   #define SDHCI_CONTROL2        0x80
>>   #define SDHCI_CONTROL3        0x84
>>   #define SDHCI_CONTROL4        0x8C
>> @@ -55,7 +57,9 @@ int s5p_sdhci_init(u32 regbase, int index, int bus_width);
>>
>>   static inline unsigned int s5p_mmc_init(int index, int bus_width)
>>   {
>> -    unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
>> +    unsigned int base = samsung_get_base_mmc() +
>> +                 (S5P_MMC_DEV_OFFSET * index);
>> +
>>       return s5p_sdhci_init(base, index, bus_width);
>>   }
>>   #endif
>>
> 
>

Patch

diff --git a/arch/arm/include/asm/arch-exynos/mmc.h b/arch/arm/include/asm/arch-exynos/mmc.h
index 96610b8..98312d1 100644
--- a/arch/arm/include/asm/arch-exynos/mmc.h
+++ b/arch/arm/include/asm/arch-exynos/mmc.h
@@ -8,6 +8,8 @@ 
 #ifndef __ASM_ARCH_MMC_H_
 #define __ASM_ARCH_MMC_H_
 
+#define S5P_MMC_DEV_OFFSET	0x10000
+
 #define SDHCI_CONTROL2		0x80
 #define SDHCI_CONTROL3		0x84
 #define SDHCI_CONTROL4		0x8C
@@ -55,7 +57,9 @@  int s5p_sdhci_init(u32 regbase, int index, int bus_width);
 
 static inline unsigned int s5p_mmc_init(int index, int bus_width)
 {
-	unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
+	unsigned int base = samsung_get_base_mmc() +
+				(S5P_MMC_DEV_OFFSET * index);
+
 	return s5p_sdhci_init(base, index, bus_width);
 }
 #endif
diff --git a/arch/arm/include/asm/arch-s5pc1xx/mmc.h b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
index 96610b8..55ff10b 100644
--- a/arch/arm/include/asm/arch-s5pc1xx/mmc.h
+++ b/arch/arm/include/asm/arch-s5pc1xx/mmc.h
@@ -8,6 +8,8 @@ 
 #ifndef __ASM_ARCH_MMC_H_
 #define __ASM_ARCH_MMC_H_
 
+#define S5P_MMC_DEV_OFFSET	0x100000
+
 #define SDHCI_CONTROL2		0x80
 #define SDHCI_CONTROL3		0x84
 #define SDHCI_CONTROL4		0x8C
@@ -55,7 +57,9 @@  int s5p_sdhci_init(u32 regbase, int index, int bus_width);
 
 static inline unsigned int s5p_mmc_init(int index, int bus_width)
 {
-	unsigned int base = samsung_get_base_mmc() + (0x10000 * index);
+	unsigned int base = samsung_get_base_mmc() +
+				 (S5P_MMC_DEV_OFFSET * index);
+
 	return s5p_sdhci_init(base, index, bus_width);
 }
 #endif