05 Jun, 2013

2 commits

  • Add OPP table for MPU voltage domain.

    Changes from PG2.0:
    1. The Operating voltage for Nitro Mode is 1.35V
    2. PG 2.1 SoC has a new efuse sma register which describes the device's
    ARM maximum frequency capabilities and package type. Upon parsing this
    register, the supported maximum frequency is obtained.
    Note:
    If this register is not populated (mpu max freq field is 0), then we
    revert back to PG 2.0 OPP list.

    Signed-off-by: Hebbar Gururaja

    Hebbar Gururaja
     
  • This reverts commit ee9dfd8d729d3e7b5ce9e404a0e87f27f6f79135.

    This patch checks for the package type for checking the supported opp
    bits & also if the bits are set, the opp table is updated.
    However, checking package type bit is not required & also, the opp bit
    checking must be reversed.

    A fix for the same will follow after this commit

    Hebbar Gururaja
     

29 May, 2013

2 commits

  • As per Advisory 1.0.15 (ARM Cortex-A8: OPP50 Operation on MPU Domain Not
    Supported), when the board is booted with OPP50, reliable operation is
    not guaranteed for OPP greater than OPP100 (OPP120, TURBO, NITRO).

    So, Check if the board is booted at OPP50 voltage & if yes, disable
    higher OPP (OPP120, TURBO, NITRO).

    Signed-off-by: Hebbar Gururaja

    Hebbar Gururaja
     
  • Add OPP table for MPU voltage domain.

    Changes from PG2.0:
    1. The Operating voltage for Nitro Mode is 1.35v
    2. PG 2.1 SoC has a new efuse sma register which describes the device's
    ARM maximum frequency capabilities and package type. Upon parsing this
    register, the supported maximum frequency is obtained.
    Note:
    If this register is not populated or the data is invalid (package type),
    then we revert back to PG 2.0 OPP list.

    Signed-off-by: Hebbar Gururaja

    Hebbar Gururaja
     

02 May, 2013

1 commit

  • Errata Titles:
    i103: Delay needed to read some GP timer, WD timer and sync timer
    registers after wakeup (OMAP3/4)
    i767: Delay needed to read some GP timer registers after wakeup (OMAP5)

    Description (i103/i767):
    If a General Purpose Timer (GPTimer) is in posted mode
    (TSICR [2].POSTED=1), due to internal resynchronizations, values read in
    TCRR, TCAR1 and TCAR2 registers right after the timer interface clock
    (L4) goes from stopped to active may not return the expected values. The
    most common event leading to this situation occurs upon wake up from
    idle.

    GPTimer non-posted synchronization mode is not impacted by this
    limitation.

    Workarounds:
    1). Disable posted mode
    2). Use static dependency between timer clock domain and MPUSS clock
    domain
    3). Use no-idle mode when the timer is active

    Workarounds #2 and #3 are not pratical from a power standpoint and so
    workaround #1 has been implemented. Disabling posted mode adds some CPU
    overhead for configuring and reading the timers as the CPU has to wait
    for accesses to be re-synchronised within the timer. However, disabling
    posted mode guarantees correct operation.

    Please note that it is safe to use posted mode for timers if the counter
    (TCRR) and capture (TCARx) registers will never be read. An example of
    this is the clock-event system timer. This is used by the kernel to
    schedule events however, the timers counter is never read and capture
    registers are not used. Given that the kernel configures this timer
    often yet never reads the counter register it is safe to enable posted
    mode in this case. Hence, for the timer used for kernel clock-events,
    posted mode is enabled by overriding the errata for devices that are
    impacted by this defect.

    For drivers using the timers that do not read the counter or capture
    registers and wish to use posted mode, can override the errata and
    enable posted mode by making the following function calls.

    __omap_dm_timer_override_errata(timer, OMAP_TIMER_ERRATA_I103_I767);
    __omap_dm_timer_enable_posted(timer);

    Both dmtimers and watchdogs are impacted by this defect this patch only
    implements the workaround for the dmtimer. Currently the watchdog driver
    does not read the counter register and so no workaround is necessary.

    Posted mode will be disabled for all OMAP2+ devices (including AM33xx)
    using a GP timer as a clock-source timer to guarantee correct operation.
    This is not necessary for OMAP24xx devices but the default clock-source
    timer for OMAP24xx devices is the 32k-sync timer and not the GP timer
    and so should not have any impact. This should be re-visited for future
    devices if this errata is fixed.

    Confirmed with Vaibhav Hiremath that this bug also impacts AM33xx
    devices.

    Signed-off-by: Jon Hunter
    Acked-by: Santosh Shilimkar
    [hvaibhav@ti.com: Backported to v3.2 PSP kernel, also merged
    commit 7b44cf2c15f (ARM: OMAP: Fix timer posted mode support)]
    Signed-off-by: Vaibhav Hiremath

    Jon Hunter
     

26 Apr, 2013

3 commits


17 Apr, 2013

1 commit


16 Apr, 2013

2 commits


04 Apr, 2013

12 commits


07 Mar, 2013

1 commit

  • The current code does not enable all the input channels asked for.
    For example if we want to read continuous data from 3 channels at a
    time, the code only enables one channel.
    Also the step configuration while switching from one shot to continuous,
    configured the 1st input to the rest of the channels as well.
    Hence in continuous mode voltage from 1st channel appears on all
    the remaining channels. Fix the issue by configuring to correct input
    channels.

    Signed-off-by: Patil, Rachna
    Signed-off-by: Vaibhav Hiremath

    Patil, Rachna
     

01 Mar, 2013

9 commits


28 Feb, 2013

2 commits

  • The timer TISTAT register is a read-only register and therefore restoring the
    context is not needed. Furthermore, the context of TISTAT is never saved
    anywhere in the current code. The TISTAT register is read-only for all OMAP
    devices from OMAP1 to OMAP4. OMAP5 timers no longer have this register.

    [akshay.s@ti.com: Observed a crash when adding support for the
    DMTIMER wakeup for standby mode.
    This crash occurred during context restore when restoring values
    to TIOCP_CFG and TISTAT registers in the function
    omap_timer_restore_context().
    This issue was fixed in the mainline. So backporting it to fix the same]

    Signed-off-by: Jon Hunter
    Acked-by: Santosh Shilimkar
    Signed-off-by: ShankarMurthy, Akshay
    Signed-off-by: Satyanarayana Sandhya

    Jon Hunter
     
  • Since hwmod framework now manages sysconfig context save/restore
    there is no more need to touch this register in driver. Hence,
    remove restore of sysconfig register in omap_timer_restore_context.
    This was causing incorrect context restore of sysconfig register.

    [akshay.s@ti.com: Observed a warning when adding support for the
    DMTIMER wakeup for standby mode.

    WARNING: at arch/arm/plat-omap/dmtimer.c:77
    omap_dm_timer_write_reg+0x6c/0x74()

    This issue was fixed in the mainline. So backporting this patch
    to fix the same]

    Signed-off-by: Tarun Kanti DebBarma
    Acked-by: Santosh Shilimkar
    Acked-by: Kevin Hilman
    Signed-off-by: Tony Lindgren
    Signed-off-by: ShankarMurthy, Akshay
    Signed-off-by: Satyanarayana Sandhya

    Tarun Kanti DebBarma
     

22 Feb, 2013

5 commits

  • Wakeup from standby mode is supported via GPIO method where peripherals
    can be configured as gpios while entering standby and wakeup happens
    through gpio interrupt.

    This patch provides an method to handle the same through a debugfs
    approach.

    User should know the IO pads to be configured and the trigger value to
    be written to them. The PAD offset & gpio configuration depends mainly
    on the wake-up source selected.

    Inside /omap_mux/board/ (Directory where these
    features are available)

    standby_gpio_pad_conf

    standby_gpio_pad_conf
    Expected input: pinmux_name=,
    Pin-mux name that is to be setup as gpio during standby
    suspend with gpio interrupt trigger mode as per field
    with value .
    Pin-mux name should be in "mode0_name.mode7_function_name"
    format. Internally the pin-mux offset is calculated from the
    pin-mux names. Invalid pin-mux names and values are ignored.
    Remember,
    - No spaces anywhere in the input.
    - field is a must
    - field is a must and must be one of "rising",
    "falling"

    Example:
    echo uart0_rxd.gpio1_10=0x27,rising > standby_gpio_pad_conf
    sets up uart0_rxd.gpio1_10 for gpio mode with interrupt trigger
    as rising and pin-mux value as 0x27 when entering standby mode.

    During standby, If "standby_gpio_pad_conf" is configured, then the
    respective pin-mux value is saved, the gpio pin-mux mode is selected
    for the pin. Relevant gpio settings & interrupts are configured.
    During resume, the original values saved are restored back.

    User should make sure that the mux mode exists for the selected pin-mux
    and the trigger is proper.

    When here a duplicate header include (linux/io.h> is removed

    Signed-off-by: Hebbar Gururaja

    Hebbar Gururaja
     
  • Keep GPIO0 module enabled during standby to support
    GPIO0 io-pads to wakeup the system from standby mode.

    Signed-off-by: Satyanarayana Sandhya

    Satyanarayana Sandhya
     
  • This patch enables touch screen wakeup from standby by keeping
    TSC module enabled during standby.

    Signed-off-by: Satyanarayana Sandhya

    Satyanarayana Sandhya
     
  • This patch adds support for USB remote wakeup from standby mode.

    This has been tested as below.
    - Connect a USB mouse to EVM.
    - Run the following two commands
    echo enabled > /sys/bus/usb/devices/1-1/power/wakeup
    echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
    - Run "echo standby > /sys/power/state"
    - Click the mouse to resume from standby
    - Also tested for a keyboard key press.

    Suggested-by: Vaibhav Bedia
    Signed-off-by: Satyanarayana Sandhya

    Satyanarayana, Sandhya
     
  • This patch adds basic support for Standby mode
    wherein SDRAM is placed in self-refresh,
    PLLs are put in bypass and MPU is power gated.
    GFX power domain is under user control,
    PER power domain is ON.

    Wakeup happens via MPU_WAKE interrupt to Cortex-M3.

    To enter standby mode, run
    "echo standby > /sys/power/state"

    Wakeup from standby mode is through gpio.

    Signed-off-by: Satyanarayana Sandhya

    Satyanarayana, Sandhya