[PATCH v5 0/6] phy: realtek: usb2: support for RTL9607C USB2 PHY

Rustam Adilov adilov at disroot.org
Tue May 5 11:39:40 PDT 2026


On 2026-05-05 11:37, Vladimir Oltean wrote:
> On Tue, Apr 21, 2026 at 12:19:35AM +0500, Rustam Adilov wrote:
>> This patch series for Realtek USB2 PHY driver adds support for RTL9607C
>> USB2 PHY.
>> 
>> RTL9607C is a big endian MIPS CPU which is quite far from RTD series SoCs
>> supported by realtek usb2 phy driver, but the phy initilization is found
>> to be very indentical in most areas.
>> 
>> Most of the code was based on the Realtek's usb driver from the GPL tarball
>> in [1] and adjusted to fit into the realtek usb2 phy driver code format.
>> 
>> The patch series was split into smaller patches that add/change something
>> in the driver that are not exactly related to RTL9607C and that also
>> helps for easier review. That also means, patch 5 depends on all the prior
>> patches that come before it.
>> 
>> USB2 PHY on RTL9607C is primarly used for its internal OHCI/EHCI controllers.
>> 
>> [1] - https://github.com/jameywine/GPL-for-GP3000/blob/main/linux-5.10.x/arch/mips/rtl9607c/usb.c
>> 
>> ---
> 
> Could you go through Patchwork and reply inline to the issues found,
> stating whether you are or are not going to resolve them?
> https://patchwork.kernel.org/project/linux-phy/list/?series=1083475

Yeah, sure thing. However i do expect a good bit of refactoring of this patch series
once we get SWAP_IO_SPACE working. It just turned out that some of the realtek drivers
from various subsystems use readl/ioread32 for native endian (which is big endian for
rtl9607c and others under MACH_REALTEK_RTL) and enabling SWAP_IO_SPACE makes them
function in little endian which breaks those things. So that's what we are dealing with
at this moment.

> All of the WARNING: line length of XX exceeds 80 columns

I can resolve them just fine.

> WARNING: msleep < 20ms can sleep for up to 20ms; see function description of msleep().
> #88: FILE: drivers/phy/realtek/phy-rtk-usb2.c:629:
> +		msleep(10);

I can resolve it by changing it to usleep_range like i did with reset controller one.

> ../drivers/phy/realtek/phy-rtk-usb2.c:158:16: warning: cast to restricted __le32
> ../drivers/phy/realtek/phy-rtk-usb2.c:163:19: warning: incorrect type in initializer (different base types)
> ../drivers/phy/realtek/phy-rtk-usb2.c:163:19:    expected unsigned int [usertype] tmp
> ../drivers/phy/realtek/phy-rtk-usb2.c:163:19:    got restricted __le32 [usertype]

That should be fixed by using ioread32be.

>  1 maintainers not CCed: p.zabel at pengutronix.de 

When i run scripts/get_maintainer.pl, it doesn't print it out at all but I can include it.

> Detected inline keyword in C files
> +static inline int utmi_wait_register(u32 (*read)(void __iomem *reg), void __iomem *reg, u32 mask,

Even though it was not introduced by this patch series, i think it is relevant as
i am directly modifying its property to include read function to it. Something along
like "While we are here, remove inline from utmi_wait_register"

I believe that is every issue from Checks list apart from Sashiko reviews.

Best,
Rustam



More information about the linux-phy mailing list