|
@@ -2789,4 +2789,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 */
|