mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-28 09:03:52 +01:00 
			
		
		
		
	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:
		| @@ -493,10 +493,6 @@ config TARGET_MX53SMD | ||||
| 	bool "Support mx53smd" | ||||
| 	select CPU_V7 | ||||
|  | ||||
| config TARGET_MX51_EFIKAMX | ||||
| 	bool "Support mx51_efikamx" | ||||
| 	select CPU_V7 | ||||
|  | ||||
| config TARGET_VISION2 | ||||
| 	bool "Support vision2" | ||||
| 	select CPU_V7 | ||||
| @@ -801,7 +797,6 @@ source "board/freescale/mx53evk/Kconfig" | ||||
| source "board/freescale/mx53loco/Kconfig" | ||||
| source "board/freescale/mx53smd/Kconfig" | ||||
| source "board/freescale/vf610twr/Kconfig" | ||||
| source "board/genesi/mx51_efikamx/Kconfig" | ||||
| source "board/gumstix/pepper/Kconfig" | ||||
| source "board/h2200/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 | ||||
		Reference in New Issue
	
	Block a user