Re: [PATCH v6 2/5] power: max77843_charger: Add Max77843 charger device driver

2015-03-01 Thread Beomho Seo
On 03/01/2015 05:03 AM, Paul Bolle wrote:
> On Tue, 2015-02-24 at 10:29 +0900, Jaewon Kim wrote:
>> diff --git a/drivers/power/max77843_charger.c 
>> b/drivers/power/max77843_charger.c
>> new file mode 100644
>> index 000..392eebc1a
>> --- /dev/null
>> +++ b/drivers/power/max77843_charger.c
>> @@ -0,0 +1,508 @@
>> +/*
>> + * Charger driver for Maxim MAX77843
>> + *
>> + * Copyright (C) 2015 Samsung Electronics, Co., Ltd.
>> + * Author: Beomho Seo 
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published bythe Free Software Foundation.
> 
> There's "bythe" again.
> 
>> + */
> 
> [...]
> 

OK, I will add spacer.

>> +MODULE_LICENSE("GPL");
> 
> And that should probably be
> MODULE_LICENSE("GPL v2");
> 
> 
> Paul Bolle
> 
> 

OK, I will change license.
Thank you for your review.

Thanks,
Beomho Seo

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v6 2/5] power: max77843_charger: Add Max77843 charger device driver

2015-02-28 Thread Paul Bolle
On Tue, 2015-02-24 at 10:29 +0900, Jaewon Kim wrote:
> diff --git a/drivers/power/max77843_charger.c 
> b/drivers/power/max77843_charger.c
> new file mode 100644
> index 000..392eebc1a
> --- /dev/null
> +++ b/drivers/power/max77843_charger.c
> @@ -0,0 +1,508 @@
> +/*
> + * Charger driver for Maxim MAX77843
> + *
> + * Copyright (C) 2015 Samsung Electronics, Co., Ltd.
> + * Author: Beomho Seo 
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published bythe Free Software Foundation.

There's "bythe" again.

> + */

[...]

> +MODULE_LICENSE("GPL");

And that should probably be
MODULE_LICENSE("GPL v2");


Paul Bolle

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v6 2/5] power: max77843_charger: Add Max77843 charger device driver

2015-02-23 Thread Jaewon Kim
From: Beomho Seo 

This patch adds device driver of max77843 charger. This driver provide
initialize each charging mode(e.g. fast charge, top-off mode and constant
charging mode so on.). Additionally, control charging parameters to use
i2c interface.

Cc: Sebastian Reichel 
Signed-off-by: Beomho Seo 
---
 drivers/power/Kconfig|7 +
 drivers/power/Makefile   |1 +
 drivers/power/max77843_charger.c |  508 ++
 3 files changed, 516 insertions(+)
 create mode 100644 drivers/power/max77843_charger.c

diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 27b751b..994793d 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -337,6 +337,13 @@ config CHARGER_MAX77693
help
  Say Y to enable support for the Maxim MAX77693 battery charger.
 
+config CHARGER_MAX77843
+   tristate "Maxim MAX77843 battery charger driver"
+   depends on MFD_MAX77843
+   help
+ Say Y to enable support for the battery charger control sysfs and
+ platform data of MAX77843
+
 config CHARGER_MAX8997
tristate "Maxim MAX8997/MAX8966 PMIC battery charger driver"
depends on MFD_MAX8997 && REGULATOR_MAX8997
diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index 36f9e0d..ed69cea 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -53,6 +53,7 @@ obj-$(CONFIG_CHARGER_GPIO)+= gpio-charger.o
 obj-$(CONFIG_CHARGER_MANAGER)  += charger-manager.o
 obj-$(CONFIG_CHARGER_MAX14577) += max14577_charger.o
 obj-$(CONFIG_CHARGER_MAX77693) += max77693_charger.o
+obj-$(CONFIG_CHARGER_MAX77843) += max77843_charger.o
 obj-$(CONFIG_CHARGER_MAX8997)  += max8997_charger.o
 obj-$(CONFIG_CHARGER_MAX8998)  += max8998_charger.o
 obj-$(CONFIG_CHARGER_BQ2415X)  += bq2415x_charger.o
diff --git a/drivers/power/max77843_charger.c b/drivers/power/max77843_charger.c
new file mode 100644
index 000..392eebc1a
--- /dev/null
+++ b/drivers/power/max77843_charger.c
@@ -0,0 +1,508 @@
+/*
+ * Charger driver for Maxim MAX77843
+ *
+ * Copyright (C) 2015 Samsung Electronics, Co., Ltd.
+ * Author: Beomho Seo 
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published bythe Free Software Foundation.
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+struct max77843_charger_info {
+   u32 fast_charge_uamp;
+   u32 top_off_uamp;
+   u32 input_uamp_limit;
+};
+
+struct max77843_charger {
+   struct device   *dev;
+   struct max77843 *max77843;
+   struct i2c_client   *client;
+   struct regmap   *regmap;
+   struct power_supply psy;
+
+   struct max77843_charger_info*info;
+};
+
+static int max77843_charger_get_max_current(struct max77843_charger *charger)
+{
+   struct regmap *regmap = charger->regmap;
+   int ret, val = 0;
+   unsigned int reg_data;
+
+   ret = regmap_read(regmap, MAX77843_CHG_REG_CHG_CNFG_09, ®_data);
+   if (ret) {
+   dev_err(charger->dev,
+   "Failed to read max current register: %d\n", ret);
+   return ret;
+   }
+
+   if (reg_data <= 0x03) {
+   val = MAX77843_CHG_INPUT_CURRENT_LIMIT_MIN;
+   } else if (reg_data >= 0x78) {
+   val = MAX77843_CHG_INPUT_CURRENT_LIMIT_MAX;
+   } else {
+   val = reg_data / 3;
+   if (reg_data % 3 == 0)
+   val *= 10;
+   else if (reg_data % 3 == 1)
+   val = val * 10 + 33000;
+   else
+   val = val * 10 + 67000;
+   }
+
+   return val;
+}
+
+static int max77843_charger_get_now_current(struct max77843_charger *charger)
+{
+   struct regmap *regmap = charger->regmap;
+   int ret, val = 0;
+   unsigned int reg_data;
+
+   ret = regmap_read(regmap, MAX77843_CHG_REG_CHG_CNFG_02, ®_data);
+   if (ret) {
+   dev_err(charger->dev,
+   "Failed to read charge current register: %d\n", ret);
+   return ret;
+   }
+
+   reg_data &= MAX77843_CHG_FAST_CHG_CURRENT_MASK;
+
+   if (reg_data <= 0x02)
+   val = MAX77843_CHG_FAST_CHG_CURRENT_MIN;
+   else if (reg_data >= 0x3f)
+   val = MAX77843_CHG_FAST_CHG_CURRENT_MAX;
+   else
+   val = reg_data * MAX77843_CHG_FAST_CHG_CURRENT_STEP;
+
+   return val;
+}
+
+static int max77843_charger_get_online(struct max77843_charger *charger)
+{
+   struct regmap *regmap = charger->regmap;
+   int ret, val = 0;
+   unsigned int reg_data;
+
+   ret = regmap_read(regmap, MAX77843_CHG_REG_CHG_INT_OK, ®_data);
+   if (ret) {
+   dev_err(charger->dev,
+   "Failed to read charger status: %d\n", ret);
+   return ret;
+   }
+
+   if (reg_data & MAX77843