linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steve Twiss <stwiss.opensource@diasemi.com>
To: Marek Vasut <marek.vasut@gmail.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Marek Vasut <marek.vasut+renesas@gmail.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Lee Jones <lee.jones@linaro.org>, Mark Brown <broonie@kernel.org>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	Support Opensource <Support.Opensource@diasemi.com>
Subject: RE: [PATCH v3 06/10] mfd: da9063: Add custom regmap for DA9063L
Date: Wed, 6 Jun 2018 09:47:18 +0000	[thread overview]
Message-ID: <6ED8E3B22081A4459DAC7699F3695FB701941AE842@SW-EX-MBX02.diasemi.com> (raw)
In-Reply-To: <ab8fa587-a33a-5906-9403-ff5e23e09ff0@gmail.com>

Hi Marek and Geert,

On 06 June 2018 00:02 Marek Vasut wrote,

> Subject: Re: [PATCH v3 06/10] mfd: da9063: Add custom regmap for DA9063L
> 
> On 06/05/2018 10:17 PM, Steve Twiss wrote:
> > Hi Marek and Geert,
> >
> > On 04 June 2018 17:25 Marek Vasut wrote,
> >
> >> Subject: Re: [PATCH v3 06/10] mfd: da9063: Add custom regmap for DA9063L
> >>
> >> On 06/04/2018 09:39 AM, Geert Uytterhoeven wrote:
> >>> Hi Marek, Steve,
> >>>
> >>> On Sat, Jun 2, 2018 at 12:11 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> >>>> While the datasheet for DA9063L (2v1, 23-Mar-2017) lists the RTC register
> >>>> block, the DA9063L does not have an RTC. Add custom regmap for DA9063L to
> >>>> prevent access into that register block.
> >
> > Ok. I've said previously in [v3 07/10], but I'll copy again:
> > There is now an internal Dialog request to remove the RTC references from the DA9063L datasheet.
> > Adding that first part to the sentence in the commit log: "While the datasheet for DA9063L
> > (2v1, 23-Mar-2017) lists the RTC register block" -- it exists in error for the register map table
> > on page 91, but the datasheet also identifies those registers in Table 102 on page 126 as
> > "Reserved".
> >
> > Pointing out the ambiguity in this version of the datasheet seems redundant in the commit log.
> > Also Dialog do not store a history of Datasheets on their website so once this is updated (although
> > this update is not in my hands) the datasheet will be replaced. So, it seems this comment could
> > make the commit message just as misleading as the current datasheet.
> >
> > How about something simpler?
> > "The DA9063L does not have an RTC. Add custom regmap for DA9063L to prevent access
> > into that register block."
> >
> >>>>
> >>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> >>>
> >>> Thanks for your patch!
> >>>
> >>>> --- a/drivers/mfd/da9063-i2c.c
> >>>> +++ b/drivers/mfd/da9063-i2c.c
> >>>> @@ -254,6 +341,10 @@ static int da9063_i2c_probe(struct i2c_client *i2c,
> >>>
> >>> Note that the line above doesn't check da9063->type, but da9063-
> >>> variant_code...
> >>>
> >>>>                 da9063_regmap_config.rd_table = &da9063_ad_readable_table;
> >>>>                 da9063_regmap_config.wr_table = &da9063_ad_writeable_table;
> >>>>                 da9063_regmap_config.volatile_table = &da9063_ad_volatile_table;
> >>>> +       } else if (da9063->type == PMIC_TYPE_DA9063L) {
> >>>
> >>> ... so this may be slightly confusing.
> >>
> >> I know.
> >>
> >>>> +               da9063_regmap_config.rd_table = &da9063l_bb_readable_table;
> >>>> +               da9063_regmap_config.wr_table = &da9063l_bb_writeable_table;
> >>>> +               da9063_regmap_config.volatile_table = &da9063l_bb_volatile_table;
> >>>>         } else {
> >>>>                 da9063_regmap_config.rd_table = &da9063_bb_readable_table;
> >>>>                 da9063_regmap_config.wr_table = &da9063_bb_writeable_table;
> >>>
> >>> However, da9063->variant_code doesn't seem to have been filled in at this
> >>> point yet (the call to da9063_device_init() doing so is below, at the end
> >>> of the probe function!), so commit 9cb42e2a8ed06e91 ("mfd: da9063: Add
> >>> support for AD silicon variant") never actually handled the AD silicon variant
> >>> correctly? Or am I missing something?
> >
> > Okay ... No. You're not missing anything. I had noticed that.
> > The AD chip model is not referenced and by default only the BB chip model is used.
> >
> >> Ha, that is a good point.
> >
> > Yeah, it's a good point, but it's not an amusing point.
> > The device tree only distinguishes a "dlg,da9063", there is no AD type in the DT schema.
> > There is no datasheet listing AD registers supported by Dialog, only BB.
> >
> > But, AD registers were added back into the header file in commit 9cb42e2a8ed06e91
> > and the RTC driver was updated to distinguish between the AD and BB according to
> > the type of variant detected at run-time during the da9063_device_init() call.
> >
> > The real problem is that this leads to two competing chip detection methods for the
> > DA9063. The function da9063_device_init() autodetects the chip variant, but
> > autodetection cannot define the chip model. It's circular: the chip model cannot be
> > autodetected because a chip model is needed to access the register used during
> > autodetection.
> >
> > Which leads me back to what I said two paragraphs up:
> >> The device tree only distinguishes a "dlg,da9063", there is no AD type in the DT schema.
> >> There is no datasheet listing AD registers supported by Dialog, only BB.
> >
> > This is not how it is done in the DA9062 and DA9061 driver: the variant code is only
> > used to print the information to the console during start-up and it is the DT that defines
> > the chip model based upon "dlg,da9062" or "dlg,da9061".
> 
> So the AD was broken since forever and noone noticed ? :)

Not quite. 
The AD support is working, but the driver doesn't work like everybody
expects because it uses the BB chip model. But it does work because the chip
model for BB is valid for AD; in this case BB represents a superset of AD
registers (and any mismatches are never accessed or mean anything in AD).

> Do you have an AD hardware and can you fix it ?

Part of my work is to support the community and I think this is fixable.

But all of this shouldn't affect your DA9063L submission should it?

Regards,
Steve


  reply	other threads:[~2018-06-06  9:47 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-02 10:11 [PATCH v3 01/10] mfd: da9063: Fix failpath in core Marek Vasut
2018-06-02 10:11 ` [PATCH v3 02/10] mfd: da9063: Use REGMAP_IRQ_REG Marek Vasut
2018-06-04  7:17   ` Geert Uytterhoeven
2018-06-04 12:26   ` Lee Jones
2018-06-04 16:23     ` Marek Vasut
2018-06-05  7:09       ` Lee Jones
2018-06-05  7:31         ` Geert Uytterhoeven
2018-06-05  8:16           ` Lee Jones
2018-06-05 19:48   ` Steve Twiss
2018-06-02 10:11 ` [PATCH v3 03/10] mfd: da9063: Rename PMIC_DA9063 to PMIC_CHIP_ID_DA9063 Marek Vasut
2018-06-04 12:26   ` Lee Jones
2018-06-04 18:31     ` Marek Vasut
2018-06-05  7:05       ` Lee Jones
2018-06-05 17:16       ` Steve Twiss
2018-06-05 17:20         ` Marek Vasut
2018-06-05 19:49   ` Steve Twiss
2018-06-02 10:11 ` [PATCH v3 04/10] mfd: da9063: Replace model with type Marek Vasut
2018-06-05  7:21   ` Lee Jones
2018-06-02 10:11 ` [PATCH v3 05/10] mfd: da9063: Add DA9063L type Marek Vasut
2018-06-05  7:22   ` Lee Jones
2018-06-05 19:50   ` Steve Twiss
2018-06-02 10:11 ` [PATCH v3 06/10] mfd: da9063: Add custom regmap for DA9063L Marek Vasut
2018-06-04  7:39   ` Geert Uytterhoeven
2018-06-04 16:25     ` Marek Vasut
2018-06-05 20:17       ` Steve Twiss
2018-06-05 23:02         ` Marek Vasut
2018-06-06  9:47           ` Steve Twiss [this message]
2018-06-06  9:50             ` Marek Vasut
2018-06-02 10:11 ` [PATCH v3 07/10] mfd: da9063: Add custom IRQ map " Marek Vasut
2018-06-05  7:47   ` Lee Jones
2018-06-05  7:54     ` Geert Uytterhoeven
2018-06-05  8:24       ` Lee Jones
2018-06-05 19:52   ` Steve Twiss
2018-06-05 22:58     ` Marek Vasut
2018-06-02 10:11 ` [PATCH v3 08/10] mfd: da9063: Register RTC only on DA9063L Marek Vasut
2018-06-05  7:53   ` Lee Jones
2018-06-05  9:29     ` Marek Vasut
2018-06-06  6:16       ` Lee Jones
2018-06-06  9:17         ` Marek Vasut
2018-06-07  5:04           ` Lee Jones
2018-06-07 10:57             ` Marek Vasut
2018-06-07 13:24               ` Lee Jones
2018-06-02 10:11 ` [PATCH v3 09/10] mfd: da9063: Handle less LDOs " Marek Vasut
2018-06-05  8:18   ` Lee Jones
2018-06-02 10:11 ` [PATCH v3 10/10] mfd: da9063: Add DA9063L support Marek Vasut
2018-06-05  8:18   ` Lee Jones
2018-06-05 19:47   ` Steve Twiss
2018-06-04  7:16 ` [PATCH v3 01/10] mfd: da9063: Fix failpath in core Geert Uytterhoeven
2018-06-04  8:28 ` Vaishali Thakkar
2018-06-04 12:24 ` Lee Jones
2018-06-04 13:08   ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ED8E3B22081A4459DAC7699F3695FB701941AE842@SW-EX-MBX02.diasemi.com \
    --to=stwiss.opensource@diasemi.com \
    --cc=Support.Opensource@diasemi.com \
    --cc=broonie@kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=geert@linux-m68k.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=marek.vasut+renesas@gmail.com \
    --cc=marek.vasut@gmail.com \
    --cc=wsa+renesas@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).