Thread (19 messages) 19 messages, 3 authors, 2015-05-19

RE: [rtc-linux] [PATCH V2 1/4] mfd: da9062: DA9062 MFD core driver

From: Opensource [Steve Twiss] <hidden>
Date: 2015-05-19 08:34:56
Also in: linux-devicetree, linux-rtc, linux-watchdog, lkml

On 16 May 2015 09:53 Alexandre Belloni wrote:

Hi Alexandre,
On 14/05/2015 at 17:43:52 +0100, S Twiss wrote :
[...]
quoted
+	{
+		.name		= "da9062-watchdog",
+		.num_resources	= ARRAY_SIZE(da9062_wdt_resources),
+		.resources	= da9062_wdt_resources,
+		.of_compatible  = "dlg,da9062-wdt",
+	},
+	{
+		.name		= "da9062-onkey",
+		.num_resources	= ARRAY_SIZE(da9062_onkey_resources),
+		.resources	= da9062_onkey_resources,
+		.of_compatible  = "dlg,da9062-onkey",
+	},
+	{
+		.name		= "da9062-thermal",
+		.num_resources	= ARRAY_SIZE(da9062_thermal_resources),
+		.resources	= da9062_thermal_resources,
+		.of_compatible  = "dlg,da9062-thermal",
+	},
+	{
+		.name		= "da9062-rtc",
+		.num_resources	= ARRAY_SIZE(da9062_rtc_resources),
+		.resources	= da9062_rtc_resources,
+		.of_compatible  = "dlg,da9062-rtc",
Did you try to use "da9063-rtc"? The register set seems to be exactly
the same. Unfortunately, the datasheet are not available on the diasemi
website...
I will remove the DA9062 OnKey and RTC parts with a view to putting them back
when I do the work for the DA9063 alterations.
Also, the .of_compatibles are not necessary because you don't add any of
bindings to the underlying drivers. The match happens on .name.
quoted
diff --git a/include/linux/mfd/da9062/registers.h
b/include/linux/mfd/da9062/registers.h
quoted
new file mode 100644
index 0000000..d07c2bc
--- /dev/null
+++ b/include/linux/mfd/da9062/registers.h
Comparing that file with da9063/registers.h, It really seems that
DA062AA, DA9063AD and DA9063BB are register compatible, apart from a
few
differences in the regulator and the gpio count.

Also, at least the watchdog and rtc driver are duplicating their da9063
counterpart. I'm not trying to annoy you, I just want you to understand
that the less code is duplicated, the easiest it will be to maintain
later.
This has come up a lot lately.

https://lkml.org/lkml/2015/4/24/304
https://lkml.org/lkml/2015/5/13/383
https://lkml.org/lkml/2015/5/6/505
https://lkml.org/lkml/2015/5/18/511

The short answer is that the DA9062 and DA9063 chips are not identical. Although
their numbers are sequential and there are functional similarities for some of the
components, this is not the norm for the two chips.

In some cases re-using driver components from DA9063 is a good way forward, but
making all components part of a monolithic driver would make both DA9062 and
DA9063 over complicated and unmaintainable -- in my opinion.

However it's not just my opinion we have to consider here I think.

The RTC and OnKey in this case can be done fairly easily I think -- there can be some
re-use in those components -- although there are fairly important RTC differences between
the DA9063 AD and DA9063 BB silicon revisions (in the form of a new register, different
functionality in the alarm and a register shift). So even that is not a straight-forward
"swap" to run DA9062.

Regards,
Steve

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help