[U-Boot] [PATCH 1/4] ARM: AM33xx: Cleanup dplls data

Tom Rini trini at ti.com
Tue Jun 25 16:53:17 CEST 2013


On Tue, Jun 25, 2013 at 11:09:41AM +0530, Lokesh Vutla wrote:
> Hi Heiko,
> On Tuesday 25 June 2013 10:24 AM, Heiko Schocher wrote:
> >Hello Lokesh,
> >
> >Am 25.06.2013 05:48, schrieb Lokesh Vutla:
> >>Hi Heiko,
> >>On Tuesday 25 June 2013 12:42 AM, Heiko Schocher wrote:
> >>>Hello Lokesh,
> >>>
> >>>Am 24.06.2013 15:15, schrieb Lokesh Vutla:
> >>>>Locking sequence for all the dplls is same.
> >>>>In the current code same sequence is done repeatedly
> >>>>for each dpll. Instead have a generic function
> >>>>for locking dplls and pass dpll data to that function.
> >>>>
> >>>>This is derived from OMAP4 boards.
> >>>>
> >>>>Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
> >>>>---
> >>>>   arch/arm/cpu/armv7/am33xx/Makefile           |    1 +
> >>>>   arch/arm/cpu/armv7/am33xx/clock.c            |  116 ++++++++++++++
> >>>>   arch/arm/cpu/armv7/am33xx/clock_am33xx.c     |  222 +++++---------------------
> >>>>   arch/arm/cpu/armv7/am33xx/emif4.c            |    4 +
> >>>>   arch/arm/include/asm/arch-am33xx/clock.h     |   68 ++++++++
> >>>>   arch/arm/include/asm/arch-am33xx/ddr_defs.h  |    2 +
> >>>>   arch/arm/include/asm/arch-am33xx/sys_proto.h |    1 +
> >>>>   7 files changed, 232 insertions(+), 182 deletions(-)
> >>>>   create mode 100644 arch/arm/cpu/armv7/am33xx/clock.c
> >>>>
> >>>[...]
> >>>>diff --git a/arch/arm/cpu/armv7/am33xx/clock.c b/arch/arm/cpu/armv7/am33xx/clock.c
> >>>>new file mode 100644
> >>>>index 0000000..a7f1d83
> >>>>--- /dev/null
> >>>>+++ b/arch/arm/cpu/armv7/am33xx/clock.c
> >>>>@@ -0,0 +1,116 @@
> >>>[...]
> >>>>+static void do_setup_dpll(const struct dpll_regs *dpll_regs,
> >>>>+			  const struct dpll_params *params)
> >>>>+{
> >>>
> >>>Could we have this function not only static? I posted a patch:
> >>>
> >>>[U-Boot] arm, am335x: make mpu pll config configurable
> >>>http://patchwork.ozlabs.org/patch/248509/
> >>>
> >>>which uses mpu_pll_config() for switching mpu pll clock
> >>>from board code ... you delete this function later in this patch,
> >>>so I think, I can switch to do_setup_pll() ... if this is not
> >>>static code ...
> >>Yes I saw that patch. No need to make this non-static.
> >>Please have your own struct "const struct dpll_params dpll_mpu"
> >>and update your values accordingly.
> >
> >Hmm.. maybe I miss something here. You call setup_dplls()
> >in arch/arm/cpu/armv7/am33xx/clock.c using &dpll_mpu defined
> >in arch/arm/cpu/armv7/am33xx/clock_am33xx.c ... so how to
> >make here a board specific struct?
> >
> >The MPUCLK is configurable through the define CONFIG_SYS_MPUCLK
> >which is good, but I have on this board a PMIC, which in board SPL
> >code change MPU and core voltage ... and after that I change
> >the MPU clock again ...
> Ohk.
> Can't we scale the voltages before calling setup_dplls()
> (Why do you want to configure the MPU clocks twice?
> I don't know much about your board, so I am just asking..:) )
> What I meant is something like below:
> void __weak scale_vcores(void)
> {}
> 
> void prcm_init()
> {
> 	enable_basic_clocks();
> 	scale_vcores();
> 	setup_dplls();
> }

Keep in mind the OPP50 advisory (errata 1.0.24) as well.  The first
fix/work-around for this I've seen drops us down to start with, and then
raises things up.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130625/466cbf23/attachment.pgp>


More information about the U-Boot mailing list