]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - board/tqc/tqma6/tqma6_mba6.c
imx: reorganize IMX code as other SOCs
[people/ms/u-boot.git] / board / tqc / tqma6 / tqma6_mba6.c
index af929673924a9809d00cbe79ece9e270e4be83c6..1188215738c3fd396c64e0495f587f9e0947a2b8 100644 (file)
@@ -16,7 +16,7 @@
 #include <asm/arch/sys_proto.h>
 #include <linux/errno.h>
 #include <asm/gpio.h>
-#include <asm/imx-common/mxc_i2c.h>
+#include <asm/mach-imx/mxc_i2c.h>
 
 #include <common.h>
 #include <fsl_esdhc.h>
@@ -54,19 +54,19 @@ DECLARE_GLOBAL_DATA_PTR;
        PAD_CTL_DSE_80ohm | PAD_CTL_HYS |                       \
        PAD_CTL_ODE | PAD_CTL_SRE_FAST)
 
-#if defined(CONFIG_MX6Q)
+#if defined(CONFIG_TQMA6Q)
 
 #define IOMUX_SW_PAD_CTRL_GRP_DDR_TYPE_RGMII   0x02e0790
 #define IOMUX_SW_PAD_CTRL_GRP_RGMII_TERM       0x02e07ac
 
-#elif defined(CONFIG_MX6S)
+#elif defined(CONFIG_TQMA6S) || defined(CONFIG_TQMA6DL)
 
 #define IOMUX_SW_PAD_CTRL_GRP_DDR_TYPE_RGMII   0x02e0768
 #define IOMUX_SW_PAD_CTRL_GRP_RGMII_TERM       0x02e0788
 
 #else
 
-#error "need to define target CPU"
+#error "need to select module"
 
 #endif
 
@@ -114,6 +114,11 @@ static iomux_v3_cfg_t const mba6_enet_pads[] = {
 
 static void mba6_setup_iomuxc_enet(void)
 {
+       struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+       /* clear gpr1[ENET_CLK_SEL] for externel clock */
+       clrbits_le32(&iomuxc_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK);
+
        __raw_writel(IOMUX_SW_PAD_CTRL_GRP_RGMII_TERM_DISABLE,
                     (void *)IOMUX_SW_PAD_CTRL_GRP_RGMII_TERM);
        __raw_writel(IOMUX_SW_PAD_CTRL_GRP_DDR_TYPE_RGMII_1P5V,
@@ -125,7 +130,7 @@ static void mba6_setup_iomuxc_enet(void)
        /* Reset PHY */
        gpio_direction_output(ENET_PHY_RESET_GPIO , 0);
        /* Need delay 10ms after power on according to KSZ9031 spec */
-       udelay(1000 * 10);
+       mdelay(10);
        gpio_set_value(ENET_PHY_RESET_GPIO, 1);
        /*
         * KSZ9031 manual: 100 usec wait time after reset before communication
@@ -133,7 +138,7 @@ static void mba6_setup_iomuxc_enet(void)
         * BUGBUG: hardware has an RC const that needs > 10 msec from 0->1 on
         * reset before the phy sees a high level
         */
-       udelay(200);
+       mdelay(15);
 }
 
 static iomux_v3_cfg_t const mba6_uart2_pads[] = {
@@ -234,39 +239,20 @@ static void mba6_setup_i2c(void)
                printf("setup I2C1 failed: %d\n", ret);
 }
 
-
-static iomux_v3_cfg_t const mba6_ecspi1_pads[] = {
-       NEW_PAD_CTRL(MX6_PAD_EIM_D24__GPIO3_IO24, SPI_PAD_CTRL),
-       NEW_PAD_CTRL(MX6_PAD_EIM_D25__GPIO3_IO25, SPI_PAD_CTRL),
-};
-
-static unsigned const mba6_ecspi1_cs[] = {
-       IMX_GPIO_NR(3, 24),
-       IMX_GPIO_NR(3, 25),
-};
-
-static void mba6_setup_iomuxc_spi(void)
-{
-       unsigned i;
-
-       for (i = 0; i < ARRAY_SIZE(mba6_ecspi1_cs); ++i)
-               gpio_direction_output(mba6_ecspi1_cs[i], 1);
-       imx_iomux_v3_setup_multiple_pads(mba6_ecspi1_pads,
-                                        ARRAY_SIZE(mba6_ecspi1_pads));
-}
-
 int board_phy_config(struct phy_device *phydev)
 {
 /*
  * optimized pad skew values depends on CPU variant on the TQMa6x module:
- * i.MX6Q/D or i.MX6DL/S
+ * CONFIG_TQMA6Q: i.MX6Q/D
+ * CONFIG_TQMA6S: i.MX6S
+ * CONFIG_TQMA6DL: i.MX6DL
  */
-#if defined(CONFIG_MX6Q) || defined(CONFIG_MX6Q)
+#if defined(CONFIG_TQMA6Q)
 #define MBA6X_KSZ9031_CTRL_SKEW        0x0032
 #define MBA6X_KSZ9031_CLK_SKEW 0x03ff
 #define MBA6X_KSZ9031_RX_SKEW  0x3333
 #define MBA6X_KSZ9031_TX_SKEW  0x2036
-#elif defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
+#elif defined(CONFIG_TQMA6S) || defined(CONFIG_TQMA6DL)
 #define MBA6X_KSZ9031_CTRL_SKEW        0x0030
 #define MBA6X_KSZ9031_CLK_SKEW 0x03ff
 #define MBA6X_KSZ9031_RX_SKEW  0x3333
@@ -341,7 +327,6 @@ int tqma6_bb_board_early_init_f(void)
 int tqma6_bb_board_init(void)
 {
        mba6_setup_i2c();
-       mba6_setup_iomuxc_spi();
        /* do it here - to have reset completed */
        mba6_setup_iomuxc_enet();