public inbox for linux-rockchip@lists.infradead.org
 help / color / mirror / Atom feed
From: "David.Wu" <david.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
To: "Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
	"Kever Yang" <kever.yang-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Linus Walleij
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Doug Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Subject: Re: Boundary between pinctrl and peripheral settings
Date: Thu, 18 May 2017 22:39:34 +0800	[thread overview]
Message-ID: <a865024c-98d4-4349-6a33-e29fbc3cd7a7@rock-chips.com> (raw)
In-Reply-To: <4202128.TMlxifI24f@diego>

[-- Attachment #1: Type: text/plain, Size: 4777 bytes --]

Hi Heiko, Linux

The attached file is the list for (pin, pinfunc) and their own grf-setting.

If a pin-routing contains a few pins as gmac, need all the pins (pin, 
pinfunc) to be configured correctly from DT, then the corresponding GRF 
setting is configured.
If configured grf-setting per pin, assuming that one of the pin's 
pinfunc is wrong, it may cause pin-routing not to be effective or wrong.

So i think the smallest cell is a group, which contains the pins for the 
pin-routing.

在 2017/5/18 16:48, Heiko Stübner 写道:
> Hi Kever, David,
>
> Am Donnerstag, 18. Mai 2017, 16:21:09 CEST schrieb Kever Yang:
>> Hi Heiko, Linus,
>>      Is there any news to handle this kind of IOMUX?
>
> I was talking with David Wu about that a short while ago as well :-) .
>
> From what I've heared, in the future socs may be able to select that
> routing themselfs based on the iomux and having had time to ponder
> the whole issue for some time now, I do guess some sort of list would be
> the least intrusive solution.
>
> It seems we're talking about only a handful of such routings per soc,
> so I guess having the iomux setting check a list
>
> 	(pin, pinfunc) -> grf-setting for the pin-routing
>
> really is the least intrusive thing to do - as iomux settings really
> aren't changed that often on a running device and adding more
> stuff on top would just complicate everything.
>
>
> Heiko
>
>
>> Thanks,
>> - Kever
>>
>> On 08/05/2016 07:36 AM, Heiko Stübner wrote:
>>> Hi Linus,
>>>
>>>
>>> on the rk3399 we found an interesting new feature and would like to get
>>> some input from the pinctrl expert :-) , as Doug and me currently are of
>>> differing opinions on where specific control elements belong.
>>>
>>>
>>> In a nutshell on the rk3399 some things like one specific uart can use
>>> multiple pins to output data, but control of that seems to be split. The
>>> actual pin config is identical for all pins - each needs to be configured
>>> to function 2, pulls set etc. Then somewhere between the pin io-cells and
>>> the uart it seems to have some sort of switch to decide to which pin to
>>> actually route the data.
>>>
>>>
>>> +-------+    +--------+  /- GPIO4_B1 (pinmux 2)
>>>
>>> | uart2 | -- | switch | --- GPIO4_C1 (pinmux 2)
>>>
>>> +-------+    +--------+  \- GPIO4_C4 (pinmux 2)
>>> (switch selects one of the 3 pins to actually output data to)
>>>
>>>
>>> So the question now is, should the pinctrl driver also flip that switch to
>>> the correct position itself when pin-function 2 of say gpio4_bq gets
>>> selected or is that routing outside of pinctrl's scope?
>>>
>>> -----
>>>
>>> I hope to have presented the core issue above somewhat neutrally, below
>>> are
>>> my personal worries about doing that in pinctrl :-) .
>>>
>>>
>>> Apart from it feeling "bolted-on" to me, I have two main worries with that
>>> approach:
>>> (1) Right now the unused pins are really unused on the same iomux, so when
>>> flipping the switch it essentially does
>>>
>>>   uart-sout    unused
>>>
>>>    |(iomux2)    |(iomux2)
>>>
>>> +----------+ +----------+
>>>
>>> | gpio4_b0 | | gpio4_c0 |
>>>
>>> +----------+ +----------+
>>>
>>> going to
>>>
>>>   unused       uart-sout
>>>
>>>    |(iomux2)    |(iomux2)
>>>
>>> +----------+ +----------+
>>>
>>> | gpio4_b0 | | gpio4_c0 |
>>>
>>> +----------+ +----------+
>>>
>>> but nothing keeps designers from doing
>>>
>>>   uart-sout    special1
>>>
>>>    |(iomux2)    |(iomux2)
>>>
>>> +----------+ +----------+
>>>
>>> | gpio4_b0 | | gpio4_c0 |
>>>
>>> +----------+ +----------+
>>>
>>> going to
>>>
>>>   special2     uart-sout
>>>
>>>    |(iomux2)    |(iomux2)
>>>
>>> +----------+ +----------+
>>>
>>> | gpio4_b0 | | gpio4_c0 |
>>>
>>> +----------+ +----------+
>>>
>>> somewhere down the road, so relying on following the selected iomux feels
>>> not future proof.
>>>
>>> (2) Looking at [0] we already have a similar case, where we configure the
>>> pins for rgmii but still tell the gmac controller that it is supposed to
>>> do
>>> rgmii instead of rmii.
>>>
>>> Here the pinmux is the same for all pins, rmii just uses less pins when
>>> compared to rgmii, so binding that to the pinmux isn't even possible.
>>>
>>> And doing it one way here and another way for the switch feels very
>>> strange.
>>>
>>>
>>> I hope this overly long mail was not to confusing and hope for some words
>>> of wisdom ;-)
>>>
>>>
>>> Big thanks
>>> Heiko
>>>
>>>
>>> [0]
>>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/
>>> arm/boot/dts/rk3288-miqi.dts#n139
>>>
>>>
>>> _______________________________________________
>>> Linux-rockchip mailing list
>>> Linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>
>
>
>
>

[-- Attachment #2: RK322x & RK3399 & RK3328 COM_MUX_LIST.xlsx --]
[-- Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, Size: 23287 bytes --]

[-- Attachment #3: Type: text/plain, Size: 200 bytes --]

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  reply	other threads:[~2017-05-18 14:39 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-04 23:36 Boundary between pinctrl and peripheral settings Heiko Stübner
2016-08-10 13:32 ` Linus Walleij
     [not found]   ` <CACRpkdb=ju0i9x3rtRz0OvUkrsGBSBLymnzLqWNZ=WWJ6CKryQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-08-22 17:10     ` Heiko Stuebner
2017-05-18  8:21 ` Kever Yang
     [not found]   ` <2f1d45cb-8869-94fc-98b1-952d0f12d343-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-05-18  8:48     ` Heiko Stübner
2017-05-18 14:39       ` David.Wu [this message]
     [not found]         ` <a865024c-98d4-4349-6a33-e29fbc3cd7a7-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-05-19  9:13           ` Heiko Stuebner
2017-05-22 13:58             ` David.Wu
     [not found]               ` <97536e9f-7ad9-032b-d2dd-921f97464123-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-05-22 16:29                 ` Heiko Stuebner
2017-05-23 13:05                   ` David.Wu
2017-07-21  6:33                   ` David.Wu
     [not found]                     ` <d0ade22d-3e3d-6bf3-3a06-e85e74360147-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2017-07-21  9:28                       ` Heiko Stuebner

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=a865024c-98d4-4349-6a33-e29fbc3cd7a7@rock-chips.com \
    --to=david.wu-tnx95d0mmh7dzftrwevzcw@public.gmane.org \
    --cc=dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
    --cc=kever.yang-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
    --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@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