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 ��.n��������+%������w��{.n�����{�� b���ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f