diff mbox

[v7,2/5] power: max77843_charger: Add Max77843 charger device driver

Message ID 1425291038-18269-3-git-send-email-jaewon02.kim@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jaewon Kim March 2, 2015, 10:10 a.m. UTC
From: Beomho Seo <beomho.seo@samsung.com>

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 paramters to use
i2c interface.

Cc: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
---
 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

Comments

Sebastian Reichel March 7, 2015, 8:13 p.m. UTC | #1
On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
> From: Beomho Seo <beomho.seo@samsung.com>
> 
> 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 paramters to use
> i2c interface.
> 
> Cc: Sebastian Reichel <sre@kernel.org>
> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>

Reviewed-By: Sebastian Reichel <sre@kernel.org>

I can't take it as is, since it depends on the private header file
of PATCHv1.

-- Sebastian
Beomho Seo March 9, 2015, 12:35 a.m. UTC | #2
On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>> From: Beomho Seo <beomho.seo@samsung.com>
>>
>> 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 paramters to use
>> i2c interface.
>>
>> Cc: Sebastian Reichel <sre@kernel.org>
>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
> 
> Reviewed-By: Sebastian Reichel <sre@kernel.org>
> 
> I can't take it as is, since it depends on the private header file
> of PATCHv1.
> 
> -- Sebastian
> 

This patch reviewed by Sebastian.
Could you Please merge that your git tree ?

Best regards,
Beomho Seo
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski March 9, 2015, 11:02 a.m. UTC | #3
2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>
>>> 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 paramters to use
>>> i2c interface.
>>>
>>> Cc: Sebastian Reichel <sre@kernel.org>
>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>
>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>
>> I can't take it as is, since it depends on the private header file
>> of PATCHv1.
>>
>> -- Sebastian
>>
>
> This patch reviewed by Sebastian.
> Could you Please merge that your git tree ?

Hi,

... and again we are adding a new driver for very similar chipset to
already supported. I looked at spec and the charger's registers are
almost the same as for max77693. Their layout and addresses are the
same. I see some minor differences, probably the most important would
be different values current (fast-charge, top-off). But still 90% of
registers are the same... Do we really have to add new driver?

Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Beomho Seo March 9, 2015, 11:46 a.m. UTC | #4
On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>
>>>> 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 paramters to use
>>>> i2c interface.
>>>>
>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>
>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>
>>> I can't take it as is, since it depends on the private header file
>>> of PATCHv1.
>>>
>>> -- Sebastian
>>>
>>
>> This patch reviewed by Sebastian.
>> Could you Please merge that your git tree ?
> 
> Hi,
> 
> ... and again we are adding a new driver for very similar chipset to
> already supported. I looked at spec and the charger's registers are
> almost the same as for max77693. Their layout and addresses are the
> same. I see some minor differences, probably the most important would
> be different values current (fast-charge, top-off). But still 90% of
> registers are the same... Do we really have to add new driver?
> 
> Best regards,
> Krzysztof
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Hi,

Thank you for your comment. As you say, both chip set are similar.
But new driver need for support max77843. It is support different below
- Provide Battery presence information.
- Can OTG FET control.
- Bigger Fast charge current, Top Off current Threshold selection.
- Various and bigger OTG current limitation.
- Bigger primary charger termination voltage setting.
- Different maximum input current limit selection(Different step).

I respect your opinion but I think add new driver better.

Best regards,
Beomho Seo


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski March 9, 2015, 12:13 p.m. UTC | #5
On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
> > 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
> >>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
> >>>> From: Beomho Seo <beomho.seo@samsung.com>
> >>>>
> >>>> 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 paramters to use
> >>>> i2c interface.
> >>>>
> >>>> Cc: Sebastian Reichel <sre@kernel.org>
> >>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
> >>>
> >>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
> >>>
> >>> I can't take it as is, since it depends on the private header file
> >>> of PATCHv1.
> >>>
> >>> -- Sebastian
> >>>
> >>
> >> This patch reviewed by Sebastian.
> >> Could you Please merge that your git tree ?
> > 
> > Hi,
> > 
> > ... and again we are adding a new driver for very similar chipset to
> > already supported. I looked at spec and the charger's registers are
> > almost the same as for max77693. Their layout and addresses are the
> > same. I see some minor differences, probably the most important would
> > be different values current (fast-charge, top-off). But still 90% of
> > registers are the same... Do we really have to add new driver?
> > 
> > Best regards,
> > Krzysztof
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-input" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
> Hi,
> 
> Thank you for your comment. As you say, both chip set are similar.
> But new driver need for support max77843. It is support different below
> - Provide Battery presence information.

Another set of power supply properties could be added for that chip.
This way the get_property() function would be the same but actually the
POWER_SUPPLY_PROP_PRESENT won't be called for max77693.

> - Can OTG FET control.

Where the OTG FET feature is it enabled in your driver? I couldn't find
it.

> - Bigger Fast charge current, Top Off current Threshold selection.
> - Various and bigger OTG current limitation.
> - Bigger primary charger termination voltage setting.
> - Different maximum input current limit selection(Different step).

Yes, I mentioned some of these differences (the Fast/top-off
differences). These are differences in values so it does not require new
driver. There is need to develop new driver just to support different
current (3.0 A instead of 2.1 A) or voltage threshold.

So the only new feature - battery presence - can be easily added to
existing driver. The driver can be extended for different
current/voltage values. Such extension may even be beneficial for new
Maxim MUIC/PMIC chipsets.


Best regards,
Krzysztof

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Beomho Seo March 10, 2015, 1:44 p.m. UTC | #6
On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>
>>>>>> 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 paramters to use
>>>>>> i2c interface.
>>>>>>
>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>
>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>
>>>>> I can't take it as is, since it depends on the private header file
>>>>> of PATCHv1.
>>>>>
>>>>> -- Sebastian
>>>>>
>>>>
>>>> This patch reviewed by Sebastian.
>>>> Could you Please merge that your git tree ?
>>>
>>> Hi,
>>>
>>> ... and again we are adding a new driver for very similar chipset to
>>> already supported. I looked at spec and the charger's registers are
>>> almost the same as for max77693. Their layout and addresses are the
>>> same. I see some minor differences, probably the most important would
>>> be different values current (fast-charge, top-off). But still 90% of
>>> registers are the same... Do we really have to add new driver?
>>>
>>> Best regards,
>>> Krzysztof
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-input" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>
>> Hi,
>>
>> Thank you for your comment. As you say, both chip set are similar.
>> But new driver need for support max77843. It is support different below
>> - Provide Battery presence information.
> 
> Another set of power supply properties could be added for that chip.
> This way the get_property() function would be the same but actually the
> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
> 
>> - Can OTG FET control.
> 
> Where the OTG FET feature is it enabled in your driver? I couldn't find
> it.
> 

Sorry. This driver don't control OTG FET feature.

>> - Bigger Fast charge current, Top Off current Threshold selection.
>> - Various and bigger OTG current limitation.
>> - Bigger primary charger termination voltage setting.
>> - Different maximum input current limit selection(Different step).
> 
> Yes, I mentioned some of these differences (the Fast/top-off
> differences). These are differences in values so it does not require new
> driver. There is need to develop new driver just to support different
> current (3.0 A instead of 2.1 A) or voltage threshold.
> 

They are different charging current, OTG current limitation, top off current,
charging limitation value. In case OTG current limitation different not
limitation value but using register bit(max77843 use[7:6] max77693 use[7]
bit only). Even if this driver not support all feature, some register
different with max77693(support value, use register bit).

If this driver will combined with max77693 may even be beneficial for
new Maxim driver. But the present, this driver is related with
max77843 core driver and max77843-regulator. So I hope this driver
merge first. And then will extend two driver(max77843 charger and max77693 charger).

> So the only new feature - battery presence - can be easily added to
> existing driver. The driver can be extended for different
> current/voltage values. Such extension may even be beneficial for new
> Maxim MUIC/PMIC chipsets.
> 
> 
> Best regards,
> Krzysztof
> 

Best regards,
Beomho Seo
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Beomho Seo March 24, 2015, 8:01 a.m. UTC | #7
On 03/10/2015 10:44 PM, Beomho Seo wrote:
> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>
>>>>>>> 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 paramters to use
>>>>>>> i2c interface.
>>>>>>>
>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>
>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>
>>>>>> I can't take it as is, since it depends on the private header file
>>>>>> of PATCHv1.
>>>>>>
>>>>>> -- Sebastian
>>>>>>
>>>>>
>>>>> This patch reviewed by Sebastian.
>>>>> Could you Please merge that your git tree ?
>>>>
>>>> Hi,
>>>>
>>>> ... and again we are adding a new driver for very similar chipset to
>>>> already supported. I looked at spec and the charger's registers are
>>>> almost the same as for max77693. Their layout and addresses are the
>>>> same. I see some minor differences, probably the most important would
>>>> be different values current (fast-charge, top-off). But still 90% of
>>>> registers are the same... Do we really have to add new driver?
>>>>
>>>> Best regards,
>>>> Krzysztof
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-input" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>
>>>
>>> Hi,
>>>
>>> Thank you for your comment. As you say, both chip set are similar.
>>> But new driver need for support max77843. It is support different below
>>> - Provide Battery presence information.
>>
>> Another set of power supply properties could be added for that chip.
>> This way the get_property() function would be the same but actually the
>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>
>>> - Can OTG FET control.
>>
>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>> it.
>>
> 
> Sorry. This driver don't control OTG FET feature.
> 
>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>> - Various and bigger OTG current limitation.
>>> - Bigger primary charger termination voltage setting.
>>> - Different maximum input current limit selection(Different step).
>>
>> Yes, I mentioned some of these differences (the Fast/top-off
>> differences). These are differences in values so it does not require new
>> driver. There is need to develop new driver just to support different
>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>
> 
> They are different charging current, OTG current limitation, top off current,
> charging limitation value. In case OTG current limitation different not
> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
> bit only). Even if this driver not support all feature, some register
> different with max77693(support value, use register bit).
> 
> If this driver will combined with max77693 may even be beneficial for
> new Maxim driver. But the present, this driver is related with
> max77843 core driver and max77843-regulator. So I hope this driver
> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> 
>> So the only new feature - battery presence - can be easily added to
>> existing driver. The driver can be extended for different
>> current/voltage values. Such extension may even be beneficial for new
>> Maxim MUIC/PMIC chipsets.
>>
>>
>> Best regards,
>> Krzysztof
>>
> 
> Best regards,
> Beomho Seo

Krzysztof, gentle ping?

Best regards,
Beomho Seo

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski March 24, 2015, 8:38 a.m. UTC | #8
2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> On 03/10/2015 10:44 PM, Beomho Seo wrote:
>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>
>>>>>>>> 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 paramters to use
>>>>>>>> i2c interface.
>>>>>>>>
>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>
>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>>
>>>>>>> I can't take it as is, since it depends on the private header file
>>>>>>> of PATCHv1.
>>>>>>>
>>>>>>> -- Sebastian
>>>>>>>
>>>>>>
>>>>>> This patch reviewed by Sebastian.
>>>>>> Could you Please merge that your git tree ?
>>>>>
>>>>> Hi,
>>>>>
>>>>> ... and again we are adding a new driver for very similar chipset to
>>>>> already supported. I looked at spec and the charger's registers are
>>>>> almost the same as for max77693. Their layout and addresses are the
>>>>> same. I see some minor differences, probably the most important would
>>>>> be different values current (fast-charge, top-off). But still 90% of
>>>>> registers are the same... Do we really have to add new driver?
>>>>>
>>>>> Best regards,
>>>>> Krzysztof
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe linux-input" in
>>>>> the body of a message to majordomo@vger.kernel.org
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>>
>>>>
>>>> Hi,
>>>>
>>>> Thank you for your comment. As you say, both chip set are similar.
>>>> But new driver need for support max77843. It is support different below
>>>> - Provide Battery presence information.
>>>
>>> Another set of power supply properties could be added for that chip.
>>> This way the get_property() function would be the same but actually the
>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>>
>>>> - Can OTG FET control.
>>>
>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>>> it.
>>>
>>
>> Sorry. This driver don't control OTG FET feature.
>>
>>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>>> - Various and bigger OTG current limitation.
>>>> - Bigger primary charger termination voltage setting.
>>>> - Different maximum input current limit selection(Different step).
>>>
>>> Yes, I mentioned some of these differences (the Fast/top-off
>>> differences). These are differences in values so it does not require new
>>> driver. There is need to develop new driver just to support different
>>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>>
>>
>> They are different charging current, OTG current limitation, top off current,
>> charging limitation value. In case OTG current limitation different not
>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
>> bit only). Even if this driver not support all feature, some register
>> different with max77693(support value, use register bit).
>>
>> If this driver will combined with max77693 may even be beneficial for
>> new Maxim driver. But the present, this driver is related with
>> max77843 core driver and max77843-regulator. So I hope this driver
>> merge first. And then will extend two driver(max77843 charger and max77693 charger).

I still prefer merging common drivers into one instead of creating
some more of them.
However I understand your point and I am not entirely opposed against.
Especially that you invested quite a bit of time for developing this
and my feedback was quite late. To summarize I am fine with your
approach.

Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Beomho Seo March 25, 2015, 12:39 a.m. UTC | #9
On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>
>>>>>>>>> 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 paramters to use
>>>>>>>>> i2c interface.
>>>>>>>>>
>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>
>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>>>
>>>>>>>> I can't take it as is, since it depends on the private header file
>>>>>>>> of PATCHv1.
>>>>>>>>
>>>>>>>> -- Sebastian
>>>>>>>>
>>>>>>>
>>>>>>> This patch reviewed by Sebastian.
>>>>>>> Could you Please merge that your git tree ?
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> ... and again we are adding a new driver for very similar chipset to
>>>>>> already supported. I looked at spec and the charger's registers are
>>>>>> almost the same as for max77693. Their layout and addresses are the
>>>>>> same. I see some minor differences, probably the most important would
>>>>>> be different values current (fast-charge, top-off). But still 90% of
>>>>>> registers are the same... Do we really have to add new driver?
>>>>>>
>>>>>> Best regards,
>>>>>> Krzysztof
>>>>>> --
>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-input" in
>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> Thank you for your comment. As you say, both chip set are similar.
>>>>> But new driver need for support max77843. It is support different below
>>>>> - Provide Battery presence information.
>>>>
>>>> Another set of power supply properties could be added for that chip.
>>>> This way the get_property() function would be the same but actually the
>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>>>
>>>>> - Can OTG FET control.
>>>>
>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>>>> it.
>>>>
>>>
>>> Sorry. This driver don't control OTG FET feature.
>>>
>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>>>> - Various and bigger OTG current limitation.
>>>>> - Bigger primary charger termination voltage setting.
>>>>> - Different maximum input current limit selection(Different step).
>>>>
>>>> Yes, I mentioned some of these differences (the Fast/top-off
>>>> differences). These are differences in values so it does not require new
>>>> driver. There is need to develop new driver just to support different
>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>>>
>>>
>>> They are different charging current, OTG current limitation, top off current,
>>> charging limitation value. In case OTG current limitation different not
>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
>>> bit only). Even if this driver not support all feature, some register
>>> different with max77693(support value, use register bit).
>>>
>>> If this driver will combined with max77693 may even be beneficial for
>>> new Maxim driver. But the present, this driver is related with
>>> max77843 core driver and max77843-regulator. So I hope this driver
>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> 
> I still prefer merging common drivers into one instead of creating
> some more of them.
> However I understand your point and I am not entirely opposed against.
> Especially that you invested quite a bit of time for developing this
> and my feedback was quite late. To summarize I am fine with your
> approach.
> 
> Best regards,
> Krzysztof
> 

Then, Can I request merge this patch ?

Best regards,
Beomho
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski March 26, 2015, 7:16 a.m. UTC | #10
2015-03-25 1:39 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>
> Then, Can I request merge this patch ?

Yes, but it is not up to me :).
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Beomho Seo March 26, 2015, 1:25 p.m. UTC | #11
On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>
>>>>>>>>> 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 paramters to use
>>>>>>>>> i2c interface.
>>>>>>>>>
>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>
>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>>>
>>>>>>>> I can't take it as is, since it depends on the private header file
>>>>>>>> of PATCHv1.
>>>>>>>>
>>>>>>>> -- Sebastian
>>>>>>>>
>>>>>>>
>>>>>>> This patch reviewed by Sebastian.
>>>>>>> Could you Please merge that your git tree ?
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> ... and again we are adding a new driver for very similar chipset to
>>>>>> already supported. I looked at spec and the charger's registers are
>>>>>> almost the same as for max77693. Their layout and addresses are the
>>>>>> same. I see some minor differences, probably the most important would
>>>>>> be different values current (fast-charge, top-off). But still 90% of
>>>>>> registers are the same... Do we really have to add new driver?
>>>>>>
>>>>>> Best regards,
>>>>>> Krzysztof
>>>>>> --
>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-input" in
>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> Thank you for your comment. As you say, both chip set are similar.
>>>>> But new driver need for support max77843. It is support different below
>>>>> - Provide Battery presence information.
>>>>
>>>> Another set of power supply properties could be added for that chip.
>>>> This way the get_property() function would be the same but actually the
>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>>>
>>>>> - Can OTG FET control.
>>>>
>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>>>> it.
>>>>
>>>
>>> Sorry. This driver don't control OTG FET feature.
>>>
>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>>>> - Various and bigger OTG current limitation.
>>>>> - Bigger primary charger termination voltage setting.
>>>>> - Different maximum input current limit selection(Different step).
>>>>
>>>> Yes, I mentioned some of these differences (the Fast/top-off
>>>> differences). These are differences in values so it does not require new
>>>> driver. There is need to develop new driver just to support different
>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>>>
>>>
>>> They are different charging current, OTG current limitation, top off current,
>>> charging limitation value. In case OTG current limitation different not
>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
>>> bit only). Even if this driver not support all feature, some register
>>> different with max77693(support value, use register bit).
>>>
>>> If this driver will combined with max77693 may even be beneficial for
>>> new Maxim driver. But the present, this driver is related with
>>> max77843 core driver and max77843-regulator. So I hope this driver
>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> 
> I still prefer merging common drivers into one instead of creating
> some more of them.
> However I understand your point and I am not entirely opposed against.
> Especially that you invested quite a bit of time for developing this
> and my feedback was quite late. To summarize I am fine with your
> approach.
> 
> Best regards,
> Krzysztof
>

Dear Lee Jones,

Could you please merge that your git tree ?

Best regards,
Beomho Seo
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lee Jones March 26, 2015, 1:54 p.m. UTC | #12
On Thu, 26 Mar 2015, Beomho Seo wrote:
> On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
> > 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >> On 03/10/2015 10:44 PM, Beomho Seo wrote:
> >>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
> >>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
> >>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
> >>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
> >>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
> >>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>>
> >>>>>>>>> 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 paramters to use
> >>>>>>>>> i2c interface.
> >>>>>>>>>
> >>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>
> >>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>
> >>>>>>>> I can't take it as is, since it depends on the private header file
> >>>>>>>> of PATCHv1.
> >>>>>>>>
> >>>>>>>> -- Sebastian
> >>>>>>>>
> >>>>>>>
> >>>>>>> This patch reviewed by Sebastian.
> >>>>>>> Could you Please merge that your git tree ?
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> ... and again we are adding a new driver for very similar chipset to
> >>>>>> already supported. I looked at spec and the charger's registers are
> >>>>>> almost the same as for max77693. Their layout and addresses are the
> >>>>>> same. I see some minor differences, probably the most important would
> >>>>>> be different values current (fast-charge, top-off). But still 90% of
> >>>>>> registers are the same... Do we really have to add new driver?
> >>>>>>
> >>>>>> Best regards,
> >>>>>> Krzysztof
> >>>>>>
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> Thank you for your comment. As you say, both chip set are similar.
> >>>>> But new driver need for support max77843. It is support different below
> >>>>> - Provide Battery presence information.
> >>>>
> >>>> Another set of power supply properties could be added for that chip.
> >>>> This way the get_property() function would be the same but actually the
> >>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
> >>>>
> >>>>> - Can OTG FET control.
> >>>>
> >>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
> >>>> it.
> >>>>
> >>>
> >>> Sorry. This driver don't control OTG FET feature.
> >>>
> >>>>> - Bigger Fast charge current, Top Off current Threshold selection.
> >>>>> - Various and bigger OTG current limitation.
> >>>>> - Bigger primary charger termination voltage setting.
> >>>>> - Different maximum input current limit selection(Different step).
> >>>>
> >>>> Yes, I mentioned some of these differences (the Fast/top-off
> >>>> differences). These are differences in values so it does not require new
> >>>> driver. There is need to develop new driver just to support different
> >>>> current (3.0 A instead of 2.1 A) or voltage threshold.
> >>>>
> >>>
> >>> They are different charging current, OTG current limitation, top off current,
> >>> charging limitation value. In case OTG current limitation different not
> >>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
> >>> bit only). Even if this driver not support all feature, some register
> >>> different with max77693(support value, use register bit).
> >>>
> >>> If this driver will combined with max77693 may even be beneficial for
> >>> new Maxim driver. But the present, this driver is related with
> >>> max77843 core driver and max77843-regulator. So I hope this driver
> >>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> > 
> > I still prefer merging common drivers into one instead of creating
> > some more of them.
> > However I understand your point and I am not entirely opposed against.
> > Especially that you invested quite a bit of time for developing this
> > and my feedback was quite late. To summarize I am fine with your
> > approach.
> > 
> > Best regards,
> > Krzysztof
> >
> 
> Dear Lee Jones,
> 
> Could you please merge that your git tree ?

Sorry, I'm lost.  Why am I taking this though the MFD tree?  What
patches are left?  Where are they going?  Am I taking any other
patches?
Beomho Seo March 26, 2015, 11:49 p.m. UTC | #13
On 03/26/2015 10:54 PM, Lee Jones wrote:
> On Thu, 26 Mar 2015, Beomho Seo wrote:
>> On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
>>> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
>>>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>>>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>>>
>>>>>>>>>>> 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 paramters to use
>>>>>>>>>>> i2c interface.
>>>>>>>>>>>
>>>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>>
>>>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>>>>>
>>>>>>>>>> I can't take it as is, since it depends on the private header file
>>>>>>>>>> of PATCHv1.
>>>>>>>>>>
>>>>>>>>>> -- Sebastian
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> This patch reviewed by Sebastian.
>>>>>>>>> Could you Please merge that your git tree ?
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> ... and again we are adding a new driver for very similar chipset to
>>>>>>>> already supported. I looked at spec and the charger's registers are
>>>>>>>> almost the same as for max77693. Their layout and addresses are the
>>>>>>>> same. I see some minor differences, probably the most important would
>>>>>>>> be different values current (fast-charge, top-off). But still 90% of
>>>>>>>> registers are the same... Do we really have to add new driver?
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Krzysztof
>>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Thank you for your comment. As you say, both chip set are similar.
>>>>>>> But new driver need for support max77843. It is support different below
>>>>>>> - Provide Battery presence information.
>>>>>>
>>>>>> Another set of power supply properties could be added for that chip.
>>>>>> This way the get_property() function would be the same but actually the
>>>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>>>>>
>>>>>>> - Can OTG FET control.
>>>>>>
>>>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>>>>>> it.
>>>>>>
>>>>>
>>>>> Sorry. This driver don't control OTG FET feature.
>>>>>
>>>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>>>>>> - Various and bigger OTG current limitation.
>>>>>>> - Bigger primary charger termination voltage setting.
>>>>>>> - Different maximum input current limit selection(Different step).
>>>>>>
>>>>>> Yes, I mentioned some of these differences (the Fast/top-off
>>>>>> differences). These are differences in values so it does not require new
>>>>>> driver. There is need to develop new driver just to support different
>>>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>>>>>
>>>>>
>>>>> They are different charging current, OTG current limitation, top off current,
>>>>> charging limitation value. In case OTG current limitation different not
>>>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
>>>>> bit only). Even if this driver not support all feature, some register
>>>>> different with max77693(support value, use register bit).
>>>>>
>>>>> If this driver will combined with max77693 may even be beneficial for
>>>>> new Maxim driver. But the present, this driver is related with
>>>>> max77843 core driver and max77843-regulator. So I hope this driver
>>>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
>>>
>>> I still prefer merging common drivers into one instead of creating
>>> some more of them.
>>> However I understand your point and I am not entirely opposed against.
>>> Especially that you invested quite a bit of time for developing this
>>> and my feedback was quite late. To summarize I am fine with your
>>> approach.
>>>
>>> Best regards,
>>> Krzysztof
>>>
>>
>> Dear Lee Jones,
>>
>> Could you please merge that your git tree ?
> 
> Sorry, I'm lost.  Why am I taking this though the MFD tree?  What
> patches are left?  Where are they going?  Am I taking any other
> patches?
> 

Max77843 charger driver is max77843 mfd core dependency.
If you think this patch will suitable for battery tree(or other tree),
I would like request for merge battery tree.
Also, I will send again this patch and device tree binding document.

Best regards,
Beomho Seo
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lee Jones March 27, 2015, 7:57 a.m. UTC | #14
On Fri, 27 Mar 2015, Beomho Seo wrote:
> On 03/26/2015 10:54 PM, Lee Jones wrote:
> > On Thu, 26 Mar 2015, Beomho Seo wrote:
> >> On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
> >>> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >>>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
> >>>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
> >>>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
> >>>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
> >>>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >>>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
> >>>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
> >>>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>>>>
> >>>>>>>>>>> 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 paramters to use
> >>>>>>>>>>> i2c interface.
> >>>>>>>>>>>
> >>>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>>>
> >>>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>>>
> >>>>>>>>>> I can't take it as is, since it depends on the private header file
> >>>>>>>>>> of PATCHv1.
> >>>>>>>>>>
> >>>>>>>>>> -- Sebastian
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> This patch reviewed by Sebastian.
> >>>>>>>>> Could you Please merge that your git tree ?
> >>>>>>>>
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> ... and again we are adding a new driver for very similar chipset to
> >>>>>>>> already supported. I looked at spec and the charger's registers are
> >>>>>>>> almost the same as for max77693. Their layout and addresses are the
> >>>>>>>> same. I see some minor differences, probably the most important would
> >>>>>>>> be different values current (fast-charge, top-off). But still 90% of
> >>>>>>>> registers are the same... Do we really have to add new driver?
> >>>>>>>>
> >>>>>>>> Best regards,
> >>>>>>>> Krzysztof
> >>>>>>>>
> >>>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> Thank you for your comment. As you say, both chip set are similar.
> >>>>>>> But new driver need for support max77843. It is support different below
> >>>>>>> - Provide Battery presence information.
> >>>>>>
> >>>>>> Another set of power supply properties could be added for that chip.
> >>>>>> This way the get_property() function would be the same but actually the
> >>>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
> >>>>>>
> >>>>>>> - Can OTG FET control.
> >>>>>>
> >>>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
> >>>>>> it.
> >>>>>>
> >>>>>
> >>>>> Sorry. This driver don't control OTG FET feature.
> >>>>>
> >>>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
> >>>>>>> - Various and bigger OTG current limitation.
> >>>>>>> - Bigger primary charger termination voltage setting.
> >>>>>>> - Different maximum input current limit selection(Different step).
> >>>>>>
> >>>>>> Yes, I mentioned some of these differences (the Fast/top-off
> >>>>>> differences). These are differences in values so it does not require new
> >>>>>> driver. There is need to develop new driver just to support different
> >>>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
> >>>>>>
> >>>>>
> >>>>> They are different charging current, OTG current limitation, top off current,
> >>>>> charging limitation value. In case OTG current limitation different not
> >>>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
> >>>>> bit only). Even if this driver not support all feature, some register
> >>>>> different with max77693(support value, use register bit).
> >>>>>
> >>>>> If this driver will combined with max77693 may even be beneficial for
> >>>>> new Maxim driver. But the present, this driver is related with
> >>>>> max77843 core driver and max77843-regulator. So I hope this driver
> >>>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> >>>
> >>> I still prefer merging common drivers into one instead of creating
> >>> some more of them.
> >>> However I understand your point and I am not entirely opposed against.
> >>> Especially that you invested quite a bit of time for developing this
> >>> and my feedback was quite late. To summarize I am fine with your
> >>> approach.
> >>>
> >>> Best regards,
> >>> Krzysztof
> >>>
> >>
> >> Dear Lee Jones,
> >>
> >> Could you please merge that your git tree ?
> > 
> > Sorry, I'm lost.  Why am I taking this though the MFD tree?  What
> > patches are left?  Where are they going?  Am I taking any other
> > patches?
> > 
> 
> Max77843 charger driver is max77843 mfd core dependency.

What kind of dependancy?  Runtime or build?  Where is the patch that
it depends on?  Is it in -next for in Mainline already?

> If you think this patch will suitable for battery tree(or other tree),
> I would like request for merge battery tree.

If this patch has no build dependencies on patches which are in -next,
but not in Mainline then it will have to go in via the same tree that
the dependencies were applied to.  If the dependencies are already in
Mainline, or they are not build-deps, then it should go in via the
correct tree, which I believe is Sebastian's tree.

> Also, I will send again this patch and device tree binding document.

Either way you should do that.  Mark them as RESEND instead of PATCH
and apply all of the Acks you have accumulated so far.
Beomho Seo March 27, 2015, 8:45 a.m. UTC | #15
On 03/27/2015 04:57 PM, Lee Jones wrote:
> On Fri, 27 Mar 2015, Beomho Seo wrote:
>> On 03/26/2015 10:54 PM, Lee Jones wrote:
>>> On Thu, 26 Mar 2015, Beomho Seo wrote:
>>>> On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
>>>>> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
>>>>>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
>>>>>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
>>>>>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
>>>>>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
>>>>>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
>>>>>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
>>>>>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 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 paramters to use
>>>>>>>>>>>>> i2c interface.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
>>>>>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
>>>>>>>>>>>>
>>>>>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
>>>>>>>>>>>>
>>>>>>>>>>>> I can't take it as is, since it depends on the private header file
>>>>>>>>>>>> of PATCHv1.
>>>>>>>>>>>>
>>>>>>>>>>>> -- Sebastian
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> This patch reviewed by Sebastian.
>>>>>>>>>>> Could you Please merge that your git tree ?
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> ... and again we are adding a new driver for very similar chipset to
>>>>>>>>>> already supported. I looked at spec and the charger's registers are
>>>>>>>>>> almost the same as for max77693. Their layout and addresses are the
>>>>>>>>>> same. I see some minor differences, probably the most important would
>>>>>>>>>> be different values current (fast-charge, top-off). But still 90% of
>>>>>>>>>> registers are the same... Do we really have to add new driver?
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Krzysztof
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Thank you for your comment. As you say, both chip set are similar.
>>>>>>>>> But new driver need for support max77843. It is support different below
>>>>>>>>> - Provide Battery presence information.
>>>>>>>>
>>>>>>>> Another set of power supply properties could be added for that chip.
>>>>>>>> This way the get_property() function would be the same but actually the
>>>>>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
>>>>>>>>
>>>>>>>>> - Can OTG FET control.
>>>>>>>>
>>>>>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
>>>>>>>> it.
>>>>>>>>
>>>>>>>
>>>>>>> Sorry. This driver don't control OTG FET feature.
>>>>>>>
>>>>>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
>>>>>>>>> - Various and bigger OTG current limitation.
>>>>>>>>> - Bigger primary charger termination voltage setting.
>>>>>>>>> - Different maximum input current limit selection(Different step).
>>>>>>>>
>>>>>>>> Yes, I mentioned some of these differences (the Fast/top-off
>>>>>>>> differences). These are differences in values so it does not require new
>>>>>>>> driver. There is need to develop new driver just to support different
>>>>>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
>>>>>>>>
>>>>>>>
>>>>>>> They are different charging current, OTG current limitation, top off current,
>>>>>>> charging limitation value. In case OTG current limitation different not
>>>>>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
>>>>>>> bit only). Even if this driver not support all feature, some register
>>>>>>> different with max77693(support value, use register bit).
>>>>>>>
>>>>>>> If this driver will combined with max77693 may even be beneficial for
>>>>>>> new Maxim driver. But the present, this driver is related with
>>>>>>> max77843 core driver and max77843-regulator. So I hope this driver
>>>>>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
>>>>>
>>>>> I still prefer merging common drivers into one instead of creating
>>>>> some more of them.
>>>>> However I understand your point and I am not entirely opposed against.
>>>>> Especially that you invested quite a bit of time for developing this
>>>>> and my feedback was quite late. To summarize I am fine with your
>>>>> approach.
>>>>>
>>>>> Best regards,
>>>>> Krzysztof
>>>>>
>>>>
>>>> Dear Lee Jones,
>>>>
>>>> Could you please merge that your git tree ?
>>>
>>> Sorry, I'm lost.  Why am I taking this though the MFD tree?  What
>>> patches are left?  Where are they going?  Am I taking any other
>>> patches?
>>>
>>
>> Max77843 charger driver is max77843 mfd core dependency.
> 
> What kind of dependancy?  Runtime or build?  Where is the patch that
> it depends on?  Is it in -next for in Mainline already?
> 

Build. Max77843 charger driver use max77843-private.h. It is in for-mfd-next branch.

c7f585f mfd: max77843: Add max77843 MFD driver core driver

>> If you think this patch will suitable for battery tree(or other tree),
>> I would like request for merge battery tree.
> 
> If this patch has no build dependencies on patches which are in -next,
> but not in Mainline then it will have to go in via the same tree that
> the dependencies were applied to.  If the dependencies are already in
> Mainline, or they are not build-deps, then it should go in via the
> correct tree, which I believe is Sebastian's tree.
> 
>> Also, I will send again this patch and device tree binding document.
> 
> Either way you should do that.  Mark them as RESEND instead of PATCH
> and apply all of the Acks you have accumulated so far.
> 

I will send new version because binding document have been modified.
As your comment patch will be mark.

Best regards
Beomho Seo
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lee Jones March 27, 2015, 10:08 a.m. UTC | #16
On Fri, 27 Mar 2015, Beomho Seo wrote:

> On 03/27/2015 04:57 PM, Lee Jones wrote:
> > On Fri, 27 Mar 2015, Beomho Seo wrote:
> >> On 03/26/2015 10:54 PM, Lee Jones wrote:
> >>> On Thu, 26 Mar 2015, Beomho Seo wrote:
> >>>> On 03/24/2015 05:38 PM, Krzysztof Kozlowski wrote:
> >>>>> 2015-03-24 9:01 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >>>>>> On 03/10/2015 10:44 PM, Beomho Seo wrote:
> >>>>>>> On 03/09/2015 09:13 PM, Krzysztof Kozlowski wrote:
> >>>>>>>> On pon, 2015-03-09 at 20:46 +0900, Beomho Seo wrote:
> >>>>>>>>> On 03/09/2015 08:02 PM, Krzysztof Kozlowski wrote:
> >>>>>>>>>> 2015-03-09 1:35 GMT+01:00 Beomho Seo <beomho.seo@samsung.com>:
> >>>>>>>>>>> On 03/08/2015 05:13 AM, Sebastian Reichel wrote:
> >>>>>>>>>>>> On Mon, Mar 02, 2015 at 07:10:35PM +0900, Jaewon Kim wrote:
> >>>>>>>>>>>>> From: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> 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 paramters to use
> >>>>>>>>>>>>> i2c interface.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Cc: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>>>>>> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Reviewed-By: Sebastian Reichel <sre@kernel.org>
> >>>>>>>>>>>>
> >>>>>>>>>>>> I can't take it as is, since it depends on the private header file
> >>>>>>>>>>>> of PATCHv1.
> >>>>>>>>>>>>
> >>>>>>>>>>>> -- Sebastian
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> This patch reviewed by Sebastian.
> >>>>>>>>>>> Could you Please merge that your git tree ?
> >>>>>>>>>>
> >>>>>>>>>> Hi,
> >>>>>>>>>>
> >>>>>>>>>> ... and again we are adding a new driver for very similar chipset to
> >>>>>>>>>> already supported. I looked at spec and the charger's registers are
> >>>>>>>>>> almost the same as for max77693. Their layout and addresses are the
> >>>>>>>>>> same. I see some minor differences, probably the most important would
> >>>>>>>>>> be different values current (fast-charge, top-off). But still 90% of
> >>>>>>>>>> registers are the same... Do we really have to add new driver?
> >>>>>>>>>>
> >>>>>>>>>> Best regards,
> >>>>>>>>>> Krzysztof
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Hi,
> >>>>>>>>>
> >>>>>>>>> Thank you for your comment. As you say, both chip set are similar.
> >>>>>>>>> But new driver need for support max77843. It is support different below
> >>>>>>>>> - Provide Battery presence information.
> >>>>>>>>
> >>>>>>>> Another set of power supply properties could be added for that chip.
> >>>>>>>> This way the get_property() function would be the same but actually the
> >>>>>>>> POWER_SUPPLY_PROP_PRESENT won't be called for max77693.
> >>>>>>>>
> >>>>>>>>> - Can OTG FET control.
> >>>>>>>>
> >>>>>>>> Where the OTG FET feature is it enabled in your driver? I couldn't find
> >>>>>>>> it.
> >>>>>>>>
> >>>>>>>
> >>>>>>> Sorry. This driver don't control OTG FET feature.
> >>>>>>>
> >>>>>>>>> - Bigger Fast charge current, Top Off current Threshold selection.
> >>>>>>>>> - Various and bigger OTG current limitation.
> >>>>>>>>> - Bigger primary charger termination voltage setting.
> >>>>>>>>> - Different maximum input current limit selection(Different step).
> >>>>>>>>
> >>>>>>>> Yes, I mentioned some of these differences (the Fast/top-off
> >>>>>>>> differences). These are differences in values so it does not require new
> >>>>>>>> driver. There is need to develop new driver just to support different
> >>>>>>>> current (3.0 A instead of 2.1 A) or voltage threshold.
> >>>>>>>>
> >>>>>>>
> >>>>>>> They are different charging current, OTG current limitation, top off current,
> >>>>>>> charging limitation value. In case OTG current limitation different not
> >>>>>>> limitation value but using register bit(max77843 use[7:6] max77693 use[7]
> >>>>>>> bit only). Even if this driver not support all feature, some register
> >>>>>>> different with max77693(support value, use register bit).
> >>>>>>>
> >>>>>>> If this driver will combined with max77693 may even be beneficial for
> >>>>>>> new Maxim driver. But the present, this driver is related with
> >>>>>>> max77843 core driver and max77843-regulator. So I hope this driver
> >>>>>>> merge first. And then will extend two driver(max77843 charger and max77693 charger).
> >>>>>
> >>>>> I still prefer merging common drivers into one instead of creating
> >>>>> some more of them.
> >>>>> However I understand your point and I am not entirely opposed against.
> >>>>> Especially that you invested quite a bit of time for developing this
> >>>>> and my feedback was quite late. To summarize I am fine with your
> >>>>> approach.
> >>>>>
> >>>>> Best regards,
> >>>>> Krzysztof
> >>>>>
> >>>>
> >>>> Dear Lee Jones,
> >>>>
> >>>> Could you please merge that your git tree ?
> >>>
> >>> Sorry, I'm lost.  Why am I taking this though the MFD tree?  What
> >>> patches are left?  Where are they going?  Am I taking any other
> >>> patches?
> >>>
> >>
> >> Max77843 charger driver is max77843 mfd core dependency.
> > 
> > What kind of dependancy?  Runtime or build?  Where is the patch that
> > it depends on?  Is it in -next for in Mainline already?
> > 
> 
> Build. Max77843 charger driver use max77843-private.h. It is in for-mfd-next branch.
> 
> c7f585f mfd: max77843: Add max77843 MFD driver core driver

If that's the case, then yes, I can take this patch through the MFD
tree with the correct Acks applied.
diff mbox

Patch

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 0000000..d4cce17
--- /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 <beomho.seo@samsung.com>
+ *
+ * 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 by the Free Software Foundation.
+ */
+
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/power_supply.h>
+#include <linux/mfd/max77843-private.h>
+
+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, &reg_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 *= 100000;
+		else if (reg_data % 3 == 1)
+			val = val * 100000 + 33000;
+		else
+			val = val * 100000 + 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, &reg_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, &reg_data);
+	if (ret) {
+		dev_err(charger->dev,
+				"Failed to read charger status: %d\n", ret);
+		return ret;
+	}
+
+	if (reg_data & MAX77843_CHG_CHGIN_OK)
+		val = true;
+	else
+		val = false;
+
+	return val;
+}
+
+static int max77843_charger_get_present(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_DTLS_00,	&reg_data);
+	if (ret) {
+		dev_err(charger->dev,
+				"Failed to read battery present: %d\n", ret);
+		return ret;
+	}
+
+	if (reg_data & MAX77843_CHG_BAT_DTLS)
+		val = false;
+	else
+		val = true;
+
+	return val;
+}
+
+static int max77843_charger_get_health(struct max77843_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	int ret, val = POWER_SUPPLY_HEALTH_UNKNOWN;
+	unsigned int reg_data;
+
+	ret = regmap_read(regmap, MAX77843_CHG_REG_CHG_DTLS_01,	&reg_data);
+	if (ret) {
+		dev_err(charger->dev,
+				"Failed to read battery health: %d\n", ret);
+		return ret;
+	}
+
+	reg_data &= MAX77843_CHG_BAT_DTLS_MASK;
+
+	switch (reg_data) {
+	case MAX77843_CHG_NO_BAT:
+		val = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
+		break;
+	case MAX77843_CHG_LOW_VOLT_BAT:
+	case MAX77843_CHG_OK_BAT:
+	case MAX77843_CHG_OK_LOW_VOLT_BAT:
+		val = POWER_SUPPLY_HEALTH_GOOD;
+		break;
+	case MAX77843_CHG_LONG_BAT_TIME:
+		val = POWER_SUPPLY_HEALTH_DEAD;
+		break;
+	case MAX77843_CHG_OVER_VOLT_BAT:
+	case MAX77843_CHG_OVER_CURRENT_BAT:
+		val = POWER_SUPPLY_HEALTH_OVERVOLTAGE;
+		break;
+	default:
+		val = POWER_SUPPLY_HEALTH_UNKNOWN;
+		break;
+	}
+
+	return val;
+}
+
+static int max77843_charger_get_status(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_DTLS_01,	&reg_data);
+	if (ret) {
+		dev_err(charger->dev,
+				"Failed to read charger status: %d\n", ret);
+		return ret;
+	}
+
+	reg_data &= MAX77843_CHG_DTLS_MASK;
+
+	switch (reg_data) {
+	case MAX77843_CHG_PQ_MODE:
+	case MAX77843_CHG_CC_MODE:
+	case MAX77843_CHG_CV_MODE:
+		val = POWER_SUPPLY_STATUS_CHARGING;
+		break;
+	case MAX77843_CHG_TO_MODE:
+	case MAX77843_CHG_DO_MODE:
+		val = POWER_SUPPLY_STATUS_FULL;
+		break;
+	case MAX77843_CHG_HT_MODE:
+	case MAX77843_CHG_TF_MODE:
+	case MAX77843_CHG_TS_MODE:
+		val = POWER_SUPPLY_STATUS_NOT_CHARGING;
+		break;
+	case MAX77843_CHG_OFF_MODE:
+		val = POWER_SUPPLY_STATUS_DISCHARGING;
+		break;
+	default:
+		val = POWER_SUPPLY_STATUS_UNKNOWN;
+		break;
+	}
+
+	return val;
+}
+
+static const char *model_name = "MAX77843";
+static const char *manufacturer = "Maxim Integrated";
+
+static int max77843_charger_get_property(struct power_supply *psy,
+		enum power_supply_property psp,
+		union power_supply_propval *val)
+{
+	struct max77843_charger *charger = container_of(psy,
+				struct max77843_charger, psy);
+
+	switch (psp) {
+	case POWER_SUPPLY_PROP_STATUS:
+		val->intval = max77843_charger_get_status(charger);
+		break;
+	case POWER_SUPPLY_PROP_HEALTH:
+		val->intval = max77843_charger_get_health(charger);
+		break;
+	case POWER_SUPPLY_PROP_PRESENT:
+		val->intval = max77843_charger_get_present(charger);
+		break;
+	case POWER_SUPPLY_PROP_ONLINE:
+		val->intval = max77843_charger_get_online(charger);
+		break;
+	case POWER_SUPPLY_PROP_CURRENT_NOW:
+		val->intval = max77843_charger_get_now_current(charger);
+		break;
+	case POWER_SUPPLY_PROP_CURRENT_MAX:
+		val->intval = max77843_charger_get_max_current(charger);
+		break;
+	case POWER_SUPPLY_PROP_MODEL_NAME:
+		val->strval =  model_name;
+		break;
+	case POWER_SUPPLY_PROP_MANUFACTURER:
+		val->strval = manufacturer;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static enum power_supply_property max77843_charger_props[] = {
+	POWER_SUPPLY_PROP_STATUS,
+	POWER_SUPPLY_PROP_HEALTH,
+	POWER_SUPPLY_PROP_PRESENT,
+	POWER_SUPPLY_PROP_ONLINE,
+	POWER_SUPPLY_PROP_CURRENT_NOW,
+	POWER_SUPPLY_PROP_CURRENT_MAX,
+	POWER_SUPPLY_PROP_MODEL_NAME,
+	POWER_SUPPLY_PROP_MANUFACTURER,
+};
+
+static int max77843_charger_init_current_limit(struct max77843_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	struct max77843_charger_info *info = charger->info;
+	unsigned int input_uamp_limit = info->input_uamp_limit;
+	int ret;
+	unsigned int reg_data, val;
+
+	ret = regmap_update_bits(regmap, MAX77843_CHG_REG_CHG_CNFG_02,
+			MAX77843_CHG_OTG_ILIMIT_MASK,
+			MAX77843_CHG_OTG_ILIMIT_900);
+	if (ret) {
+		dev_err(charger->dev,
+			"Failed to write OTG current limit: %d\n", ret);
+		return ret;
+	}
+
+	if (input_uamp_limit == MAX77843_CHG_INPUT_CURRENT_LIMIT_MIN) {
+		reg_data = 0x03;
+	} else if (input_uamp_limit == MAX77843_CHG_INPUT_CURRENT_LIMIT_MAX) {
+		reg_data = 0x78;
+	} else {
+		if (input_uamp_limit < MAX77843_CHG_INPUT_CURRENT_LIMIT_REF)
+			val = 0x03;
+		else
+			val = 0x02;
+
+		input_uamp_limit -= MAX77843_CHG_INPUT_CURRENT_LIMIT_MIN;
+		input_uamp_limit /= MAX77843_CHG_INPUT_CURRENT_LIMIT_STEP;
+		reg_data = val + input_uamp_limit;
+	}
+
+	ret = regmap_write(regmap, MAX77843_CHG_REG_CHG_CNFG_09, reg_data);
+	if (ret)
+		dev_err(charger->dev,
+			"Failed to write charge current limit: %d\n", ret);
+
+	return ret;
+}
+
+static int max77843_charger_init_top_off(struct max77843_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	struct max77843_charger_info *info = charger->info;
+	unsigned int top_off_uamp = info->top_off_uamp;
+	int ret;
+	unsigned int reg_data;
+
+	if (top_off_uamp == MAX77843_CHG_TOP_OFF_CURRENT_MIN) {
+		reg_data = 0x00;
+	} else if (top_off_uamp == MAX77843_CHG_TOP_OFF_CURRENT_MAX) {
+		reg_data = 0x07;
+	} else {
+		top_off_uamp -= MAX77843_CHG_TOP_OFF_CURRENT_MIN;
+		top_off_uamp /= MAX77843_CHG_TOP_OFF_CURRENT_STEP;
+		reg_data = top_off_uamp;
+	}
+
+	ret = regmap_update_bits(regmap, MAX77843_CHG_REG_CHG_CNFG_03,
+			MAX77843_CHG_TOP_OFF_CURRENT_MASK, reg_data);
+	if (ret)
+		dev_err(charger->dev,
+				"Failed to write top off current: %d\n", ret);
+
+	return ret;
+}
+
+static int max77843_charger_init_fast_charge(struct max77843_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	struct max77843_charger_info *info = charger->info;
+	unsigned int fast_charge_uamp = info->fast_charge_uamp;
+	int ret;
+	unsigned int reg_data;
+
+	if (fast_charge_uamp < info->input_uamp_limit) {
+		reg_data = 0x09;
+	} else if (fast_charge_uamp == MAX77843_CHG_FAST_CHG_CURRENT_MIN) {
+		reg_data = 0x02;
+	} else if (fast_charge_uamp == MAX77843_CHG_FAST_CHG_CURRENT_MAX) {
+		reg_data = 0x3f;
+	} else {
+		fast_charge_uamp -= MAX77843_CHG_FAST_CHG_CURRENT_MIN;
+		fast_charge_uamp /= MAX77843_CHG_FAST_CHG_CURRENT_STEP;
+		reg_data = 0x02 + fast_charge_uamp;
+	}
+
+	ret = regmap_update_bits(regmap, MAX77843_CHG_REG_CHG_CNFG_02,
+			MAX77843_CHG_FAST_CHG_CURRENT_MASK, reg_data);
+	if (ret)
+		dev_err(charger->dev,
+			"Failed to write fast charge current: %d\n", ret);
+
+	return ret;
+}
+
+static int max77843_charger_init(struct max77843_charger *charger)
+{
+	struct regmap *regmap = charger->regmap;
+	int ret;
+
+	ret = regmap_write(regmap, MAX77843_CHG_REG_CHG_CNFG_06,
+			MAX77843_CHG_WRITE_CAP_UNBLOCK);
+	if (ret) {
+		dev_err(charger->dev,
+			"Failed to unblock write capability: %d\n", ret);
+		return ret;
+	}
+
+	ret = regmap_write(regmap, MAX77843_CHG_REG_CHG_CNFG_01,
+			MAX77843_CHG_RESTART_THRESHOLD_DISABLE);
+	if (ret) {
+		dev_err(charger->dev,
+			"Failed to write charger restart threshold: %d\n", ret);
+		return ret;
+	}
+
+	ret = max77843_charger_init_fast_charge(charger);
+	if (ret) {
+		dev_err(charger->dev,
+				"Failed to set fast charge mode: %d\n", ret);
+		return ret;
+	}
+
+	ret = max77843_charger_init_top_off(charger);
+	if (ret) {
+		dev_err(charger->dev, "Failed to set top off charge mode.\n");
+		return ret;
+	}
+
+	ret = max77843_charger_init_current_limit(charger);
+	if (ret)
+		dev_err(charger->dev, "Faied to set current limit.\n");
+
+	return 0;
+}
+
+static struct max77843_charger_info *max77843_charger_dt_init(
+		struct platform_device *pdev)
+{
+	struct max77843_charger_info *info;
+	struct device_node *np = pdev->dev.of_node;
+	int ret;
+
+	if (!np) {
+		dev_err(&pdev->dev, "No charger OF node\n");
+		return ERR_PTR(-EINVAL);
+	}
+
+	info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
+	if (!info)
+		return ERR_PTR(-ENOMEM);
+
+	ret = of_property_read_u32(np, "maxim,fast-charge-uamp",
+			&info->fast_charge_uamp);
+	if (ret) {
+		dev_err(&pdev->dev, "Cannot parse fast charge current.\n");
+		return ERR_PTR(ret);
+	}
+
+	ret = of_property_read_u32(np, "maxim,top-off-uamp",
+			&info->top_off_uamp);
+	if (ret) {
+		dev_err(&pdev->dev,
+			"Cannot parse primary charger termination voltage.\n");
+		return ERR_PTR(ret);
+	}
+
+	ret = of_property_read_u32(np, "maxim,input-uamp-limit",
+			&info->input_uamp_limit);
+	if (ret) {
+		dev_err(&pdev->dev, "Cannot parse input current limit value\n");
+		return ERR_PTR(ret);
+	}
+
+	return info;
+}
+
+static int max77843_charger_probe(struct platform_device *pdev)
+{
+	struct max77843 *max77843 = dev_get_drvdata(pdev->dev.parent);
+	struct max77843_charger *charger;
+	int ret;
+
+	charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL);
+	if (!charger)
+		return -ENOMEM;
+
+	platform_set_drvdata(pdev, charger);
+	charger->dev = &pdev->dev;
+	charger->max77843 = max77843;
+	charger->client = max77843->i2c_chg;
+	charger->regmap = max77843->regmap_chg;
+
+	charger->info = max77843_charger_dt_init(pdev);
+	if (IS_ERR_OR_NULL(charger->info))
+		return PTR_ERR(charger->info);
+
+	charger->psy.name	= "max77843-charger";
+	charger->psy.type	= POWER_SUPPLY_TYPE_MAINS;
+	charger->psy.get_property	= max77843_charger_get_property;
+	charger->psy.properties		= max77843_charger_props;
+	charger->psy.num_properties	= ARRAY_SIZE(max77843_charger_props);
+
+	ret = max77843_charger_init(charger);
+	if (ret)
+		return ret;
+
+	ret = power_supply_register(&pdev->dev, &charger->psy);
+	if (ret) {
+		dev_err(&pdev->dev,
+			"Failed to register power supply %d\n", ret);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int max77843_charger_remove(struct platform_device *pdev)
+{
+	struct max77843_charger *charger = platform_get_drvdata(pdev);
+
+	power_supply_unregister(&charger->psy);
+
+	return 0;
+}
+
+static const struct platform_device_id max77843_charger_id[] = {
+	{ "max77843-charger", },
+	{ }
+};
+MODULE_DEVICE_TABLE(platform, max77843_charger_id);
+
+static struct platform_driver max77843_charger_driver = {
+	.driver = {
+		.name = "max77843-charger",
+	},
+	.probe = max77843_charger_probe,
+	.remove = max77843_charger_remove,
+	.id_table = max77843_charger_id,
+};
+module_platform_driver(max77843_charger_driver);
+
+MODULE_DESCRIPTION("Maxim MAX77843 charger driver");
+MODULE_AUTHOR("Beomho Seo <beomho.seo@samsung.com>");
+MODULE_LICENSE("GPL v2");