* [PATCH 1/2] usb: ulpi: Remove unused omap-ulpi-viewport driver
@ 2025-03-15 1:27 Tom Rini
2025-03-15 1:27 ` [PATCH 2/2] usb: ulpi: Clean up how we enable support Tom Rini
0 siblings, 1 reply; 2+ messages in thread
From: Tom Rini @ 2025-03-15 1:27 UTC (permalink / raw)
To: u-boot; +Cc: Marek Vasut
The last platform to enable this driver was removed in 2019. Remove this
unused code and documentation now.
Signed-off-by: Tom Rini <trini@konsulko.com>
---
Cc: Marek Vasut <marex@denx.de>
---
doc/README.omap-ulpi-viewport | 27 ----------
drivers/usb/ulpi/Kconfig | 5 --
drivers/usb/ulpi/Makefile | 1 -
drivers/usb/ulpi/omap-ulpi-viewport.c | 71 ---------------------------
4 files changed, 104 deletions(-)
delete mode 100644 doc/README.omap-ulpi-viewport
delete mode 100644 drivers/usb/ulpi/omap-ulpi-viewport.c
diff --git a/doc/README.omap-ulpi-viewport b/doc/README.omap-ulpi-viewport
deleted file mode 100644
index a5240b9e2951..000000000000
--- a/doc/README.omap-ulpi-viewport
+++ /dev/null
@@ -1,27 +0,0 @@
-Reference code ""drivers/usb/ulpi/omap-ulpi-viewport.c"
-
-Contains the ulpi read write api's to perform
-any ulpi phy port access on omap platform.
-
-On omap ehci reg map contains INSNREG05_ULPI
-register which offers the ulpi phy access so
-any ulpi phy commands should be passsed using this
-register.
-
-omap-ulpi-viewport.c is a low level function
-implementation of "drivers/usb/ulpi/ulpi.c"
-
-To enable and use omap-ulpi-viewport.c
-we require CONFIG_USB_ULPI_VIEWPORT_OMAP and
-CONFIG_USB_ULPI be enabled in config file.
-
-Any ulpi ops request can be done with ulpi.c
-and soc specific binding and usage is done with
-omap-ulpi-viewport implementation.
-
-Ex: scenario:
-omap-ehci driver code requests for ulpi phy reset if
-ehci is used in phy mode, which will call ulpi phy reset
-the ulpi phy reset does ulpi_read/write from viewport
-implementation which will do ulpi reset using the
-INSNREG05_ULPI register.
diff --git a/drivers/usb/ulpi/Kconfig b/drivers/usb/ulpi/Kconfig
index 001564d40c63..482114d6c11d 100644
--- a/drivers/usb/ulpi/Kconfig
+++ b/drivers/usb/ulpi/Kconfig
@@ -14,11 +14,6 @@ config USB_ULPI_VIEWPORT
Support generic ULPI Viewport implementation that is used on
some Tegra and Snapdragon devices.
-config USB_ULPI_VIEWPORT_OMAP
- bool "OMAP ULPI Viewport"
- help
- Support ULPI Viewport implementation that is used on OMAP devices.
-
endchoice
config USB_ULPI
diff --git a/drivers/usb/ulpi/Makefile b/drivers/usb/ulpi/Makefile
index f05b7743531e..5565948bc12d 100644
--- a/drivers/usb/ulpi/Makefile
+++ b/drivers/usb/ulpi/Makefile
@@ -4,4 +4,3 @@
obj-$(CONFIG_USB_ULPI) += ulpi.o
obj-$(CONFIG_USB_ULPI_VIEWPORT) += ulpi-viewport.o
-obj-$(CONFIG_USB_ULPI_VIEWPORT_OMAP) += omap-ulpi-viewport.o
diff --git a/drivers/usb/ulpi/omap-ulpi-viewport.c b/drivers/usb/ulpi/omap-ulpi-viewport.c
deleted file mode 100644
index 6f0c3eb154ee..000000000000
--- a/drivers/usb/ulpi/omap-ulpi-viewport.c
+++ /dev/null
@@ -1,71 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * OMAP ulpi viewport support
- * Based on drivers/usb/ulpi/ulpi-viewport.c
- *
- * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com
- * Author: Govindraj R <govindraj.raja@ti.com>
- */
-
-#include <log.h>
-#include <asm/io.h>
-#include <linux/delay.h>
-#include <usb/ulpi.h>
-
-#define OMAP_ULPI_WR_OPSEL (2 << 22)
-#define OMAP_ULPI_RD_OPSEL (3 << 22)
-#define OMAP_ULPI_START (1 << 31)
-
-/*
- * Wait for having ulpi in done state
- */
-static int ulpi_wait(struct ulpi_viewport *ulpi_vp, u32 mask)
-{
- int timeout = CFG_USB_ULPI_TIMEOUT;
-
- while (--timeout) {
- if (!(readl(ulpi_vp->viewport_addr) & mask))
- return 0;
-
- udelay(1);
- }
-
- return ULPI_ERROR;
-}
-
-/*
- * Issue a ULPI read/write request
- */
-static int ulpi_request(struct ulpi_viewport *ulpi_vp, u32 value)
-{
- int err;
-
- writel(value, ulpi_vp->viewport_addr);
-
- err = ulpi_wait(ulpi_vp, OMAP_ULPI_START);
- if (err)
- debug("ULPI request timed out\n");
-
- return err;
-}
-
-int ulpi_write(struct ulpi_viewport *ulpi_vp, u8 *reg, u32 value)
-{
- u32 val = OMAP_ULPI_START | (((ulpi_vp->port_num + 1) & 0xf) << 24) |
- OMAP_ULPI_WR_OPSEL | ((u32)reg << 16) | (value & 0xff);
-
- return ulpi_request(ulpi_vp, val);
-}
-
-u32 ulpi_read(struct ulpi_viewport *ulpi_vp, u8 *reg)
-{
- int err;
- u32 val = OMAP_ULPI_START | (((ulpi_vp->port_num + 1) & 0xf) << 24) |
- OMAP_ULPI_RD_OPSEL | ((u32)reg << 16);
-
- err = ulpi_request(ulpi_vp, val);
- if (err)
- return err;
-
- return readl(ulpi_vp->viewport_addr) & 0xff;
-}
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* [PATCH 2/2] usb: ulpi: Clean up how we enable support
2025-03-15 1:27 [PATCH 1/2] usb: ulpi: Remove unused omap-ulpi-viewport driver Tom Rini
@ 2025-03-15 1:27 ` Tom Rini
0 siblings, 0 replies; 2+ messages in thread
From: Tom Rini @ 2025-03-15 1:27 UTC (permalink / raw)
To: u-boot; +Cc: Marek Vasut
The way we enable ULPI support today isn't something that should work.
The "optional" keyword in a choice statement is not a documented
feature. To make this work in a supported way, make USB_ULPI something
we ask about if USB_HOST is set. Next, we move the choice of what
viewer to use to be after the framework portion and to depend on that.
We then borrow a few words from the top-level README to make the help
text here clearer. Finally we make the Qualcomm driver select ULPI as
it's required and we make the tegra driver not duplicate a check that
Kconfig now handles for us.
Signed-off-by: Tom Rini <trini@konsulko.com>
---
Cc: Marek Vasut <marex@denx.de>
---
README | 12 ------------
drivers/usb/host/Kconfig | 7 +++++--
drivers/usb/host/ehci-tegra.c | 7 -------
drivers/usb/ulpi/Kconfig | 23 ++++++++++++-----------
4 files changed, 17 insertions(+), 32 deletions(-)
diff --git a/README b/README
index 067c1ee2b646..1c44e65b29a5 100644
--- a/README
+++ b/README
@@ -482,18 +482,6 @@ The following options need to be configured:
for your device
- CONFIG_USBD_PRODUCTID 0xFFFF
-- ULPI Layer Support:
- The ULPI (UTMI Low Pin (count) Interface) PHYs are supported via
- the generic ULPI layer. The generic layer accesses the ULPI PHY
- via the platform viewport, so you need both the genric layer and
- the viewport enabled. Currently only Chipidea/ARC based
- viewport is supported.
- To enable the ULPI layer support, define CONFIG_USB_ULPI and
- CONFIG_USB_ULPI_VIEWPORT in your board configuration file.
- If your ULPI phy needs a different reference clock than the
- standard 24 MHz then you have to define CFG_ULPI_REF_CLK to
- the appropriate value in Hz.
-
- MMC Support:
CONFIG_SH_MMCIF
Support for Renesas on-chip MMCIF controller
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 3dc79770eeb1..5c9e8fc9d15e 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -262,7 +262,7 @@ endif
config USB_EHCI_MSM
bool "Support for Qualcomm on-chip EHCI USB controller"
depends on DM_USB
- select USB_ULPI_VIEWPORT
+ select USB_ULPI
select MSM8916_USB_PHY
---help---
Enables support for the on-chip EHCI controller on Qualcomm
@@ -279,7 +279,10 @@ config USB_EHCI_TEGRA
depends on ARCH_TEGRA
select USB_EHCI_IS_TDI
---help---
- Enable support for Tegra on-chip EHCI USB controller
+ Enable support for Tegra on-chip EHCI USB controller. If you enable
+ ULPI and your PHY needs a different reference clock than the standard
+ 24 MHz then you have to define CFG_ULPI_REF_CLK to the appropriate
+ value in Hz.
config USB_EHCI_ZYNQ
bool "Support for Xilinx Zynq on-chip EHCI USB controller"
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 7c73eb66b605..89b87886da18 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -25,13 +25,6 @@
#define HOSTPC1_DEVLC 0x84
#define HOSTPC1_PSPD(x) (((x) >> 25) & 0x3)
-#ifdef CONFIG_USB_ULPI
- #ifndef CONFIG_USB_ULPI_VIEWPORT
- #error "To use CONFIG_USB_ULPI on Tegra Boards you have to also \
- define CONFIG_USB_ULPI_VIEWPORT"
- #endif
-#endif
-
/* Parameters we need for USB */
enum {
PARAM_DIVN, /* PLL FEEDBACK DIVIDer */
diff --git a/drivers/usb/ulpi/Kconfig b/drivers/usb/ulpi/Kconfig
index 482114d6c11d..d969360f7eb4 100644
--- a/drivers/usb/ulpi/Kconfig
+++ b/drivers/usb/ulpi/Kconfig
@@ -1,8 +1,18 @@
comment "ULPI drivers"
+config USB_ULPI
+ bool "ULPI support"
+ depends on USB_HOST
+ help
+ Select to commnicate with USB PHY via ULPI interface.
+ The ULPI (UTMI Low Pin (count) Interface) is a wrapper on UTMI+ core
+ that is used as PHY Transreceiver for USB controllers.
+
+ This driver uses ULPI viewports that are specific for each SoC.
+
choice
prompt "ULPI Viewport type"
- optional
+ depends on USB_ULPI
help
Select ULPI viewport (SoC-side interface to ULPI) implementation
appropriate for the device if you want to communicate with
@@ -10,18 +20,9 @@ choice
config USB_ULPI_VIEWPORT
bool "Generic ULPI Viewport"
+ depends on USB_ULPI
help
Support generic ULPI Viewport implementation that is used on
some Tegra and Snapdragon devices.
endchoice
-
-config USB_ULPI
- bool "ULPI support"
- depends on (USB_ULPI_VIEWPORT || USB_ULPI_VIEWPORT_OMAP)
- help
- Select to commnicate with USB PHY via ULPI interface.
- ULPI is wrapper on UTMI+ core that is used as
- PHY Transreceiver for USB controllers.
-
- This driver uses ULPI viewports that are specific for each SoC.
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-03-15 1:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-15 1:27 [PATCH 1/2] usb: ulpi: Remove unused omap-ulpi-viewport driver Tom Rini
2025-03-15 1:27 ` [PATCH 2/2] usb: ulpi: Clean up how we enable support Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox