diff options
| -rw-r--r-- | board/olio/h1/h1.c | 340 | ||||
| -rw-r--r-- | include/configs/omap3_h1.h | 8 | 
2 files changed, 30 insertions, 318 deletions
| diff --git a/board/olio/h1/h1.c b/board/olio/h1/h1.c index 59e6a2b70..c266ceae6 100644 --- a/board/olio/h1/h1.c +++ b/board/olio/h1/h1.c @@ -40,36 +40,9 @@  #endif  #define TWL4030_I2C_BUS			0 -#define EXPANSION_EEPROM_I2C_BUS	1 -#define EXPANSION_EEPROM_I2C_ADDRESS	0x50 - -#define TINCANTOOLS_ZIPPY		0x01000100 -#define TINCANTOOLS_ZIPPY2		0x02000100 -#define TINCANTOOLS_TRAINER		0x04000100 -#define TINCANTOOLS_SHOWDOG		0x03000100 -#define KBADC_BEAGLEFPGA		0x01000600 -#define LW_BEAGLETOUCH			0x01000700 -#define BRAINMUX_LCDOG			0x01000800 -#define BRAINMUX_LCDOGTOUCH		0x02000800 -#define BBTOYS_WIFI			0x01000B00 -#define BBTOYS_VGA			0x02000B00 -#define BBTOYS_LCD			0x03000B00 -#define BCT_BRETTL3			0x01000F00 -#define BCT_BRETTL4			0x02000F00 -#define LSR_COM6L_ADPT			0x01001300 -#define BEAGLE_NO_EEPROM		0xffffffff  DECLARE_GLOBAL_DATA_PTR; -static struct { -	unsigned int device_vendor; -	unsigned char revision; -	unsigned char content; -	char fab_revision[8]; -	char env_var[16]; -	char env_setting[64]; -} expansion_config; -  /*   * Routine: board_init   * Description: Early hardware init. @@ -82,48 +55,9 @@ int board_init(void)  	/* boot param addr */  	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100); -#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT) -	status_led_set (STATUS_LED_BOOT, STATUS_LED_ON); -#endif -  	return 0;  } -/* - * Routine: get_board_revision - * Description: Detect if we are running on a Beagle revision Ax/Bx, - *		C1/2/3, C4, xM Ax/Bx or xM Cx. This can be done by reading - *		the level of GPIO173, GPIO172 and GPIO171. This should - *		result in - *		GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx - *		GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3 - *		GPIO173, GPIO172, GPIO171: 1 0 1 => C4 - *		GPIO173, GPIO172, GPIO171: 0 1 0 => xM Cx - *		GPIO173, GPIO172, GPIO171: 0 0 0 => xM Ax/Bx - */ -static int get_board_revision(void) -{ -	int revision; - -	if (!gpio_request(171, "") && -	    !gpio_request(172, "") && -	    !gpio_request(173, "")) { - -		gpio_direction_input(171); -		gpio_direction_input(172); -		gpio_direction_input(173); - -		revision = gpio_get_value(173) << 2 | -			   gpio_get_value(172) << 1 | -			   gpio_get_value(171); -	} else { -		printf("Error: unable to acquire board revision GPIOs\n"); -		revision = -1; -	} - -	return revision; -} -  #ifdef CONFIG_SPL_BUILD  /*   * Routine: get_board_mem_timings @@ -142,47 +76,13 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)  	identify_nand_chip(&pop_mfr, &pop_id);  	timings->mr = MICRON_V_MR_165; -	switch (get_board_revision()) { -	case REVISION_C4: -		if (pop_mfr == NAND_MFR_STMICRO && pop_id == 0xba) { -			/* 512MB DDR */ -			timings->mcfg = NUMONYX_V_MCFG_165(512 << 20); -			timings->ctrla = NUMONYX_V_ACTIMA_165; -			timings->ctrlb = NUMONYX_V_ACTIMB_165; -			timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_165MHz; -			break; -		} else if (pop_mfr == NAND_MFR_MICRON && pop_id == 0xba) { -			/* Beagleboard Rev C4, 512MB Nand/256MB DDR*/ -			timings->mcfg = MICRON_V_MCFG_165(128 << 20); -			timings->ctrla = MICRON_V_ACTIMA_165; -			timings->ctrlb = MICRON_V_ACTIMB_165; -			timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_165MHz; -			break; -		} else if (pop_mfr == NAND_MFR_MICRON && pop_id == 0xbc) { -			/* Beagleboard Rev C5, 256MB DDR */ -			timings->mcfg = MICRON_V_MCFG_200(256 << 20); -			timings->ctrla = MICRON_V_ACTIMA_200; -			timings->ctrlb = MICRON_V_ACTIMB_200; -			timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz; -			break; -		} -	case REVISION_XM_AB: -	case REVISION_XM_C: -		if (pop_mfr == 0) { -			/* 256MB DDR */ -			timings->mcfg = MICRON_V_MCFG_200(256 << 20); -			timings->ctrla = MICRON_V_ACTIMA_200; -			timings->ctrlb = MICRON_V_ACTIMB_200; -			timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz; -		} else { -			/* 512MB DDR */ -			timings->mcfg = NUMONYX_V_MCFG_165(512 << 20); -			timings->ctrla = NUMONYX_V_ACTIMA_165; -			timings->ctrlb = NUMONYX_V_ACTIMB_165; -			timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_165MHz; -		} -		break; -	default: +	if (pop_mfr == 0) { +		/* 256MB DDR */ +		timings->mcfg = MICRON_V_MCFG_200(256 << 20); +		timings->ctrla = MICRON_V_ACTIMA_200; +		timings->ctrlb = MICRON_V_ACTIMB_200; +		timings->rfr_ctrl = SDP_3430_SDRC_RFR_CTRL_200MHz; +	} else {  		/* Assume 128MB and Micron/165MHz timings to be safe */  		timings->mcfg = MICRON_V_MCFG_165(128 << 20);  		timings->ctrla = MICRON_V_ACTIMA_165; @@ -192,39 +92,6 @@ void get_board_mem_timings(struct board_sdrc_timings *timings)  }  #endif -/* - * Routine: get_expansion_id - * Description: This function checks for expansion board by checking I2C - *		bus 1 for the availability of an AT24C01B serial EEPROM. - *		returns the device_vendor field from the EEPROM - */ -static unsigned int get_expansion_id(void) -{ -	i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS); - -	/* return BEAGLE_NO_EEPROM if eeprom doesn't respond */ -	if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) { -		i2c_set_bus_num(TWL4030_I2C_BUS); -		return BEAGLE_NO_EEPROM; -	} - -	/* read configuration data */ -	i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, -		 sizeof(expansion_config)); - -	/* retry reading configuration data with 16bit addressing */ -	if ((expansion_config.device_vendor == 0xFFFFFF00) || -	    (expansion_config.device_vendor == 0xFFFFFFFF)) { -		printf("EEPROM is blank or 8bit addressing failed: retrying with 16bit:\n"); -		i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 2, (u8 *)&expansion_config, -			 sizeof(expansion_config)); -	} - -	i2c_set_bus_num(TWL4030_I2C_BUS); - -	return expansion_config.device_vendor; -} -  #ifdef CONFIG_VIDEO_OMAP3  /*   * Configure DSS to display background color on DVID @@ -233,18 +100,7 @@ static unsigned int get_expansion_id(void)  static void beagle_display_init(void)  {  	omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH); -	switch (get_board_revision()) { -	case REVISION_AXBX: -	case REVISION_CX: -	case REVISION_C4: -		omap3_dss_panel_config(&dvid_cfg); -		break; -	case REVISION_XM_AB: -	case REVISION_XM_C: -	default: -		omap3_dss_panel_config(&dvid_cfg_xm); -		break; -	} +	omap3_dss_panel_config(&dvid_cfg_xm);  }  /* @@ -253,30 +109,16 @@ static void beagle_display_init(void)  static void beagle_dvi_pup(void)  {  	uchar val; +	#define GPIODATADIR1 (TWL4030_BASEADD_GPIO+3) +	#define GPIODATAOUT1 (TWL4030_BASEADD_GPIO+6) -	switch (get_board_revision()) { -	case REVISION_AXBX: -	case REVISION_CX: -	case REVISION_C4: -		gpio_request(170, ""); -		gpio_direction_output(170, 0); -		gpio_set_value(170, 1); -		break; -	case REVISION_XM_AB: -	case REVISION_XM_C: -	default: -		#define GPIODATADIR1 (TWL4030_BASEADD_GPIO+3) -		#define GPIODATAOUT1 (TWL4030_BASEADD_GPIO+6) - -		i2c_read(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1); -		val |= 4; -		i2c_write(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1); +	i2c_read(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1); +	val |= 4; +	i2c_write(TWL4030_CHIP_GPIO, GPIODATADIR1, 1, &val, 1); -		i2c_read(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1); -		val |= 4; -		i2c_write(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1); -		break; -	} +	i2c_read(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1); +	val |= 4; +	i2c_write(TWL4030_CHIP_GPIO, GPIODATAOUT1, 1, &val, 1);  }  #endif @@ -319,149 +161,19 @@ int misc_init_r(void)  	/* Enable i2c2 pullup resisters */  	writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); +	printf("Olio H1\n"); +	setenv("beaglerev", "xMC"); +	MUX_BEAGLE_XM(); +	/* Set VAUX2 to 1.8V for EHCI PHY */ +	twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, +				TWL4030_PM_RECEIVER_VAUX2_VSEL_18, +				TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, +				TWL4030_PM_RECEIVER_DEV_GRP_P1); -	switch (get_board_revision()) { -	case REVISION_AXBX: -		printf("Beagle Rev Ax/Bx\n"); -		setenv("beaglerev", "AxBx"); -		break; -	case REVISION_CX: -		printf("Beagle Rev C1/C2/C3\n"); -		setenv("beaglerev", "Cx"); -		MUX_BEAGLE_C(); -		break; -	case REVISION_C4: -		printf("Beagle Rev C4\n"); -		setenv("beaglerev", "C4"); -		MUX_BEAGLE_C(); -		/* Set VAUX2 to 1.8V for EHCI PHY */ -		twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -					TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -					TWL4030_PM_RECEIVER_DEV_GRP_P1); -		break; -	case REVISION_XM_AB: -		printf("Beagle xM Rev A/B\n"); -		setenv("beaglerev", "xMAB"); -		MUX_BEAGLE_XM(); -		/* Set VAUX2 to 1.8V for EHCI PHY */ -		twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -					TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -					TWL4030_PM_RECEIVER_DEV_GRP_P1); -		break; -	case REVISION_XM_C: -		printf("Beagle xM Rev C\n"); -		setenv("beaglerev", "xMC"); -		MUX_BEAGLE_XM(); -		/* Set VAUX2 to 1.8V for EHCI PHY */ -		twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -					TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -					TWL4030_PM_RECEIVER_DEV_GRP_P1); -		break; -	default: -		printf("Beagle unknown 0x%02x\n", get_board_revision()); -		MUX_BEAGLE_XM(); -		/* Set VAUX2 to 1.8V for EHCI PHY */ -		twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -					TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -					TWL4030_PM_RECEIVER_DEV_GRP_P1); -	} - -	switch (get_expansion_id()) { -	case TINCANTOOLS_ZIPPY: -		printf("Recognized Tincantools Zippy board (rev %d %s)\n", -			expansion_config.revision, -			expansion_config.fab_revision); -		MUX_TINCANTOOLS_ZIPPY(); -		setenv("buddy", "zippy"); -		break; -	case TINCANTOOLS_ZIPPY2: -		printf("Recognized Tincantools Zippy2 board (rev %d %s)\n", -			expansion_config.revision, -			expansion_config.fab_revision); -		MUX_TINCANTOOLS_ZIPPY(); -		setenv("buddy", "zippy2"); -		break; -	case TINCANTOOLS_TRAINER: -		printf("Recognized Tincantools Trainer board (rev %d %s)\n", -			expansion_config.revision, -			expansion_config.fab_revision); -		MUX_TINCANTOOLS_ZIPPY(); -		MUX_TINCANTOOLS_TRAINER(); -		setenv("buddy", "trainer"); -		break; -	case TINCANTOOLS_SHOWDOG: -		printf("Recognized Tincantools Showdow board (rev %d %s)\n", -			expansion_config.revision, -			expansion_config.fab_revision); -		/* Place holder for DSS2 definition for showdog lcd */ -		setenv("defaultdisplay", "showdoglcd"); -		setenv("buddy", "showdog"); -		break; -	case KBADC_BEAGLEFPGA: -		printf("Recognized KBADC Beagle FPGA board\n"); -		MUX_KBADC_BEAGLEFPGA(); -		setenv("buddy", "beaglefpga"); -		break; -	case LW_BEAGLETOUCH: -		printf("Recognized Liquidware BeagleTouch board\n"); -		setenv("buddy", "beagletouch"); -		break; -	case BRAINMUX_LCDOG: -		printf("Recognized Brainmux LCDog board\n"); -		setenv("buddy", "lcdog"); -		break; -	case BRAINMUX_LCDOGTOUCH: -		printf("Recognized Brainmux LCDog Touch board\n"); -		setenv("buddy", "lcdogtouch"); -		break; -	case BBTOYS_WIFI: -		printf("Recognized BeagleBoardToys WiFi board\n"); -		MUX_BBTOYS_WIFI() -		setenv("buddy", "bbtoys-wifi"); -		break;; -	case BBTOYS_VGA: -		printf("Recognized BeagleBoardToys VGA board\n"); -		break;; -	case BBTOYS_LCD: -		printf("Recognized BeagleBoardToys LCD board\n"); -		break;; -	case BCT_BRETTL3: -		printf("Recognized bct electronic GmbH brettl3 board\n"); -		break; -	case BCT_BRETTL4: -		printf("Recognized bct electronic GmbH brettl4 board\n"); -		break; -	case LSR_COM6L_ADPT: -		printf("Recognized LSR COM6L Adapter Board\n"); -		MUX_BBTOYS_WIFI() -		setenv("buddy", "lsr-com6l-adpt"); -		break; -	case BEAGLE_NO_EEPROM: -		printf("No EEPROM on expansion board\n"); -		setenv("buddy", "none"); -		break; -	default: -		printf("Unrecognized expansion board: %x\n", -			expansion_config.device_vendor); -		setenv("buddy", "unknown"); -	} - -	if (expansion_config.content == 1) -		setenv(expansion_config.env_var, expansion_config.env_setting); +	setenv("buddy", "none");  	twl4030_power_init(); -	switch (get_board_revision()) { -	case REVISION_XM_AB: -		twl4030_led_init(TWL4030_LED_LEDEN_LEDBON); -		break; -	default: -		twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); -		break; -	} +	twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);  	/* Set GPIO states before they are made outputs */  	writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, diff --git a/include/configs/omap3_h1.h b/include/configs/omap3_h1.h index 265cdc36f..3c7255f39 100644 --- a/include/configs/omap3_h1.h +++ b/include/configs/omap3_h1.h @@ -17,7 +17,7 @@   */  #define CONFIG_OMAP		1	/* in a TI OMAP core */  #define CONFIG_OMAP34XX		1	/* which is a 34XX */ -#define CONFIG_OMAP3_H1	1	/* working with BEAGLE */ +#define CONFIG_OMAP3_H1	1	/* working with H1 board */  #define CONFIG_OMAP_GPIO  #define CONFIG_OMAP_COMMON @@ -190,7 +190,7 @@  							/* devices */  /* Environment information */ -#define CONFIG_BOOTDELAY		3 +#define CONFIG_BOOTDELAY		5  #define CONFIG_EXTRA_ENV_SETTINGS \  	"loadaddr=0x80200000\0" \ @@ -262,7 +262,7 @@  		"root=${ramroot} " \  		"rootfstype=${ramrootfstype}\0" \  	"loadramdisk=load mmc ${bootpart} ${rdaddr} ${bootdir}/${ramdisk}\0" \ -	"loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ +	"loadimage=fatload mmc ${bootpart} ${loadaddr} ${bootfile}\0" \  	"loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \  	"mmcboot=echo Booting from mmc ...; " \  		"run mmcargs; " \ @@ -316,7 +316,7 @@   */  #define CONFIG_SYS_LONGHELP		/* undef to save memory */  #define CONFIG_SYS_HUSH_PARSER		/* use "hush" command parser */ -#define CONFIG_SYS_PROMPT		"OMAP3 beagleboard.org # " +#define CONFIG_SYS_PROMPT		"Olio H1 # "  #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */  /* Print Buffer Size */  #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \ |