From: Stephen Warren <swarren@wwwdotorg.org>
To: Eric Anholt <eric@anholt.net>
Cc: linux-rpi-kernel@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Lee Jones <lee@kernel.org>,
Florian Fainelli <f.fainelli@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>,
devicetree@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
linux-gpio@vger.kernel.org,
Stefan Wahren <stefan.wahren@i2se.com>
Subject: Re: [PATCH 1/5] ARM: bcm2835: Define standard pinctrl groups in the gpio node.
Date: Thu, 3 Mar 2016 15:32:21 -0700 [thread overview]
Message-ID: <56D8BB75.7040002@wwwdotorg.org> (raw)
In-Reply-To: <87fuw76w14.fsf@eliezer.anholt.net>
On 03/03/2016 03:23 PM, Eric Anholt wrote:
> Stephen Warren <swarren@wwwdotorg.org> writes:
>
>> On 02/26/2016 11:19 AM, Eric Anholt wrote:
>>> The BCM2835-ARM-Peripherals.pdf documentation specifies what the
>>> function selects do for the pins, and there are a bunch of obvious
>>> groupings to be made. With these created, we'll be able to replace
>>> bcm2835-rpi.dtsi's main "set all of these pins to alt0" with
>>> references to specific groups we want enabled.
>>
>>> diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
>>
>>> + spi0_gpio7: spi0_gpio7 {
>>> + brcm,pins = <7 8 9 10 11>;
>>> + brcm,function = <BCM2835_FSEL_ALT0>;
>>> + };
>>
>> This is too many pins.
>>
>> - It includes both MOSI and MISO, although a particular use-case may
>> only use 1 of those.
>>
>> - It includes both chip-select signals, whereas a particular use-case
>> may use 0, 1, or 2 of those. This is especially true since IIRC the
>> mainline bcm283x SPI driver wants to only use GPIOs for chip-selects,
>> not SPI-controller-generated chip-select signals, to avoid some issues
>> with the HW generation of these signals.
>>
>>
>> I believe a similar comment applies to other SPI nodes too.
>>
>>> + pcm_gpio18: pcm_gpio18 {
>>> + brcm,pins = <18 19 20 21>;
>>> + brcm,function = <BCM2835_FSEL_ALT0>;
>>> + };
>>
>> Here too, I wonder if some people might want only one of DIN/DOUT and
>> not both?
>>
>>> + uart1_gpio36: uart1_gpio36 {
>>> + brcm,pins = <36 37 38 39>;
>>> + brcm,function = <BCM2835_FSEL_ALT2>;
>>> + };
>>
>> Similarly, I think for UARTS, TX/RX and RTS/CTS should always be in
>> different nodes so people can choose 2- or 4-wire mode. Most of the UART
>> nodes are already split like this, but this one isn't.
>>
>>> + emmc_gpio22: emmc_gpio22 {
>>> + brcm,pins = <22 23 24 25 26 27>;
>>> + brcm,function = <BCM2835_FSEL_ALT3>;
>>> + };
>>
>> 1-wire (1 data wire, plus CLK/CMD) eMMC is possible in theory, although
>> I don't know whether it makes sense to support this?
>
> Nothing here precludes making alternative pin groups for special
> situations like you're bringing up here. I'm just trying to bring
> sanity to the giant lists of pins we have currently, that happen to
> correspond to these.
>
> Of your suggestions, making uart1_gpio36 split out cts/rts like the rest
> makes a lot of sense to me. Of the others, they seem like speculation
> more than "we should fix this because it's not what people want." Can
> you provide specific feedback of what you'd like changed to get an Ack?
All of the points I raised should be fixed. I don't believe any of the
groups that affect more than minimal sets of pins are useful. Indeed,
using groups at all is rather tenuous; it'd be far better to list the
precise sets of pins only as and when they're used.
WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/5] ARM: bcm2835: Define standard pinctrl groups in the gpio node.
Date: Thu, 3 Mar 2016 15:32:21 -0700 [thread overview]
Message-ID: <56D8BB75.7040002@wwwdotorg.org> (raw)
In-Reply-To: <87fuw76w14.fsf@eliezer.anholt.net>
On 03/03/2016 03:23 PM, Eric Anholt wrote:
> Stephen Warren <swarren@wwwdotorg.org> writes:
>
>> On 02/26/2016 11:19 AM, Eric Anholt wrote:
>>> The BCM2835-ARM-Peripherals.pdf documentation specifies what the
>>> function selects do for the pins, and there are a bunch of obvious
>>> groupings to be made. With these created, we'll be able to replace
>>> bcm2835-rpi.dtsi's main "set all of these pins to alt0" with
>>> references to specific groups we want enabled.
>>
>>> diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
>>
>>> + spi0_gpio7: spi0_gpio7 {
>>> + brcm,pins = <7 8 9 10 11>;
>>> + brcm,function = <BCM2835_FSEL_ALT0>;
>>> + };
>>
>> This is too many pins.
>>
>> - It includes both MOSI and MISO, although a particular use-case may
>> only use 1 of those.
>>
>> - It includes both chip-select signals, whereas a particular use-case
>> may use 0, 1, or 2 of those. This is especially true since IIRC the
>> mainline bcm283x SPI driver wants to only use GPIOs for chip-selects,
>> not SPI-controller-generated chip-select signals, to avoid some issues
>> with the HW generation of these signals.
>>
>>
>> I believe a similar comment applies to other SPI nodes too.
>>
>>> + pcm_gpio18: pcm_gpio18 {
>>> + brcm,pins = <18 19 20 21>;
>>> + brcm,function = <BCM2835_FSEL_ALT0>;
>>> + };
>>
>> Here too, I wonder if some people might want only one of DIN/DOUT and
>> not both?
>>
>>> + uart1_gpio36: uart1_gpio36 {
>>> + brcm,pins = <36 37 38 39>;
>>> + brcm,function = <BCM2835_FSEL_ALT2>;
>>> + };
>>
>> Similarly, I think for UARTS, TX/RX and RTS/CTS should always be in
>> different nodes so people can choose 2- or 4-wire mode. Most of the UART
>> nodes are already split like this, but this one isn't.
>>
>>> + emmc_gpio22: emmc_gpio22 {
>>> + brcm,pins = <22 23 24 25 26 27>;
>>> + brcm,function = <BCM2835_FSEL_ALT3>;
>>> + };
>>
>> 1-wire (1 data wire, plus CLK/CMD) eMMC is possible in theory, although
>> I don't know whether it makes sense to support this?
>
> Nothing here precludes making alternative pin groups for special
> situations like you're bringing up here. I'm just trying to bring
> sanity to the giant lists of pins we have currently, that happen to
> correspond to these.
>
> Of your suggestions, making uart1_gpio36 split out cts/rts like the rest
> makes a lot of sense to me. Of the others, they seem like speculation
> more than "we should fix this because it's not what people want." Can
> you provide specific feedback of what you'd like changed to get an Ack?
All of the points I raised should be fixed. I don't believe any of the
groups that affect more than minimal sets of pins are useful. Indeed,
using groups at all is rather tenuous; it'd be far better to list the
precise sets of pins only as and when they're used.
next prev parent reply other threads:[~2016-03-03 22:32 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 18:19 [PATCH 0/5] BCM2835 pinctrl DT rework (resend) Eric Anholt
2016-02-26 18:19 ` Eric Anholt
2016-02-26 18:19 ` [PATCH 1/5] ARM: bcm2835: Define standard pinctrl groups in the gpio node Eric Anholt
2016-03-03 21:20 ` Stephen Warren
2016-03-03 21:20 ` Stephen Warren
[not found] ` <56D8AAA2.60907-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2016-03-03 22:23 ` Eric Anholt
2016-03-03 22:23 ` Eric Anholt
2016-03-03 22:23 ` Eric Anholt
2016-03-03 22:32 ` Stephen Warren [this message]
2016-03-03 22:32 ` Stephen Warren
2016-03-04 9:27 ` Martin Sperl
2016-03-04 9:27 ` Martin Sperl
2016-03-04 9:27 ` Martin Sperl
2016-02-26 18:19 ` [PATCH 2/5] ARM: bcm2835: Replace alt0/i2s_alt[02] with standard groups Eric Anholt
2016-03-03 21:26 ` Stephen Warren
2016-03-03 21:26 ` Stephen Warren
2016-03-03 22:28 ` Eric Anholt
2016-03-03 22:28 ` Eric Anholt
2016-03-03 22:28 ` Eric Anholt
2016-03-03 22:34 ` Stephen Warren
2016-03-03 22:34 ` Stephen Warren
2016-03-08 8:24 ` Linus Walleij
2016-03-08 8:24 ` Linus Walleij
2016-03-08 16:42 ` Stephen Warren
2016-03-08 16:42 ` Stephen Warren
2016-02-26 18:19 ` [PATCH 3/5] ARM: bcm2835: Move the emmc pin group to bcm283x.dtsi Eric Anholt
2016-02-26 18:19 ` [PATCH 4/5] ARM: bcm2835: Add a group for mapping pins 48-53 to sdhost Eric Anholt
2016-02-26 18:19 ` [PATCH 5/5] ARM: bcm2835: Move most RPi default pin groups to their devices Eric Anholt
2016-03-08 8:25 ` Linus Walleij
2016-03-08 8:25 ` Linus Walleij
[not found] <1456425661-26123-1-git-send-email-eric@anholt.net>
2016-02-25 18:40 ` [PATCH 1/5] ARM: bcm2835: Define standard pinctrl groups in the gpio node Eric Anholt
2016-02-25 18:40 ` Eric Anholt
2016-02-25 22:24 ` Eric Anholt
2016-02-25 22:24 ` Eric Anholt
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=56D8BB75.7040002@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=devicetree@vger.kernel.org \
--cc=eric@anholt.net \
--cc=f.fainelli@gmail.com \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=stefan.wahren@i2se.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 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.