Add Dialog DA9030 battery charger driver
Subsystems (2)
RFC PATCH 1/2 Add Dialog DA9030 battery charger driver
This patch amends DA903x MFD driver with definitions and methods needed for battery charger driver.
drivers/mfd/da903x.c | 16 +++++++++++++++- include/linux/mfd/da903x.h | 44 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-)
drivers/mfd/da903x.c +15 -1
@@ -151,12 +151,24 @@ int da903x_write(struct device *dev, int reg, uint8_t val) }EXPORT_SYMBOL_GPL (da903x_write); +int da903x_writes (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_writes (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_writes); +int da903x_read (struct device *dev,int reg,uint8_t *val) {return __da903x_read (to_i2c_client (dev), reg, val); }EXPORT_SYMBOL_GPL (da903x_read); +int da903x_reads (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_reads (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_reads); +int da903x_set_bits (struct device *dev,int reg,uint8_t bit_mask) {struct da903x_chip *chip =dev_get_drvdata (dev);
@@ -254,7 +266,7 @@ static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) {uint8_t v[3 ]; - chip->events_mask &= ~events; + chip->events_mask |= events; v[0 ] = (chip->events_mask &0xff ); v[1 ] = (chip->events_mask >>8 ) &0xff ;
@@ -391,6 +403,8 @@ static void da903x_irq_work(struct work_struct *work)if (chip->ops->read_events (chip, &events))break ; +/* pr_info("%s: events=%x events_mask=%x\n", */ +/* __func__, events, chip->events_mask); */ events &= ~chip->events_mask;if (events ==0 )break ;
include/linux/mfd/da903x.h +42 -2
65 lines not on this page · raw message
Signature · 2 lines
Sincerely yours, Mike.
Quoted 3 lines · Mike Rapoport
This patch amends DA903x MFD driver with definitions and methods needed for battery charger driver.
Patch looks generally good, see some of my concerns below:
Quoted 36 lines
Signed-off-by Mike Rapoport <[email protected]>drivers/mfd/da903x.c | 16 +++++++++++++++- include/linux/mfd/da903x.h | 44 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-)drivers/mfd/da903x.c +12
-0@@ -151,12 +151,24 @@ int da903x_write(struct device *dev, int reg, uint8_t val) }EXPORT_SYMBOL_GPL (da903x_write); +int da903x_writes (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_writes (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_writes); +int da903x_read (struct device *dev,int reg,uint8_t *val) {return __da903x_read (to_i2c_client (dev), reg, val); }EXPORT_SYMBOL_GPL (da903x_read); +int da903x_reads (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_reads (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_reads); +int da903x_set_bits (struct device *dev,int reg,uint8_t bit_mask) {struct da903x_chip *chip =dev_get_drvdata (dev);
drivers/mfd/da903x.c static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) · line 270
Quoted 6 lines
drivers/mfd/da903x.c +1
-1@@ -254,7 +266,7 @@ static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) {uint8_t v[3 ]; - chip->events_mask &= ~events; + chip->events_mask |= events;
I wonder if this is true, it may also impact the da9030_mask_events(), which is a pair.
drivers/mfd/da903x.c static void da903x_irq_work(struct work_struct *work) · line 407
Quoted 8 lines
drivers/mfd/da903x.c +2
-0v[0 ] = (chip->events_mask &0xff ); v[1 ] = (chip->events_mask >>8 ) &0xff ;@@ -391,6 +403,8 @@ static void da903x_irq_work(struct work_struct *work)if (chip->ops->read_events (chip, &events))break ; +/* pr_info("%s: events=%x events_mask=%x\n", */ +/* __func__, events, chip->events_mask); */
I'd prefer to remove this if it is annoying, sorry for this initial garbage I sent.
Quoted 3 lines
drivers/mfd/da903x.c +0
-0events &= ~chip->events_mask;if (events ==0 )break ;
Quoted 46 lines · Eric Miao
Quoted 3 lines · Mike Rapoport
This patch amends DA903x MFD driver with definitions and methods needed for battery charger driver.
Patch looks generally good, see some of my concerns below:
Quoted 39 lines
Signed-off-by Mike Rapoport <[email protected]>drivers/mfd/da903x.c | 16 +++++++++++++++- include/linux/mfd/da903x.h | 44 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-)drivers/mfd/da903x.c +12
-0@@ -151,12 +151,24 @@ int da903x_write(struct device *dev, int reg, uint8_t val) }EXPORT_SYMBOL_GPL (da903x_write); +int da903x_writes (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_writes (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_writes); +int da903x_read (struct device *dev,int reg,uint8_t *val) {return __da903x_read (to_i2c_client (dev), reg, val); }EXPORT_SYMBOL_GPL (da903x_read); +int da903x_reads (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_reads (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_reads); +int da903x_set_bits (struct device *dev,int reg,uint8_t bit_mask) {struct da903x_chip *chip =dev_get_drvdata (dev);@@ -254,7 +266,7 @@ static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) {uint8_t v[3 ];
Quoted 6 lines
drivers/mfd/da903x.c static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) · line 270
Quoted 3 lines
drivers/mfd/da903x.c +1
-1- chip->events_mask &= ~events; + chip->events_mask |= events;I wonder if this is true, it may also impact the
da9030_mask_events(), which is a pair.
This is not true. Thanks for pointing out.
Quoted 11 lines
drivers/mfd/da903x.c static void da903x_irq_work(struct work_struct *work) · line 407
Quoted 8 lines
drivers/mfd/da903x.c +2
-0v[0 ] = (chip->events_mask &0xff ); v[1 ] = (chip->events_mask >>8 ) &0xff ;@@ -391,6 +403,8 @@ static void da903x_irq_work(struct work_struct *work)if (chip->ops->read_events (chip, &events))break ; +/* pr_info("%s: events=%x events_mask=%x\n", */ +/* __func__, events, chip->events_mask); */ I'd prefer to remove this if it is annoying, sorry for this initial garbage I sent.
It's rather my own garbage, I'll remove it :)
Quoted 4 lines
drivers/mfd/da903x.c static void da903x_irq_work(struct work_struct *work) · line 410
Quoted 3 lines
drivers/mfd/da903x.c +0
-0events &= ~chip->events_mask;if (events ==0 )break ;
drivers/mfd/da903x.c | 12 ++++++++++++ include/linux/mfd/da903x.h | 44 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-)
drivers/mfd/da903x.c +12 -0
@@ -151,12 +151,24 @@ int da903x_write(struct device *dev, int reg, uint8_t val) }EXPORT_SYMBOL_GPL (da903x_write); +int da903x_writes (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_writes (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_writes); +int da903x_read (struct device *dev,int reg,uint8_t *val) {return __da903x_read (to_i2c_client (dev), reg, val); }EXPORT_SYMBOL_GPL (da903x_read); +int da903x_reads (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_reads (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_reads); +int da903x_set_bits (struct device *dev,int reg,uint8_t bit_mask) {struct da903x_chip *chip =dev_get_drvdata (dev);
include/linux/mfd/da903x.h +42 -2
65 lines not on this page · raw message
Signature · 2 lines
Sincerely yours, Mike.
Eric Miao
Acked-byQuoted 70 lines · Mike Rapoport
Quoted 46 lines · Eric Miao
Quoted 3 lines · Mike Rapoport
This patch amends DA903x MFD driver with definitions and methods needed for battery charger driver.
Patch looks generally good, see some of my concerns below:
Quoted 39 lines
Signed-off-by Mike Rapoport <[email protected]>drivers/mfd/da903x.c | 16 +++++++++++++++- include/linux/mfd/da903x.h | 44 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-)drivers/mfd/da903x.c +12
-0@@ -151,12 +151,24 @@ int da903x_write(struct device *dev, int reg, uint8_t val) }EXPORT_SYMBOL_GPL (da903x_write); +int da903x_writes (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_writes (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_writes); +int da903x_read (struct device *dev,int reg,uint8_t *val) {return __da903x_read (to_i2c_client (dev), reg, val); }EXPORT_SYMBOL_GPL (da903x_read); +int da903x_reads (struct device *dev,int reg,int len,uint8_t *val) +{ +return __da903x_reads (to_i2c_client (dev), reg, len, val); +} +EXPORT_SYMBOL_GPL (da903x_reads); +int da903x_set_bits (struct device *dev,int reg,uint8_t bit_mask) {struct da903x_chip *chip =dev_get_drvdata (dev);@@ -254,7 +266,7 @@ static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) {uint8_t v[3 ];Quoted 6 lines
drivers/mfd/da903x.c static int da9030_unmask_events(struct da903x_chip *chip, unsigned int events) · line 270
Quoted 3 lines
drivers/mfd/da903x.c +1
-1- chip->events_mask &= ~events; + chip->events_mask |= events;I wonder if this is true, it may also impact the
da9030_mask_events(), which is a pair.This is not true. Thanks for pointing out.
Quoted 11 lines
drivers/mfd/da903x.c static void da903x_irq_work(struct work_struct *work) · line 407
Quoted 8 lines
drivers/mfd/da903x.c +2
-0v[0 ] = (chip->events_mask &0xff ); v[1 ] = (chip->events_mask >>8 ) &0xff ;@@ -391,6 +403,8 @@ static void da903x_irq_work(struct work_struct *work)if (chip->ops->read_events (chip, &events))break ; +/* pr_info("%s: events=%x events_mask=%x\n", */ +/* __func__, events, chip->events_mask); */ I'd prefer to remove this if it is annoying, sorry for this initial garbage I sent.
Quoted 8 lines
It's rather my own garbage, I'll remove it :)
Quoted 4 lines
drivers/mfd/da903x.c static void da903x_irq_work(struct work_struct *work) · line 410
Quoted 3 lines
drivers/mfd/da903x.c +0
-0events &= ~chip->events_mask;if (events ==0 )break ;Signed-off-by Mike Rapoport <[email protected]>
Looks OK.