07 Nov, 2012

1 commit


06 Nov, 2012

3 commits

  • Now we select the vddmin and vddmax values based on both pmic and
    voltage processor data, this allows usage of different power ICs.

    Signed-off-by: Tero Kristo
    Signed-off-by: Kevin Hilman

    Tero Kristo
     
  • These are now called vddmin and vddmax, as these fields will be used
    globally for selecting voltage ranges for a pmic channel, and not
    only for voltage processor.

    Signed-off-by: Tero Kristo
    Signed-off-by: Kevin Hilman

    Tero Kristo
     
  • Every PMIC has it's own eccentricities, For example, one of the
    PMIC has MSB set to 1 for a specific function - voltage enable!
    using an hardcoded value specific for TWL when copied over to
    such an implementation causes the system to crash as the MSB bit
    was 0 and the voltage got disabled!.

    Instead we use actual values and depend on the convertion routines
    to abstract out the eccentricities of each PMIC.

    With this, we can now move the voltages to a common location in
    voltage.h as they are no longer dependent on PMICs and expect the
    PMIC's conversion routines to set a cap if the voltage is out of
    reach for the PMIC.

    Reported-by: Jon Hunter
    Signed-off-by: Nishanth Menon
    Signed-off-by: Vishwanath BS
    Signed-off-by: Tero Kristo
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     

26 Oct, 2012

1 commit


12 Sep, 2012

1 commit

  • Find and unwrap wrapped strings in the style:

    pr_debug("clockdomain: hardware cannot set/clear wake up of "
    "%s when %s wakes up\n", clkdm1->name, clkdm2->name);

    Keeping these strings contiguous seems to be the current Linux kernel
    policy.

    The offending lines were found with the following command:

    pcregrep -rnM '"\s*$\s*"' arch/arm/*omap*

    While here, some messages have been clarified, some pr_warning(
    ... calls have been converted to pr_warn( ..., and some printk(KERN_*
    ... have been converted to pr_*.

    Signed-off-by: Paul Walmsley

    Paul Walmsley
     

07 Mar, 2012

1 commit

  • commit 2f34ce81b8c05c900e45bd88595cc154f7bb5957
    (OMAP3: PM: Adding voltage driver support.)
    introduced runtime computation of waittime to handle all potential
    sys clocks available.

    In the voltage processor, the SPMSUpdateWait is calculated based on
    the slew rate and the voltage step (SMPSUpdateWait = slew rate *
    Voltage Step). After the voltage processor receives the SMPS_Ack
    signal, the Voltage Controller will wait for SMPSUpdateWait clock
    cycles for the voltage to settle to the new value. For all
    practical purposes, the waittime parameter is the OMAP hardware
    translation of what the slew rate on the PMIC is.

    As an example, with TPS62361 on OMAP4460,
    step_size = 10000
    slew_rate = 32000
    sys_clk_rate = 38400

    Our current computation results in the following:
    = ((step_size / slew_rate) * sys_clk_rate) / 1000
    = ((10000 / 32000) * 38400 / 1000
    = 0

    Fix the same using DIV_ROUND_UP as an extra wait clock cycle
    is better than lesser clock cycle. For the above example, this
    translates to:
    = (10000 * 38400) / (1000 * 32000)
    = 12

    Acked-by: Jon Hunter
    [nm@ti.com: slightly better implementation]
    Signed-off-by: Nishanth Menon
    Signed-off-by: Yuan Jiangli
    Acked-by: Kevin Hilman
    Signed-off-by: Tony Lindgren

    Yuan Jiangli
     

10 Feb, 2012

1 commit

  • When the PMIC is not found, voltdm->pmic will be NULL. vp.c's
    initialization function tries to dereferences this, which causes an
    oops:

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c0004000
    [00000000] *pgd=00000000
    Internal error: Oops: 5 [#1] PREEMPT
    Modules linked in:
    CPU: 0 Not tainted (3.3.0-rc2+ #204)
    PC is at omap_vp_init+0x5c/0x15c
    LR is at omap_vp_init+0x58/0x15c
    pc : [] lr : [] psr: 60000013
    sp : c181ff30 ip : c181ff68 fp : c181ff64
    r10: c0407808 r9 : c040786c r8 : c0407814
    r7 : c0026868 r6 : c00264fc r5 : c040ad6c r4 : 00000000
    r3 : 00000040 r2 : 000032c8 r1 : 0000fa00 r0 : 000032c8
    Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 10c5387d Table: 80004019 DAC: 00000015
    Process swapper (pid: 1, stack limit = 0xc181e2e8)
    Stack: (0xc181ff30 to 0xc1820000)
    ff20: c0381d00 c02e9c6d c0383582 c040786c
    ff40: c040ad6c c00264fc c0026868 c0407814 00000000 c03d9de4 c181ff8c c181ff68
    ff60: c03db448 c03db830 c02e982c c03fdfb8 c03fe004 c0039988 00000013 00000000
    ff80: c181ff9c c181ff90 c03d9df8 c03db390 c181ffdc c181ffa0 c0008798 c03d9df0
    ffa0: c181ffc4 c181ffb0 c0055a44 c0187050 c0039988 c03fdfb8 c03fe004 c0039988
    ffc0: 00000013 00000000 00000000 00000000 c181fff4 c181ffe0 c03d1284 c0008708
    ffe0: 00000000 c03d1208 00000000 c181fff8 c0039988 c03d1214 1077ce40 01f7ee08
    Backtrace:
    [] (omap_vp_init+0x0/0x15c) from [] (omap_voltage_late_init+0xc4/0xfc)
    [] (omap_voltage_late_init+0x0/0xfc) from [] (omap2_common_pm_late_init+0x14/0x54)
    r8:00000000 r7:00000013 r6:c0039988 r5:c03fe004 r4:c03fdfb8
    [] (omap2_common_pm_late_init+0x0/0x54) from [] (do_one_initcall+0x9c/0x164)
    [] (do_one_initcall+0x0/0x164) from [] (kernel_init+0x7c/0x120)
    [] (kernel_init+0x0/0x120) from [] (do_exit+0x0/0x2cc)
    r5:c03d1208 r4:00000000
    Code: e5ca300b e5900034 ebf69027 e5994024 (e5941000)
    ---[ end trace aed617dddaf32c3d ]---
    Kernel panic - not syncing: Attempted to kill init!

    Signed-off-by: Russell King

    Russell King
     

18 Nov, 2011

1 commit

  • As suggested by Russell King - ARM Linux ,
    there's no need to keep local prototypes in non-local headers.

    Add mach-omap1/common.h and mach-omap2/common.h and move the
    local prototypes there from plat/common.h and mach/omap4-common.h.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Russell King

    Tony Lindgren
     

16 Sep, 2011

14 commits