All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Walmsley <paul@pwsan.com>
To: linux-omap-open-source@linux.omap.com
Subject: [PATCH 00/18] PRCM cleanup - remove prcm-regs.h
Date: Wed, 16 May 2007 18:11:32 -0600	[thread overview]
Message-ID: <20070517001132.652728079@pwsan.com> (raw)

These patches clean up PRCM register access in the OMAP2 tree.
Highlights:
 
- PRCM registers are divided into module-shared registers and global
  registers.  Module-shared registers can appear in multiple PRCM
  subsystems at identical address offsets, while global registers
  control system-wide PRCM functions and appear only once in PRCM space.

- PRCM registers are further separated into two categories, PRM
  (power/reset management) and CM (clock management) registers.  This
  is to prepare for OMAP3430 PRCM code -- PRM and CM registers share
  the same address space on 2420 and 2430, but exist in separate
  address spaces on 3430.

- Read/write functions are defined for each of the combinations above:
  prm_{read,write}_reg() for PRM global registers,
  prm_{read,write}_mod_reg() for PRM module-shared registers,
  cm_{read,write}_reg() for CM global registers,
  cm_{read,write}_mod_reg() for CM module-shared registers.   _reg()
  functions use a single (void __iomem *) to refer to global
  registers, and _mod_reg() functions use both a module offset and a
  register offset to refer to module-shared registers.  Almost all
  C-language PRCM register access in the mach-omap2/ directory is
  converted to use these functions.  If debugging is enabled, all
  PRM/CM register writes will be logged to the console.

- Symbolic constants are defined for PRCM register addresses.
  Registers that are shared between architectures are simply defined
  as-is, e.g., 'CM_CLKSEL', but registers that only exist on specific
  architectures have the architecture name prepended, e.g.,
  'OMAP2430_CM_ICLKEN3'.  This aids in identifying code that must be
  modified for cross-platform use.  Existing C code is converted to
  use these new constants.

- Symbolic constants are also defined for PRCM register bits, and
  existing C code that used 'magic numbers' for these bits is
  converted to use the symbolic defines.  This resulted in a major
  improvement in code readability.  As above, bits shared between
  architectures are labeled with only their 'base name,' but
  architecture-specific bits have the architecture name prepended,
  making it easy to identify code that will need to be changed for
  new architectures.

An overview of this patch series:

- Patches 1-9 add constants for PRCM modules, 24xx PRM and CM
  registers, 24xx PRM and CM register bits, and the register
  read/write functions.

- Patches 10-17 convert existing code to use the PRCM framework
  introduced in patches 1-9.

- Patch 18 removes prcm-regs.h.


Comments welcome.  

- Paul

-- 

             reply	other threads:[~2007-05-17  0:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17  0:11 Paul Walmsley [this message]
2007-05-17  0:11 ` [PATCH 01/18] omap2: add OMAP24XX and OMAP2/3 modules to prcm_common.h Paul Walmsley
2007-05-17  0:11 ` [PATCH 02/18] omap2: add OMAP24XX register bit defines shared between CM and PRM Paul Walmsley
2007-05-17  0:11 ` [PATCH 03/18] omap2: add OMAP24XX Clock Management register defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 04/18] omap2: add Clock Management shared register bit defines to cm.h Paul Walmsley
2007-05-17  0:11 ` [PATCH 05/18] omap2: add OMAP24XX Power/Reset Management register defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 06/18] omap2: add Power/Reset Management shared register bit defines to prm.h Paul Walmsley
2007-05-17  0:11 ` [PATCH 07/18] omap2: add OMAP24XX Clock Management register bit defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 08/18] omap2: add OMAP24XX Power/Reset " Paul Walmsley
2007-05-17  0:11 ` [PATCH 09/18] omap2: add PRM_BASE/CM_BASE #defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 10/18] omap2: convert pm.c to use new PRCM functions and symbolic constants Paul Walmsley
2007-05-17  0:11 ` [PATCH 11/18] omap2: convert clock.c " Paul Walmsley
2007-05-17  0:11 ` [PATCH 12/18] omap2: convert prcm.c to use symbolic register & register bit constants Paul Walmsley
2007-05-17  0:11 ` [PATCH 13/18] omap2: convert sram-fn.S to use {PRM, CM}_BASE rather than PRCM_BASE Paul Walmsley
2007-05-17  0:11 ` [PATCH 14/18] omap2: convert clock.h to use symbolic register defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 15/18] omap2: convert clock.h to use symbolic register bit defines Paul Walmsley
2007-05-17  0:11 ` [PATCH 16/18] omap2: convert DSP code to use new PRCM functions & defines Paul Walmsley
2007-05-25 21:32   ` Khem Raj
2007-05-17  0:11 ` [PATCH 17/18] omap2: remove remaining prcm-regs.h includes Paul Walmsley
2007-05-17  0:11 ` [PATCH 18/18] omap2: remove prcm-regs.h Paul Walmsley
  -- strict thread matches above, loose matches on Subject: below --
2007-05-25  8:23 [PATCH 00/18] PRCM cleanup - " Paul Walmsley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070517001132.652728079@pwsan.com \
    --to=paul@pwsan.com \
    --cc=linux-omap-open-source@linux.omap.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.