From: Arnd Bergmann <arnd@arndb.de>
To: Linus Walleij <linus.ml.walleij@gmail.com>
Cc: ext Nishanth Menon <nm@ti.com>,
ext Tony Lindgren <tony@atomide.com>,
Peter De-Schrijver <Peter.De-Schrijver@nokia.com>,
Ambresh <a0393775@ti.com>,
Saravana Kannan <skannan@codeaurora.org>,
Jouni Hogander <jouni.hogander@nokia.com>,
Lee Jones <Lee.Jones@linaro.org>,
Rabin VINCENT <rabin.vincent@stericsson.com>,
Russell King <linux@arm.linux.org.uk>,
Jonas ABERG <jonas.aberg@stericsson.com>,
ext Kevin Hilman <khilman@deeprootsystems.com>,
David Brown <davidb@codeaurora.org>,
Maxime Coquelin <maxime.coquelin-nonst@stericsson.com>,
"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
Loic PALLARDY <loic.pallardy@stericsson.com>,
"eduardo.valentin@nokia.com" <eduardo.valentin@nokia.com>,
maxime_coquelin@yahoo.fr, Ryan Mallon <ryan@bluewatersys.com>,
Linux-OMAP <linux-omap@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infrade>
Subject: Re: [RFC PATCHv1 1/2] Export SoC info through sysfs
Date: Thu, 10 Mar 2011 15:23:26 +0100 [thread overview]
Message-ID: <201103101523.27181.arnd@arndb.de> (raw)
In-Reply-To: <AANLkTikFCAC-hdv0Q_9eQs31XHHEc4wYqRjfY0S=FYcz@mail.gmail.com>
On Thursday 10 March 2011, Linus Walleij wrote:
> >
> > As far as I can tell, the SOC already exists as a platform device
> > under /sys/devices/platform,
>
> This is from U8500:
>
> /sys/devices/platform ls
>
> ab8500-i2c.0 gpio.0 gpio.5 nmk-i2c.0 uevent
> arm-pmu.0 gpio.1 gpio.6 nmk-i2c.1
> cpufreq-u8500 gpio.2 gpio.7 nmk-i2c.2
> dma40.0 gpio.3 gpio.8 nmk-i2c.3
> gpio-keys.0 gpio.4 musb-ux500.0 reg-dummy
>
> In our case the above are platform_device:s and also MFD cells,
> children of I2C devices (anything prefixed with ab8500-*) which
> have absolutely nothing to do with what is inside the SoC.
Ok, I must correct myself:
There *should* *be* an SOC device that is the parent of all
devices that are part of the SOC, instead of a bunch of
random stuff getting placed directly under /sys/devices/platform.
Most of the stuff you have there really isn't a top-level
platform device at all.
> Further these SoC entries don't even have a device of any kind tied
> to them. It's just hooks reading binary right out of some extremely
> system-specific memory locations and producing matching strings.
On the SOC devices that I've dealt with, they are organized in
some hierarchy of buses, and each bus has its own registers
that identify it, and should therefore be represented in
sysfs as a device with other child devices.
Making up a pseudo-device that does not refer to any hardware
in particular is against the 'devices are only "devices"'
rule in Documentation/sysfs-rules.txt.
If you really want that, it should be in /sys/kernel/,
/sys/firmware/ or a new top-level directory in sysfs.
I think putting it in /sys/devices is good, but it has
to be an attribute of an actual device, not an empty
one that does not even have any child devices. If the
device represents the soc, then every other device
that is found in the soc should be a child of this one.
> "platform" means "platform bus" in this context, does it not?
> So your reasoning is that since on SoC:s there is one dominant
> bus called the platform bus that should also hold a reference to the
> SoC-specific stuff.
No. Be careful not to confuse bus and bus_type here. Platform
bus refers to the bus_type and it can hold any number of
devices that are directly addressable but cannot be probed.
> On the ARM Versatiles this isn't even true: there the dominant
> bus is the AMBA (PrimeCell) bus, and the U8500 uses a mixture
> of both. AMBA devices incidentally turn up as entries directly
> in /sys/devices:
>
> /sys/devices ls
> platform sdi0 sdi4 system uart1 virtual
> rtc-pl031 sdi2 ssp0 uart0 uart2
>
> The sdi, uart & rtc you see here are AMBA devices.
I would argue that these belong into a top-level AMBA bus device
that holds all devices connected to one AMBA bus. It's a
really bad idea to put random devices into a the global
/sys/devices/ namespace, because of potential conflicts.
> So platform is just the platform bus, not the, you know,
> *platform*. There are competing on-chip busses not just one.
Good point. Note that I did not mean to put the attributes
directly under /sys/platform/, but under /sys/platform/foo/,
where foo is the main bus that is used between the CPU core
and all the SOC components.
This may of course not be easy. If you have an AMBA or PCI
bus, you might want to have it represented as
/sys/devices/pci0 and /sys/devices/amba0 instead of
/sys/devices/platform/foo/amba0/.
Arnd
next prev parent reply other threads:[~2011-03-10 14:23 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-09 16:59 [RFC PATCHv1 0/2] Export SoC info through sysfs Maxime Coquelin
2011-03-09 16:59 ` [RFC PATCHv1 1/2] " Maxime Coquelin
2011-03-09 17:39 ` Jamie Iles
2011-03-10 9:45 ` Maxime Coquelin
2011-03-09 17:47 ` Mark Brown
2011-03-10 9:58 ` Maxime Coquelin
2011-03-10 13:18 ` Mark Brown
2011-03-10 13:16 ` Maxime Coquelin
2011-03-09 19:58 ` Arnd Bergmann
2011-03-10 12:56 ` Maxime Coquelin
2011-03-10 13:25 ` Linus Walleij
2011-03-10 14:08 ` Mark Brown
2011-03-10 14:29 ` Arnd Bergmann
2011-03-10 14:44 ` Mark Brown
2011-03-10 15:02 ` Arnd Bergmann
2011-03-10 15:10 ` Russell King - ARM Linux
2011-03-10 15:17 ` Linus Walleij
2011-03-10 15:20 ` Mark Brown
2011-03-10 16:11 ` Arnd Bergmann
2011-03-10 16:19 ` Mark Brown
2011-03-10 16:54 ` Arnd Bergmann
2011-03-10 14:23 ` Arnd Bergmann [this message]
2011-03-10 16:05 ` Linus Walleij
2011-03-10 16:32 ` Arnd Bergmann
2011-03-10 17:08 ` Linus Walleij
2011-03-11 16:14 ` Arnd Bergmann
2011-03-09 20:38 ` Ryan Mallon
2011-03-09 16:59 ` [RFC PATCHv1 2/2] ux500: Export U8500 " Maxime Coquelin
2011-03-09 20:02 ` Arnd Bergmann
2011-03-10 13:05 ` [RFC PATCHv1 0/2] Export " Eduardo Valentin
2011-03-10 13:36 ` Maxime Coquelin
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=201103101523.27181.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=Lee.Jones@linaro.org \
--cc=Peter.De-Schrijver@nokia.com \
--cc=a0393775@ti.com \
--cc=davidb@codeaurora.org \
--cc=eduardo.valentin@nokia.com \
--cc=jonas.aberg@stericsson.com \
--cc=jouni.hogander@nokia.com \
--cc=khilman@deeprootsystems.com \
--cc=linus.ml.walleij@gmail.com \
--cc=linux-arm-kernel@lists.infrade \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=loic.pallardy@stericsson.com \
--cc=maxime.coquelin-nonst@stericsson.com \
--cc=maxime_coquelin@yahoo.fr \
--cc=nm@ti.com \
--cc=rabin.vincent@stericsson.com \
--cc=ryan@bluewatersys.com \
--cc=skannan@codeaurora.org \
--cc=tony@atomide.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