[U-Boot] [PATCH 2/2] WIP2: Add support for pi

Akshay Saraswat akshay.s at samsung.com
Wed Oct 8 11:22:01 CEST 2014


Please, ignore this patch. Pushed by mistake.

>Signed-off-by: Akshay Saraswat <akshay.s at samsung.com>
>---
> arch/arm/cpu/armv7/exynos/clock.c              | 20 +++++++++++---------
> arch/arm/cpu/armv7/exynos/clock_init_exynos5.c |  2 +-
> arch/arm/cpu/armv7/exynos/pinmux.c             |  2 +-
> arch/arm/include/asm/arch-exynos/cpu.h         | 11 ++++++++++-
> arch/arm/include/asm/arch-exynos/gpio.h        |  4 ++--
> drivers/gpio/s5p_gpio.c                        |  2 +-
> 6 files changed, 26 insertions(+), 15 deletions(-)
>
>diff --git a/arch/arm/cpu/armv7/exynos/clock.c b/arch/arm/cpu/armv7/exynos/clock.c
>index 7558eff..9c0d507 100644
>--- a/arch/arm/cpu/armv7/exynos/clock.c
>+++ b/arch/arm/cpu/armv7/exynos/clock.c
>@@ -118,7 +118,9 @@ static int exynos_get_pll_clk(int pllreg, unsigned int r, unsigned int k)
> 			div = PLL_DIV_1024;
> 		else if (proid_is_exynos4412())
> 			div = PLL_DIV_65535;
>-		else if (proid_is_exynos5250() || proid_is_exynos5420())
>+		else if (proid_is_exynos5250()
>+			 || proid_is_exynos5420()
>+			 || proid_is_exynos5800())
> 			div = PLL_DIV_65536;
> 		else
> 			return 0;
>@@ -1581,7 +1583,7 @@ static unsigned long exynos4_get_i2c_clk(void)
> unsigned long get_pll_clk(int pllreg)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_get_pll_clk(pllreg);
> 		return exynos5_get_pll_clk(pllreg);
> 	} else {
>@@ -1617,7 +1619,7 @@ unsigned long get_i2c_clk(void)
> unsigned long get_pwm_clk(void)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_get_pwm_clk();
> 		return clock_get_periph_rate(PERIPH_ID_PWM0);
> 	} else {
>@@ -1630,7 +1632,7 @@ unsigned long get_pwm_clk(void)
> unsigned long get_uart_clk(int dev_index)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_get_uart_clk(dev_index);
> 		return exynos5_get_uart_clk(dev_index);
> 	} else {
>@@ -1643,7 +1645,7 @@ unsigned long get_uart_clk(int dev_index)
> unsigned long get_mmc_clk(int dev_index)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_get_mmc_clk(dev_index);
> 		return exynos5_get_mmc_clk(dev_index);
> 	} else {
>@@ -1654,7 +1656,7 @@ unsigned long get_mmc_clk(int dev_index)
> void set_mmc_clk(int dev_index, unsigned int div)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			exynos5420_set_mmc_clk(dev_index, div);
> 		else
> 			exynos5_set_mmc_clk(dev_index, div);
>@@ -1668,7 +1670,7 @@ unsigned long get_lcd_clk(void)
> 	if (cpu_is_exynos4())
> 		return exynos4_get_lcd_clk();
> 	else {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_get_lcd_clk();
> 		else
> 			return exynos5_get_lcd_clk();
>@@ -1682,7 +1684,7 @@ void set_lcd_clk(void)
> 	else {
> 		if (proid_is_exynos5250())
> 			exynos5_set_lcd_clk();
>-		else if (proid_is_exynos5420())
>+		else if (proid_is_exynos5420() || proid_is_exynos5800())
> 			exynos5420_set_lcd_clk();
> 	}
> }
>@@ -1696,7 +1698,7 @@ void set_mipi_clk(void)
> int set_spi_clk(int periph_id, unsigned int rate)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_set_spi_clk(periph_id, rate);
> 		return exynos5_set_spi_clk(periph_id, rate);
> 	} else {
>diff --git a/arch/arm/cpu/armv7/exynos/clock_init_exynos5.c b/arch/arm/cpu/armv7/exynos/clock_init_exynos5.c
>index b6a9bc1..0aff3d0 100644
>--- a/arch/arm/cpu/armv7/exynos/clock_init_exynos5.c
>+++ b/arch/arm/cpu/armv7/exynos/clock_init_exynos5.c
>@@ -971,7 +971,7 @@ static void exynos5420_system_clock_init(void)
> 
> void system_clock_init(void)
> {
>-	if (proid_is_exynos5420())
>+	if (proid_is_exynos5420() || proid_is_exynos5800())
> 		exynos5420_system_clock_init();
> 	else
> 		exynos5250_system_clock_init();
>diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
>index b929486..17ae2e6 100644
>--- a/arch/arm/cpu/armv7/exynos/pinmux.c
>+++ b/arch/arm/cpu/armv7/exynos/pinmux.c
>@@ -834,7 +834,7 @@ static int exynos4x12_pinmux_config(int peripheral, int flags)
> int exynos_pinmux_config(int peripheral, int flags)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_pinmux_config(peripheral, flags);
> 		else if (proid_is_exynos5250())
> 			return exynos5_pinmux_config(peripheral, flags);
>diff --git a/arch/arm/include/asm/arch-exynos/cpu.h b/arch/arm/include/asm/arch-exynos/cpu.h
>index ba71714..9f3672b 100644
>--- a/arch/arm/include/asm/arch-exynos/cpu.h
>+++ b/arch/arm/include/asm/arch-exynos/cpu.h
>@@ -218,6 +218,13 @@ static inline void s5p_set_cpu_id(void)
> 		/* Exynos5420 */
> 		s5p_cpu_id = 0x5420;
> 		break;
>+	case 0x422:
>+		/*
>+		 * Exynos5800 is a variant of Exynos5422
>+		 * and has the same product id
>+		 */
>+		s5p_cpu_id = 0x5800;
>+		break;
> 	}
> }
> 
>@@ -246,6 +253,7 @@ IS_EXYNOS_TYPE(exynos4210, 0x4210)
> IS_EXYNOS_TYPE(exynos4412, 0x4412)
> IS_EXYNOS_TYPE(exynos5250, 0x5250)
> IS_EXYNOS_TYPE(exynos5420, 0x5420)
>+IS_EXYNOS_TYPE(exynos5800, 0x5800)
> 
> #define SAMSUNG_BASE(device, base)				\
> static inline unsigned int __attribute__((no_instrument_function)) \
>@@ -256,7 +264,8 @@ static inline unsigned int __attribute__((no_instrument_function)) \
> 			return EXYNOS4X12_##base;		\
> 		return EXYNOS4_##base;				\
> 	} else if (cpu_is_exynos5()) {				\
>-		if (proid_is_exynos5420())			\
>+		if (proid_is_exynos5420()			\
>+		    || proid_is_exynos5800())			\
> 			return EXYNOS5420_##base;		\
> 		return EXYNOS5_##base;				\
> 	}							\
>diff --git a/arch/arm/include/asm/arch-exynos/gpio.h b/arch/arm/include/asm/arch-exynos/gpio.h
>index 8fb5c23..32e045a 100644
>--- a/arch/arm/include/asm/arch-exynos/gpio.h
>+++ b/arch/arm/include/asm/arch-exynos/gpio.h
>@@ -1379,7 +1379,7 @@ static struct gpio_info exynos5420_gpio_data[EXYNOS5420_GPIO_NUM_PARTS] = {
> static inline struct gpio_info *get_gpio_data(void)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return exynos5420_gpio_data;
> 		else
> 			return exynos5_gpio_data;
>@@ -1396,7 +1396,7 @@ static inline struct gpio_info *get_gpio_data(void)
> static inline unsigned int get_bank_num(void)
> {
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420())
>+		if (proid_is_exynos5420() || proid_is_exynos5800())
> 			return EXYNOS5420_GPIO_NUM_PARTS;
> 		else
> 			return EXYNOS5_GPIO_NUM_PARTS;
>diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
>index db7b673..bcf44eb 100644
>--- a/drivers/gpio/s5p_gpio.c
>+++ b/drivers/gpio/s5p_gpio.c
>@@ -57,7 +57,7 @@ static inline int s5p_name_to_gpio(const char *name)
> 	 */
> #if defined(CONFIG_EXYNOS4) || defined(CONFIG_EXYNOS5)
> 	if (cpu_is_exynos5()) {
>-		if (proid_is_exynos5420()) {
>+		if (proid_is_exynos5420() || proid_is_exynos5800()) {
> 			tabp = exynos5420_gpio_table;
> 			irregular_bank_name = 'y';
> 			irregular_set_number = '7';
>-- 
>1.9.1
>
>_______________________________________________
>U-Boot mailing list
>U-Boot at lists.denx.de
>http://lists.denx.de/mailman/listinfo/u-boot

Regards,
Akshay Saraswat


More information about the U-Boot mailing list