[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