diff options
author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-09-11 09:59:27 +0200 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-09-11 09:59:27 +0200 |
commit | 5480ac32171ab0e38c48c9f585fa650c7867f6a1 (patch) | |
tree | 6672a47e3675e7e79fd0fbf9b491045230b24eed /arch | |
parent | 68e1747f9c0506159e8ecc9a4feb58e9c65a7b39 (diff) | |
parent | 5c18a1cf3e56e0177388258696be4a17a672e9d0 (diff) |
Merge branch 'u-boot-samsung/master' into 'u-boot-arm/master'
Conflicts:
tools/Makefile
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/include/asm/arch-exynos/gpio.h | 17 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-exynos/mmc.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/arch-s5pc1xx/mmc.h | 6 |
3 files changed, 23 insertions, 6 deletions
diff --git a/arch/arm/include/asm/arch-exynos/gpio.h b/arch/arm/include/asm/arch-exynos/gpio.h index e955811262e..a1a74393d02 100644 --- a/arch/arm/include/asm/arch-exynos/gpio.h +++ b/arch/arm/include/asm/arch-exynos/gpio.h @@ -290,10 +290,19 @@ static inline unsigned int s5p_gpio_part_max(int nr) return EXYNOS5_GPIO_PART2_MAX; } else if (cpu_is_exynos4()) { - if (nr < EXYNOS4_GPIO_PART1_MAX) - return 0; - else - return EXYNOS4_GPIO_PART1_MAX; + if (proid_is_exynos4412()) { + if (nr < EXYNOS4X12_GPIO_PART1_MAX) + return 0; + else if (nr < EXYNOS4X12_GPIO_PART2_MAX) + return EXYNOS4X12_GPIO_PART1_MAX; + else + return EXYNOS4X12_GPIO_PART2_MAX; + } else { + if (nr < EXYNOS4_GPIO_PART1_MAX) + return 0; + else + return EXYNOS4_GPIO_PART1_MAX; + } } return 0; diff --git a/arch/arm/include/asm/arch-exynos/mmc.h b/arch/arm/include/asm/arch-exynos/mmc.h index 96610b88f4d..98312d1c3ce 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 96610b88f4d..55ff10b23ce 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 |