30 Nov, 2011

1 commit


16 Sep, 2011

2 commits


10 Jul, 2011

3 commits

  • The new prminst_xxx accessors based on partition and offset
    is now used, so removed all the previous prcm_xxx accessors.

    Signed-off-by: Benoit Cousson
    Cc: Paul Walmsley
    Cc: Rajendra Nayak
    [paul@pwsan.com: remove fn prototypes also]
    Signed-off-by: Paul Walmsley

    Benoit Cousson
     
  • The warm reset function was still using the obsolete API.
    Replace it by the new one and move the file to the proper c file.

    Change the function names to stick to the file convention as
    suggested by Paul Walmsley :
    prm_xxx -> prminst_xxx

    Signed-off-by: Benoit Cousson
    Cc: Paul Walmsley
    Cc: Rajendra Nayak
    Signed-off-by: Paul Walmsley

    Benoit Cousson
     
  • The RSTCTRL register was accessed using an absolute address.
    The usage of hardcoded macros to calculate virtual address from physical
    one should be avoided as much as possible.
    The usage of an offset will allow future improvement like migration from
    the current architecture code toward a module driver.

    Update prm_xxx accessors, move definition to the proper header file and
    update copyrights.
    Change the s16 register offset parameter to u16.

    Signed-off-by: Benoit Cousson
    Cc: Paul Walmsley
    Cc: Rajendra Nayak
    [paul@pwsan.com: use '_prminst_' in function names that are part of the
    prminst44xx.c file]
    Signed-off-by: Paul Walmsley

    Benoit Cousson
     

22 Dec, 2010

3 commits

  • Move the OMAP4 global software reset function to the OMAP4-specific
    prm44xx.c file, where it belongs. Part of the long-term process of
    moving all of the direct PRCM register writes into lower-layer code.

    Also add OCP barriers on OMAP2/3/4 to reduce the chance that the MPU
    will continue executing while the system is supposed to be resetting
    itself.

    Signed-off-by: Paul Walmsley
    Tested-by: Santosh Shilimkar
    Tested-by: Rajendra Nayak

    Paul Walmsley
     
  • In some ways, the OMAP4 PRCM register layout is quite different than
    the OMAP2/3 PRCM register layout. For example, on OMAP2/3, from a
    register layout point of view, all CM instances were located in the CM
    subsystem, and all PRM instances were located in the PRM subsystem.
    OMAP4 changes this. Now, for example, some CM instances, such as
    WKUP_CM and EMU_CM, are located in the system PRM subsystem. And a
    "local PRCM" exists for the MPU - this PRCM combines registers that
    would normally appear in both CM and PRM instances, but uses its own
    register layout which matches neither the OMAP2/3 PRCM layout nor the
    OMAP4 PRCM layout.

    To try to deal with this, introduce some new functions, omap4_cminst*
    and omap4_prminst*. The former is to be used when writing to a CM
    instance register (no matter what subsystem or hardware module it
    exists in), and the latter, similarly, with PRM instance registers.
    To determine which "PRCM partition" to write to, the functions take a
    PRCM instance ID argument. Subsequent patches add these partition IDs
    to the OMAP4 powerdomain and clockdomain definitions.

    As far as I can see, there's really no good way to handle these types
    of register access inconsistencies. This patch seemed like the least
    bad approach.

    Moving forward, the long-term goal is to remove all direct PRCM
    register access from the PM code. PRCM register access should go
    through layers such as the powerdomain and clockdomain code that can
    hide the details of how to interact with the specific hardware
    variant.

    While here, rename cm4xxx.c to cm44xx.c to match the naming convention
    of the other OMAP4 PRCM files.

    Thanks to Santosh Shilimkar , Rajendra Nayak
    , and Benoît Cousson for some comments.

    Signed-off-by: Paul Walmsley
    Cc: Benoît Cousson
    Cc: Rajendra Nayak
    Cc: Santosh Shilimkar

    Paul Walmsley
     
  • Split the existing cm44xx.h file into cm1_44xx.h and cm2_44xx.h files
    so they match their underlying OMAP hardware modules. Add clockdomain
    offset information.

    Add header files for the MPU local PRCM, prcm_mpu44xx.h, and for the
    SCRM, scrm44xx.h. SCRM register offsets still need to be added; TI
    should do this.

    Move the "_MOD" macros out of the prcm-common.h header file, into the
    header file of the hardware module that they belong to. For example,
    OMAP4430_PRM_*_MOD macros have been moved into the prm44xx.h header.

    Adjust #includes of all files that used the old PRCM header file names
    to point to the new filenames.

    The autogeneration scripts have been updated accordingly.

    Signed-off-by: Paul Walmsley
    Cc: Benoît Cousson
    Cc: Rajendra Nayak
    Reviewed-by: Kevin Hilman
    Tested-by: Kevin Hilman
    Tested-by: Rajendra Nayak
    Tested-by: Santosh Shilimkar

    Paul Walmsley
     

22 Sep, 2010

1 commit

  • Most processor modules (e.g., DSP, IVA, IPU) on OMAPs can be reset
    under the control of the PRM. This patch adds an API for this purpose
    for OMAP4 devices:

    int omap4_prm_is_hardreset_asserted(void __iomem *rstctrl_reg, u8 shift);
    int omap4_prm_assert_hardreset(void __iomem *rstctrl_reg, u8 shift);
    int omap4_prm_deassert_hardreset(void __iomem *rstctrl_reg, u8 shift);

    This API is intended to be used only by the hwmod code - a subsequent
    patch will add that support to hwmod.

    This patch is a collaboration between Benoît Cousson
    and Paul Walmsley .

    Signed-off-by: Paul Walmsley
    Signed-off-by: Benoît Cousson
    Tested-by: Kevin Hilman

    Benoît Cousson