From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [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
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
2015-05-18 16:29 ` Tony Lindgren
2015-05-18 16:49 ` Robert Nelson
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]
2015-05-19 7:25 ` Matthijs van Duin
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=linux-arm-kernel@lists.infradead.org \
/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).