device tree binding documentation outdated

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Sep 26 16:59:07 EDT 2013


On Thu, Sep 26, 2013 at 05:29:47PM -0300, Fabio Estevam wrote:
> Hi Russell,
> 
> On Thu, Sep 26, 2013 at 4:51 PM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > Can someone please point me at the current documentation for the
> > iMX6DL pinctrl bindings?
> 
> Best reference is the mx6dl reference manual (chapter 37 - IOMUXC):
> http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6SDLRM.pdf
> 
> > I mean the stuff which looks like this:
> >
> > #define MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0           0x1e8 0x5b8 0x858 0x2 0x0
> 
> Let me try to decode it:
> 
> 0x1e8: Offset of IOMUXC_SW_MUX_CTL_PAD_ENET_MDC register
> 
> 0x5b8: Offset of IOMUXC_SW_PAD_CTL_PAD_ENET_MDC register
> 
> 0x2: This means that the MUX_MODE field selects the ESAI_TX5_RX0 function
> in this pad
> 
> 0x0: SELECT_INPUT not used for this pad

Okay, that's relatively straight forward.

> Let me know if you need help with the iomux settings for cubox-i.

Yes please. :)

Here's Rabeeh's preliminary patches against Freescale's 3.0.35 BSP 4.1.0
kernel:

http://download.solid-run.com/pub/solidrun/c1/kernel/initial/

I think I've translated the bulk of them.  I have a number of problems
though.  One of the things I'd like to sort out is the ethernet.  Most
of these convert straight:

+       MX6DL_PAD_ENET_MDIO__ENET_MDIO,
+       MX6DL_PAD_ENET_MDC__ENET_MDC,
+       IOMUX_PAD(0x0650, 0x0268, 5, 0x0000, 0, MX6DL_ENET_PAD_CTRL_PD), /* KEY_ROW4 reset signal */
+       
+       MX6DL_PAD_DI0_PIN2__GPIO_4_18, /* Interrupt */
+       /* RMII */
+       IOMUX_PAD(0x05B4, 0x01E4, 1, 0x0828, 0, PAD_CTL_PKE | PAD_CTL_PUE  |
+                 PAD_CTL_PUS_100K_DOWN), /* MX6DL_PAD_ENET_CRS_DV__ENET_RX_EN */
+       IOMUX_PAD(0x05C8, 0x01F8, 1, 0x0818, 0, PAD_CTL_PKE | PAD_CTL_PUE  |
+                 PAD_CTL_PUS_100K_DOWN), /* MX6DL_PAD_ENET_RXD0__ENET_RDATA_0 */
+       IOMUX_PAD(0x05CC, 0x01FC, 1, 0x081C, 0, PAD_CTL_PKE | PAD_CTL_PUE  |
+                 PAD_CTL_PUS_100K_DOWN), /* MX6DL_PAD_ENET_RXD1__ENET_RDATA_1 */
+       MX6DL_PAD_ENET_TXD0__ENET_TDATA_0,
+       MX6DL_PAD_ENET_TXD1__ENET_TDATA_1,
+       MX6DL_PAD_ENET_TX_EN__ENET_TX_EN,
+       MX6DL_PAD_GPIO_16__ENET_ANATOP_ETHERNET_REF_OUT,
+       MX6DL_PAD_RGMII_TXC__ENET_RGMII_TXC,
+       MX6DL_PAD_RGMII_TD0__ENET_RGMII_TD0,
+       MX6DL_PAD_RGMII_TD1__ENET_RGMII_TD1,
+       MX6DL_PAD_RGMII_TD2__ENET_RGMII_TD2,
+       MX6DL_PAD_RGMII_TD3__ENET_RGMII_TD3,
+       MX6DL_PAD_RGMII_TX_CTL__ENET_RGMII_TX_CTL,
+       MX6DL_PAD_ENET_REF_CLK__ENET_TX_CLK,
+       MX6DL_PAD_RGMII_RXC__ENET_RGMII_RXC,
+       IOMUX_PAD(0x0694, 0x02AC, 1, 0x0818, 1, MX6DL_ENET_PAD_CTRL_PD),/*RGMII RD0*/
+       IOMUX_PAD(0x0698, 0x02B0, 1, 0x081C, 1, MX6DL_ENET_PAD_CTRL_PD),/*RGMII RD1*/
+       /* In RGMII mode RD2 should be '1' to disable the PLL OFF mode */
+       MX6DL_PAD_RGMII_RD2__ENET_RGMII_RD2,
+       MX6DL_PAD_RGMII_RD3__ENET_RGMII_RD3,
+       /* In RGMII mode RX_DV should be pulled down for reset strap */
+       IOMUX_PAD(0x06A4, 0x02BC, 1, 0x0828, 1, MX6DL_ENET_PAD_CTRL_PD),/*RGMII RXCTL*/

The ones which don't are those IOMUX_PAD() ones - what I have so far for
them (I'm still busy adding to the DT file for everything else) are
(in order):

        MX6QDL_PAD_ENET_MDIO__ENET_MDIO
        MX6QDL_PAD_ENET_MDC__ENET_MDC 
        MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 -- ?
        MX6QDL_PAD_DI0_PIN2__GPIO4_IO18
        /* RMII */
        MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN ... extra stuff
        MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 ... extra stuff
        MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 ... extra stuff
        MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0
        MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1
        MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN
        MX6QDL_PAD_GPIO_16__ENET_REF_CLK  -- ?
        MX6QDL_PAD_RGMII_TXC__RGMII_TXC
        MX6QDL_PAD_RGMII_TD0__RGMII_TD0
        MX6QDL_PAD_RGMII_TD1__RGMII_TD1
        MX6QDL_PAD_RGMII_TD2__RGMII_TD2
        MX6QDL_PAD_RGMII_TD3__RGMII_TD3
        MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL
        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK
        MX6QDL_PAD_RGMII_RXC__RGMII_RXC
        MX6QDL_PAD_RGMII_RD0__RGMII_RD0 ... extra stuff
        MX6QDL_PAD_RGMII_RD1__RGMII_RD1 ... extra stuff
        /* In RGMII mode RD2 should be '1' to disable the PLL OFF mode */
        MX6QDL_PAD_RGMII_RD2__RGMII_RD2
        MX6QDL_PAD_RGMII_RD3__RGMII_RD3
        /* In RGMII mode RX_DV should be pulled down for reset strap */
        MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL ... extra stuff

If I have to customize any of these settings, how do I do that?

Final question is - in imx6qdl.dtsi, I see for instance:

        MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0

What does the final number refer to?

Thanks.



More information about the linux-arm-kernel mailing list