RE: [PATCH v3 3/7] arm: dts: dt-bindings: Add Renesas RZ pinctrl header
From: Chris Brandt <Chris.Brandt@renesas.com>
Date: 2017-03-29 15:18:34
Also in:
linux-gpio, linux-renesas-soc, lkml
Hi Geert, On Wednesday, March 29, 2017, Geert Uytterhoeven wrote:
quoted
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