Re: 回复：[PATCH 2/4] pinctrl: sunxi: add support for the Allwinner A100 pin controller

Maxime Ripard
2020-06-05T15:13:14Z

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

Hi Frank,

On Wed, Jun 03, 2020 at 05:44:36PM +0800, 李扬韬 wrote:
> >> + SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),
> >> + SUNXI_FUNCTION(0x0, "gpio_in"),
> >> + SUNXI_FUNCTION(0x1, "gpio_out"),
> >> + SUNXI_FUNCTION(0x2, "mmc0"), /* D1 */
> >> + SUNXI_FUNCTION(0x3, "jtag"), /* MS1 */
> >> + SUNXI_FUNCTION(0x4, "jtag"), /* MS_GPU */
> >
> >We should use another name here, since the code will just pick the first one and
> >ignore the second. What about jtag-gpu?
>
> The underscores are used in front, so changing it to jtag_gpu may be more consistent.

Yep, that makes sense

> >> + SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),
> >> + SUNXI_FUNCTION(0x0, "gpio_in"),
> >> + SUNXI_FUNCTION(0x1, "gpio_out"),
> >> + SUNXI_FUNCTION(0x2, "spdif"), /* DIN */
> >> + SUNXI_FUNCTION(0x3, "i2s0"), /* DOUT0 */
> >> + SUNXI_FUNCTION(0x4, "i2s0"), /* DIN1 */
> >
> >I guess the second one would be i2s1?
>
> No, each i2s may have many inputs and outputs.
>
> SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 19),
> SUNXI_FUNCTION(0x0, "gpio_in"),
> SUNXI_FUNCTION(0x1, "gpio_out"),
> SUNXI_FUNCTION(0x2, "cir0"), /* IN */
> SUNXI_FUNCTION(0x3, "i2s3_dout3"), /* DOUT3 */
> SUNXI_FUNCTION(0x4, "i2s3_din3"), /* DIN3 */
> SUNXI_FUNCTION(0x5, "ledc"),
> SUNXI_FUNCTION_IRQ_BANK(0x6, 6, 19)),
>
> Considering that the same pin has multiple same functions,
> so add a suffix, like i2s3_dout3 and i2s3_din3?
>
> Or specify muxsel in the device tree may be another solution.

Having muxsel is not really an option. We have two sets of bindings to
maintain already, adding a third one would make it fairly hard to
maintain. And the second binding we support is the generic pinctrl
binding, so I'm not really sure why we would want to move away from
that.

And I'm not really fond of having a suffix either. It kind of breaks the
consistency we had so far, and ideally I'd like to keep that.

Chen-Yu, Linus? Any input on that one?

> >> + SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 2),
> >> + SUNXI_FUNCTION(0x0, "gpio_in"),
> >> + SUNXI_FUNCTION(0x1, "gpio_out"),
> >> + SUNXI_FUNCTION(0x2, "i2c1"), /* SCK */
> >> + SUNXI_FUNCTION(0x3, "cpu"), /* CUR_W */
> >
> >What is "cpu" supposed to be?
>
> As far as I know, this is a function that has never been used.
> The hardware guy said that it can be used to control the CPU to reduce the current.

Ok. Do we really need to add it right now if we don't really know what
it's going to be used for?

Thanks!
Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]