Message ID | 1229734407.2662896.1345583240015.JavaMail.root@advansee.com |
---|---|
State | Accepted |
Commit | 9c6c5c06764b7762a016b0ede002511139166fee |
Delegated to: | Stefano Babic |
Headers | show |
On 21/08/2012 23:07, Benoît Thébaudeau wrote: > Define default SoC input clock frequencies for i.MX35 in order to get rid of > duplicated definitions. > > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Stefano Babic <sbabic@denx.de> > --- > This patch depends on http://patchwork.ozlabs.org/patch/177437/ . > > Changes for v2: > - New patch. > > .../arch/arm/cpu/arm1136/mx35/generic.c | 43 ++++++++------------ > .../arch/arm/cpu/arm1136/mx35/timer.c | 2 +- > .../arch/arm/include/asm/arch-mx35/clock.h | 14 +++++++ > .../include/configs/flea3.h | 1 - > .../include/configs/mx35pdk.h | 1 - > 5 files changed, 31 insertions(+), 30 deletions(-) > > diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/generic.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/generic.c > index 8f61069..04c8341 100644 > --- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/generic.c > +++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/generic.c > @@ -149,9 +149,7 @@ static u32 get_mcu_main_clk(void) > struct ccm_regs *ccm = > (struct ccm_regs *)IMX_CCM_BASE; > arm_div = get_arm_div(readl(&ccm->pdr0), &fi, &fd); > - fi *= > - decode_pll(readl(&ccm->mpctl), > - CONFIG_MX35_HCLK_FREQ); > + fi *= decode_pll(readl(&ccm->mpctl), MXC_HCLK); > return fi / (arm_div * fd); > } > > @@ -193,12 +191,10 @@ u32 imx_get_uartclk(void) > (struct ccm_regs *)IMX_CCM_BASE; > u32 pdr4 = readl(&ccm->pdr4); > > - if (readl(&ccm->pdr3) & MXC_CCM_PDR3_UART_M_U) { > + if (readl(&ccm->pdr3) & MXC_CCM_PDR3_UART_M_U) > freq = get_mcu_main_clk(); > - } else { > - freq = decode_pll(readl(&ccm->ppctl), > - CONFIG_MX35_HCLK_FREQ); > - } > + else > + freq = decode_pll(readl(&ccm->ppctl), MXC_HCLK); > freq /= CCM_GET_DIVIDER(pdr4, > MXC_CCM_PDR4_UART_PODF_MASK, > MXC_CCM_PDR4_UART_PODF_OFFSET) + 1; > @@ -253,12 +249,10 @@ unsigned int mxc_get_main_clock(enum mxc_main_clock clk) > break; > case USB_CLK: > usb_podf = (reg4 >> 22) & 0x3F; > - if (reg4 & 0x200) { > + if (reg4 & 0x200) > pll = get_mcu_main_clk(); > - } else { > - pll = decode_pll(readl(&ccm->ppctl), > - CONFIG_MX35_HCLK_FREQ); > - } > + else > + pll = decode_pll(readl(&ccm->ppctl), MXC_HCLK); > > ret_val = pll / (usb_podf + 1); > break; > @@ -285,15 +279,14 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) > clk_sel = mpdr3 & (1 << 14); > pdf = (mpdr4 >> 10) & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > - (pdf + 1); > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); > break; > case SSI1_BAUD: > pre_pdf = (mpdr2 >> 24) & 0x7; > pdf = mpdr2 & 0x3F; > clk_sel = mpdr2 & (1 << 6); > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / > ((pre_pdf + 1) * (pdf + 1)); > break; > case SSI2_BAUD: > @@ -301,15 +294,14 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) > pdf = (mpdr2 >> 8) & 0x3F; > clk_sel = mpdr2 & (1 << 6); > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / > ((pre_pdf + 1) * (pdf + 1)); > break; > case CSI_BAUD: > clk_sel = mpdr2 & (1 << 7); > pdf = (mpdr2 >> 16) & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > - (pdf + 1); > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); > break; > case MSHC_CLK: > pre_pdf = readl(&ccm->pdr1); > @@ -317,36 +309,33 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) > pdf = (pre_pdf >> 22) & 0x3F; > pre_pdf = (pre_pdf >> 28) & 0x7; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / > ((pre_pdf + 1) * (pdf + 1)); > break; > case ESDHC1_CLK: > clk_sel = mpdr3 & 0x40; > pdf = mpdr3 & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > - (pdf + 1); > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); > break; > case ESDHC2_CLK: > clk_sel = mpdr3 & 0x40; > pdf = (mpdr3 >> 8) & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > - (pdf + 1); > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); > break; > case ESDHC3_CLK: > clk_sel = mpdr3 & 0x40; > pdf = (mpdr3 >> 16) & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > - (pdf + 1); > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); > break; > case SPDIF_CLK: > clk_sel = mpdr3 & 0x400000; > pre_pdf = (mpdr3 >> 29) & 0x7; > pdf = (mpdr3 >> 23) & 0x3F; > ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : > - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / > + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / > ((pre_pdf + 1) * (pdf + 1)); > break; > default: > diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/timer.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/timer.c > index 04937a1..6000042 100644 > --- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/timer.c > +++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/timer.c > @@ -101,7 +101,7 @@ ulong get_timer_masked(void) > { > /* > * get_ticks() returns a long long (64 bit), it wraps in > - * 2^64 / CONFIG_MX25_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ > + * 2^64 / MXC_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ > * 5 * 10^9 days... and get_ticks() * CONFIG_SYS_HZ wraps in > * 5 * 10^6 days - long enough. > */ > diff --git u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx35/clock.h u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx35/clock.h > index 0575dad..60285df 100644 > --- u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx35/clock.h > +++ u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx35/clock.h > @@ -24,6 +24,20 @@ > #ifndef __ASM_ARCH_CLOCK_H > #define __ASM_ARCH_CLOCK_H > > +#include <common.h> > + > +#ifdef CONFIG_MX35_HCLK_FREQ > +#define MXC_HCLK CONFIG_MX35_HCLK_FREQ > +#else > +#define MXC_HCLK 24000000 > +#endif > + > +#ifdef CONFIG_MX35_CLK32 > +#define MXC_CLK32 CONFIG_MX35_CLK32 > +#else > +#define MXC_CLK32 32768 > +#endif > + > enum mxc_clock { > MXC_ARM_CLK, > MXC_AHB_CLK, > diff --git u-boot-imx-88e73dd.orig/include/configs/flea3.h u-boot-imx-88e73dd/include/configs/flea3.h > index e8e3c6a..815e2c5 100644 > --- u-boot-imx-88e73dd.orig/include/configs/flea3.h > +++ u-boot-imx-88e73dd/include/configs/flea3.h > @@ -31,7 +31,6 @@ > /* High Level Configuration Options */ > #define CONFIG_ARM1136 /* This is an arm1136 CPU core */ > #define CONFIG_MX35 > -#define CONFIG_MX35_HCLK_FREQ 24000000 > > #define CONFIG_SYS_DCACHE_OFF > #define CONFIG_SYS_CACHELINE_SIZE 32 > diff --git u-boot-imx-88e73dd.orig/include/configs/mx35pdk.h u-boot-imx-88e73dd/include/configs/mx35pdk.h > index f930ed0..751a1e3 100644 > --- u-boot-imx-88e73dd.orig/include/configs/mx35pdk.h > +++ u-boot-imx-88e73dd/include/configs/mx35pdk.h > @@ -31,7 +31,6 @@ > /* High Level Configuration Options */ > #define CONFIG_ARM1136 /* This is an arm1136 CPU core */ > #define CONFIG_MX35 > -#define CONFIG_MX35_HCLK_FREQ 24000000 > > #define CONFIG_DISPLAY_CPUINFO > > Nice clean-up Acked-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
On 21/08/2012 23:07, Benoît Thébaudeau wrote: > Define default SoC input clock frequencies for i.MX35 in order to get rid of > duplicated definitions. > > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > Cc: Stefano Babic <sbabic@denx.de> > --- > This patch depends on http://patchwork.ozlabs.org/patch/177437/ . > Hi Benoît, I cannot apply this series. Can you take a look, please ? Best regards, Stefano
Hi Stefano, > On 21/08/2012 23:07, Benoît Thébaudeau wrote: > > Define default SoC input clock frequencies for i.MX35 in order to > > get rid of > > duplicated definitions. > > > > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > > Cc: Stefano Babic <sbabic@denx.de> > > --- > > This patch depends on http://patchwork.ozlabs.org/patch/177437/ . > > > > Hi Benoît, > > I cannot apply this series. Can you take a look, please ? Yes, it's because it should be applied only after http://patchwork.ozlabs.org/patch/177437/ (dependency indicated after the patch header). Both series touch the same lines, and I didn't know which one you would apply first. I won't be able to work on that this week (vacation). Do you prefer to review and apply (if it's correct for you) the other series first, or do you prefer that I swap these two series? Best regards, Benoît
On 27/08/2012 15:26, Benoît Thébaudeau wrote: >> Hi Benoît, >> >> I cannot apply this series. Can you take a look, please ? > > Yes, it's because it should be applied only after > http://patchwork.ozlabs.org/patch/177437/ (dependency indicated after the patch > header). I see, I have missed this comment. However, in case of this dependency, I have expected that all patches belong to the same patchset. > Both series touch the same lines, and I didn't know which one you would > apply first. I won't be able to work on that this week (vacation). Take your time, you are in vacation ! > Do you prefer > to review and apply (if it's correct for you) the other series first, or do you > prefer that I swap these two series? Wait - I take a closer look to the clock series. If there something to do, you can make your changes when you will be back posting it as a whole patchset, else I will apply them in the order you posted. Best regards, Stefano
diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/generic.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/generic.c index 8f61069..04c8341 100644 --- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/generic.c +++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/generic.c @@ -149,9 +149,7 @@ static u32 get_mcu_main_clk(void) struct ccm_regs *ccm = (struct ccm_regs *)IMX_CCM_BASE; arm_div = get_arm_div(readl(&ccm->pdr0), &fi, &fd); - fi *= - decode_pll(readl(&ccm->mpctl), - CONFIG_MX35_HCLK_FREQ); + fi *= decode_pll(readl(&ccm->mpctl), MXC_HCLK); return fi / (arm_div * fd); } @@ -193,12 +191,10 @@ u32 imx_get_uartclk(void) (struct ccm_regs *)IMX_CCM_BASE; u32 pdr4 = readl(&ccm->pdr4); - if (readl(&ccm->pdr3) & MXC_CCM_PDR3_UART_M_U) { + if (readl(&ccm->pdr3) & MXC_CCM_PDR3_UART_M_U) freq = get_mcu_main_clk(); - } else { - freq = decode_pll(readl(&ccm->ppctl), - CONFIG_MX35_HCLK_FREQ); - } + else + freq = decode_pll(readl(&ccm->ppctl), MXC_HCLK); freq /= CCM_GET_DIVIDER(pdr4, MXC_CCM_PDR4_UART_PODF_MASK, MXC_CCM_PDR4_UART_PODF_OFFSET) + 1; @@ -253,12 +249,10 @@ unsigned int mxc_get_main_clock(enum mxc_main_clock clk) break; case USB_CLK: usb_podf = (reg4 >> 22) & 0x3F; - if (reg4 & 0x200) { + if (reg4 & 0x200) pll = get_mcu_main_clk(); - } else { - pll = decode_pll(readl(&ccm->ppctl), - CONFIG_MX35_HCLK_FREQ); - } + else + pll = decode_pll(readl(&ccm->ppctl), MXC_HCLK); ret_val = pll / (usb_podf + 1); break; @@ -285,15 +279,14 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) clk_sel = mpdr3 & (1 << 14); pdf = (mpdr4 >> 10) & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / - (pdf + 1); + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); break; case SSI1_BAUD: pre_pdf = (mpdr2 >> 24) & 0x7; pdf = mpdr2 & 0x3F; clk_sel = mpdr2 & (1 << 6); ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / ((pre_pdf + 1) * (pdf + 1)); break; case SSI2_BAUD: @@ -301,15 +294,14 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) pdf = (mpdr2 >> 8) & 0x3F; clk_sel = mpdr2 & (1 << 6); ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / ((pre_pdf + 1) * (pdf + 1)); break; case CSI_BAUD: clk_sel = mpdr2 & (1 << 7); pdf = (mpdr2 >> 16) & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / - (pdf + 1); + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); break; case MSHC_CLK: pre_pdf = readl(&ccm->pdr1); @@ -317,36 +309,33 @@ unsigned int mxc_get_peri_clock(enum mxc_peri_clock clk) pdf = (pre_pdf >> 22) & 0x3F; pre_pdf = (pre_pdf >> 28) & 0x7; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / ((pre_pdf + 1) * (pdf + 1)); break; case ESDHC1_CLK: clk_sel = mpdr3 & 0x40; pdf = mpdr3 & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / - (pdf + 1); + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); break; case ESDHC2_CLK: clk_sel = mpdr3 & 0x40; pdf = (mpdr3 >> 8) & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / - (pdf + 1); + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); break; case ESDHC3_CLK: clk_sel = mpdr3 & 0x40; pdf = (mpdr3 >> 16) & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / - (pdf + 1); + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / (pdf + 1); break; case SPDIF_CLK: clk_sel = mpdr3 & 0x400000; pre_pdf = (mpdr3 >> 29) & 0x7; pdf = (mpdr3 >> 23) & 0x3F; ret_val = ((clk_sel != 0) ? mxc_get_main_clock(CPU_CLK) : - decode_pll(readl(&ccm->ppctl), CONFIG_MX35_HCLK_FREQ)) / + decode_pll(readl(&ccm->ppctl), MXC_HCLK)) / ((pre_pdf + 1) * (pdf + 1)); break; default: diff --git u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/timer.c u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/timer.c index 04937a1..6000042 100644 --- u-boot-imx-88e73dd.orig/arch/arm/cpu/arm1136/mx35/timer.c +++ u-boot-imx-88e73dd/arch/arm/cpu/arm1136/mx35/timer.c @@ -101,7 +101,7 @@ ulong get_timer_masked(void) { /* * get_ticks() returns a long long (64 bit), it wraps in - * 2^64 / CONFIG_MX25_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ + * 2^64 / MXC_CLK32 = 2^64 / 2^15 = 2^49 ~ 5 * 10^14 (s) ~ * 5 * 10^9 days... and get_ticks() * CONFIG_SYS_HZ wraps in * 5 * 10^6 days - long enough. */ diff --git u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx35/clock.h u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx35/clock.h index 0575dad..60285df 100644 --- u-boot-imx-88e73dd.orig/arch/arm/include/asm/arch-mx35/clock.h +++ u-boot-imx-88e73dd/arch/arm/include/asm/arch-mx35/clock.h @@ -24,6 +24,20 @@ #ifndef __ASM_ARCH_CLOCK_H #define __ASM_ARCH_CLOCK_H +#include <common.h> + +#ifdef CONFIG_MX35_HCLK_FREQ +#define MXC_HCLK CONFIG_MX35_HCLK_FREQ +#else +#define MXC_HCLK 24000000 +#endif + +#ifdef CONFIG_MX35_CLK32 +#define MXC_CLK32 CONFIG_MX35_CLK32 +#else +#define MXC_CLK32 32768 +#endif + enum mxc_clock { MXC_ARM_CLK, MXC_AHB_CLK, diff --git u-boot-imx-88e73dd.orig/include/configs/flea3.h u-boot-imx-88e73dd/include/configs/flea3.h index e8e3c6a..815e2c5 100644 --- u-boot-imx-88e73dd.orig/include/configs/flea3.h +++ u-boot-imx-88e73dd/include/configs/flea3.h @@ -31,7 +31,6 @@ /* High Level Configuration Options */ #define CONFIG_ARM1136 /* This is an arm1136 CPU core */ #define CONFIG_MX35 -#define CONFIG_MX35_HCLK_FREQ 24000000 #define CONFIG_SYS_DCACHE_OFF #define CONFIG_SYS_CACHELINE_SIZE 32 diff --git u-boot-imx-88e73dd.orig/include/configs/mx35pdk.h u-boot-imx-88e73dd/include/configs/mx35pdk.h index f930ed0..751a1e3 100644 --- u-boot-imx-88e73dd.orig/include/configs/mx35pdk.h +++ u-boot-imx-88e73dd/include/configs/mx35pdk.h @@ -31,7 +31,6 @@ /* High Level Configuration Options */ #define CONFIG_ARM1136 /* This is an arm1136 CPU core */ #define CONFIG_MX35 -#define CONFIG_MX35_HCLK_FREQ 24000000 #define CONFIG_DISPLAY_CPUINFO
Define default SoC input clock frequencies for i.MX35 in order to get rid of duplicated definitions. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Stefano Babic <sbabic@denx.de> --- This patch depends on http://patchwork.ozlabs.org/patch/177437/ . Changes for v2: - New patch. .../arch/arm/cpu/arm1136/mx35/generic.c | 43 ++++++++------------ .../arch/arm/cpu/arm1136/mx35/timer.c | 2 +- .../arch/arm/include/asm/arch-mx35/clock.h | 14 +++++++ .../include/configs/flea3.h | 1 - .../include/configs/mx35pdk.h | 1 - 5 files changed, 31 insertions(+), 30 deletions(-)