[PATCHv3 6/6] omap5: uevm: convert to device model

Tero Kristo t-kristo at ti.com
Tue Jun 16 10:03:10 CEST 2020


Convert omap5 uevm board to device model.

Signed-off-by: Tero Kristo <t-kristo at ti.com>
---
v3:
  * dropped SPI support

 arch/arm/dts/omap5-u-boot.dtsi | 42 ++++++++++++++++++
 board/ti/omap5_uevm/evm.c      | 78 +++++-----------------------------
 configs/omap5_uevm_defconfig   | 13 ++++--
 3 files changed, 62 insertions(+), 71 deletions(-)

diff --git a/arch/arm/dts/omap5-u-boot.dtsi b/arch/arm/dts/omap5-u-boot.dtsi
index 39071e223d..5a1c7bc9fe 100644
--- a/arch/arm/dts/omap5-u-boot.dtsi
+++ b/arch/arm/dts/omap5-u-boot.dtsi
@@ -7,6 +7,7 @@
  * Based on "dra7.dtsi"
  */
 
+#ifdef CONFIG_DRA7XX
 /{
 	chosen {
 		tick-timer = &timer2;
@@ -105,3 +106,44 @@
 &i2c1 {
 	u-boot,dm-spl;
 };
+
+#else /* OMAP54XX */
+&l4_cfg {
+	segment at 0 {
+		/* SCM Core */
+		target-module at 2000 {
+			compatible = "simple-bus";
+		};
+
+		/* USB HS */
+		target-module at 64000 {
+			compatible = "simple-bus";
+		};
+	};
+};
+
+&l4_per {
+	segment at 0 {
+		/* UART3 */
+		target-module at 20000 {
+			compatible = "simple-bus";
+		};
+
+		/* I2C1 */
+		target-module at 70000 {
+			compatible = "simple-bus";
+		};
+
+		/* MMC1 */
+		target-module at 9c000 {
+			compatible = "simple-bus";
+		};
+
+		/* MMC2 */
+		target-module at b4000 {
+			compatible = "simple-bus";
+		};
+	};
+};
+
+#endif
diff --git a/board/ti/omap5_uevm/evm.c b/board/ti/omap5_uevm/evm.c
index e35f319b46..319bb6aa64 100644
--- a/board/ti/omap5_uevm/evm.c
+++ b/board/ti/omap5_uevm/evm.c
@@ -12,6 +12,7 @@
 #include <asm/arch/omap.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/arch/mmc_host_def.h>
+#include <serial.h>
 #include <tca642x.h>
 #include <usb.h>
 #include <linux/delay.h>
@@ -149,39 +150,21 @@ int board_init(void)
 	return 0;
 }
 
-int board_eth_init(bd_t *bis)
+#if defined(CONFIG_SPL_OS_BOOT)
+int spl_start_uboot(void)
 {
+	/* break into full u-boot on 'c' */
+	if (serial_tstc() && serial_getc() == 'c')
+		return 1;
+
 	return 0;
 }
+#endif /* CONFIG_SPL_OS_BOOT */
 
-#if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_XHCI_OMAP)
-static void enable_host_clocks(void)
+int board_eth_init(bd_t *bis)
 {
-	int auxclk;
-	int hs_clk_ctrl_val = (OPTFCLKEN_HSIC60M_P3_CLK |
-				OPTFCLKEN_HSIC480M_P3_CLK |
-				OPTFCLKEN_HSIC60M_P2_CLK |
-				OPTFCLKEN_HSIC480M_P2_CLK |
-				OPTFCLKEN_UTMI_P3_CLK | OPTFCLKEN_UTMI_P2_CLK);
-
-	/* Enable port 2 and 3 clocks*/
-	setbits_le32((*prcm)->cm_l3init_hsusbhost_clkctrl, hs_clk_ctrl_val);
-
-	/* Enable port 2 and 3 usb host ports tll clocks*/
-	setbits_le32((*prcm)->cm_l3init_hsusbtll_clkctrl,
-			(OPTFCLKEN_USB_CH1_CLK_ENABLE | OPTFCLKEN_USB_CH2_CLK_ENABLE));
-#ifdef CONFIG_USB_XHCI_OMAP
-	/* Enable the USB OTG Super speed clocks */
-	setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl,
-			(OPTFCLKEN_REFCLK960M | OTG_SS_CLKCTRL_MODULEMODE_HW));
-#endif
-
-	auxclk = readl((*prcm)->scrm_auxclk1);
-	/* Request auxilary clock */
-	auxclk |= AUXCLK_ENABLE_MASK;
-	writel(auxclk, (*prcm)->scrm_auxclk1);
+	return 0;
 }
-#endif
 
 /**
  * @brief misc_init_r - Configure EVM board specific configurations
@@ -223,45 +206,6 @@ int board_mmc_init(bd_t *bis)
 }
 #endif
 
-#ifdef CONFIG_USB_EHCI_HCD
-static struct omap_usbhs_board_data usbhs_bdata = {
-	.port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
-	.port_mode[1] = OMAP_EHCI_PORT_MODE_HSIC,
-	.port_mode[2] = OMAP_EHCI_PORT_MODE_HSIC,
-};
-
-int ehci_hcd_init(int index, enum usb_init_type init,
-		struct ehci_hccr **hccr, struct ehci_hcor **hcor)
-{
-	int ret;
-
-	enable_host_clocks();
-
-	ret = omap_ehci_hcd_init(index, &usbhs_bdata, hccr, hcor);
-	if (ret < 0) {
-		puts("Failed to initialize ehci\n");
-		return ret;
-	}
-
-	return 0;
-}
-
-int ehci_hcd_stop(void)
-{
-	return omap_ehci_hcd_stop();
-}
-
-void usb_hub_reset_devices(struct usb_hub_device *hub, int port)
-{
-	/* The LAN9730 needs to be reset after the port power has been set. */
-	if (port == 3) {
-		gpio_direction_output(CONFIG_OMAP_EHCI_PHY3_RESET_GPIO, 0);
-		udelay(10);
-		gpio_direction_output(CONFIG_OMAP_EHCI_PHY3_RESET_GPIO, 1);
-	}
-}
-#endif
-
 #ifdef CONFIG_USB_XHCI_OMAP
 /**
  * @brief board_usb_init - Configure EVM board specific configurations
@@ -276,8 +220,6 @@ int board_usb_init(int index, enum usb_init_type init)
 	ret = palmas_enable_ss_ldo();
 #endif
 
-	enable_host_clocks();
-
 	return 0;
 }
 #endif
diff --git a/configs/omap5_uevm_defconfig b/configs/omap5_uevm_defconfig
index 487f7f305c..0029e70439 100644
--- a/configs/omap5_uevm_defconfig
+++ b/configs/omap5_uevm_defconfig
@@ -2,6 +2,7 @@ CONFIG_ARM=y
 CONFIG_ARCH_OMAP2PLUS=y
 CONFIG_OMAP54XX=y
 CONFIG_TARGET_OMAP5_UEVM=y
+CONFIG_DEFAULT_DEVICE_TREE="omap5-uevm"
 CONFIG_OMAP_PLATFORM_RESET_TIME_MAX_USEC=16296
 CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0x280000
@@ -10,6 +11,7 @@ CONFIG_SPL_TEXT_BASE=0x40300000
 CONFIG_DISTRO_DEFAULTS=y
 # CONFIG_USE_BOOTCOMMAND is not set
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
+CONFIG_DEFAULT_FDT_FILE="omap5-uevm.dtb"
 CONFIG_VERSION_VARIABLE=y
 # CONFIG_SPL_NAND_SUPPORT is not set
 CONFIG_SPL_OS_BOOT=y
@@ -20,14 +22,17 @@ CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
-CONFIG_CMD_SPI=y
 CONFIG_CMD_USB=y
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_DM=y
+CONFIG_DM_MMC=y
+CONFIG_AHCI=y
 CONFIG_SCSI_AHCI=y
 CONFIG_DFU_MMC=y
 CONFIG_DFU_RAM=y
@@ -37,9 +42,9 @@ CONFIG_MMC_OMAP_HS=y
 CONFIG_SCSI=y
 CONFIG_CONS_INDEX=3
 CONFIG_SYS_NS16550=y
-CONFIG_SPI=y
-CONFIG_OMAP3_SPI=y
+# CONFIG_SPI is not set
 CONFIG_USB=y
+CONFIG_DM_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_OMAP=y
@@ -53,3 +58,5 @@ CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_SMSC95XX=y
 CONFIG_FAT_WRITE=y
 CONFIG_OF_LIBFDT=y
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_DM_ETH=y
-- 
2.17.1

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki


More information about the U-Boot mailing list