[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <SG2PR06MB1165F5D4CFC50CADC609451C8A350@SG2PR06MB1165.apcprd06.prod.outlook.com>
Date: Wed, 29 Mar 2017 15:18:21 +0000
From: Chris Brandt <Chris.Brandt@...esas.com>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
CC: Linus Walleij <linus.walleij@...aro.org>,
Jacopo Mondi <jacopo+renesas@...ndi.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Geert Uytterhoeven <geert+renesas@...der.be>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Rob Herring <robh+dt@...nel.org>,
"Mark Rutland" <mark.rutland@....com>,
Russell King <linux@...linux.org.uk>,
Linux-Renesas <linux-renesas-soc@...r.kernel.org>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v3 3/7] arm: dts: dt-bindings: Add Renesas RZ pinctrl
header
Hi Geert,
On Wednesday, March 29, 2017, Geert Uytterhoeven wrote:
> > But, what do we do for Ethernet? All the pins are "normal" except just
> > the MDIO pin needs to be bidirectional.
> > That's the part I'm confused by.
> > How do we flag that just the ET_MDIO needs "bidirectional"?
>
> You add subnodes, cfr. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts:
>
> avb_pins: avb {
> mux {
> groups = "avb_link", "avb_phy_int", "avb_mdc",
> "avb_mii";
> function = "avb";
> };
>
> pins_mdc {
> groups = "avb_mdc";
> drive-strength = <24>;
> };
>
> pins_mii_tx {
> pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC",
> "PIN_AVB_TD0",
> "PIN_AVB_TD1", "PIN_AVB_TD2",
> "PIN_AVB_TD3";
> drive-strength = <12>;
> };
> };
Oh, so there is a way!
Thank you.
So, for clarity:
/* Ethernet */
ether_pins: ether {
/* Ethernet on Ports 1,2,3,5 */
mux {
pins = <PIN(1, 14) | FUNC_4)>, /* P1_14 = ET_COL */
<PIN(5, 9) | FUNC_2)>, /* P5_9 = ET_MDC */
<PIN(3, 4) | FUNC_2)>, /* P3_4 = ET_RXCLK */
<PIN(3, 5) | FUNC_2)>, /* P3_5 = ET_RXER */
<PIN(3, 6) | FUNC_2)>, /* P3_6 = ET_RXDV */
<PIN(2, 0) | FUNC_2)>, /* P2_0 = ET_TXCLK */
<PIN(2, 1) | FUNC_2)>, /* P2_1 = ET_TXER */
<PIN(2, 2) | FUNC_2)>, /* P2_2 = ET_TXEN */
<PIN(2, 3) | FUNC_2)>, /* P2_3 = ET_CRS */
<PIN(2, 4) | FUNC_2)>, /* P2_4 = ET_TXD0 */
<PIN(2, 5) | FUNC_2)>, /* P2_5 = ET_TXD1 */
<PIN(2, 6) | FUNC_2)>, /* P2_6 = ET_TXD2 */
<PIN(2, 7) | FUNC_2)>, /* P2_7 = ET_TXD3 */
<PIN(2, 8) | FUNC_2)>, /* P2_8 = ET_RXD0 */
<PIN(2, 9) | FUNC_2)>, /* P2_9 = ET_RXD1 */
<PIN(2, 10) | FUNC_2)>, /* P2_10 = ET_RXD2 */
<PIN(2, 11) | FUNC_2)>; /* P2_11 = ET_RXD3 */
};
pins_bidir {
pins = <PIN(3, 3) | FUNC_2)>, /* P3_3 = ET_MDIO */
bidirectional;
};
};
Chris
Powered by blists - more mailing lists