All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aswath Govindraju <a-govindraju@ti.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>,
	Praneeth Bajjuri <praneeth@ti.com>,
	Aswath Govindraju <a-govindraju@ti.com>,
	Lokesh Vutla <lokeshvutla@ti.com>,
	Dave Gerlach <d-gerlach@ti.com>, Nishanth Menon <nm@ti.com>,
	Vignesh Raghavendra <vigneshr@ti.com>, Suman Anna <s-anna@ti.com>,
	Keerthy <j-keerthy@ti.com>, <u-boot@lists.denx.de>
Subject: [PATCH v3 03/10] arm: mach-k3: am642_init: Do USB fixups to facilitate host and device boot modes
Date: Fri, 4 Jun 2021 22:00:33 +0530	[thread overview]
Message-ID: <20210604163043.12811-4-a-govindraju@ti.com> (raw)
In-Reply-To: <20210604163043.12811-1-a-govindraju@ti.com>

U-Boot either supports USB host or device mode for a node at a time in the
device tree nodes. To support both host and dfu bootmodes, dr_mode is set
to "peripheral" by default and then fixed based on the mode selected by
the boot mode config dip switches on the board.

This needs to happen before the cdns3 generic layer binds the usb device
to a host or a device driver. Therefore, use fdtdec_setup_board()
implementation to fixup the device tree property.

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---
 arch/arm/mach-k3/am642_init.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/arch/arm/mach-k3/am642_init.c b/arch/arm/mach-k3/am642_init.c
index 1a2bc4bb9048..579dbacb7e48 100644
--- a/arch/arm/mach-k3/am642_init.c
+++ b/arch/arm/mach-k3/am642_init.c
@@ -8,6 +8,7 @@
  */
 
 #include <common.h>
+#include <fdt_support.h>
 #include <spl.h>
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
@@ -106,6 +107,38 @@ void do_dt_magic(void)
 }
 #endif
 
+#if CONFIG_IS_ENABLED(USB_STORAGE)
+static int fixup_usb_boot(const void *fdt_blob)
+{
+	int ret = 0;
+
+	switch (spl_boot_device()) {
+	case BOOT_DEVICE_USB:
+		/*
+		 * If the boot mode is host, fixup the dr_mode to host
+		 * before cdns3 bind takes place
+		 */
+		ret = fdt_find_and_setprop((void *)fdt_blob,
+					   "/bus@f4000/cdns-usb@f900000/usb@f400000",
+					   "dr_mode", "host", 5, 0);
+		if (ret)
+			printf("%s: fdt_find_and_setprop() failed:%d\n",
+			       __func__, ret);
+		fallthrough;
+	default:
+		break;
+	}
+
+	return ret;
+}
+
+int fdtdec_board_setup(const void *fdt_blob)
+{
+	/* Can use the pointer from the function parameters */
+	return fixup_usb_boot(fdt_blob);
+}
+#endif
+
 void board_init_f(ulong dummy)
 {
 #if defined(CONFIG_K3_LOAD_SYSFW)
-- 
2.17.1


  parent reply	other threads:[~2021-06-04 16:31 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-04 16:30 [PATCH v3 00/10] AM642-EVM: Add USB support Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 01/10] tools: k3_fit_atf: Add support for providing ATF load address using a Kconfig symbol Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 02/10] arm: mach-k3: am642_init: Add support for USB boot mode Aswath Govindraju
2021-06-04 16:30 ` Aswath Govindraju [this message]
2021-06-04 16:30 ` [PATCH v3 04/10] board: ti: am64x: Set the core voltage of USB PHY to 0.85V Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 05/10] arm: dts: k3-am64-main: Add USB DT nodes Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 06/10] arm: dts: k3-am642-*-evm: Add USB support Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 07/10] arm: dts: k3-am642-evm-u-boot: Add U-Boot tags and fix the dr_mode to peripheral for USB subsystem Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 08/10] configs: am64x_evm_*_defconfig: Rearrange the components in SRAM to satisfy the limitations for USB DFU boot mode Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 09/10] arm: dts: k3-am64-main: Update the location of ATF in SRAM and increase its max size Aswath Govindraju
2021-06-04 16:30 ` [PATCH v3 10/10] configs: am64: Enable configs to support USB host and device modes Aswath Govindraju
2021-06-04 16:48 ` [PATCH v3 00/10] AM642-EVM: Add USB support Praneeth Bajjuri
2021-06-04 16:49   ` Aswath Govindraju
2021-06-04 16:53     ` Praneeth Bajjuri
2021-06-07  4:16       ` Praneeth Bajjuri
2021-06-09 12:30 ` Aswath Govindraju
2021-06-09 16:55 ` Lokesh Vutla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210604163043.12811-4-a-govindraju@ti.com \
    --to=a-govindraju@ti.com \
    --cc=d-gerlach@ti.com \
    --cc=j-keerthy@ti.com \
    --cc=kishon@ti.com \
    --cc=lokeshvutla@ti.com \
    --cc=nm@ti.com \
    --cc=praneeth@ti.com \
    --cc=s-anna@ti.com \
    --cc=u-boot@lists.denx.de \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.