mfd: palmas: Provide irq flags through DT/platform data
[deliverable/linux.git] / include / linux / mfd / palmas.h
index 29f6616e12f07605379c6b21aa9bad1ff9152df3..3bbda22721ea083cc35251e399a37742b72c8bae 100644 (file)
@@ -221,6 +221,7 @@ struct palmas_clk_platform_data {
 };
 
 struct palmas_platform_data {
+       int irq_flags;
        int gpio_base;
 
        /* bit value to be loaded to the POWER_CTRL register */
@@ -2789,4 +2790,56 @@ enum usb_irq_events {
 #define PALMAS_GPADC_TRIM15                                    0xE
 #define PALMAS_GPADC_TRIM16                                    0xF
 
+static inline int palmas_read(struct palmas *palmas, unsigned int base,
+               unsigned int reg, unsigned int *val)
+{
+       unsigned int addr =  PALMAS_BASE_TO_REG(base, reg);
+       int slave_id = PALMAS_BASE_TO_SLAVE(base);
+
+       return regmap_read(palmas->regmap[slave_id], addr, val);
+}
+
+static inline int palmas_write(struct palmas *palmas, unsigned int base,
+               unsigned int reg, unsigned int value)
+{
+       unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
+       int slave_id = PALMAS_BASE_TO_SLAVE(base);
+
+       return regmap_write(palmas->regmap[slave_id], addr, value);
+}
+
+static inline int palmas_bulk_write(struct palmas *palmas, unsigned int base,
+       unsigned int reg, const void *val, size_t val_count)
+{
+       unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
+       int slave_id = PALMAS_BASE_TO_SLAVE(base);
+
+       return regmap_bulk_write(palmas->regmap[slave_id], addr,
+                       val, val_count);
+}
+
+static inline int palmas_bulk_read(struct palmas *palmas, unsigned int base,
+               unsigned int reg, void *val, size_t val_count)
+{
+       unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
+       int slave_id = PALMAS_BASE_TO_SLAVE(base);
+
+       return regmap_bulk_read(palmas->regmap[slave_id], addr,
+               val, val_count);
+}
+
+static inline int palmas_update_bits(struct palmas *palmas, unsigned int base,
+       unsigned int reg, unsigned int mask, unsigned int val)
+{
+       unsigned int addr = PALMAS_BASE_TO_REG(base, reg);
+       int slave_id = PALMAS_BASE_TO_SLAVE(base);
+
+       return regmap_update_bits(palmas->regmap[slave_id], addr, mask, val);
+}
+
+static inline int palmas_irq_get_virq(struct palmas *palmas, int irq)
+{
+       return regmap_irq_get_virq(palmas->irq_data, irq);
+}
+
 #endif /*  __LINUX_MFD_PALMAS_H */
This page took 0.027721 seconds and 5 git commands to generate.