All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Courbot <acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
	Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Ian Campbell
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: "devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] ARM: tegra: add device tree for SHIELD
Date: Wed, 26 Feb 2014 13:58:53 +0900	[thread overview]
Message-ID: <530D748D.6010802@nvidia.com> (raw)
In-Reply-To: <530D1B7A.9070209-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>

On 02/26/2014 07:38 AM, Stephen Warren wrote:
> On 02/24/2014 07:13 PM, Alexandre Courbot wrote:
>> On 02/25/2014 03:53 AM, Stephen Warren wrote:
>>> On 02/24/2014 03:26 AM, Alexandre Courbot wrote:
>>>> Add a device tree for NVIDIA SHIELD. The set of enabled features is
>>>> still minimal with no display option (although HDMI should be easy
>>>> to get to work) and USB requiring external power.
>
>>>> diff --git a/arch/arm/boot/dts/tegra114-roth.dts
>>>> b/arch/arm/boot/dts/tegra114-roth.dts
>>>
>>>> +    memory {
>>>> +        reg = <0x80000000 0x79600000>;
>>>
>>> It might be worth a comment here pointing out that the rest of RAM is
>>> reserved for some carveouts/..., or at least that these values are set
>>> this way in order to match what the bootloader usually passes to
>>> downstream kernels in the command-line?
>>
>> Yes, absolutely right. On a more general note I feel like DTs could gain
>> clarity if they had more comments (e.g. for pinmuxing which are a quite
>> heavy block otherwise), do you have any objection to this? (I guess not,
>> but so far the rule seems to be "no comment in DT" :P )
>
> I have no objection in particular. Specifically for pinmux, the values
> seem pretty obvious, so I'm not sure what extra the comment could
> convey, but I'll take a look at any proposed patch:-)

It would just make grouping of related pins according more visible than 
having to look at the "nvidia,function" property currently does - just a 
little added comfort.

>>>> +    /* Wifi */
>>>> +    sdhci@78000000 {
>>>> +        status = "okay";
>>>> +        bus-width = <4>;
>>>> +        broken-cd;
>>>> +        keep-power-in-suspend;
>>>> +        cap-sdio-irq;
>>>
>>> Is non-removable better than broken-cd, or are they entirely unrelated?
>>
>> They are unrelated actually. With non-removable the driver expects the
>> device to always be there since boot, and does not check for the card to
>> be removed/added after boot. broken-cd indicates there is no CD line and
>> the device should be polled regularly.
>
> It doesn't sound like that's what we want either; we should know exactly
> when the device is added/removed, based on when the relevant
> clocks/supplies/... are turned on/off.

Yes, I guess this will require a proper DT binding like what Arend proposed.

>> For the Wifi chip, non-removable would be the correct setting
>> hardware-wise, but there is a trap: the chip has its reset line asserted
>> at boot-time, and you need to set GPIO 229 to de-assert it. Only after
>> that will the device be detected on the SDIO bus. Since it lacks a CD
>> line, it must be polled, hence the broken-cd property.
>
> How does that GPIO get manipulated right now? I assume you must be
> manually configuring it via sysfs after boot or something? If so,
> perhaps it's best to just leave out the WiFi node until it works
> automatically.

The GPIO needs to be set from user-space, yes. But if we leave the Wifi 
node out, I'm concerned that wireless will not be usable at all, 
wouldn't it?

>> This also raises another, redundant problem with DT bindings: AFAIK we
>> currently have no way to let the system know the device will only appear
>> after a given GPIO is set. It would also be nice to be able to give some
>> parameters to the Wifi driver through the DT (like the OOB interrupt).
>> Right now the Wifi chip is brought up by exporting the GPIO and writing
>> to it from user-space, and the OOB interrupt is not used.
>
> There was a thread on this topic on LAKML recently. I didn't really
> follow it, so I don't know if there was a useful resolution. I think it
> was "mmc: add support for power-on sequencing through DT", although
> there may have been other related threads. It was possibly tangentially
> related to power-sequences-in-DT...
>
> ...
>> I'm not sure about cap-sdio-irq, it doesn't seem to make a difference
>> for SHIELD Wifi.
>
> I'd tend to leave it out then.

I will check whether it helps with the latency issues I have noticed and 
remove it if it doesn't.

Thanks,
Alex.

WARNING: multiple messages have this Message-ID (diff)
From: acourbot@nvidia.com (Alexandre Courbot)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: tegra: add device tree for SHIELD
Date: Wed, 26 Feb 2014 13:58:53 +0900	[thread overview]
Message-ID: <530D748D.6010802@nvidia.com> (raw)
In-Reply-To: <530D1B7A.9070209@wwwdotorg.org>

On 02/26/2014 07:38 AM, Stephen Warren wrote:
> On 02/24/2014 07:13 PM, Alexandre Courbot wrote:
>> On 02/25/2014 03:53 AM, Stephen Warren wrote:
>>> On 02/24/2014 03:26 AM, Alexandre Courbot wrote:
>>>> Add a device tree for NVIDIA SHIELD. The set of enabled features is
>>>> still minimal with no display option (although HDMI should be easy
>>>> to get to work) and USB requiring external power.
>
>>>> diff --git a/arch/arm/boot/dts/tegra114-roth.dts
>>>> b/arch/arm/boot/dts/tegra114-roth.dts
>>>
>>>> +    memory {
>>>> +        reg = <0x80000000 0x79600000>;
>>>
>>> It might be worth a comment here pointing out that the rest of RAM is
>>> reserved for some carveouts/..., or at least that these values are set
>>> this way in order to match what the bootloader usually passes to
>>> downstream kernels in the command-line?
>>
>> Yes, absolutely right. On a more general note I feel like DTs could gain
>> clarity if they had more comments (e.g. for pinmuxing which are a quite
>> heavy block otherwise), do you have any objection to this? (I guess not,
>> but so far the rule seems to be "no comment in DT" :P )
>
> I have no objection in particular. Specifically for pinmux, the values
> seem pretty obvious, so I'm not sure what extra the comment could
> convey, but I'll take a look at any proposed patch:-)

It would just make grouping of related pins according more visible than 
having to look at the "nvidia,function" property currently does - just a 
little added comfort.

>>>> +    /* Wifi */
>>>> +    sdhci at 78000000 {
>>>> +        status = "okay";
>>>> +        bus-width = <4>;
>>>> +        broken-cd;
>>>> +        keep-power-in-suspend;
>>>> +        cap-sdio-irq;
>>>
>>> Is non-removable better than broken-cd, or are they entirely unrelated?
>>
>> They are unrelated actually. With non-removable the driver expects the
>> device to always be there since boot, and does not check for the card to
>> be removed/added after boot. broken-cd indicates there is no CD line and
>> the device should be polled regularly.
>
> It doesn't sound like that's what we want either; we should know exactly
> when the device is added/removed, based on when the relevant
> clocks/supplies/... are turned on/off.

Yes, I guess this will require a proper DT binding like what Arend proposed.

>> For the Wifi chip, non-removable would be the correct setting
>> hardware-wise, but there is a trap: the chip has its reset line asserted
>> at boot-time, and you need to set GPIO 229 to de-assert it. Only after
>> that will the device be detected on the SDIO bus. Since it lacks a CD
>> line, it must be polled, hence the broken-cd property.
>
> How does that GPIO get manipulated right now? I assume you must be
> manually configuring it via sysfs after boot or something? If so,
> perhaps it's best to just leave out the WiFi node until it works
> automatically.

The GPIO needs to be set from user-space, yes. But if we leave the Wifi 
node out, I'm concerned that wireless will not be usable at all, 
wouldn't it?

>> This also raises another, redundant problem with DT bindings: AFAIK we
>> currently have no way to let the system know the device will only appear
>> after a given GPIO is set. It would also be nice to be able to give some
>> parameters to the Wifi driver through the DT (like the OOB interrupt).
>> Right now the Wifi chip is brought up by exporting the GPIO and writing
>> to it from user-space, and the OOB interrupt is not used.
>
> There was a thread on this topic on LAKML recently. I didn't really
> follow it, so I don't know if there was a useful resolution. I think it
> was "mmc: add support for power-on sequencing through DT", although
> there may have been other related threads. It was possibly tangentially
> related to power-sequences-in-DT...
>
> ...
>> I'm not sure about cap-sdio-irq, it doesn't seem to make a difference
>> for SHIELD Wifi.
>
> I'd tend to leave it out then.

I will check whether it helps with the latency issues I have noticed and 
remove it if it doesn't.

Thanks,
Alex.

WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Courbot <acourbot@nvidia.com>
To: Stephen Warren <swarren@wwwdotorg.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Russell King <linux@arm.linux.org.uk>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ARM: tegra: add device tree for SHIELD
Date: Wed, 26 Feb 2014 13:58:53 +0900	[thread overview]
Message-ID: <530D748D.6010802@nvidia.com> (raw)
In-Reply-To: <530D1B7A.9070209@wwwdotorg.org>

On 02/26/2014 07:38 AM, Stephen Warren wrote:
> On 02/24/2014 07:13 PM, Alexandre Courbot wrote:
>> On 02/25/2014 03:53 AM, Stephen Warren wrote:
>>> On 02/24/2014 03:26 AM, Alexandre Courbot wrote:
>>>> Add a device tree for NVIDIA SHIELD. The set of enabled features is
>>>> still minimal with no display option (although HDMI should be easy
>>>> to get to work) and USB requiring external power.
>
>>>> diff --git a/arch/arm/boot/dts/tegra114-roth.dts
>>>> b/arch/arm/boot/dts/tegra114-roth.dts
>>>
>>>> +    memory {
>>>> +        reg = <0x80000000 0x79600000>;
>>>
>>> It might be worth a comment here pointing out that the rest of RAM is
>>> reserved for some carveouts/..., or at least that these values are set
>>> this way in order to match what the bootloader usually passes to
>>> downstream kernels in the command-line?
>>
>> Yes, absolutely right. On a more general note I feel like DTs could gain
>> clarity if they had more comments (e.g. for pinmuxing which are a quite
>> heavy block otherwise), do you have any objection to this? (I guess not,
>> but so far the rule seems to be "no comment in DT" :P )
>
> I have no objection in particular. Specifically for pinmux, the values
> seem pretty obvious, so I'm not sure what extra the comment could
> convey, but I'll take a look at any proposed patch:-)

It would just make grouping of related pins according more visible than 
having to look at the "nvidia,function" property currently does - just a 
little added comfort.

>>>> +    /* Wifi */
>>>> +    sdhci@78000000 {
>>>> +        status = "okay";
>>>> +        bus-width = <4>;
>>>> +        broken-cd;
>>>> +        keep-power-in-suspend;
>>>> +        cap-sdio-irq;
>>>
>>> Is non-removable better than broken-cd, or are they entirely unrelated?
>>
>> They are unrelated actually. With non-removable the driver expects the
>> device to always be there since boot, and does not check for the card to
>> be removed/added after boot. broken-cd indicates there is no CD line and
>> the device should be polled regularly.
>
> It doesn't sound like that's what we want either; we should know exactly
> when the device is added/removed, based on when the relevant
> clocks/supplies/... are turned on/off.

Yes, I guess this will require a proper DT binding like what Arend proposed.

>> For the Wifi chip, non-removable would be the correct setting
>> hardware-wise, but there is a trap: the chip has its reset line asserted
>> at boot-time, and you need to set GPIO 229 to de-assert it. Only after
>> that will the device be detected on the SDIO bus. Since it lacks a CD
>> line, it must be polled, hence the broken-cd property.
>
> How does that GPIO get manipulated right now? I assume you must be
> manually configuring it via sysfs after boot or something? If so,
> perhaps it's best to just leave out the WiFi node until it works
> automatically.

The GPIO needs to be set from user-space, yes. But if we leave the Wifi 
node out, I'm concerned that wireless will not be usable at all, 
wouldn't it?

>> This also raises another, redundant problem with DT bindings: AFAIK we
>> currently have no way to let the system know the device will only appear
>> after a given GPIO is set. It would also be nice to be able to give some
>> parameters to the Wifi driver through the DT (like the OOB interrupt).
>> Right now the Wifi chip is brought up by exporting the GPIO and writing
>> to it from user-space, and the OOB interrupt is not used.
>
> There was a thread on this topic on LAKML recently. I didn't really
> follow it, so I don't know if there was a useful resolution. I think it
> was "mmc: add support for power-on sequencing through DT", although
> there may have been other related threads. It was possibly tangentially
> related to power-sequences-in-DT...
>
> ...
>> I'm not sure about cap-sdio-irq, it doesn't seem to make a difference
>> for SHIELD Wifi.
>
> I'd tend to leave it out then.

I will check whether it helps with the latency issues I have noticed and 
remove it if it doesn't.

Thanks,
Alex.


  parent reply	other threads:[~2014-02-26  4:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-24 10:26 [PATCH] ARM: tegra: add device tree for SHIELD Alexandre Courbot
2014-02-24 10:26 ` Alexandre Courbot
2014-02-24 10:26 ` Alexandre Courbot
     [not found] ` <1393237593-28121-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-02-24 18:53   ` Stephen Warren
2014-02-24 18:53     ` Stephen Warren
2014-02-24 18:53     ` Stephen Warren
2014-02-25  2:13     ` Alexandre Courbot
2014-02-25  2:13       ` Alexandre Courbot
2014-02-25  2:13       ` Alexandre Courbot
     [not found]       ` <530BFC58.6020003-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-02-25  9:52         ` Arend van Spriel
2014-02-25  9:52           ` Arend van Spriel
2014-02-25  9:52           ` Arend van Spriel
     [not found]           ` <530C67F4.7010208-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
2014-02-26  4:52             ` Alexandre Courbot
2014-02-26  4:52               ` Alexandre Courbot
2014-02-26  4:52               ` Alexandre Courbot
2014-02-26 21:10               ` Arend van Spriel
2014-02-26 21:10                 ` Arend van Spriel
2014-02-25 22:38         ` Stephen Warren
2014-02-25 22:38           ` Stephen Warren
2014-02-25 22:38           ` Stephen Warren
     [not found]           ` <530D1B7A.9070209-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-02-26  4:58             ` Alexandre Courbot [this message]
2014-02-26  4:58               ` Alexandre Courbot
2014-02-26  4:58               ` Alexandre Courbot
     [not found]               ` <530D748D.6010802-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-02-26  5:02                 ` Stephen Warren
2014-02-26  5:02                   ` Stephen Warren
2014-02-26  5:02                   ` Stephen Warren
2014-02-26  5:12                   ` Alexandre Courbot
2014-02-26  5:12                     ` Alexandre Courbot
  -- strict thread matches above, loose matches on Subject: below --
2014-03-03  3:49 Alexandre Courbot
2014-03-03  3:49 ` Alexandre Courbot
2014-03-03  3:49 ` Alexandre Courbot
     [not found] ` <1393818596-26775-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-03  3:53   ` Alexandre Courbot
2014-03-03  3:53     ` Alexandre Courbot
2014-03-03  3:53     ` Alexandre Courbot
2014-03-03 17:00   ` Stephen Warren
2014-03-03 17:00     ` Stephen Warren
2014-03-03 17:00     ` Stephen Warren
2014-03-04  1:24     ` Alexandre Courbot
2014-03-04  1:24       ` Alexandre Courbot
2014-03-04  1:24       ` Alexandre Courbot

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=530D748D.6010802@nvidia.com \
    --to=acourbot-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.