From: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
To: Thierry Reding
<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
Cc: Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
Jesse Barnes <jbarnes-Y1mF5jBUw70BENJcbMCuUQ@public.gmane.org>,
Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
Colin Cross <ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support
Date: Tue, 12 Jun 2012 09:10:54 -1000 [thread overview]
Message-ID: <4FD7943E.60302@firmworks.com> (raw)
In-Reply-To: <20120612172041.GA28010-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
[-- Attachment #1.1: Type: text/plain, Size: 5624 bytes --]
On 6/12/2012 7:20 AM, Thierry Reding wrote:
> * Stephen Warren wrote:
>> On 06/12/2012 12:21 AM, Thierry Reding wrote:
>>> * Stephen Warren wrote:
>>>> On 06/11/2012 09:05 AM, Thierry Reding wrote:
>>>>> This commit adds support for instantiating the Tegra PCIe
>>>>> controller from a device tree.
>>>>
>>>>> +++ b/Documentation/devicetree/bindings/pci/tegra-pcie.txt
>>>>
>>>> Can we please name this nvidia,tegra20-pcie.txt to match the
>>>> naming of all the other Tegra bindings.
>>>
>>> Yes, will do.
>>>
>>>>> +Required properties: +- compatible: "nvidia,tegra20-pcie" +-
>>>>> reg: physical base address and length of the controller's
>>>>> registers
>>>>
>>>> Since there's more than one range now, that should specify how
>>>> many entries are required and what they represent.
>>>
>>> Okay.
>>>
>>>>> +Optional properties: +- pex-clk-supply: supply voltage for
>>>>> internal reference clock +- vdd-supply: power supply for
>>>>> controller (1.05V)
>>>>
>>>> Those shouldn't be optional. If the board has no regulator, the
>>>> board's .dts should provide a fixed always-on regulator that
>>>> those properties can refer to, so that the driver can always
>>>> get() those regulators.
>>>
>>> That'll add more dummy regulators and I don't think sprinkling them
>>> across the DTS is going to work very well. Maybe collecting them
>>> under a top-level "regulators" node is a good option. If you have a
>>> better alternative, I'm all open for it.
>>>
>>>>> diff --git a/arch/arm/boot/dts/tegra20.dtsi
>>>>> b/arch/arm/boot/dts/tegra20.dtsi
>>>>
>>>>> + pci {
>>>> ...
>>>>> + status = "disable";
>>>>
>>>> That should be "disabled"; sorry for providing a bad example.
>>>
>>> Yes.
>>>
>>>>> diff --git a/arch/arm/mach-tegra/pcie.c
>>>>> b/arch/arm/mach-tegra/pcie.c
>>>>
>>>>> +static struct tegra_pcie_pdata *tegra_pcie_parse_dt(struct
>>>>> platform_device *pdev)
>>>>
>>>>> + if (of_find_property(node, "vdd-supply", NULL)) {
>>>>
>>>> As mentioned above, that if statement should be removed, since
>>>> the regulators shouldn't be optional.
>>>
>>> Okay.
>>>
>>>>> + pcie->vdd_supply = regulator_get(&pdev->dev, "vdd");
>>>>
>>>> Those could be devm_regulator_get(). Then tegra_pcie_remove()
>>>> wouldn't have to put() them.
>>>
>>> Okay.
>>>
>>>>> + for (i = 0; i< TEGRA_PCIE_MAX_PORTS; i++) +
>>>>> pdata->enable_ports[i] = true;
>>>>
>>>> Shouldn't the DT indicate which ports are used? I assume there's
>>>> some reason that the existing driver allows that to be
>>>> configured, rather than always enabling all ports. At least,
>>>> enumeration time wasted on non-existent ports springs to mind,
>>>> and perhaps attempting to enable port 1 when port 0 is x4 and
>>>> using all the lanes would cause errors in port 0?
>>>
>>> Yes, that's been on my mind as well. I'm not sure about the best
>>> binding for this. Perhaps something like:
>>>
>>> pci { enable-ports =<0 1 2>; };
>>>
>>> Would do?
>>
>> That seems reasonable, although since the property is presumably
>> something specific to the Tegra PCIe binding, not generic, I think it
>> should be nvidia,enable-ports.
>
> I came up with the following alternative:
>
> pci {
> compatible = "nvidia,tegra20-pcie";
> reg =<0x80003000 0x00000800 /* PADS registers */
> 0x80003800 0x00000200 /* AFI registers */
> 0x80004000 0x00100000 /* configuration space */
> 0x80104000 0x00100000 /* extended configuration space */
> 0x80400000 0x00010000 /* downstream I/O */
> 0x90000000 0x10000000 /* non-prefetchable memory */
> 0xa0000000 0x10000000>; /* prefetchable memory */
> interrupts =<0 98 0x04 /* controller interrupt */
> 0 99 0x04>; /* MSI interrupt */
> status = "disabled";
>
> ranges =<0x80000000 0x80000000 0x00002000 /* 2 root ports */
> 0x80004000 0x80004000 0x00100000 /* configuration space */
> 0x80104000 0x80104000 0x00100000 /* extended configuration space */
> 0x80400000 0x80400000 0x00010000 /* downstream I/O */
> 0x90000000 0x90000000 0x10000000 /* non-prefetchable memory */
> 0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */
>
> #address-cells =<1>;
> #size-cells =<1>;
>
> port@80000000 {
> reg =<0x80000000 0x00001000>;
> status = "disabled";
> };
>
> port@80001000 {
> reg =<0x80001000 0x00001000>;
> status = "disabled";
> };
> };
>
> The "ranges" property can probably be cleaned up a bit, but the most
> interesting part is the port@ children, which can simply be enabled in board
> DTS files by setting the status property to "okay". I find that somewhat more
> intuitive to the variant with an "enable-ports" property.
>
> What do you think of this?
The problem is that children of a PCI-ish bus have specific expectations
about the parent address format - the standard 3-address-cell PCI
addressing. So making a PCI bus node - even if it is PCIe - with 1
address cell is a problem.
Also, if a given address range is listed in "reg", it should not also be
listed in "ranges". A block of addresses is either "claimed" by the
parent node (reg property) or passed through to its children (ranges
property), but not both. "reg" entries are appropriate for entities
that pertain to the overall control of the bus interface itself, while
"ranges" entries are for chunks of address space that are overlaid onto
child devices.
>
>
> Thierry
>
>
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
[-- Attachment #1.2: Type: text/html, Size: 8974 bytes --]
[-- Attachment #2: Type: text/plain, Size: 192 bytes --]
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
https://lists.ozlabs.org/listinfo/devicetree-discuss
next prev parent reply other threads:[~2012-06-12 19:10 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-11 15:05 [PATCH v2 00/10] ARM: tegra: Add PCIe device tree support Thierry Reding
[not found] ` <1339427118-32263-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 15:05 ` [PATCH v2 01/10] PCI: Keep pci_fixup_irqs() around after init Thierry Reding
2012-06-11 15:05 ` [PATCH v2 02/10] ARM: pci: Keep pci_common_init() " Thierry Reding
2012-06-11 15:05 ` [PATCH v2 03/10] ARM: pci: Allow passing per-controller private data Thierry Reding
2012-06-11 15:05 ` [PATCH v2 04/10] ARM: tegra: Move tegra_pcie_xclk_clamp() to PMC Thierry Reding
2012-06-11 15:05 ` [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support Thierry Reding
2012-06-11 21:33 ` Stephen Warren
2012-06-12 6:21 ` Thierry Reding
2012-06-12 15:44 ` Stephen Warren
[not found] ` <4FD763C5.3090500-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 17:20 ` Thierry Reding
[not found] ` <20120612172041.GA28010-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 19:10 ` Mitch Bradley [this message]
[not found] ` <4FD7943E.60302-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-12 19:46 ` Stephen Warren
2012-06-12 19:52 ` Mitch Bradley
[not found] ` <4FD79DE8.90603-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13 5:54 ` Thierry Reding
2012-06-13 7:04 ` Mitch Bradley
2012-06-12 20:15 ` Stephen Warren
2012-06-12 21:11 ` Mitch Bradley
2012-06-13 6:45 ` Thierry Reding
[not found] ` <20120613064519.GD31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 7:28 ` Mitch Bradley
[not found] ` <4FD84133.4060401-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13 7:52 ` Thierry Reding
[not found] ` <20120613075232.GA6139-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 8:05 ` Mitch Bradley
[not found] ` <4FD849CF.4030009-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13 8:19 ` Thierry Reding
[not found] ` <20120613081910.GB6528-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 8:36 ` Mitch Bradley
2012-06-13 8:42 ` Thierry Reding
[not found] ` <4FD85127.8050301-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-14 9:19 ` Thierry Reding
[not found] ` <20120614091905.GA9081-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 18:30 ` Stephen Warren
[not found] ` <4FDA2DDA.1030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-14 19:29 ` Thierry Reding
[not found] ` <20120614192903.GA2212-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 19:50 ` Stephen Warren
[not found] ` <4FDA40A0.4030206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-15 6:12 ` Thierry Reding
2012-06-19 13:30 ` Thierry Reding
[not found] ` <20120619133001.GB24138-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-19 16:40 ` Stephen Warren
2012-06-19 21:31 ` Mitch Bradley
2012-06-20 16:32 ` Stephen Warren
2012-06-20 17:41 ` Mitch Bradley
[not found] ` <4FE20B34.2090305-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-20 17:47 ` Stephen Warren
2012-06-20 19:57 ` Arnd Bergmann
2012-06-20 20:19 ` Mitch Bradley
2012-06-21 6:47 ` Thierry Reding
[not found] ` <20120621064722.GA1122-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 10:18 ` Bjorn Helgaas
[not found] ` <CAErSpo6Bpfqm-0yGiBOXEhF4kD3PTDYvWVr0babLZ4GkBLXJiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 11:00 ` Thierry Reding
2012-06-22 11:46 ` Bjorn Helgaas
2012-06-22 12:43 ` Thierry Reding
2012-06-22 13:03 ` Arnd Bergmann
[not found] ` <201206221303.21985.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 16:49 ` Bjorn Helgaas
[not found] ` <CAErSpo56=S2oQ0usYfH28T0178SQUBD=5jqmcKWCT6M5WUQF6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 16:53 ` Arnd Bergmann
[not found] ` <201206221653.31817.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 17:13 ` Bjorn Helgaas
[not found] ` <CAErSpo5dj99iHW0WNEABPR1OO2yS=BwNezOivu6_7Go8sKyjsQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 21:08 ` Arnd Bergmann
2012-06-22 17:14 ` Arnd Bergmann
2012-06-22 17:00 ` Stephen Warren
2012-06-22 17:28 ` Stephen Warren
2012-06-23 21:35 ` Bjorn Helgaas
[not found] ` <4FE4AB2F.8090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-25 6:34 ` Thierry Reding
2012-06-26 17:22 ` Stephen Warren
[not found] ` <4FE9EFD8.6010608-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-27 6:19 ` Thierry Reding
2012-06-22 16:20 ` Stephen Warren
2012-06-22 17:09 ` Mitch Bradley
2012-06-22 11:04 ` Thierry Reding
[not found] ` <20120622110403.GA15710-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:22 ` Thierry Reding
[not found] ` <20120622132253.GA30704-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:48 ` Arnd Bergmann
[not found] ` <201206221348.39346.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 14:02 ` Thierry Reding
[not found] ` <20120622140210.GA32097-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 16:40 ` Arnd Bergmann
2012-06-13 20:21 ` Arnd Bergmann
[not found] ` <201206132021.09774.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14 8:37 ` Thierry Reding
2012-06-14 10:25 ` Arnd Bergmann
2012-06-14 10:31 ` Thierry Reding
2012-06-14 11:06 ` Arnd Bergmann
[not found] ` <201206141106.49142.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14 11:58 ` Thierry Reding
[not found] ` <4FD7A36B.9090409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-13 6:34 ` Thierry Reding
[not found] ` <20120613063422.GC31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 16:20 ` Stephen Warren
2012-06-13 17:03 ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 09/10] ARM: tegra: harmony: Initialize PCIe from DT Thierry Reding
[not found] ` <1339427118-32263-10-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:41 ` Stephen Warren
[not found] ` <4FD6661A.1060407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 5:48 ` Thierry Reding
[not found] ` <20120612054811.GB4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 15:38 ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 05/10] ARM: tegra: Rewrite PCIe support as a driver Thierry Reding
2012-06-11 21:09 ` Stephen Warren
[not found] ` <4FD65E98.4070200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 6:41 ` Thierry Reding
2012-06-12 7:24 ` Thierry Reding
[not found] ` <20120612072444.GA8577-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12 16:00 ` Stephen Warren
2012-06-13 8:12 ` Thierry Reding
[not found] ` <1339427118-32263-6-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:22 ` Stephen Warren
[not found] ` <4FD6617C.4090805-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 4:59 ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 06/10] ARM: tegra: pcie: Add MSI support Thierry Reding
[not found] ` <1339427118-32263-7-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:19 ` Stephen Warren
2012-06-12 5:07 ` Thierry Reding
2012-06-12 5:33 ` Stephen Warren
[not found] ` <4FD6D4C6.2080201-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 5:41 ` Thierry Reding
[not found] ` <20120612050713.GB3669-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12 6:10 ` Thierry Reding
[not found] ` <20120612061003.GC4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 15:40 ` Stephen Warren
2012-06-12 17:23 ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 08/10] ARM: tegra: harmony: Initialize regulators from DT Thierry Reding
2012-06-11 21:36 ` Stephen Warren
[not found] ` <4FD664F8.4030800-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 6:13 ` Thierry Reding
[not found] ` <1339427118-32263-9-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-21 20:17 ` Stephen Warren
[not found] ` <4FE3815C.8030505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-22 6:06 ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 10/10] ARM: tegra: trimslice: Initialize PCIe " Thierry Reding
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=4FD7943E.60302@firmworks.com \
--to=wmb-d5eqfidgl7eakbo8gow8eq@public.gmane.org \
--cc=ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=jbarnes-Y1mF5jBUw70BENJcbMCuUQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.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).