diff options
author | Kevin Hilman <khilman@ti.com> | 2011-06-09 22:01:55 +0400 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-09-15 23:02:56 +0400 |
commit | e4e021c5491537783f5f65a6defa92e6098a3658 (patch) | |
tree | 01f6736da2d7584f6740401b6f297d80f8565dc6 /arch/arm/mach-omap2/vc.h | |
parent | ba112a4e86ba8f0f9546bd953374cde064b507ca (diff) | |
download | linux-e4e021c5491537783f5f65a6defa92e6098a3658.tar.xz |
OMAP3+: VC: cleanup PMIC register address configuration
- support both voltage register address and command register address
for each VC channel
- add fields for voltage register address (volra) and command register
address (cmdra) to struct omap_vc_channel
- use VC/VP register access read/modify/write helper
- remove volra_shift field (use __ffs(mask) for shift value)
- I2C addresses 10-bit, change size to u16
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/vc.h')
-rw-r--r-- | arch/arm/mach-omap2/vc.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h index 69ca900aff0b..43a0c5c2b07a 100644 --- a/arch/arm/mach-omap2/vc.h +++ b/arch/arm/mach-omap2/vc.h @@ -27,6 +27,7 @@ struct voltagedomain; * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register * @smps_sa_reg: Offset of PRM_VC_SMPS_SA reg from PRM start * @smps_volra_reg: Offset of PRM_VC_SMPS_VOL_RA reg from PRM start + * @smps_cmdra_reg: Offset of PRM_VC_SMPS_CMD_RA reg from PRM start * @bypass_val_reg: Offset of PRM_VC_BYPASS_VAL reg from PRM start * @data_shift: DATA field shift in PRM_VC_BYPASS_VAL register * @slaveaddr_shift: SLAVEADDR field shift in PRM_VC_BYPASS_VAL register @@ -44,6 +45,7 @@ struct omap_vc_common { u32 valid; u8 smps_sa_reg; u8 smps_volra_reg; + u8 smps_cmdra_reg; u8 bypass_val_reg; u8 data_shift; u8 slaveaddr_shift; @@ -57,24 +59,26 @@ struct omap_vc_common { /** * struct omap_vc_channel - VC per-instance data * @i2c_slave_addr: I2C slave address of PMIC for this VC channel + * @volt_reg_addr: voltage configuration register address + * @cmd_reg_addr: command configuration register address * @common: pointer to VC common data for this platform * @smps_sa_mask: i2c slave address bitmask in the PRM_VC_SMPS_SA register * @smps_volra_mask: VOLRA* bitmask in the PRM_VC_VOL_RA register - * @smps_volra_shift: VOLRA* field shift in the PRM_VC_VOL_RA register - * - * XXX It is not necessary to have both a *_mask and a *_shift - - * remove one + * @smps_cmdra_mask: CMDRA* bitmask in the PRM_VC_CMD_RA register + * @cmdval_reg: register for on/ret/off voltage level values for this channel */ struct omap_vc_channel { /* channel state */ u16 i2c_slave_addr; + u16 volt_reg_addr; + u16 cmd_reg_addr; /* register access data */ const struct omap_vc_common *common; u32 smps_sa_mask; u32 smps_volra_mask; + u32 smps_cmdra_mask; u8 cmdval_reg; - u8 smps_volra_shift; }; extern struct omap_vc_channel omap3_vc_mpu; |