summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/freescale-mx51-babbage/board.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boards/freescale-mx51-babbage/board.c')
-rw-r--r--arch/arm/boards/freescale-mx51-babbage/board.c83
1 files changed, 29 insertions, 54 deletions
diff --git a/arch/arm/boards/freescale-mx51-babbage/board.c b/arch/arm/boards/freescale-mx51-babbage/board.c
index 74ad7fa51f..4839aa5683 100644
--- a/arch/arm/boards/freescale-mx51-babbage/board.c
+++ b/arch/arm/boards/freescale-mx51-babbage/board.c
@@ -43,80 +43,55 @@
#define MX51_CCM_CACRR 0x10
-static int imx51_babbage_init(void)
+#define USBH1_STP IMX_GPIO_NR(1, 27)
+#define USBH1_PHY_RESET IMX_GPIO_NR(2, 5)
+#define USBH1_HUB_RESET IMX_GPIO_NR(1, 7)
+
+static int imx51_babbage_reset_usbh1(void)
{
+ void __iomem *iomuxbase = IOMEM(MX51_IOMUXC_BASE_ADDR);
+
if (!of_machine_is_compatible("fsl,imx51-babbage"))
return 0;
- imx51_babbage_power_init();
+ imx_setup_pad(iomuxbase, MX51_PAD_EIM_D21__GPIO2_5);
+ imx_setup_pad(iomuxbase, MX51_PAD_GPIO1_7__GPIO1_7);
- barebox_set_hostname("babbage");
+ gpio_direction_output(USBH1_PHY_RESET, 0);
+ gpio_direction_output(USBH1_HUB_RESET, 0);
- armlinux_set_architecture(MACH_TYPE_MX51_BABBAGE);
+ mdelay(10);
- imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc0",
- BBU_HANDLER_FLAG_DEFAULT);
-
- return 0;
-}
-coredevice_initcall(imx51_babbage_init);
+ gpio_set_value(USBH1_PHY_RESET, 1);
+ gpio_set_value(USBH1_HUB_RESET, 1);
-#ifdef CONFIG_ARCH_IMX_XLOAD
+ imx_setup_pad(iomuxbase, MX51_PAD_USBH1_STP__GPIO1_27);
+ gpio_direction_output(USBH1_STP, 1);
-static int imx51_babbage_xload_init_pinmux(void)
-{
- static const iomux_v3_cfg_t pinmux[] = {
- /* (e)CSPI */
- MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
- MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
- MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
+ mdelay(1);
- /* (e)CSPI chip select lines */
- MX51_PAD_CSPI1_SS1__GPIO4_25,
+ imx_setup_pad(iomuxbase, MX51_PAD_USBH1_STP__USBH1_STP);
-
- /* eSDHC 1 */
- MX51_PAD_SD1_CMD__SD1_CMD,
- MX51_PAD_SD1_CLK__SD1_CLK,
- MX51_PAD_SD1_DATA0__SD1_DATA0,
- MX51_PAD_SD1_DATA1__SD1_DATA1,
- MX51_PAD_SD1_DATA2__SD1_DATA2,
- MX51_PAD_SD1_DATA3__SD1_DATA3,
- };
-
- mxc_iomux_v3_setup_multiple_pads(ARRAY_AND_SIZE(pinmux));
+ gpio_free(USBH1_PHY_RESET);
return 0;
}
-coredevice_initcall(imx51_babbage_xload_init_pinmux);
+console_initcall(imx51_babbage_reset_usbh1);
-static int imx51_babbage_xload_init_devices(void)
+static int imx51_babbage_init(void)
{
- static int spi0_chipselects[] = {
- IMX_GPIO_NR(4, 25),
- };
+ if (!of_machine_is_compatible("fsl,imx51-babbage"))
+ return 0;
- static struct spi_imx_master spi0_pdata = {
- .chipselect = spi0_chipselects,
- .num_chipselect = ARRAY_SIZE(spi0_chipselects),
- };
+ imx51_babbage_power_init();
- static const struct spi_board_info spi0_devices[] = {
- {
- .name = "mtd_dataflash",
- .chip_select = 0,
- .max_speed_hz = 25 * 1000 * 1000,
- .bus_num = 0,
- },
- };
+ barebox_set_hostname("babbage");
- imx51_add_mmc0(NULL);
+ armlinux_set_architecture(MACH_TYPE_MX51_BABBAGE);
- spi_register_board_info(ARRAY_AND_SIZE(spi0_devices));
- imx51_add_spi0(&spi0_pdata);
+ imx51_bbu_internal_mmc_register_handler("mmc", "/dev/mmc0",
+ BBU_HANDLER_FLAG_DEFAULT);
return 0;
}
-device_initcall(imx51_babbage_xload_init_devices);
-
-#endif
+coredevice_initcall(imx51_babbage_init);