struct omap_sr *sr;
};
+#define SR_REGADDR(offs) (__force void __iomem *)(sr->srbase_addr + offset)
+
static inline void sr_write_reg(struct omap_sr *sr, int offset, u32 value)
{
- __raw_writel(value, sr->srbase_addr + offset);
+ __raw_writel(value, SR_REGADDR(offset));
}
static inline void sr_modify_reg(struct omap_sr *sr, int offset, u32 mask,
{
u32 reg_val;
- reg_val = __raw_readl(sr->srbase_addr + offset);
+ reg_val = __raw_readl(SR_REGADDR(offset));
reg_val &= ~mask;
reg_val |= value;
- __raw_writel(reg_val, sr->srbase_addr + offset);
+ __raw_writel(reg_val, SR_REGADDR(offset));
}
static inline u32 sr_read_reg(struct omap_sr *sr, int offset)
{
- return __raw_readl(sr->srbase_addr + offset);
+ return __raw_readl(SR_REGADDR(offset));
}
/* Custom clock handling functions */
#ifdef CONFIG_OMAP_SMARTREFLEX
void enable_smartreflex(int srid);
void disable_smartreflex(int srid);
+int sr_voltagescale_vcbypass(u32 target_opp, u8 vsel);
+void sr_start_vddautocomap(int srid, u32 target_opp_no);
+int sr_stop_vddautocomap(int srid);
#else
static inline void enable_smartreflex(int srid) {}
static inline void disable_smartreflex(int srid) {}