From: Minkyu Kang <mk7.kang@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 03/10] arm: exynos: Add get_lcd_clk and set_lcd_clk callbacks for Exynos5420
Date: Tue, 24 Jun 2014 16:36:14 +0900 [thread overview]
Message-ID: <53A92A6E.3040806@samsung.com> (raw)
In-Reply-To: <1402995979-32394-4-git-send-email-ajaykumar.rs@samsung.com>
On 17/06/14 18:06, Ajay Kumar wrote:
> Add get_lcd_clk and set_lcd_clk callbacks for Exynos5420 needed by
> exynos video driver.
> Also, configure ACLK_400_DISP1 as the parent for MUX_ACLK_400_DISP1_SUB_SEL.
>
> Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> ---
> arch/arm/cpu/armv7/exynos/clock.c | 74 +++++++++++++++++++++++++++++--
> arch/arm/cpu/armv7/exynos/exynos5_setup.h | 2 +-
> arch/arm/include/asm/arch-exynos/clk.h | 1 +
> 3 files changed, 73 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/exynos/clock.c b/arch/arm/cpu/armv7/exynos/clock.c
> index 400d134..c29b12d 100644
> --- a/arch/arm/cpu/armv7/exynos/clock.c
> +++ b/arch/arm/cpu/armv7/exynos/clock.c
> @@ -82,7 +82,8 @@ static int exynos_get_pll_clk(int pllreg, unsigned int r, unsigned int k)
> * VPLL_CON: MIDV [24:16]
> * BPLL_CON: MIDV [25:16]: Exynos5
> */
> - if (pllreg == APLL || pllreg == MPLL || pllreg == BPLL)
> + if (pllreg == APLL || pllreg == MPLL || pllreg == BPLL ||
> + pllreg == SPLL)
> mask = 0x3ff;
> else
> mask = 0x1ff;
> @@ -391,6 +392,9 @@ static unsigned long exynos5420_get_pll_clk(int pllreg)
> r = readl(&clk->rpll_con0);
> k = readl(&clk->rpll_con1);
> break;
> + case SPLL:
> + r = readl(&clk->spll_con0);
> + break;
> default:
> printf("Unsupported PLL (%d)\n", pllreg);
> return 0;
> @@ -1027,6 +1031,40 @@ static unsigned long exynos5_get_lcd_clk(void)
> return pclk;
> }
>
> +static unsigned long exynos5420_get_lcd_clk(void)
> +{
> + struct exynos5420_clock *clk =
> + (struct exynos5420_clock *)samsung_get_base_clock();
> + unsigned long pclk, sclk;
> + unsigned int sel;
> + unsigned int ratio;
> +
> + /*
> + * CLK_SRC_DISP10
> + * FIMD1_SEL [4]
> + * 0: SCLK_RPLL
> + * 1: SCLK_SPLL
> + */
> + sel = readl(&clk->src_disp10);
> + sel &= (1 << 4);
> +
> + if (sel)
> + sclk = get_pll_clk(SPLL);
> + else
> + sclk = get_pll_clk(RPLL);
> +
> + /*
> + * CLK_DIV_DISP10
> + * FIMD1_RATIO [3:0]
> + */
> + ratio = readl(&clk->div_disp10);
> + ratio = ratio & 0xf;
> +
> + pclk = sclk / (ratio + 1);
> +
> + return pclk;
> +}
> +
> void exynos4_set_lcd_clk(void)
> {
> struct exynos4_clock *clk =
> @@ -1131,6 +1169,33 @@ void exynos5_set_lcd_clk(void)
> clrsetbits_le32(&clk->div_disp1_0, 0xf, 0x0);
> }
>
> +void exynos5420_set_lcd_clk(void)
> +{
> + struct exynos5420_clock *clk =
> + (struct exynos5420_clock *)samsung_get_base_clock();
> + unsigned int cfg;
> +
> + /*
> + * CLK_SRC_DISP10
> + * FIMD1_SEL [4]
> + * 0: SCLK_RPLL
> + * 1: SCLK_SPLL
> + */
> + cfg = readl(&clk->src_disp10);
> + cfg &= ~(0x1 << 4);
> + cfg |= (0 << 4);
> + writel(cfg, &clk->src_disp10);
> +
> + /*
> + * CLK_DIV_DISP10
> + * FIMD1_RATIO [3:0]
> + */
> + cfg = readl(&clk->div_disp10);
> + cfg &= ~(0xf << 0);
> + cfg |= (0 << 0);
> + writel(cfg, &clk->div_disp10);
> +}
> +
> void exynos4_set_mipi_clk(void)
> {
> struct exynos4_clock *clk =
> @@ -1602,14 +1667,17 @@ unsigned long get_lcd_clk(void)
> {
> if (cpu_is_exynos4())
> return exynos4_get_lcd_clk();
> - else
> - return exynos5_get_lcd_clk();
> + else if (proid_is_exynos5420())
> + return exynos5420_get_lcd_clk();
> + return exynos5_get_lcd_clk();
No. Please don't mix cpu_is... and proid_is....
You can refer to other functions.
> }
>
> void set_lcd_clk(void)
> {
> if (cpu_is_exynos4())
> exynos4_set_lcd_clk();
> + else if (proid_is_exynos5420())
> + exynos5420_set_lcd_clk();
ditto.
> else
> exynos5_set_lcd_clk();
> }
> diff --git a/arch/arm/cpu/armv7/exynos/exynos5_setup.h b/arch/arm/cpu/armv7/exynos/exynos5_setup.h
> index db8ea86..5eac9cf 100644
> --- a/arch/arm/cpu/armv7/exynos/exynos5_setup.h
> +++ b/arch/arm/cpu/armv7/exynos/exynos5_setup.h
> @@ -779,7 +779,7 @@
> #define CLK_SRC_TOP2_VAL 0x11101000
> #define CLK_SRC_TOP3_VAL 0x11111111
> #define CLK_SRC_TOP4_VAL 0x11110111
> -#define CLK_SRC_TOP5_VAL 0x11111100
> +#define CLK_SRC_TOP5_VAL 0x11111101
> #define CLK_SRC_TOP6_VAL 0x11110111
> #define CLK_SRC_TOP7_VAL 0x00022200
>
> diff --git a/arch/arm/include/asm/arch-exynos/clk.h b/arch/arm/include/asm/arch-exynos/clk.h
> index ffbc07e..db24dc0 100644
> --- a/arch/arm/include/asm/arch-exynos/clk.h
> +++ b/arch/arm/include/asm/arch-exynos/clk.h
> @@ -15,6 +15,7 @@
> #define VPLL 4
> #define BPLL 5
> #define RPLL 6
> +#define SPLL 7
>
> #define MASK_PRE_RATIO(x) (0xff << ((x << 4) + 8))
> #define MASK_RATIO(x) (0xf << (x << 4))
>
Thanks,
Minkyu Kang.
next prev parent reply other threads:[~2014-06-24 7:36 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-17 9:06 [U-Boot] [PATCH 00/10] peach_pit: Add support for FIMD, DP and parade chip Ajay Kumar
2014-06-17 9:06 ` [U-Boot] [PATCH 01/10] exynos_fb: Remove usage of static defines Ajay Kumar
2014-06-20 3:26 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 02/10] arm: exynos: Add RPLL for Exynos5420 Ajay Kumar
2014-06-20 3:27 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 03/10] arm: exynos: Add get_lcd_clk and set_lcd_clk callbacks " Ajay Kumar
2014-06-20 3:27 ` Simon Glass
2014-06-20 3:31 ` Simon Glass
2014-06-24 7:36 ` Minkyu Kang [this message]
2014-06-24 11:28 ` Ajay kumar
2014-06-24 11:36 ` Minkyu Kang
2014-06-24 11:41 ` Ajay kumar
2014-06-26 1:06 ` Minkyu Kang
2014-06-26 2:22 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 04/10] video: exynos_fimd: Add framework to disable FIMD sysmmu Ajay Kumar
2014-06-20 3:29 ` Simon Glass
2014-06-20 6:42 ` Ajay kumar
2014-06-23 12:15 ` Simon Glass
2014-06-24 6:59 ` Ajay kumar
2014-06-20 3:32 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 05/10] video: Add driver for Parade PS8625 dP to LVDS bridge Ajay Kumar
2014-06-20 3:29 ` Simon Glass
2014-06-20 3:30 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 06/10] ARM: exynos: Add missing declaration for gpio_direction_input Ajay Kumar
2014-06-20 3:35 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 07/10] exynos5420: add callbacks needed for exynos_fb driver Ajay Kumar
2014-06-20 3:36 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 08/10] ARM: exynos: peach_pit: Add DT nodes for fimd and parade bridge chip Ajay Kumar
2014-06-20 3:37 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 09/10] CONFIGS: peach-pit: Enable display for peach_pit board Ajay Kumar
2014-06-20 3:38 ` Simon Glass
2014-06-20 6:12 ` Ajay kumar
2014-06-23 12:18 ` Simon Glass
2014-06-17 9:06 ` [U-Boot] [PATCH 10/10] Pit WIP Ajay Kumar
2014-06-20 3:40 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53A92A6E.3040806@samsung.com \
--to=mk7.kang@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.