From: Tony Lindgren <tony@atomide.com>
To: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Cc: Robert Nelson <robertcnelson@gmail.com>,
Matthijs van Duin <matthijsvanduin@gmail.com>,
Johan Hovold <johan@kernel.org>,
devicetree <devicetree@vger.kernel.org>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Felipe Balbi <balbi@ti.com>
Subject: Re: [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
Date: Mon, 18 May 2015 13:37:27 -0700 [thread overview]
Message-ID: <20150518203727.GI10274@atomide.com> (raw)
In-Reply-To: <D3CA3985-8C25-4B0C-A3DF-A3E2AF8450BD@konsulko.com>
* Pantelis Antoniou <pantelis.antoniou@konsulko.com> [150518 11:19]:
> Hi Tony,
>
> > On May 18, 2015, at 21:14 , Tony Lindgren <tony@atomide.com> wrote:
> >
> > * Pantelis Antoniou <pantelis.antoniou@konsulko.com> [150518 11:02]:
> >> Hi Tony,
> >>
> >>> On May 18, 2015, at 20:03 , Tony Lindgren <tony@atomide.com> wrote:
> >>>
> >>> * Robert Nelson <robertcnelson@gmail.com> [150518 09:51]:
> >>>> On Mon, May 18, 2015 at 11:29 AM, Tony Lindgren <tony@atomide.com> wrote:
> >>>>> * Robert Nelson <robertcnelson@gmail.com> [150518 09:15]:
> >>>>>> On Mon, May 18, 2015 at 10:21 AM, Tony Lindgren <tony@atomide.com> wrote:
> >>>>>>
> >>>>>> All the rev information is in the board's eeprom:
> >>>>>>
> >>>>>> hexdump -e '8/1 "%c"' /sys/bus/i2c/devices/0-0050/eeprom -s 12 -n 4
> >>>>>>
> >>>>>> Rev A5B
> >>>>>> 0A5B
> >>>>>>
> >>>>>> Rev C
> >>>>>> 000C
> >>>>>>
> >>>>>> Just another default qwerk to add to Pantelis' bone_capemgr. ;)
> >>>>>
> >>>>> It seems we should not even instantiate some devices on BBB
> >>>>> until the EEPROM is parsed.. So maybe something like this:
> >>>>>
> >>>>> 1. The problem devices are initially set with status = "disabled"
> >>>>> in the dts
> >>>>>
> >>>>> 2. We set up drivers/*/bbb-eeprom.c that parses the board
> >>>>> revision at module_init time, and then flips the selected
> >>>>> devices to have status = "enabled" and populates the revision
> >>>>> info based on the eeprom and SoC revision passed in pdata.
> >>>>> Then those devices get their struct device created and
> >>>>> probed, but at a much later time.
> >>>>>
> >>>>> So rather than trying to init all that early, let's just
> >>>>> init them much later when we have the proper I2C driver
> >>>>> running?
> >>>>
> >>>> I see that working just fine. We (beagleboard.org) enforce the eeprom
> >>>> data, as all the official images require a proper baseboard eeprom.
> >>>
> >>> OK
> >>>
> >>>> We just have to be very careful to limit the scope, otherwise we will
> >>>> end up with Pantelis' rejected capebus from the v3.2.x days...
> >>>
> >>> Naturally I was thinking #2 above would use Pantelis' code for
> >>> CONFIG_OF_OVERLAY in mainline. But instead of the earlier patches,
> >>> we can make things happen much later on to avoid the detect of
> >>> EEPROM early on.
> >>
> >> Already been taken care of:
> >>
> >> https://lkml.org/lkml/2015/2/18/258
> >>
> >> The patchset works, but it still needs some review eyeballs.
> >> There might be a rename to variants or something.
> >>
> >> You were part of that thread too :)
> >
> > Right, and what I mean with #2 above is that we can make this all
> > into a regular drivers/* device driver with no need for the
> > early hacks in your series in arch/arm/mach-omap2/am33xx-dt-quirks.c.
> >
>
> It’s going to be tough. This is touching the pmic that needs to be
> initialized early since a whole bunch of drivers depend on it.
With the $subject driver we just need to have have RTC driver not
probe until the the EEPROM is parsed in the drivers/foo/bbb-eeprom.c
driver and the RTC overlay is initialized. Or what's the issue
you're talking about?
But in any case, let's not merge a copy of the I2C driver into
arch/arm/mach-omap2/am33xx-dt-quirks.c. We can do all this with
drivers/foo/bbb-eeprom.c that's just a regular device driver.
> >> I think it’s best if we go this path instead of twiddling with the
> >> status properties manually. Conceptually the idea is similar to
> >> the detection of the white/black, with the added joy of revision
> >> detection.
> >
> > If some device drivers depend on the I2C EEPROM, we should not
> > create the struct device entry for those until the I2C EEPROM
> > driver has parsed the EEPROM. And there's no need to do that
> > early, we want to do everything as late as possible. That way
> > we have real debug console available in most cases.
> >
>
> FWIW the first patch used an early platform device, but that made things
> even more complicated.
No need to do any early platform devices, we just need to delay
the creation of struct device for the problem drivers.
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-05-18 20:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-13 13:50 [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller Robert Nelson
2015-05-13 14:16 ` Johan Hovold
2015-05-13 14:48 ` Johan Hovold
2015-05-16 2:48 ` Matthijs van Duin
2015-05-18 15:21 ` Tony Lindgren
2015-05-18 16:13 ` Robert Nelson
[not found] ` <CAOCHtYgwyQy+hQE2PeUd+7U9wNygVOUuAb-VSh_9K5y7zFHEWA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-18 16:29 ` Tony Lindgren
2015-05-18 16:49 ` Robert Nelson
[not found] ` <CAOCHtYjtziBwfSMGPRrQ7rfDEf_dC=7rPytQUxVXy8bSp-8NNw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-18 17:03 ` Tony Lindgren
2015-05-18 18:01 ` Pantelis Antoniou
2015-05-18 18:14 ` Tony Lindgren
2015-05-18 18:18 ` Pantelis Antoniou
2015-05-18 20:37 ` Tony Lindgren [this message]
[not found] ` <20150518152108.GE10274-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-05-19 7:25 ` Matthijs van Duin
[not found] ` <CAALWOA-OwUuAbc7Wd_SV-14mVbOCVWvKwKgb3eOjVGEery28og-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-19 14:55 ` Tony Lindgren
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=20150518203727.GI10274@atomide.com \
--to=tony@atomide.com \
--cc=balbi@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=johan@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=matthijsvanduin@gmail.com \
--cc=pantelis.antoniou@konsulko.com \
--cc=robertcnelson@gmail.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).