ARM: LogicPD: omap3logic: Remove Torpedo/SOM-LV autodection

With there now being four device tree files, and 4 separate
defconfig files, the code necessary to determine which board is
being used is no longer necessary as the corresponding pin-muxing
and board names are determined by the device tree.

Signed-off-by: Adam Ford <aford173@gmail.com>
lime2-spi
Adam Ford 6 years ago committed by Tom Rini
parent 5ad4212ce0
commit 46580f2fd5
  1. 20
      board/logicpd/omap3som/README
  2. 90
      board/logicpd/omap3som/omap3logic.c
  3. 1
      include/configs/omap3_logic.h

@ -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
=========================

@ -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

@ -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} ...; " \

Loading…
Cancel
Save