arm: Remove mx51_efikamx, mx51_efikasb boards
These boards have not been converted to generic board by the deadline. Remove them. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									7cd768cf2c
								
							
						
					
					
						commit
						b6073fd211
					
				|  | @ -493,10 +493,6 @@ config TARGET_MX53SMD | ||||||
| 	bool "Support mx53smd" | 	bool "Support mx53smd" | ||||||
| 	select CPU_V7 | 	select CPU_V7 | ||||||
| 
 | 
 | ||||||
| config TARGET_MX51_EFIKAMX |  | ||||||
| 	bool "Support mx51_efikamx" |  | ||||||
| 	select CPU_V7 |  | ||||||
| 
 |  | ||||||
| config TARGET_VISION2 | config TARGET_VISION2 | ||||||
| 	bool "Support vision2" | 	bool "Support vision2" | ||||||
| 	select CPU_V7 | 	select CPU_V7 | ||||||
|  | @ -801,7 +797,6 @@ source "board/freescale/mx53evk/Kconfig" | ||||||
| source "board/freescale/mx53loco/Kconfig" | source "board/freescale/mx53loco/Kconfig" | ||||||
| source "board/freescale/mx53smd/Kconfig" | source "board/freescale/mx53smd/Kconfig" | ||||||
| source "board/freescale/vf610twr/Kconfig" | source "board/freescale/vf610twr/Kconfig" | ||||||
| source "board/genesi/mx51_efikamx/Kconfig" |  | ||||||
| source "board/gumstix/pepper/Kconfig" | source "board/gumstix/pepper/Kconfig" | ||||||
| source "board/h2200/Kconfig" | source "board/h2200/Kconfig" | ||||||
| source "board/hale/tt01/Kconfig" | source "board/hale/tt01/Kconfig" | ||||||
|  |  | ||||||
|  | @ -1,15 +0,0 @@ | ||||||
| if TARGET_MX51_EFIKAMX |  | ||||||
| 
 |  | ||||||
| config SYS_BOARD |  | ||||||
| 	default "mx51_efikamx" |  | ||||||
| 
 |  | ||||||
| config SYS_VENDOR |  | ||||||
| 	default "genesi" |  | ||||||
| 
 |  | ||||||
| config SYS_SOC |  | ||||||
| 	default "mx5" |  | ||||||
| 
 |  | ||||||
| config SYS_CONFIG_NAME |  | ||||||
| 	default "mx51_efikamx" |  | ||||||
| 
 |  | ||||||
| endif |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| MX51_EFIKAMX BOARD |  | ||||||
| #M:	- |  | ||||||
| S:	Maintained |  | ||||||
| F:	board/genesi/mx51_efikamx/ |  | ||||||
| F:	include/configs/mx51_efikamx.h |  | ||||||
| F:	configs/mx51_efikamx_defconfig |  | ||||||
| F:	configs/mx51_efikasb_defconfig |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| #
 |  | ||||||
| # Copyright (C) 2010, Marek Vasut <marek.vasut@gmail.com>
 |  | ||||||
| #
 |  | ||||||
| # BASED ON: imx51evk
 |  | ||||||
| #
 |  | ||||||
| # Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
 |  | ||||||
| #
 |  | ||||||
| # (C) Copyright 2009 Freescale Semiconductor, Inc.
 |  | ||||||
| #
 |  | ||||||
| # SPDX-License-Identifier:	GPL-2.0+
 |  | ||||||
| #
 |  | ||||||
| 
 |  | ||||||
| obj-y	:= efikamx.o efikamx-usb.o |  | ||||||
|  | @ -1,230 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> |  | ||||||
|  * |  | ||||||
|  * (C) Copyright 2009 Freescale Semiconductor, Inc. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <common.h> |  | ||||||
| #include <usb.h> |  | ||||||
| #include <asm/io.h> |  | ||||||
| #include <asm/arch/imx-regs.h> |  | ||||||
| #include <asm/arch/iomux-mx51.h> |  | ||||||
| #include <asm/gpio.h> |  | ||||||
| #include <usb/ehci-fsl.h> |  | ||||||
| #include <usb/ulpi.h> |  | ||||||
| #include <errno.h> |  | ||||||
| 
 |  | ||||||
| #include "../../../drivers/usb/host/ehci.h" |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Configure the USB H1 and USB H2 IOMUX |  | ||||||
|  */ |  | ||||||
| void setup_iomux_usb(void) |  | ||||||
| { |  | ||||||
| 	static const iomux_v3_cfg_t usb_h1_pads[] = { |  | ||||||
| 		MX51_PAD_USBH1_CLK__USBH1_CLK, |  | ||||||
| 		MX51_PAD_USBH1_DIR__USBH1_DIR, |  | ||||||
| 		MX51_PAD_USBH1_STP__USBH1_STP, |  | ||||||
| 		MX51_PAD_USBH1_NXT__USBH1_NXT, |  | ||||||
| 		MX51_PAD_USBH1_DATA0__USBH1_DATA0, |  | ||||||
| 		MX51_PAD_USBH1_DATA1__USBH1_DATA1, |  | ||||||
| 		MX51_PAD_USBH1_DATA2__USBH1_DATA2, |  | ||||||
| 		MX51_PAD_USBH1_DATA3__USBH1_DATA3, |  | ||||||
| 		MX51_PAD_USBH1_DATA4__USBH1_DATA4, |  | ||||||
| 		MX51_PAD_USBH1_DATA5__USBH1_DATA5, |  | ||||||
| 		MX51_PAD_USBH1_DATA6__USBH1_DATA6, |  | ||||||
| 		MX51_PAD_USBH1_DATA7__USBH1_DATA7, |  | ||||||
| 	}; |  | ||||||
| 
 |  | ||||||
| 	static const iomux_v3_cfg_t usb_pads[] = { |  | ||||||
| 		MX51_PAD_EIM_D27__GPIO2_9, /* USB PHY reset */ |  | ||||||
| 		MX51_PAD_GPIO1_5__GPIO1_5, /* USB HUB reset */ |  | ||||||
| 		NEW_PAD_CTRL(MX51_PAD_EIM_A22__GPIO2_16, 0), /* WIFI /EN */ |  | ||||||
| 		NEW_PAD_CTRL(MX51_PAD_EIM_A16__GPIO2_10, 0), /* WIFI RESET */ |  | ||||||
| 		NEW_PAD_CTRL(MX51_PAD_EIM_A17__GPIO2_11, 0), /* BT /EN */ |  | ||||||
| 	}; |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(usb_h1_pads, ARRAY_SIZE(usb_h1_pads)); |  | ||||||
| 
 |  | ||||||
| 	if (machine_is_efikasb()) { |  | ||||||
| 		static const iomux_v3_cfg_t usb_h2_pads[] = { |  | ||||||
| 			MX51_PAD_EIM_A24__USBH2_CLK, |  | ||||||
| 			MX51_PAD_EIM_A25__USBH2_DIR, |  | ||||||
| 			MX51_PAD_EIM_A26__USBH2_STP, |  | ||||||
| 			MX51_PAD_EIM_A27__USBH2_NXT, |  | ||||||
| 			MX51_PAD_EIM_D16__USBH2_DATA0, |  | ||||||
| 			MX51_PAD_EIM_D17__USBH2_DATA1, |  | ||||||
| 			MX51_PAD_EIM_D18__USBH2_DATA2, |  | ||||||
| 			MX51_PAD_EIM_D19__USBH2_DATA3, |  | ||||||
| 			MX51_PAD_EIM_D20__USBH2_DATA4, |  | ||||||
| 			MX51_PAD_EIM_D21__USBH2_DATA5, |  | ||||||
| 			MX51_PAD_EIM_D22__USBH2_DATA6, |  | ||||||
| 			MX51_PAD_EIM_D23__USBH2_DATA7, |  | ||||||
| 		}; |  | ||||||
| 
 |  | ||||||
| 		imx_iomux_v3_setup_multiple_pads(usb_h2_pads, |  | ||||||
| 						 ARRAY_SIZE(usb_h2_pads)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Enable devices connected to USB BUSes |  | ||||||
|  */ |  | ||||||
| static void efika_usb_enable_devices(void) |  | ||||||
| { |  | ||||||
| 	/* Enable Bluetooth */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(2, 11), 0); |  | ||||||
| 	udelay(10000); |  | ||||||
| 	gpio_set_value(IMX_GPIO_NR(2, 11), 1); |  | ||||||
| 
 |  | ||||||
| 	/* Enable WiFi */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(2, 16), 1); |  | ||||||
| 	udelay(10000); |  | ||||||
| 
 |  | ||||||
| 	/* Reset the WiFi chip */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(2, 10), 0); |  | ||||||
| 	udelay(10000); |  | ||||||
| 	gpio_set_value(IMX_GPIO_NR(2, 10), 1); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Reset USB HUB (or HUBs on EfikaSB) |  | ||||||
|  */ |  | ||||||
| static void efika_usb_hub_reset(void) |  | ||||||
| { |  | ||||||
| 	/* HUB reset */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(1, 5), 1); |  | ||||||
| 	udelay(1000); |  | ||||||
| 	gpio_set_value(IMX_GPIO_NR(1, 5), 0); |  | ||||||
| 	udelay(1000); |  | ||||||
| 	gpio_set_value(IMX_GPIO_NR(1, 5), 1); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Reset USB PHY (or PHYs on EfikaSB) |  | ||||||
|  */ |  | ||||||
| static void efika_usb_phy_reset(void) |  | ||||||
| { |  | ||||||
| 	/* SMSC 3317 PHY reset */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(2, 9), 0); |  | ||||||
| 	udelay(1000); |  | ||||||
| 	gpio_set_value(IMX_GPIO_NR(2, 9), 1); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void efika_ehci_init(struct usb_ehci *ehci, uint32_t stp_gpio, |  | ||||||
| 				iomux_v3_cfg_t stp_pad_gpio, |  | ||||||
| 				iomux_v3_cfg_t stp_pad_usb) |  | ||||||
| { |  | ||||||
| 	int ret; |  | ||||||
| 	struct ulpi_regs *ulpi = (struct ulpi_regs *)0; |  | ||||||
| 	struct ulpi_viewport ulpi_vp; |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_pad(stp_pad_gpio); |  | ||||||
| 	gpio_direction_output(stp_gpio, 0); |  | ||||||
| 	udelay(1000); |  | ||||||
| 	gpio_set_value(stp_gpio, 1); |  | ||||||
| 	udelay(1000); |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_pad(stp_pad_usb); |  | ||||||
| 	udelay(10000); |  | ||||||
| 
 |  | ||||||
| 	ulpi_vp.viewport_addr = (u32)&ehci->ulpi_viewpoint; |  | ||||||
| 	ulpi_vp.port_num = 0; |  | ||||||
| 
 |  | ||||||
| 	ret = ulpi_init(&ulpi_vp); |  | ||||||
| 	if (ret) { |  | ||||||
| 		printf("Efika USB ULPI initialization failed\n"); |  | ||||||
| 		return; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/* ULPI set flags */ |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->otg_ctrl, |  | ||||||
| 			ULPI_OTG_DP_PULLDOWN | ULPI_OTG_DM_PULLDOWN | |  | ||||||
| 			ULPI_OTG_EXTVBUSIND); |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->function_ctrl, |  | ||||||
| 			ULPI_FC_FULL_SPEED | ULPI_FC_OPMODE_NORMAL | |  | ||||||
| 			ULPI_FC_SUSPENDM); |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->iface_ctrl, 0); |  | ||||||
| 
 |  | ||||||
| 	/* Set VBus */ |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->otg_ctrl_set, |  | ||||||
| 			ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Set VBusChrg |  | ||||||
| 	 * |  | ||||||
| 	 * NOTE: This violates USB specification, but otherwise, USB on Efika |  | ||||||
| 	 * doesn't work. |  | ||||||
| 	 */ |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->otg_ctrl_set, ULPI_OTG_CHRGVBUS); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int board_ehci_hcd_init(int port) |  | ||||||
| { |  | ||||||
| 	/* Init iMX51 EHCI */ |  | ||||||
| 	efika_usb_phy_reset(); |  | ||||||
| 	efika_usb_hub_reset(); |  | ||||||
| 	efika_usb_enable_devices(); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* This overrides a weak function */ |  | ||||||
| void mx5_ehci_powerup_fixup(struct ehci_ctrl *ctrl, uint32_t *status_reg, |  | ||||||
| 			   uint32_t *reg) |  | ||||||
| { |  | ||||||
| 	uint32_t port = OTG_BASE_ADDR + (0x200 * CONFIG_MXC_USB_PORT); |  | ||||||
| 	struct usb_ehci *ehci = (struct usb_ehci *)port; |  | ||||||
| 	struct ulpi_regs *ulpi = (struct ulpi_regs *)0; |  | ||||||
| 	struct ulpi_viewport ulpi_vp; |  | ||||||
| 
 |  | ||||||
| 	ulpi_vp.viewport_addr = (u32)&ehci->ulpi_viewpoint; |  | ||||||
| 	ulpi_vp.port_num = 0; |  | ||||||
| 
 |  | ||||||
| 	ulpi_write(&ulpi_vp, &ulpi->otg_ctrl_set, ULPI_OTG_CHRGVBUS); |  | ||||||
| 
 |  | ||||||
| 	mdelay(50); |  | ||||||
| 
 |  | ||||||
| 	/* terminate the reset */ |  | ||||||
| 	*reg = ehci_readl(status_reg); |  | ||||||
| 	*reg |= EHCI_PS_PE; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void board_ehci_hcd_postinit(struct usb_ehci *ehci, int port) |  | ||||||
| { |  | ||||||
| 	uint32_t tmp; |  | ||||||
| 
 |  | ||||||
| 	if (port == 0) { |  | ||||||
| 		/* Adjust UTMI PHY frequency to 24MHz */ |  | ||||||
| 		tmp = readl(OTG_BASE_ADDR + 0x80c); |  | ||||||
| 		tmp = (tmp & ~0x3) | 0x01; |  | ||||||
| 		writel(tmp, OTG_BASE_ADDR + 0x80c); |  | ||||||
| 	} else if (port == 1) { |  | ||||||
| 		efika_ehci_init(ehci, IMX_GPIO_NR(1, 27), |  | ||||||
| 				MX51_PAD_USBH1_STP__GPIO1_27, |  | ||||||
| 				MX51_PAD_USBH1_STP__USBH1_STP); |  | ||||||
| 	} else if ((port == 2) && machine_is_efikasb()) { |  | ||||||
| 		efika_ehci_init(ehci, IMX_GPIO_NR(2, 20), |  | ||||||
| 				MX51_PAD_EIM_A26__GPIO2_20, |  | ||||||
| 				MX51_PAD_EIM_A26__USBH2_STP); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if (port) |  | ||||||
| 		mdelay(10); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Ethernet on the Smarttop is on the USB bus. Rather than give an error about |  | ||||||
|  * "CPU Net Initialization Failed", just pass this test since no other settings |  | ||||||
|  * are required. Smartbook doesn't have built-in Ethernet but we will let it |  | ||||||
|  * pass anyway considering someone may have plugged in a USB stick and all |  | ||||||
|  * they need to do is run "usb start". |  | ||||||
|  */ |  | ||||||
| int board_eth_init(bd_t *bis) |  | ||||||
| { |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
|  | @ -1,509 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * Copyright (C) 2009 Freescale Semiconductor, Inc. |  | ||||||
|  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> |  | ||||||
|  * Copyright (C) 2009-2012 Genesi USA, Inc. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #include <common.h> |  | ||||||
| #include <asm/io.h> |  | ||||||
| #include <asm/arch/iomux-mx51.h> |  | ||||||
| #include <asm/gpio.h> |  | ||||||
| #include <asm/errno.h> |  | ||||||
| #include <asm/arch/sys_proto.h> |  | ||||||
| #include <asm/arch/crm_regs.h> |  | ||||||
| #include <asm/arch/clock.h> |  | ||||||
| #include <asm/imx-common/spi.h> |  | ||||||
| #include <i2c.h> |  | ||||||
| #include <mmc.h> |  | ||||||
| #include <fsl_esdhc.h> |  | ||||||
| #include <power/pmic.h> |  | ||||||
| #include <fsl_pmic.h> |  | ||||||
| #include <mc13892.h> |  | ||||||
| 
 |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Compile-time error checking |  | ||||||
|  */ |  | ||||||
| #ifndef	CONFIG_MXC_SPI |  | ||||||
| #error "CONFIG_MXC_SPI not set, this is essential for board's operation!" |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Board revisions |  | ||||||
|  * |  | ||||||
|  * Note that we get these revisions here for convenience, but we only set |  | ||||||
|  * up for the production model Smarttop (1.3) and Smartbook (2.0). |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define	EFIKAMX_BOARD_REV_11	0x1 |  | ||||||
| #define	EFIKAMX_BOARD_REV_12	0x2 |  | ||||||
| #define	EFIKAMX_BOARD_REV_13	0x3 |  | ||||||
| #define	EFIKAMX_BOARD_REV_14	0x4 |  | ||||||
| 
 |  | ||||||
| #define	EFIKASB_BOARD_REV_13	0x1 |  | ||||||
| #define	EFIKASB_BOARD_REV_20	0x2 |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Board identification |  | ||||||
|  */ |  | ||||||
| static u32 get_mx_rev(void) |  | ||||||
| { |  | ||||||
| 	u32 rev = 0; |  | ||||||
| 	/*
 |  | ||||||
| 	 * Retrieve board ID: |  | ||||||
| 	 * |  | ||||||
| 	 *  gpio: 16 17 11 |  | ||||||
| 	 *  ============== |  | ||||||
| 	 *	r1.1:  1+ 1  1 |  | ||||||
| 	 *	r1.2:  1  1  0 |  | ||||||
| 	 *	r1.3:  1  0  1 |  | ||||||
| 	 *	r1.4:  1  0  0 |  | ||||||
| 	 * |  | ||||||
| 	 * + note: r1.1 does not strap this pin properly so it needs to |  | ||||||
| 	 *         be hacked or ignored. |  | ||||||
| 	 */ |  | ||||||
| 
 |  | ||||||
| 	/* set to 1 in order to get correct value on board rev 1.1 */ |  | ||||||
| 	gpio_direction_output(IMX_GPIO_NR(3, 16), 1); |  | ||||||
| 	gpio_direction_input(IMX_GPIO_NR(3, 11)); |  | ||||||
| 	gpio_direction_input(IMX_GPIO_NR(3, 16)); |  | ||||||
| 	gpio_direction_input(IMX_GPIO_NR(3, 17)); |  | ||||||
| 
 |  | ||||||
| 	rev |= (!!gpio_get_value(IMX_GPIO_NR(3, 16))) << 0; |  | ||||||
| 	rev |= (!!gpio_get_value(IMX_GPIO_NR(3, 17))) << 1; |  | ||||||
| 	rev |= (!!gpio_get_value(IMX_GPIO_NR(3, 11))) << 2; |  | ||||||
| 
 |  | ||||||
| 	return (~rev & 0x7) + 1; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static iomux_v3_cfg_t const efikasb_revision_pads[] = { |  | ||||||
| 	MX51_PAD_EIM_CS3__GPIO2_28, |  | ||||||
| 	MX51_PAD_EIM_CS4__GPIO2_29, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static inline u32 get_sb_rev(void) |  | ||||||
| { |  | ||||||
| 	u32 rev = 0; |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(efikasb_revision_pads, |  | ||||||
| 				ARRAY_SIZE(efikasb_revision_pads)); |  | ||||||
| 	gpio_direction_input(IMX_GPIO_NR(2, 28)); |  | ||||||
| 	gpio_direction_input(IMX_GPIO_NR(2, 29)); |  | ||||||
| 
 |  | ||||||
| 	rev |= (!!gpio_get_value(IMX_GPIO_NR(2, 28))) << 0; |  | ||||||
| 	rev |= (!!gpio_get_value(IMX_GPIO_NR(2, 29))) << 1; |  | ||||||
| 
 |  | ||||||
| 	return rev; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| inline uint32_t get_efikamx_rev(void) |  | ||||||
| { |  | ||||||
| 	if (machine_is_efikamx()) |  | ||||||
| 		return get_mx_rev(); |  | ||||||
| 	else if (machine_is_efikasb()) |  | ||||||
| 		return get_sb_rev(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| u32 get_board_rev(void) |  | ||||||
| { |  | ||||||
| 	return get_cpu_rev() | (get_efikamx_rev() << 8); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * DRAM initialization |  | ||||||
|  */ |  | ||||||
| int dram_init(void) |  | ||||||
| { |  | ||||||
| 	/* dram_init must store complete ramsize in gd->ram_size */ |  | ||||||
| 	gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE, |  | ||||||
| 						PHYS_SDRAM_1_SIZE); |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * UART configuration |  | ||||||
|  */ |  | ||||||
| static iomux_v3_cfg_t const efikamx_uart_pads[] = { |  | ||||||
| 	MX51_PAD_UART1_RXD__UART1_RXD, |  | ||||||
| 	MX51_PAD_UART1_TXD__UART1_TXD, |  | ||||||
| 	MX51_PAD_UART1_RTS__UART1_RTS, |  | ||||||
| 	MX51_PAD_UART1_CTS__UART1_CTS, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * SPI configuration |  | ||||||
|  */ |  | ||||||
| static iomux_v3_cfg_t const efikamx_spi_pads[] = { |  | ||||||
| 	MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI, |  | ||||||
| 	MX51_PAD_CSPI1_MISO__ECSPI1_MISO, |  | ||||||
| 	MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK, |  | ||||||
| 	MX51_PAD_CSPI1_SS0__GPIO4_24, |  | ||||||
| 	MX51_PAD_CSPI1_SS1__GPIO4_25, |  | ||||||
| 	MX51_PAD_GPIO1_6__GPIO1_6, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define EFIKAMX_SPI_SS0		IMX_GPIO_NR(4, 24) |  | ||||||
| #define EFIKAMX_SPI_SS1		IMX_GPIO_NR(4, 25) |  | ||||||
| #define EFIKAMX_PMIC_IRQ	IMX_GPIO_NR(1, 6) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * PMIC configuration |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_MXC_SPI |  | ||||||
| int board_spi_cs_gpio(unsigned bus, unsigned cs) |  | ||||||
| { |  | ||||||
| 	return (bus == 0 && cs == 1) ? 121 : -1; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static void power_init(void) |  | ||||||
| { |  | ||||||
| 	unsigned int val; |  | ||||||
| 	struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)MXC_CCM_BASE; |  | ||||||
| 	struct pmic *p; |  | ||||||
| 	int ret; |  | ||||||
| 
 |  | ||||||
| 	ret = pmic_init(CONFIG_FSL_PMIC_BUS); |  | ||||||
| 	if (ret) |  | ||||||
| 		return; |  | ||||||
| 
 |  | ||||||
| 	p = pmic_get("FSL_PMIC"); |  | ||||||
| 	if (!p) |  | ||||||
| 		return; |  | ||||||
| 
 |  | ||||||
| 	/* Write needed to Power Gate 2 register */ |  | ||||||
| 	pmic_reg_read(p, REG_POWER_MISC, &val); |  | ||||||
| 	val &= ~PWGT2SPIEN; |  | ||||||
| 	pmic_reg_write(p, REG_POWER_MISC, val); |  | ||||||
| 
 |  | ||||||
| 	/* Externally powered */ |  | ||||||
| 	pmic_reg_read(p, REG_CHARGE, &val); |  | ||||||
| 	val |= ICHRG0 | ICHRG1 | ICHRG2 | ICHRG3 | CHGAUTOB; |  | ||||||
| 	pmic_reg_write(p, REG_CHARGE, val); |  | ||||||
| 
 |  | ||||||
| 	/* power up the system first */ |  | ||||||
| 	pmic_reg_write(p, REG_POWER_MISC, PWUP); |  | ||||||
| 
 |  | ||||||
| 	/* Set core voltage to 1.1V */ |  | ||||||
| 	pmic_reg_read(p, REG_SW_0, &val); |  | ||||||
| 	val = (val & ~SWx_VOLT_MASK) | SWx_1_100V; |  | ||||||
| 	pmic_reg_write(p, REG_SW_0, val); |  | ||||||
| 
 |  | ||||||
| 	/* Setup VCC (SW2) to 1.25 */ |  | ||||||
| 	pmic_reg_read(p, REG_SW_1, &val); |  | ||||||
| 	val = (val & ~SWx_VOLT_MASK) | SWx_1_250V; |  | ||||||
| 	pmic_reg_write(p, REG_SW_1, val); |  | ||||||
| 
 |  | ||||||
| 	/* Setup 1V2_DIG1 (SW3) to 1.25 */ |  | ||||||
| 	pmic_reg_read(p, REG_SW_2, &val); |  | ||||||
| 	val = (val & ~SWx_VOLT_MASK) | SWx_1_250V; |  | ||||||
| 	pmic_reg_write(p, REG_SW_2, val); |  | ||||||
| 	udelay(50); |  | ||||||
| 
 |  | ||||||
| 	/* Raise the core frequency to 800MHz */ |  | ||||||
| 	writel(0x0, &mxc_ccm->cacrr); |  | ||||||
| 
 |  | ||||||
| 	/* Set switchers in Auto in NORMAL mode & STANDBY mode */ |  | ||||||
| 	/* Setup the switcher mode for SW1 & SW2*/ |  | ||||||
| 	pmic_reg_read(p, REG_SW_4, &val); |  | ||||||
| 	val = (val & ~((SWMODE_MASK << SWMODE1_SHIFT) | |  | ||||||
| 		(SWMODE_MASK << SWMODE2_SHIFT))); |  | ||||||
| 	val |= (SWMODE_AUTO_AUTO << SWMODE1_SHIFT) | |  | ||||||
| 		(SWMODE_AUTO_AUTO << SWMODE2_SHIFT); |  | ||||||
| 	pmic_reg_write(p, REG_SW_4, val); |  | ||||||
| 
 |  | ||||||
| 	/* Setup the switcher mode for SW3 & SW4 */ |  | ||||||
| 	pmic_reg_read(p, REG_SW_5, &val); |  | ||||||
| 	val = (val & ~((SWMODE_MASK << SWMODE3_SHIFT) | |  | ||||||
| 		(SWMODE_MASK << SWMODE4_SHIFT))); |  | ||||||
| 	val |= (SWMODE_AUTO_AUTO << SWMODE3_SHIFT) | |  | ||||||
| 		(SWMODE_AUTO_AUTO << SWMODE4_SHIFT); |  | ||||||
| 	pmic_reg_write(p, REG_SW_5, val); |  | ||||||
| 
 |  | ||||||
| 	/* Set VDIG to 1.8V, VGEN3 to 1.8V, VCAM to 2.6V */ |  | ||||||
| 	pmic_reg_read(p, REG_SETTING_0, &val); |  | ||||||
| 	val &= ~(VCAM_MASK | VGEN3_MASK | VDIG_MASK); |  | ||||||
| 	val |= VDIG_1_8 | VGEN3_1_8 | VCAM_2_6; |  | ||||||
| 	pmic_reg_write(p, REG_SETTING_0, val); |  | ||||||
| 
 |  | ||||||
| 	/* Set VVIDEO to 2.775V, VAUDIO to 3V, VSD to 3.15V */ |  | ||||||
| 	pmic_reg_read(p, REG_SETTING_1, &val); |  | ||||||
| 	val &= ~(VVIDEO_MASK | VSD_MASK | VAUDIO_MASK); |  | ||||||
| 	val |= VSD_3_15 | VAUDIO_3_0 | VVIDEO_2_775 | VGEN1_1_2 | VGEN2_3_15; |  | ||||||
| 	pmic_reg_write(p, REG_SETTING_1, val); |  | ||||||
| 
 |  | ||||||
| 	/* Enable VGEN1, VGEN2, VDIG, VPLL */ |  | ||||||
| 	pmic_reg_read(p, REG_MODE_0, &val); |  | ||||||
| 	val |= VGEN1EN | VDIGEN | VGEN2EN | VPLLEN; |  | ||||||
| 	pmic_reg_write(p, REG_MODE_0, val); |  | ||||||
| 
 |  | ||||||
| 	/* Configure VGEN3 and VCAM regulators to use external PNP */ |  | ||||||
| 	val = VGEN3CONFIG | VCAMCONFIG; |  | ||||||
| 	pmic_reg_write(p, REG_MODE_1, val); |  | ||||||
| 	udelay(200); |  | ||||||
| 
 |  | ||||||
| 	/* Enable VGEN3, VCAM, VAUDIO, VVIDEO, VSD regulators */ |  | ||||||
| 	val = VGEN3EN | VGEN3CONFIG | VCAMEN | VCAMCONFIG | |  | ||||||
| 		VVIDEOEN | VAUDIOEN | VSDEN; |  | ||||||
| 	pmic_reg_write(p, REG_MODE_1, val); |  | ||||||
| 
 |  | ||||||
| 	pmic_reg_read(p, REG_POWER_CTL2, &val); |  | ||||||
| 	val |= WDIRESET; |  | ||||||
| 	pmic_reg_write(p, REG_POWER_CTL2, val); |  | ||||||
| 
 |  | ||||||
| 	udelay(2500); |  | ||||||
| } |  | ||||||
| #else |  | ||||||
| static inline void power_init(void) { } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * MMC configuration |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_FSL_ESDHC |  | ||||||
| 
 |  | ||||||
| struct fsl_esdhc_cfg esdhc_cfg[2] = { |  | ||||||
| 	{MMC_SDHC1_BASE_ADDR}, |  | ||||||
| 	{MMC_SDHC2_BASE_ADDR}, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static iomux_v3_cfg_t const efikamx_sdhc1_pads[] = { |  | ||||||
| 	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, |  | ||||||
| 	MX51_PAD_GPIO1_1__SD1_WP, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define EFIKAMX_SDHC1_WP	IMX_GPIO_NR(1, 1) |  | ||||||
| 
 |  | ||||||
| static iomux_v3_cfg_t const efikamx_sdhc1_cd_pads[] = { |  | ||||||
| 	MX51_PAD_GPIO1_0__SD1_CD, |  | ||||||
| 	NEW_PAD_CTRL(MX51_PAD_EIM_CS2__GPIO2_27, MX51_ESDHC_PAD_CTRL), |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define EFIKAMX_SDHC1_CD	IMX_GPIO_NR(1, 0) |  | ||||||
| #define EFIKASB_SDHC1_CD	IMX_GPIO_NR(2, 27) |  | ||||||
| 
 |  | ||||||
| static iomux_v3_cfg_t const efikasb_sdhc2_pads[] = { |  | ||||||
| 	MX51_PAD_SD2_CMD__SD2_CMD, |  | ||||||
| 	MX51_PAD_SD2_CLK__SD2_CLK, |  | ||||||
| 	MX51_PAD_SD2_DATA0__SD2_DATA0, |  | ||||||
| 	MX51_PAD_SD2_DATA1__SD2_DATA1, |  | ||||||
| 	MX51_PAD_SD2_DATA2__SD2_DATA2, |  | ||||||
| 	MX51_PAD_SD2_DATA3__SD2_DATA3, |  | ||||||
| 	MX51_PAD_GPIO1_7__SD2_WP, |  | ||||||
| 	MX51_PAD_GPIO1_8__SD2_CD, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define EFIKASB_SDHC2_CD	IMX_GPIO_NR(1, 8) |  | ||||||
| #define EFIKASB_SDHC2_WP	IMX_GPIO_NR(1, 7) |  | ||||||
| 
 |  | ||||||
| static inline uint32_t efikamx_mmc_getcd(u32 base) |  | ||||||
| { |  | ||||||
| 	if (base == MMC_SDHC1_BASE_ADDR) |  | ||||||
| 		if (machine_is_efikamx()) |  | ||||||
| 			return EFIKAMX_SDHC1_CD; |  | ||||||
| 		else |  | ||||||
| 			return EFIKASB_SDHC1_CD; |  | ||||||
| 	else |  | ||||||
| 		return EFIKASB_SDHC2_CD; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int board_mmc_getcd(struct mmc *mmc) |  | ||||||
| { |  | ||||||
| 	struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; |  | ||||||
| 	uint32_t cd = efikamx_mmc_getcd(cfg->esdhc_base); |  | ||||||
| 	int ret = !gpio_get_value(cd); |  | ||||||
| 
 |  | ||||||
| 	return ret; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int board_mmc_init(bd_t *bis) |  | ||||||
| { |  | ||||||
| 	int ret; |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * All Efika MX boards use eSDHC1 with a common write-protect GPIO |  | ||||||
| 	 */ |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(efikamx_sdhc1_pads, |  | ||||||
| 					ARRAY_SIZE(efikamx_sdhc1_pads)); |  | ||||||
| 	gpio_direction_input(EFIKAMX_SDHC1_WP); |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Smartbook and Smarttop differ on the location of eSDHC1 |  | ||||||
| 	 * carrier-detect GPIO |  | ||||||
| 	 */ |  | ||||||
| 	if (machine_is_efikamx()) { |  | ||||||
| 		imx_iomux_v3_setup_pad(efikamx_sdhc1_cd_pads[0]); |  | ||||||
| 		gpio_direction_input(EFIKAMX_SDHC1_CD); |  | ||||||
| 	} else if (machine_is_efikasb()) { |  | ||||||
| 		imx_iomux_v3_setup_pad(efikamx_sdhc1_cd_pads[1]); |  | ||||||
| 		gpio_direction_input(EFIKASB_SDHC1_CD); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); |  | ||||||
| 	esdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK); |  | ||||||
| 
 |  | ||||||
| 	ret = fsl_esdhc_initialize(bis, &esdhc_cfg[0]); |  | ||||||
| 
 |  | ||||||
| 	if (machine_is_efikasb()) { |  | ||||||
| 
 |  | ||||||
| 		imx_iomux_v3_setup_multiple_pads(efikasb_sdhc2_pads, |  | ||||||
| 						ARRAY_SIZE(efikasb_sdhc2_pads)); |  | ||||||
| 		gpio_direction_input(EFIKASB_SDHC2_CD); |  | ||||||
| 		gpio_direction_input(EFIKASB_SDHC2_WP); |  | ||||||
| 		if (!ret) |  | ||||||
| 			ret = fsl_esdhc_initialize(bis, &esdhc_cfg[1]); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return ret; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * PATA |  | ||||||
|  */ |  | ||||||
| static iomux_v3_cfg_t const efikamx_pata_pads[] = { |  | ||||||
| 	MX51_PAD_NANDF_WE_B__PATA_DIOW, |  | ||||||
| 	MX51_PAD_NANDF_RE_B__PATA_DIOR, |  | ||||||
| 	MX51_PAD_NANDF_ALE__PATA_BUFFER_EN, |  | ||||||
| 	MX51_PAD_NANDF_CLE__PATA_RESET_B, |  | ||||||
| 	MX51_PAD_NANDF_WP_B__PATA_DMACK, |  | ||||||
| 	MX51_PAD_NANDF_RB0__PATA_DMARQ, |  | ||||||
| 	MX51_PAD_NANDF_RB1__PATA_IORDY, |  | ||||||
| 	MX51_PAD_GPIO_NAND__PATA_INTRQ, |  | ||||||
| 	MX51_PAD_NANDF_CS2__PATA_CS_0, |  | ||||||
| 	MX51_PAD_NANDF_CS3__PATA_CS_1, |  | ||||||
| 	MX51_PAD_NANDF_CS4__PATA_DA_0, |  | ||||||
| 	MX51_PAD_NANDF_CS5__PATA_DA_1, |  | ||||||
| 	MX51_PAD_NANDF_CS6__PATA_DA_2, |  | ||||||
| 	MX51_PAD_NANDF_D15__PATA_DATA15, |  | ||||||
| 	MX51_PAD_NANDF_D14__PATA_DATA14, |  | ||||||
| 	MX51_PAD_NANDF_D13__PATA_DATA13, |  | ||||||
| 	MX51_PAD_NANDF_D12__PATA_DATA12, |  | ||||||
| 	MX51_PAD_NANDF_D11__PATA_DATA11, |  | ||||||
| 	MX51_PAD_NANDF_D10__PATA_DATA10, |  | ||||||
| 	MX51_PAD_NANDF_D9__PATA_DATA9, |  | ||||||
| 	MX51_PAD_NANDF_D8__PATA_DATA8, |  | ||||||
| 	MX51_PAD_NANDF_D7__PATA_DATA7, |  | ||||||
| 	MX51_PAD_NANDF_D6__PATA_DATA6, |  | ||||||
| 	MX51_PAD_NANDF_D5__PATA_DATA5, |  | ||||||
| 	MX51_PAD_NANDF_D4__PATA_DATA4, |  | ||||||
| 	MX51_PAD_NANDF_D3__PATA_DATA3, |  | ||||||
| 	MX51_PAD_NANDF_D2__PATA_DATA2, |  | ||||||
| 	MX51_PAD_NANDF_D1__PATA_DATA1, |  | ||||||
| 	MX51_PAD_NANDF_D0__PATA_DATA0, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * EHCI USB |  | ||||||
|  */ |  | ||||||
| #ifdef	CONFIG_CMD_USB |  | ||||||
| extern void setup_iomux_usb(void); |  | ||||||
| #else |  | ||||||
| static inline void setup_iomux_usb(void) { } |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * LED configuration |  | ||||||
|  * |  | ||||||
|  * Smarttop LED pad config is done in the DCD |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| #define EFIKAMX_LED_BLUE	IMX_GPIO_NR(3, 13) |  | ||||||
| #define EFIKAMX_LED_GREEN	IMX_GPIO_NR(3, 14) |  | ||||||
| #define EFIKAMX_LED_RED		IMX_GPIO_NR(3, 15) |  | ||||||
| 
 |  | ||||||
| static iomux_v3_cfg_t const efikasb_led_pads[] = { |  | ||||||
| 	MX51_PAD_GPIO1_3__GPIO1_3, |  | ||||||
| 	MX51_PAD_EIM_CS0__GPIO2_25, |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define EFIKASB_CAPSLOCK_LED	IMX_GPIO_NR(2, 25) |  | ||||||
| #define EFIKASB_MESSAGE_LED	IMX_GPIO_NR(1, 3) /* Note: active low */ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Board initialization |  | ||||||
|  */ |  | ||||||
| int board_early_init_f(void) |  | ||||||
| { |  | ||||||
| 	if (machine_is_efikasb()) { |  | ||||||
| 		imx_iomux_v3_setup_multiple_pads(efikasb_led_pads, |  | ||||||
| 						ARRAY_SIZE(efikasb_led_pads)); |  | ||||||
| 		gpio_direction_output(EFIKASB_CAPSLOCK_LED, 0); |  | ||||||
| 		gpio_direction_output(EFIKASB_MESSAGE_LED, 1); |  | ||||||
| 	} else if (machine_is_efikamx()) { |  | ||||||
| 		/*
 |  | ||||||
| 		 * Set up GPIO directions for LEDs. |  | ||||||
| 		 * IOMUX has been done in the DCD already. |  | ||||||
| 		 * Turn the red LED on for pre-relocation code. |  | ||||||
| 		 */ |  | ||||||
| 		gpio_direction_output(EFIKAMX_LED_BLUE, 0); |  | ||||||
| 		gpio_direction_output(EFIKAMX_LED_GREEN, 0); |  | ||||||
| 		gpio_direction_output(EFIKAMX_LED_RED, 1); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Both these pad configurations for UART and SPI are kind of redundant |  | ||||||
| 	 * since they are the Power-On Defaults for the i.MX51. But, it seems we |  | ||||||
| 	 * should make absolutely sure that they are set up correctly. |  | ||||||
| 	 */ |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(efikamx_uart_pads, |  | ||||||
| 					ARRAY_SIZE(efikamx_uart_pads)); |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(efikamx_spi_pads, |  | ||||||
| 					ARRAY_SIZE(efikamx_spi_pads)); |  | ||||||
| 
 |  | ||||||
| 	/* not technically required for U-Boot operation but do it anyway. */ |  | ||||||
| 	gpio_direction_input(EFIKAMX_PMIC_IRQ); |  | ||||||
| 	/* Deselect both CS for now, otherwise NOR doesn't probe properly. */ |  | ||||||
| 	gpio_direction_output(EFIKAMX_SPI_SS0, 0); |  | ||||||
| 	gpio_direction_output(EFIKAMX_SPI_SS1, 1); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int board_init(void) |  | ||||||
| { |  | ||||||
| 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int board_late_init(void) |  | ||||||
| { |  | ||||||
| 	if (machine_is_efikamx()) { |  | ||||||
| 		/*
 |  | ||||||
| 		 * Set up Blue LED for "In U-Boot" status. |  | ||||||
| 		 * We're all relocated and ready to U-Boot! |  | ||||||
| 		 */ |  | ||||||
| 		gpio_set_value(EFIKAMX_LED_RED, 0); |  | ||||||
| 		gpio_set_value(EFIKAMX_LED_GREEN, 0); |  | ||||||
| 		gpio_set_value(EFIKAMX_LED_BLUE, 1); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	power_init(); |  | ||||||
| 
 |  | ||||||
| 	imx_iomux_v3_setup_multiple_pads(efikamx_pata_pads, |  | ||||||
| 					ARRAY_SIZE(efikamx_pata_pads)); |  | ||||||
| 	setup_iomux_usb(); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int checkboard(void) |  | ||||||
| { |  | ||||||
| 	u32 rev = get_efikamx_rev(); |  | ||||||
| 
 |  | ||||||
| 	printf("Board: Genesi Efika MX "); |  | ||||||
| 	if (machine_is_efikamx()) |  | ||||||
| 		printf("Smarttop (1.%i)\n", rev & 0xf); |  | ||||||
| 	else if (machine_is_efikasb()) |  | ||||||
| 		printf("Smartbook\n"); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
|  | @ -1,118 +0,0 @@ | ||||||
| /* |  | ||||||
|  * Copyright (C) 2009 Pegatron Corporation |  | ||||||
|  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> |  | ||||||
|  * Copyright (C) 2009-2012 Genesi USA, Inc. |  | ||||||
|  * |  | ||||||
|  * BASED ON: imx51evk |  | ||||||
|  * |  | ||||||
|  * (C) Copyright 2009 |  | ||||||
|  * Stefano Babic DENX Software Engineering sbabic@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  * |  | ||||||
|  * Refer doc/README.imximage for more details about how-to configure |  | ||||||
|  * and create imximage boot image |  | ||||||
|  * |  | ||||||
|  * The syntax is taken as close as possible with the kwbimage |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Boot Device : one of |  | ||||||
|  * spi, sd (the board has no nand neither onenand) |  | ||||||
|  */ |  | ||||||
| BOOT_FROM	spi |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Device Configuration Data (DCD) |  | ||||||
|  * |  | ||||||
|  * Each entry must have the format: |  | ||||||
|  * Addr-type           Address        Value |  | ||||||
|  * |  | ||||||
|  * where: |  | ||||||
|  *	Addr-type register length (1,2 or 4 bytes) |  | ||||||
|  *	Address	  absolute address of the register |  | ||||||
|  *	value	  value to be stored in the register |  | ||||||
|  */ |  | ||||||
| /* |  | ||||||
|  * Essential GPIO settings to be done as early as possible |  | ||||||
|  * PCBIDn pad settings are all the defaults except #2 which needs HVE off |  | ||||||
|  */ |  | ||||||
| DATA 4 0x73fa8134 0x3			# PCBID0 ALT3 GPIO 3_16 |  | ||||||
| DATA 4 0x73fa8130 0x3			# PCBID1 ALT3 GPIO 3_17 |  | ||||||
| DATA 4 0x73fa8128 0x3			# PCBID2 ALT3 GPIO 3_11 |  | ||||||
| DATA 4 0x73fa8504 0xe4			# PCBID2 PAD ~HVE |  | ||||||
| DATA 4 0x73fa8198 0x3			# LED0 ALT3 GPIO 3_13 |  | ||||||
| DATA 4 0x73fa81c4 0x3			# LED1 ALT3 GPIO 3_14 |  | ||||||
| DATA 4 0x73fa81c8 0x3			# LED2 ALT3 GPIO 3_15 |  | ||||||
| 
 |  | ||||||
| /* DDR bus IOMUX PAD settings */ |  | ||||||
| DATA 4 0x73fa850c 0x20c5		# SDODT1 |  | ||||||
| DATA 4 0x73fa8510 0x20c5		# SDODT0 |  | ||||||
| DATA 4 0x73fa84ac 0xc5			# SDWE |  | ||||||
| DATA 4 0x73fa84b0 0xc5			# SDCKE0 |  | ||||||
| DATA 4 0x73fa84b4 0xc5			# SDCKE1 |  | ||||||
| DATA 4 0x73fa84cc 0xc5			# DRAM_CS0 |  | ||||||
| DATA 4 0x73fa84d0 0xc5			# DRAM_CS1 |  | ||||||
| DATA 4 0x73fa882c 0x2			# DRAM_B4 |  | ||||||
| DATA 4 0x73fa88a4 0x2			# DRAM_B0 |  | ||||||
| DATA 4 0x73fa88ac 0x2			# DRAM_B1 |  | ||||||
| DATA 4 0x73fa88b8 0x2			# DRAM_B2 |  | ||||||
| DATA 4 0x73fa84d4 0xc5			# DRAM_DQM0 |  | ||||||
| DATA 4 0x73fa84d8 0xc5			# DRAM_DQM1 |  | ||||||
| DATA 4 0x73fa84dc 0xc5			# DRAM_DQM2 |  | ||||||
| DATA 4 0x73fa84e0 0xc5			# DRAM_DQM3 |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Setting DDR for micron |  | ||||||
|  * 13 Rows, 10 Cols, 32 bit, SREF=4 Micron Model |  | ||||||
|  * CAS=3 BL=4 |  | ||||||
|  */ |  | ||||||
| /* ESDCTL_ESDCTL0 */ |  | ||||||
| DATA 4 0x83fd9000 0x82a20000 |  | ||||||
| /* ESDCTL_ESDCTL1 */ |  | ||||||
| DATA 4 0x83fd9008 0x82a20000 |  | ||||||
| /* ESDCTL_ESDMISC */ |  | ||||||
| DATA 4 0x83fd9010 0xcaaaf6d0 |  | ||||||
| /* ESDCTL_ESDCFG0 */ |  | ||||||
| DATA 4 0x83fd9004 0x3f3574aa |  | ||||||
| /* ESDCTL_ESDCFG1 */ |  | ||||||
| DATA 4 0x83fd900c 0x3f3574aa |  | ||||||
| 
 |  | ||||||
| /* Init DRAM on CS0 */ |  | ||||||
| /* ESDCTL_ESDSCR */ |  | ||||||
| DATA 4 0x83fd9014 0x04008008 |  | ||||||
| DATA 4 0x83fd9014 0x0000801a |  | ||||||
| DATA 4 0x83fd9014 0x0000801b |  | ||||||
| DATA 4 0x83fd9014 0x00448019 |  | ||||||
| DATA 4 0x83fd9014 0x07328018 |  | ||||||
| DATA 4 0x83fd9014 0x04008008 |  | ||||||
| DATA 4 0x83fd9014 0x00008010 |  | ||||||
| DATA 4 0x83fd9014 0x00008010 |  | ||||||
| DATA 4 0x83fd9014 0x06328018 |  | ||||||
| DATA 4 0x83fd9014 0x03808019 |  | ||||||
| DATA 4 0x83fd9014 0x00408019 |  | ||||||
| DATA 4 0x83fd9014 0x00008000 |  | ||||||
| 
 |  | ||||||
| /* Init DRAM on CS1 */ |  | ||||||
| DATA 4 0x83fd9014 0x0400800c |  | ||||||
| DATA 4 0x83fd9014 0x0000801e |  | ||||||
| DATA 4 0x83fd9014 0x0000801f |  | ||||||
| DATA 4 0x83fd9014 0x0000801d |  | ||||||
| DATA 4 0x83fd9014 0x0732801c |  | ||||||
| DATA 4 0x83fd9014 0x0400800c |  | ||||||
| DATA 4 0x83fd9014 0x00008014 |  | ||||||
| DATA 4 0x83fd9014 0x00008014 |  | ||||||
| DATA 4 0x83fd9014 0x0632801c |  | ||||||
| DATA 4 0x83fd9014 0x0380801d |  | ||||||
| DATA 4 0x83fd9014 0x0040801d |  | ||||||
| DATA 4 0x83fd9014 0x00008004 |  | ||||||
| 
 |  | ||||||
| /* Write to CTL0 */ |  | ||||||
| DATA 4 0x83fd9000 0xb2a20000 |  | ||||||
| /* Write to CTL1 */ |  | ||||||
| DATA 4 0x83fd9008 0xb2a20000 |  | ||||||
| /* ESDMISC */ |  | ||||||
| DATA 4 0x83fd9010 0x000ad6d0 |  | ||||||
| /* ESDCTL_ESDCDLYGD */ |  | ||||||
| DATA 4 0x83fd9034 0x90000000 |  | ||||||
| DATA 4 0x83fd9014 0x00000000 |  | ||||||
|  | @ -1,101 +0,0 @@ | ||||||
| /* |  | ||||||
|  * Copyright (C) 2009 Pegatron Corporation |  | ||||||
|  * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> |  | ||||||
|  * Copyright (C) 2009-2012 Genesi USA, Inc. |  | ||||||
|  * |  | ||||||
|  * BASED ON: imx51evk |  | ||||||
|  * |  | ||||||
|  * (C) Copyright 2009 |  | ||||||
|  * Stefano Babic DENX Software Engineering sbabic@denx.de. |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Boot Device : one of |  | ||||||
|  * spi, sd (the board has no nand neither onenand) |  | ||||||
|  */ |  | ||||||
| BOOT_FROM	spi |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Device Configuration Data (DCD) |  | ||||||
|  * |  | ||||||
|  * Each entry must have the format: |  | ||||||
|  * Addr-type           Address        Value |  | ||||||
|  * |  | ||||||
|  * where: |  | ||||||
|  *	Addr-type register length (1,2 or 4 bytes) |  | ||||||
|  *	Address	  absolute address of the register |  | ||||||
|  *	value	  value to be stored in the register |  | ||||||
| */ |  | ||||||
| /* DDR bus IOMUX PAD settings */ |  | ||||||
| DATA 4 0x73fa88a0 0x200		# GRP_INMODE1 |  | ||||||
| DATA 4 0x73fa850c 0x20c5	# SDODT1 |  | ||||||
| DATA 4 0x73fa8510 0x20c5	# SDODT0 |  | ||||||
| DATA 4 0x73fa8848 0x4		# DDR_A1 |  | ||||||
| DATA 4 0x73fa84b8 0xe7		# DRAM_SDCLK |  | ||||||
| DATA 4 0x73fa84bc 0x45		# DRAM_SDQS0 |  | ||||||
| DATA 4 0x73fa84c0 0x45		# DRAM_SDQS1 |  | ||||||
| DATA 4 0x73fa84c4 0x45		# DRAM_SDQS2 |  | ||||||
| DATA 4 0x73fa84c8 0x45		# DRAM_SDQS3 |  | ||||||
| DATA 4 0x73fa8820 0x0		# DDRPKS |  | ||||||
| DATA 4 0x73fa84ac 0xe5		# SDWE |  | ||||||
| DATA 4 0x73fa84b0 0xe5		# SDCKE0 |  | ||||||
| DATA 4 0x73fa84b4 0xe5		# SDCKE1 |  | ||||||
| DATA 4 0x73fa84cc 0xe5		# DRAM_CS0 |  | ||||||
| DATA 4 0x73fa84d0 0xe4		# DRAM_CS1 |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  * Setting DDR for micron |  | ||||||
|  * 13 Rows, 10 Cols, 32 bit, SREF=4 Micron Model |  | ||||||
|  * CAS=3 BL=4 |  | ||||||
|  */ |  | ||||||
| /* ESDCTL_ESDCTL0 */ |  | ||||||
| DATA 4 0x83fd9000 0x82a20000 |  | ||||||
| /* ESDCTL_ESDCTL1 */ |  | ||||||
| DATA 4 0x83fd9008 0x82a20000 |  | ||||||
| /* ESDCTL_ESDMISC */ |  | ||||||
| DATA 4 0x83fd9010 0xcaaaf6d0 |  | ||||||
| /* ESDCTL_ESDCFG0 */ |  | ||||||
| DATA 4 0x83fd9004 0x333574aa |  | ||||||
| /* ESDCTL_ESDCFG1 */ |  | ||||||
| DATA 4 0x83fd900c 0x333574aa |  | ||||||
| 
 |  | ||||||
| /* Init DRAM on CS0 */ |  | ||||||
| /* ESDCTL_ESDSCR */ |  | ||||||
| DATA 4 0x83fd9014 0x04008008 |  | ||||||
| DATA 4 0x83fd9014 0x0000801a |  | ||||||
| DATA 4 0x83fd9014 0x0000801b |  | ||||||
| DATA 4 0x83fd9014 0x00448019 |  | ||||||
| DATA 4 0x83fd9014 0x07328018 |  | ||||||
| DATA 4 0x83fd9014 0x04008008 |  | ||||||
| DATA 4 0x83fd9014 0x00008010 |  | ||||||
| DATA 4 0x83fd9014 0x00008010 |  | ||||||
| DATA 4 0x83fd9014 0x06328018 |  | ||||||
| DATA 4 0x83fd9014 0x03808019 |  | ||||||
| DATA 4 0x83fd9014 0x00408019 |  | ||||||
| DATA 4 0x83fd9014 0x00008000 |  | ||||||
| 
 |  | ||||||
| /* Init DRAM on CS1 */ |  | ||||||
| DATA 4 0x83fd9014 0x0400800c |  | ||||||
| DATA 4 0x83fd9014 0x0000801e |  | ||||||
| DATA 4 0x83fd9014 0x0000801f |  | ||||||
| DATA 4 0x83fd9014 0x0000801d |  | ||||||
| DATA 4 0x83fd9014 0x0732801c |  | ||||||
| DATA 4 0x83fd9014 0x0400800c |  | ||||||
| DATA 4 0x83fd9014 0x00008014 |  | ||||||
| DATA 4 0x83fd9014 0x00008014 |  | ||||||
| DATA 4 0x83fd9014 0x0632801c |  | ||||||
| DATA 4 0x83fd9014 0x0380801d |  | ||||||
| DATA 4 0x83fd9014 0x0042801d |  | ||||||
| DATA 4 0x83fd9014 0x00008004 |  | ||||||
| 
 |  | ||||||
| /* Write to CTL0 */ |  | ||||||
| DATA 4 0x83fd9000 0xb2a20000 |  | ||||||
| /* Write to CTL1 */ |  | ||||||
| DATA 4 0x83fd9008 0xb2a20000 |  | ||||||
| /* ESDMISC */ |  | ||||||
| DATA 4 0x83fd9010 0xcaaaf6d0 |  | ||||||
| /* ESDCTL_ESDCDLYGD */ |  | ||||||
| DATA 4 0x83fd9034 0x90000000 |  | ||||||
| DATA 4 0x83fd9014 0x00000000 |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| CONFIG_ARM=y |  | ||||||
| CONFIG_TARGET_MX51_EFIKAMX=y |  | ||||||
| CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg" |  | ||||||
| # CONFIG_CMD_IMLS is not set |  | ||||||
| # CONFIG_CMD_SETEXPR is not set |  | ||||||
| CONFIG_SPI_FLASH=y |  | ||||||
| CONFIG_SYS_PROMPT="Efika> " |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| CONFIG_ARM=y |  | ||||||
| CONFIG_TARGET_MX51_EFIKAMX=y |  | ||||||
| CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_MX51_EFIKASB,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_sb.cfg" |  | ||||||
| # CONFIG_CMD_IMLS is not set |  | ||||||
| # CONFIG_CMD_SETEXPR is not set |  | ||||||
| CONFIG_SPI_FLASH=y |  | ||||||
|  | @ -1,242 +0,0 @@ | ||||||
| /*
 |  | ||||||
|  * Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de> |  | ||||||
|  * |  | ||||||
|  * (C) Copyright 2009 Freescale Semiconductor, Inc. |  | ||||||
|  * |  | ||||||
|  * Configuration settings for the MX51EVK Board |  | ||||||
|  * |  | ||||||
|  * SPDX-License-Identifier:	GPL-2.0+ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #ifndef __CONFIG_H |  | ||||||
| #define __CONFIG_H |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * High Level Board Configuration Options |  | ||||||
|  */ |  | ||||||
| /* An i.MX51 CPU */ |  | ||||||
| #define CONFIG_MX51 |  | ||||||
| 
 |  | ||||||
| #define	machine_is_efikamx()	(CONFIG_MACH_TYPE == MACH_TYPE_MX51_EFIKAMX) |  | ||||||
| #define	machine_is_efikasb()	(CONFIG_MACH_TYPE == MACH_TYPE_MX51_EFIKASB) |  | ||||||
| 
 |  | ||||||
| #include <asm/arch/imx-regs.h> |  | ||||||
| 
 |  | ||||||
| #define CONFIG_DISPLAY_CPUINFO |  | ||||||
| #define CONFIG_DISPLAY_BOARDINFO |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_TEXT_BASE		0x97800000 |  | ||||||
| 
 |  | ||||||
| #define	CONFIG_SYS_ICACHE_OFF |  | ||||||
| #define	CONFIG_SYS_DCACHE_OFF |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Bootloader Components Configuration |  | ||||||
|  */ |  | ||||||
| #define CONFIG_CMD_SPI |  | ||||||
| #define CONFIG_CMD_SF |  | ||||||
| #define CONFIG_CMD_MMC |  | ||||||
| #define CONFIG_CMD_FAT |  | ||||||
| #define CONFIG_CMD_EXT2 |  | ||||||
| #define CONFIG_CMD_IDE |  | ||||||
| #define CONFIG_CMD_DATE |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Environmental settings |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_ENV_OFFSET		(6 * 64 * 1024) |  | ||||||
| #define CONFIG_ENV_SECT_SIZE		(1 * 64 * 1024) |  | ||||||
| #define CONFIG_ENV_SIZE			(4 * 1024) |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * ATAG setup |  | ||||||
|  */ |  | ||||||
| #define CONFIG_CMDLINE_TAG		/* enable passing of ATAGs */ |  | ||||||
| #define CONFIG_REVISION_TAG |  | ||||||
| #define CONFIG_SETUP_MEMORY_TAGS |  | ||||||
| #define CONFIG_INITRD_TAG |  | ||||||
| 
 |  | ||||||
| #define CONFIG_OF_LIBFDT		1 |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Size of malloc() pool |  | ||||||
|  */ |  | ||||||
| #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024) |  | ||||||
| 
 |  | ||||||
| #define CONFIG_BOARD_EARLY_INIT_F |  | ||||||
| #define CONFIG_BOARD_LATE_INIT |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Hardware drivers |  | ||||||
|  */ |  | ||||||
| #define CONFIG_MXC_UART |  | ||||||
| #define CONFIG_MXC_UART_BASE		UART1_BASE |  | ||||||
| #define CONFIG_CONS_INDEX		1 |  | ||||||
| #define CONFIG_BAUDRATE			115200 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_MXC_GPIO |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * SPI Interface |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_CMD_SPI |  | ||||||
| 
 |  | ||||||
| #define CONFIG_HARD_SPI |  | ||||||
| #define CONFIG_MXC_SPI |  | ||||||
| #define CONFIG_DEFAULT_SPI_BUS		1 |  | ||||||
| #define CONFIG_DEFAULT_SPI_MODE		(SPI_MODE_0 | SPI_CS_HIGH) |  | ||||||
| 
 |  | ||||||
| /* SPI FLASH */ |  | ||||||
| #ifdef CONFIG_CMD_SF |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SPI_FLASH_SST |  | ||||||
| #define CONFIG_SF_DEFAULT_CS		1 |  | ||||||
| #define CONFIG_SF_DEFAULT_MODE		(SPI_MODE_0) |  | ||||||
| #define CONFIG_SF_DEFAULT_SPEED		25000000 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_ENV_SPI_CS		CONFIG_SF_DEFAULT_CS |  | ||||||
| #define CONFIG_ENV_SPI_BUS		0 |  | ||||||
| #define CONFIG_ENV_SPI_MAX_HZ		25000000 |  | ||||||
| #define CONFIG_ENV_SPI_MODE		(SPI_MODE_0) |  | ||||||
| #define CONFIG_FSL_ENV_IN_SF |  | ||||||
| #define CONFIG_ENV_IS_IN_SPI_FLASH |  | ||||||
| #define CONFIG_SYS_NO_FLASH |  | ||||||
| 
 |  | ||||||
| #else |  | ||||||
| #define CONFIG_ENV_IS_NOWHERE |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /* SPI PMIC */ |  | ||||||
| #define CONFIG_POWER |  | ||||||
| #define CONFIG_POWER_SPI |  | ||||||
| #define CONFIG_POWER_FSL |  | ||||||
| #define CONFIG_FSL_PMIC_BUS		0 |  | ||||||
| #define CONFIG_FSL_PMIC_CS		(0 | 120 << 8) |  | ||||||
| #define CONFIG_FSL_PMIC_CLK		25000000 |  | ||||||
| #define CONFIG_FSL_PMIC_MODE		(SPI_MODE_0 | SPI_CS_HIGH) |  | ||||||
| #define CONFIG_FSL_PMIC_BITLEN	32 |  | ||||||
| #define CONFIG_RTC_MC13XXX |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * MMC Configs |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_CMD_MMC |  | ||||||
| #define CONFIG_MMC |  | ||||||
| #define CONFIG_GENERIC_MMC |  | ||||||
| #define CONFIG_FSL_ESDHC |  | ||||||
| #define CONFIG_SYS_FSL_ESDHC_ADDR	0 |  | ||||||
| #define CONFIG_SYS_FSL_ESDHC_NUM	2 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * ATA/IDE |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_CMD_IDE |  | ||||||
| #define CONFIG_LBA48 |  | ||||||
| #undef CONFIG_IDE_LED |  | ||||||
| #undef CONFIG_IDE_RESET |  | ||||||
| 
 |  | ||||||
| #define CONFIG_MX51_PATA |  | ||||||
| 
 |  | ||||||
| #define __io |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_IDE_MAXBUS		1 |  | ||||||
| #define CONFIG_SYS_IDE_MAXDEVICE	1 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_ATA_BASE_ADDR	0x83fe0000 |  | ||||||
| #define CONFIG_SYS_ATA_IDE0_OFFSET	0x0 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_ATA_DATA_OFFSET	0xa0 |  | ||||||
| #define CONFIG_SYS_ATA_REG_OFFSET	0xa0 |  | ||||||
| #define CONFIG_SYS_ATA_ALT_OFFSET	0xd8 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_ATA_STRIDE		4 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_IDE_PREINIT |  | ||||||
| #define CONFIG_MXC_ATA_PIO_MODE		4 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * USB |  | ||||||
|  */ |  | ||||||
| #define	CONFIG_CMD_USB |  | ||||||
| #ifdef	CONFIG_CMD_USB |  | ||||||
| #define	CONFIG_USB_EHCI			/* Enable EHCI USB support */ |  | ||||||
| #define	CONFIG_USB_EHCI_MX5 |  | ||||||
| #define	CONFIG_USB_ULPI |  | ||||||
| #define	CONFIG_USB_ULPI_VIEWPORT |  | ||||||
| #define	CONFIG_MXC_USB_PORT	1 |  | ||||||
| #if	(CONFIG_MXC_USB_PORT == 0) |  | ||||||
| #define	CONFIG_MXC_USB_PORTSC	(1 << 28) |  | ||||||
| #define	CONFIG_MXC_USB_FLAGS	MXC_EHCI_INTERNAL_PHY |  | ||||||
| #else |  | ||||||
| #define	CONFIG_MXC_USB_PORTSC	(2 << 30) |  | ||||||
| #define	CONFIG_MXC_USB_FLAGS	0 |  | ||||||
| #endif |  | ||||||
| #define	CONFIG_EHCI_IS_TDI |  | ||||||
| #define	CONFIG_USB_STORAGE |  | ||||||
| #define	CONFIG_USB_HOST_ETHER |  | ||||||
| #define	CONFIG_USB_KEYBOARD |  | ||||||
| #define	CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP |  | ||||||
| #define CONFIG_PREBOOT |  | ||||||
| /* USB NET */ |  | ||||||
| #ifdef	CONFIG_CMD_NET |  | ||||||
| #define	CONFIG_USB_ETHER_ASIX |  | ||||||
| #define	CONFIG_CMD_PING |  | ||||||
| #define	CONFIG_CMD_DHCP |  | ||||||
| #endif |  | ||||||
| #endif /* CONFIG_CMD_USB */ |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Filesystems |  | ||||||
|  */ |  | ||||||
| #ifdef CONFIG_CMD_FAT |  | ||||||
| #define CONFIG_DOS_PARTITION |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  * Miscellaneous configurable options |  | ||||||
|  */ |  | ||||||
| #define CONFIG_ENV_OVERWRITE |  | ||||||
| #define CONFIG_BOOTDELAY		3 |  | ||||||
| #define CONFIG_LOADADDR			0x90800000 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_LONGHELP		/* undef to save memory */ |  | ||||||
| #define CONFIG_SYS_HUSH_PARSER		/* use "hush" command parser */ |  | ||||||
| #define CONFIG_AUTO_COMPLETE |  | ||||||
| #define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size */ |  | ||||||
| /* Print Buffer Size */ |  | ||||||
| #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) |  | ||||||
| #define CONFIG_SYS_MAXARGS		16	/* max number of command args */ |  | ||||||
| #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */ |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_MEMTEST_START	0x90000000 |  | ||||||
| #define CONFIG_SYS_MEMTEST_END		0x90010000 |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR |  | ||||||
| 
 |  | ||||||
| #define CONFIG_CMDLINE_EDITING |  | ||||||
| 
 |  | ||||||
| /*-----------------------------------------------------------------------
 |  | ||||||
|  * Physical Memory Map |  | ||||||
|  */ |  | ||||||
| #define CONFIG_NR_DRAM_BANKS		1 |  | ||||||
| #define PHYS_SDRAM_1			CSD0_BASE_ADDR |  | ||||||
| #define PHYS_SDRAM_1_SIZE		(512 * 1024 * 1024) |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_SDRAM_BASE		(PHYS_SDRAM_1) |  | ||||||
| #define CONFIG_SYS_INIT_RAM_ADDR	(IRAM_BASE_ADDR) |  | ||||||
| #define CONFIG_SYS_INIT_RAM_SIZE	(IRAM_SIZE) |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_INIT_SP_OFFSET \ |  | ||||||
| 	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) |  | ||||||
| #define CONFIG_SYS_INIT_SP_ADDR \ |  | ||||||
| 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) |  | ||||||
| 
 |  | ||||||
| #define CONFIG_SYS_DDR_CLKSEL		0 |  | ||||||
| #define CONFIG_SYS_CLKTL_CBCDR		0x59E35145 |  | ||||||
| #define CONFIG_SYS_MAIN_PWR_ON |  | ||||||
| 
 |  | ||||||
| #endif |  | ||||||
		Loading…
	
		Reference in New Issue