diff --git a/board/logicpd/omap3som/README b/board/logicpd/omap3som/README index b77b3d6..5aaf58f 100644 --- a/board/logicpd/omap3som/README +++ b/board/logicpd/omap3som/README @@ -1,21 +1,15 @@ Summary ======= -The source for omap3som encompases the DM3730 SOM-LV and DM3730 Torpedo platforms. +The source for omap3logic.c encompases the OMAP35 and DM3730 SOM-LV and DM3730 Torpedo platforms, but there are device trees custom taylored to each board. -By default, the Torpedo Device Tree is integrated into U-Boot,but the MMC controller, GPIO and I2C controllers are the same, so for the purposes of loading U-Boot, it should be sufficient. However this will display the Model as "LogicPD Zoom DM3730 Torpedo + Wireless Development Kit" upon boot. +omap3_logic_defconfig = DM37 Torpedo / Torpedo + Wireless +omap35_logic_defconfig = OMAP35 Torpedo +omap3_logic_somlv_defconfig = DM37 SOM-LV +omap35_logic_somlv_defconfig = OMAP35 SOM-LV -The actual board remains autodetected and the Board will read "DM37xx SOM LV" when used on the DM37 SOM-LV. The device tree loaded with Linux is also correct. - -Integrating the SOM-LV Device Tree into U-Boot -============================================== - -This step is optional, but should you want to change the default to the SOM-LV, locate the configs/omap3_logic_defconfig file and make the following change. - - CONFIG_DEFAULT_DEVICE_TREE="logicpd-som-lv-37xx-devkit" - - make distclean - make omap3_logic_defconfig +The device tree included with each of the defconfig files will also direct the board as to which dtb file to load when loading the kernel, so it is not +recomended to mix and match the defconfig files. Falcon Mode: FAT SD cards ========================= diff --git a/board/logicpd/omap3som/omap3logic.c b/board/logicpd/omap3som/omap3logic.c index 48d8869..4507b1e 100644 --- a/board/logicpd/omap3som/omap3logic.c +++ b/board/logicpd/omap3som/omap3logic.c @@ -70,40 +70,6 @@ U_BOOT_DEVICE(am335x_mmc0) = { #endif -/* - * two dimensional array of strucures containining board name and Linux - * machine IDs; row it selected based on CPU column is slected based - * on hsusb0_data5 pin having a pulldown resistor - */ -static struct board_id { - char *name; - int machine_id; - char *fdtfile; -} boards[2][2] = { - { - { - .name = "OMAP35xx SOM LV", - .machine_id = MACH_TYPE_OMAP3530_LV_SOM, - .fdtfile = "logicpd-som-lv-35xx-devkit.dtb", - }, - { - .name = "OMAP35xx Torpedo", - .machine_id = MACH_TYPE_OMAP3_TORPEDO, - .fdtfile = "logicpd-torpedo-35xx-devkit.dtb", - }, - }, - { - { - .name = "DM37xx SOM LV", - .fdtfile = "logicpd-som-lv-37xx-devkit.dtb", - }, - { - .name = "DM37xx Torpedo", - .fdtfile = "logicpd-torpedo-37xx-devkit.dtb", - }, - }, -}; - #ifdef CONFIG_SPL_OS_BOOT int spl_start_uboot(void) { @@ -226,7 +192,6 @@ int ehci_hcd_stop(int index) #endif /* CONFIG_USB_EHCI_HCD */ - /* * Routine: misc_init_r * Description: Configure board specific parts @@ -244,11 +209,6 @@ int misc_init_r(void) } /* - * BOARD_ID_GPIO - GPIO of pin with optional pulldown resistor on SOM LV - */ -#define BOARD_ID_GPIO 189 /* hsusb0_data5 pin */ - -/* * Routine: board_init * Description: Early hardware init. */ @@ -275,54 +235,6 @@ static void unlock_nand(void) int board_late_init(void) { - struct board_id *board; - unsigned int val; - - /* - * To identify between a SOM LV and Torpedo module, - * a pulldown resistor is on hsusb0_data5 for the SOM LV module. - * Drive the pin (and let it soak), then read it back. - * If the pin is still high its a Torpedo. If low its a SOM LV - */ - - /* Mux hsusb0_data5 as a GPIO */ - MUX_VAL(CP(HSUSB0_DATA5), (IEN | PTD | DIS | M4)); - - if (gpio_request(BOARD_ID_GPIO, "husb0_data5.gpio_189") == 0) { - - /* - * Drive BOARD_ID_GPIO - the pulldown resistor on the SOM LV - * will drain the voltage. - */ - gpio_direction_output(BOARD_ID_GPIO, 0); - gpio_set_value(BOARD_ID_GPIO, 1); - - /* Let it soak for a bit */ - sdelay(0x100); - - /* - * Read state of BOARD_ID_GPIO as an input and if its set. - * If so the board is a Torpedo - */ - gpio_direction_input(BOARD_ID_GPIO); - val = gpio_get_value(BOARD_ID_GPIO); - gpio_free(BOARD_ID_GPIO); - - board = &boards[!!(get_cpu_family() == CPU_OMAP36XX)][!!val]; - printf("Board: %s\n", board->name); - - /* Set the machine_id passed to Linux */ - if (board->machine_id) - gd->bd->bi_arch_number = board->machine_id; - - /* If the user has not set fdtimage, set the default */ - if (!env_get("fdtimage")) - env_set("fdtimage", board->fdtfile); - } - - /* restore hsusb0_data5 pin as hsusb0_data5 */ - MUX_VAL(CP(HSUSB0_DATA5), (IEN | PTD | DIS | M0)); - #ifdef CONFIG_CMD_NAND_LOCK_UNLOCK unlock_nand(); #endif @@ -356,5 +268,3 @@ int board_eth_init(bd_t *bis) return smc911x_initialize(0, CONFIG_SMC911X_BASE); } #endif - - diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h index 2cbdbeb..8644e16 100644 --- a/include/configs/omap3_logic.h +++ b/include/configs/omap3_logic.h @@ -116,6 +116,7 @@ "ip=${ipaddr}:${tftpserver}:${gatewayip}:${netmask}::eth0:off\0" \ "nfsrootpath=/opt/nfs-exports/omap\0" \ "autoload=no\0" \ + "fdtimage=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "loadfdt=mmc rescan; " \ "load mmc ${mmcdev} ${fdtaddr} ${fdtimage}\0" \ "mmcbootcommon=echo Booting with DT from mmc${mmcdev} ...; " \