diff options
Diffstat (limited to 'arch/arm/boards/freescale-mx51-babbage')
5 files changed, 87 insertions, 142 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); diff --git a/arch/arm/boards/freescale-mx51-babbage/flash-header-common.imxcfg b/arch/arm/boards/freescale-mx51-babbage/flash-header-common.imxcfg deleted file mode 100644 index 1332b74707..0000000000 --- a/arch/arm/boards/freescale-mx51-babbage/flash-header-common.imxcfg +++ /dev/null @@ -1,58 +0,0 @@ -soc imx51 -dcdofs 0x400 -wm 32 0x73fa88a0 0x00000200 -wm 32 0x73fa850c 0x000020c5 -wm 32 0x73fa8510 0x000020c5 -wm 32 0x73fa883c 0x00000002 -wm 32 0x73fa8848 0x00000002 -wm 32 0x73fa84b8 0x000000e7 -wm 32 0x73fa84bc 0x00000045 -wm 32 0x73fa84c0 0x00000045 -wm 32 0x73fa84c4 0x00000045 -wm 32 0x73fa84c8 0x00000045 -wm 32 0x73fa8820 0x00000000 -wm 32 0x73fa84a4 0x00000003 -wm 32 0x73fa84a8 0x00000003 -wm 32 0x73fa84ac 0x000000e3 -wm 32 0x73fa84b0 0x000000e3 -wm 32 0x73fa84b4 0x000000e3 -wm 32 0x73fa84cc 0x000000e3 -wm 32 0x73fa84d0 0x000000e2 -wm 32 0x73fa882c 0x00000004 -wm 32 0x73fa88a4 0x00000004 -wm 32 0x73fa88ac 0x00000004 -wm 32 0x73fa88b8 0x00000004 -wm 32 0x83fd9000 0x82a20000 -wm 32 0x83fd9008 0x82a20000 -wm 32 0x83fd9010 0x000ad0d0 -wm 32 0x83fd9004 0x3f3584ab -wm 32 0x83fd900c 0x3f3584ab -wm 32 0x83fd9014 0x04008008 -wm 32 0x83fd9014 0x0000801a -wm 32 0x83fd9014 0x0000801b -wm 32 0x83fd9014 0x00448019 -wm 32 0x83fd9014 0x07328018 -wm 32 0x83fd9014 0x04008008 -wm 32 0x83fd9014 0x00008010 -wm 32 0x83fd9014 0x00008010 -wm 32 0x83fd9014 0x06328018 -wm 32 0x83fd9014 0x03808019 -wm 32 0x83fd9014 0x00408019 -wm 32 0x83fd9014 0x00008000 -wm 32 0x83fd9014 0x0400800c -wm 32 0x83fd9014 0x0000801e -wm 32 0x83fd9014 0x0000801f -wm 32 0x83fd9014 0x0000801d -wm 32 0x83fd9014 0x0732801c -wm 32 0x83fd9014 0x0400800c -wm 32 0x83fd9014 0x00008014 -wm 32 0x83fd9014 0x00008014 -wm 32 0x83fd9014 0x0632801c -wm 32 0x83fd9014 0x0380801d -wm 32 0x83fd9014 0x0040801d -wm 32 0x83fd9014 0x00008004 -wm 32 0x83fd9000 0xb2a20000 -wm 32 0x83fd9008 0xb2a20000 -wm 32 0x83fd9010 0x000ad6d0 -wm 32 0x83fd9034 0x90000000 -wm 32 0x83fd9014 0x00000000 diff --git a/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage-xload.imxcfg b/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage-xload.imxcfg deleted file mode 100644 index b249a7d4bc..0000000000 --- a/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage-xload.imxcfg +++ /dev/null @@ -1,3 +0,0 @@ -loadaddr CONFIG_ARCH_IMX_UNUSED_IRAM_BASE - -#include "flash-header-common.imxcfg"
\ No newline at end of file diff --git a/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage.imxcfg b/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage.imxcfg index cb60e4752a..bac6816fee 100644 --- a/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage.imxcfg +++ b/arch/arm/boards/freescale-mx51-babbage/flash-header-imx51-babbage.imxcfg @@ -1,3 +1,59 @@ loadaddr 0x90000000 - -#include "flash-header-common.imxcfg"
\ No newline at end of file +soc imx51 +dcdofs 0x400 +wm 32 0x73fa88a0 0x00000200 +wm 32 0x73fa850c 0x000020c5 +wm 32 0x73fa8510 0x000020c5 +wm 32 0x73fa883c 0x00000002 +wm 32 0x73fa8848 0x00000002 +wm 32 0x73fa84b8 0x000000e7 +wm 32 0x73fa84bc 0x00000045 +wm 32 0x73fa84c0 0x00000045 +wm 32 0x73fa84c4 0x00000045 +wm 32 0x73fa84c8 0x00000045 +wm 32 0x73fa8820 0x00000000 +wm 32 0x73fa84a4 0x00000003 +wm 32 0x73fa84a8 0x00000003 +wm 32 0x73fa84ac 0x000000e3 +wm 32 0x73fa84b0 0x000000e3 +wm 32 0x73fa84b4 0x000000e3 +wm 32 0x73fa84cc 0x000000e3 +wm 32 0x73fa84d0 0x000000e2 +wm 32 0x73fa882c 0x00000004 +wm 32 0x73fa88a4 0x00000004 +wm 32 0x73fa88ac 0x00000004 +wm 32 0x73fa88b8 0x00000004 +wm 32 0x83fd9000 0x82a20000 +wm 32 0x83fd9008 0x82a20000 +wm 32 0x83fd9010 0x000ad0d0 +wm 32 0x83fd9004 0x3f3584ab +wm 32 0x83fd900c 0x3f3584ab +wm 32 0x83fd9014 0x04008008 +wm 32 0x83fd9014 0x0000801a +wm 32 0x83fd9014 0x0000801b +wm 32 0x83fd9014 0x00448019 +wm 32 0x83fd9014 0x07328018 +wm 32 0x83fd9014 0x04008008 +wm 32 0x83fd9014 0x00008010 +wm 32 0x83fd9014 0x00008010 +wm 32 0x83fd9014 0x06328018 +wm 32 0x83fd9014 0x03808019 +wm 32 0x83fd9014 0x00408019 +wm 32 0x83fd9014 0x00008000 +wm 32 0x83fd9014 0x0400800c +wm 32 0x83fd9014 0x0000801e +wm 32 0x83fd9014 0x0000801f +wm 32 0x83fd9014 0x0000801d +wm 32 0x83fd9014 0x0732801c +wm 32 0x83fd9014 0x0400800c +wm 32 0x83fd9014 0x00008014 +wm 32 0x83fd9014 0x00008014 +wm 32 0x83fd9014 0x0632801c +wm 32 0x83fd9014 0x0380801d +wm 32 0x83fd9014 0x0040801d +wm 32 0x83fd9014 0x00008004 +wm 32 0x83fd9000 0xb2a20000 +wm 32 0x83fd9008 0xb2a20000 +wm 32 0x83fd9010 0x000ad6d0 +wm 32 0x83fd9034 0x90000000 +wm 32 0x83fd9014 0x00000000 diff --git a/arch/arm/boards/freescale-mx51-babbage/lowlevel.c b/arch/arm/boards/freescale-mx51-babbage/lowlevel.c index 216576ca27..f254db7b7b 100644 --- a/arch/arm/boards/freescale-mx51-babbage/lowlevel.c +++ b/arch/arm/boards/freescale-mx51-babbage/lowlevel.c @@ -4,7 +4,6 @@ #include <common.h> #include <mach/esdctl.h> #include <mach/generic.h> -#include <asm/cache.h> #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> @@ -47,27 +46,3 @@ ENTRY_FUNCTION(start_imx51_babbage, r0, r1, r2) imx51_barebox_entry(fdt); } - -static noinline void babbage_entry(void) -{ - arm_early_mmu_cache_invalidate(); - - relocate_to_current_adr(); - setup_c(); - - puts_ll("lowlevel init done\n"); - - imx51_barebox_entry(NULL); -} - -ENTRY_FUNCTION(start_imx51_babbage_xload, r0, r1, r2) -{ - imx5_cpu_lowlevel_init(); - - if (IS_ENABLED(CONFIG_DEBUG_LL)) - setup_uart(); - - arm_setup_stack(0x20000000 - 16); - - babbage_entry(); -} |