X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=arch%2Farm%2Fmach-omap2%2Fvoltage.h;h=16a1b092cf36902b768010fc899b4defcded7eb3;hb=24942c8e5cc8696064ee207ff29d4cf21f70dafc;hp=dcc7ea66f046759641b809f2a05303904b74a7e2;hpb=0f01565a353e06f1f1d7757b212c51e61c6fea58;p=~andy%2Flinux diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h index dcc7ea66f04..16a1b092cf3 100644 --- a/arch/arm/mach-omap2/voltage.h +++ b/arch/arm/mach-omap2/voltage.h @@ -33,8 +33,6 @@ struct powerdomain; #define OMAP3_VOLTOFFSET 0xff #define OMAP3_VOLTSETUP2 0xff -struct omap_vdd_info; - /** * struct omap_vfsm_instance - per-voltage manager FSM register/bitfield * data @@ -60,8 +58,10 @@ struct omap_vfsm_instance { * @write: write a VC/VP register * @read: read-modify-write a VC/VP register * @sys_clk: system clock name/frequency, used for various timing calculations - * @vdd: to be removed * @scale: function used to scale the voltage of the voltagedomain + * @nominal_volt: current nominal voltage for this voltage domain + * @volt_data: voltage table having the distinct voltages supported + * by the domain and other associated per voltage data. */ struct voltagedomain { char *name; @@ -86,7 +86,8 @@ struct voltagedomain { int (*scale) (struct voltagedomain *voltdm, unsigned long target_volt); - struct omap_vdd_info *vdd; + u32 nominal_volt; + struct omap_volt_data *volt_data; }; /** @@ -143,45 +144,15 @@ struct omap_voltdm_pmic { u8 (*uv_to_vsel) (unsigned long uV); }; -/** - * omap_vdd_info - Per Voltage Domain info - * - * @volt_data : voltage table having the distinct voltages supported - * by the domain and other associated per voltage data. - * @curr_volt : current voltage for this vdd. - */ -struct omap_vdd_info { - struct omap_volt_data *volt_data; - u32 curr_volt; -}; - -int omap_voltage_scale_vdd(struct voltagedomain *voltdm, - unsigned long target_volt); -void omap_voltage_reset(struct voltagedomain *voltdm); void omap_voltage_get_volttable(struct voltagedomain *voltdm, struct omap_volt_data **volt_data); struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain *voltdm, unsigned long volt); -unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm); -#ifdef CONFIG_PM int omap_voltage_register_pmic(struct voltagedomain *voltdm, struct omap_voltdm_pmic *pmic); void omap_change_voltscale_method(struct voltagedomain *voltdm, int voltscale_method); int omap_voltage_late_init(void); -#else -static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, - struct omap_voltdm_pmic *pmic) -{ - return -EINVAL; -} -static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, - int voltscale_method) {} -static inline int omap_voltage_late_init(void) -{ - return -EINVAL; -} -#endif extern void omap2xxx_voltagedomains_init(void); extern void omap3xxx_voltagedomains_init(void); @@ -195,4 +166,7 @@ int voltdm_for_each(int (*fn)(struct voltagedomain *voltdm, void *user), int voltdm_for_each_pwrdm(struct voltagedomain *voltdm, int (*fn)(struct voltagedomain *voltdm, struct powerdomain *pwrdm)); +int voltdm_scale(struct voltagedomain *voltdm, unsigned long target_volt); +void voltdm_reset(struct voltagedomain *voltdm); +unsigned long voltdm_get_voltage(struct voltagedomain *voltdm); #endif