aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/palmas.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mfd/palmas.h')
-rw-r--r--include/linux/mfd/palmas.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 29f6616e12f0..3bbda22721ea 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -221,6 +221,7 @@ struct palmas_clk_platform_data {
221}; 221};
222 222
223struct palmas_platform_data { 223struct palmas_platform_data {
224 int irq_flags;
224 int gpio_base; 225 int gpio_base;
225 226
226 /* bit value to be loaded to the POWER_CTRL register */ 227 /* bit value to be loaded to the POWER_CTRL register */
@@ -2789,4 +2790,56 @@ enum usb_irq_events {
2789#define PALMAS_GPADC_TRIM15 0xE 2790#define PALMAS_GPADC_TRIM15 0xE
2790#define PALMAS_GPADC_TRIM16 0xF 2791#define PALMAS_GPADC_TRIM16 0xF
2791 2792
2793static inline int palmas_read(struct palmas *palmas, unsigned int base,
2794 unsigned int reg, unsigned int *val)
2795{
2796 unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
2797 int slave_id = PALMAS_BASE_TO_SLAVE(base);
2798
2799 return regmap_read(palmas->regmap[slave_id], addr, val);
2800}
2801
2802static inline int palmas_write(struct palmas *palmas, unsigned int base,
2803 unsigned int reg, unsigned int value)
2804{
2805 unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
2806 int slave_id = PALMAS_BASE_TO_SLAVE(base);
2807
2808 return regmap_write(palmas->regmap[slave_id], addr, value);
2809}
2810
2811static inline int palmas_bulk_write(struct palmas *palmas, unsigned int base,
2812 unsigned int reg, const void *val, size_t val_count)
2813{
2814 unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
2815 int slave_id = PALMAS_BASE_TO_SLAVE(base);
2816
2817 return regmap_bulk_write(palmas->regmap[slave_id], addr,
2818 val, val_count);
2819}
2820
2821static inline int palmas_bulk_read(struct palmas *palmas, unsigned int base,
2822 unsigned int reg, void *val, size_t val_count)
2823{
2824 unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
2825 int slave_id = PALMAS_BASE_TO_SLAVE(base);
2826
2827 return regmap_bulk_read(palmas->regmap[slave_id], addr,
2828 val, val_count);
2829}
2830
2831static inline int palmas_update_bits(struct palmas *palmas, unsigned int base,
2832 unsigned int reg, unsigned int mask, unsigned int val)
2833{
2834 unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
2835 int slave_id = PALMAS_BASE_TO_SLAVE(base);
2836
2837 return regmap_update_bits(palmas->regmap[slave_id], addr, mask, val);
2838}
2839
2840static inline int palmas_irq_get_virq(struct palmas *palmas, int irq)
2841{
2842 return regmap_irq_get_virq(palmas->irq_data, irq);
2843}
2844
2792#endif /* __LINUX_MFD_PALMAS_H */ 2845#endif /* __LINUX_MFD_PALMAS_H */