PRCM cleanup - remove prcm-regs.h
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest18 patches 1 replyIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/18 | omap2: add OMAP24XX and OMAP2/3 modules to prcm_common.harch/ | +37 | 0 replies | |
| 2/18 | omap2: add OMAP24XX register bit defines shared between CM and PRMarch/ | +105 | 0 replies | |
| 3/18 | omap2: add OMAP24XX Clock Management register definesarch/ | +94 | 0 replies | |
| 4/18 | omap2: add Clock Management shared register bit defines to cm.harch/ | +15 | 0 replies | |
| 5/18 | omap2: add OMAP24XX Power/Reset Management register definesarch/ | +119 | 0 replies | |
| 6/18 | omap2: add Power/Reset Management shared register bit defines to prm.harch/ | +151 | 0 replies | |
| 7/18 | omap2: add OMAP24XX Clock Management register bit definesarch/ | +398 | 0 replies | |
| 8/18 | omap2: add OMAP24XX Power/Reset Management register bit definesarch/ | +279 | 0 replies | |
| 9/18 | omap2: add PRM_BASE/CM_BASE #definesinclude/ | +8 | 0 replies | |
| 10/18 | omap2: convert pm.c to use new PRCM functions and symbolic constantsarch/ | +186 | 0 replies | |
| 11/18 | omap2: convert clock.c to use new PRCM functions and symbolic constantsarch/ | +161 | 0 replies | |
| 12/18 | omap2: convert prcm.c to use symbolic register & register bit constantsarch/ | +6 | 0 replies | |
| 13/18 | omap2: convert sram-fn.S to use {PRM, CM}_BASE rather than PRCM_BASEarch/ | +6 | 0 replies | |
| 14/18 | omap2: convert clock.h to use symbolic register definesarch/ | +125 | 0 replies | |
| 15/18 | omap2: convert clock.h to use symbolic register bit definesarch/ | +121 | 0 replies | |
| 16/18 | omap2: convert DSP code to use new PRCM functions & definesarch/ arch/ | +29 | 1 reply | |
| 17/18 | omap2: remove remaining prcm-regs.h includesarch/ arch/ arch/ +1 more | +0 | 0 replies | |
| 18/18 | omap2: remove prcm-regs.harch/ | +0 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 00/18] PRCM cleanup - remove prcm-regs.h
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