diff options
Diffstat (limited to 'include/linux/mfd/palmas.h')
-rw-r--r-- | include/linux/mfd/palmas.h | 53 |
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 | ||
223 | struct palmas_platform_data { | 223 | struct 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 | ||
2793 | static 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 | |||
2802 | static 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 | |||
2811 | static 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 | |||
2821 | static 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 | |||
2831 | static 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 | |||
2840 | static 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 */ |