]> code.ossystems Code Review - meta-freescale.git/blob
7b1e4f7c661333f3b6398fb493784aa6cf53f414
[meta-freescale.git] /
1 From 890ec079f7ada8cd197e7dcc30ec00435b2560d5 Mon Sep 17 00:00:00 2001
2 From: Marek Vasut <marex@denx.de>
3 Date: Tue, 1 May 2012 11:09:42 +0000
4 Subject: [PATCH 44/56] M28EVK: Implement support for new board V2.0
5
6 Signed-off-by: Marek Vasut <marex@denx.de>
7 Cc: Detlev Zundel <dzu@denx.de>
8 Cc: Fabio Estevam <fabio.estevam@freescale.com>
9 Cc: Stefano Babic <sbabic@denx.de>
10 Cc: Wolfgang Denk <wd@denx.de>
11 ---
12  board/denx/m28evk/m28evk.c   |   20 +++++++++++++++++++-
13  board/denx/m28evk/spl_boot.c |    8 ++++++--
14  2 files changed, 25 insertions(+), 3 deletions(-)
15
16 diff --git a/board/denx/m28evk/m28evk.c b/board/denx/m28evk/m28evk.c
17 index 53df476..3d28ea8 100644
18 --- a/board/denx/m28evk/m28evk.c
19 +++ b/board/denx/m28evk/m28evk.c
20 @@ -90,6 +90,8 @@ int board_mmc_init(bd_t *bis)
21  {
22         /* Configure WP as input. */
23         gpio_direction_input(MX28_PAD_AUART2_CTS__GPIO_3_10);
24 +       /* Turn on the power to the card. */
25 +       gpio_direction_output(MX28_PAD_PWM3__GPIO_3_28, 0);
26  
27         return mxsmmc_initialize(bis, 0, m28_mmc_wp);
28  }
29 @@ -103,10 +105,18 @@ int board_mmc_init(bd_t *bis)
30  
31  int fecmxc_mii_postcall(int phy)
32  {
33 +#if    defined(CONFIG_DENX_M28_V11) || defined(CONFIG_DENX_M28_V10)
34 +       /* KZ8031 PHY on old boards. */
35 +       const uint32_t freq = 0x0080;
36 +#else
37 +       /* KZ8021 PHY on new boards. */
38 +       const uint32_t freq = 0x0000;
39 +#endif
40 +
41         miiphy_write("FEC1", phy, MII_BMCR, 0x9000);
42         miiphy_write("FEC1", phy, MII_OPMODE_STRAP_OVERRIDE, 0x0202);
43         if (phy == 3)
44 -               miiphy_write("FEC1", 3, MII_PHY_CTRL2, 0x8180);
45 +               miiphy_write("FEC1", 3, MII_PHY_CTRL2, 0x8100 | freq);
46         return 0;
47  }
48  
49 @@ -123,6 +133,14 @@ int board_eth_init(bd_t *bis)
50                 CLKCTRL_ENET_TIME_SEL_MASK | CLKCTRL_ENET_CLK_OUT_EN,
51                 CLKCTRL_ENET_TIME_SEL_RMII_CLK);
52  
53 +#if !defined(CONFIG_DENX_M28_V11) && !defined(CONFIG_DENX_M28_V10)
54 +       /* Reset the new PHY */
55 +       gpio_direction_output(MX28_PAD_AUART2_RTS__GPIO_3_11, 0);
56 +       udelay(10000);
57 +       gpio_set_value(MX28_PAD_AUART2_RTS__GPIO_3_11, 1);
58 +       udelay(10000);
59 +#endif
60 +
61         ret = fecmxc_initialize_multi(bis, 0, 0, MXS_ENET0_BASE);
62         if (ret) {
63                 printf("FEC MXS: Unable to init FEC0\n");
64 diff --git a/board/denx/m28evk/spl_boot.c b/board/denx/m28evk/spl_boot.c
65 index a04fe18..7a12592 100644
66 --- a/board/denx/m28evk/spl_boot.c
67 +++ b/board/denx/m28evk/spl_boot.c
68 @@ -109,8 +109,9 @@ const iomux_cfg_t iomux_setup[] = {
69                 (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL),
70         MX28_PAD_SSP0_SCK__SSP0_SCK |
71                 (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL),
72 -       MX28_PAD_PWM3__GPIO_3_28 | MUX_CONFIG_SSP0,     /* Power .. FIXME */
73 -       MX28_PAD_AUART2_CTS__GPIO_3_10, /* WP ... FIXME */
74 +       MX28_PAD_PWM3__GPIO_3_28 | MUX_CONFIG_SSP0 |
75 +               (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL),  /* Power */
76 +       MX28_PAD_AUART2_CTS__GPIO_3_10, /* WP */
77  
78         /* GPMI NAND */
79         MX28_PAD_GPMI_D00__GPMI_D0 | MUX_CONFIG_GPMI,
80 @@ -147,6 +148,9 @@ const iomux_cfg_t iomux_setup[] = {
81         MX28_PAD_ENET0_RXD3__ENET1_RXD1 | MUX_CONFIG_ENET,
82         MX28_PAD_ENET0_TXD2__ENET1_TXD0 | MUX_CONFIG_ENET,
83         MX28_PAD_ENET0_TXD3__ENET1_TXD1 | MUX_CONFIG_ENET,
84 +#if !defined(CONFIG_DENX_M28_V11) && !defined(CONFIG_DENX_M28_V10)
85 +       MX28_PAD_AUART2_RTS__GPIO_3_11, /* PHY reset */
86 +#endif
87  
88         /* I2C */
89         MX28_PAD_I2C0_SCL__I2C0_SCL,
90 -- 
91 1.7.10
92