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: Fri, 25 May 2007 02:23:22 -0600 [thread overview]
Message-ID: <20070525082322.168056647@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
--
next reply other threads:[~2007-05-25 8:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-25 8:23 Paul Walmsley [this message]
2007-05-25 8:23 ` [PATCH 01/18] omap2: add OMAP24XX and OMAP2/3 modules to prcm_common.h Paul Walmsley
2007-05-25 8:23 ` [PATCH 02/18] omap2: add OMAP24XX register bit defines shared between CM and PRM Paul Walmsley
2007-05-25 8:23 ` [PATCH 03/18] omap2: add OMAP2_PRM_BASE/OMAP2_CM_BASE #defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 04/18] omap2: add OMAP24XX Clock Management register defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 05/18] omap2: add Clock Management shared register bit defines to cm.h Paul Walmsley
2007-05-25 8:23 ` [PATCH 06/18] omap2: add OMAP24XX Power/Reset Management register defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 07/18] omap2: add Power/Reset Management shared register bit defines to prm.h Paul Walmsley
2007-05-25 8:23 ` [PATCH 08/18] omap2: add OMAP24XX Clock Management register bit defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 09/18] omap2: add OMAP24XX Power/Reset " Paul Walmsley
2007-05-25 8:23 ` [PATCH 10/18] omap2: convert pm.c to use new PRCM functions and symbolic constants Paul Walmsley
2007-05-25 8:23 ` [PATCH 11/18] omap2: convert clock.c " Paul Walmsley
2007-05-25 8:59 ` Igor Stoppa
2007-05-25 9:03 ` Igor Stoppa
2007-05-25 18:53 ` Tony Lindgren
2007-05-25 8:23 ` [PATCH 12/18] omap2: convert prcm.c to use symbolic register & register bit constants Paul Walmsley
2007-05-25 8:23 ` [PATCH 13/18] omap2: convert sram-fn.S to use OMAP2_{PRM, CM}_BASE rather than OMAP2_PRCM_BASE Paul Walmsley
2007-05-25 8:23 ` [PATCH 14/18] omap2: convert clock.h to use symbolic register defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 15/18] omap2: convert clock.h to use symbolic register bit defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 16/18] omap2: convert DSP code to use new PRCM functions & defines Paul Walmsley
2007-05-25 8:23 ` [PATCH 17/18] omap2: remove remaining prcm-regs.h includes Paul Walmsley
2007-05-25 8:23 ` [PATCH 18/18] omap2: remove prcm-regs.h Paul Walmsley
-- strict thread matches above, loose matches on Subject: below --
2007-05-17 0:11 [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=20070525082322.168056647@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.