[PATCH 2/8] phy: qcom: Introduce Super-Speed USB UNIPHY driver

Praveenkumar I quic_ipkumar at quicinc.com
Tue Oct 3 09:33:51 PDT 2023



On 10/3/2023 8:24 PM, Dmitry Baryshkov wrote:
> On Tue, 3 Oct 2023 at 17:22, Praveenkumar I <quic_ipkumar at quicinc.com> wrote:
>>
>>
>> On 9/30/2023 10:48 PM, Dmitry Baryshkov wrote:
>>> On 29/09/2023 11:42, Praveenkumar I wrote:
>>>> Adds Qualcomm 22ull Super-Speed USB UNIPHY driver support which
>>>> is present in Qualcomm IPQ5332 SoC. This PHY is interfaced with
>>>> SNPS DWC3 USB and SNPS DWC PCIe. Either one of the interface
>>>> can use the it and selection is done via mux present in TCSR
>>>> register. This driver selects the PHY for DWC3 USB and handles
>>>> the reset, clocks and regulator.
>>>>
>>>> Signed-off-by: Praveenkumar I <quic_ipkumar at quicinc.com>
>>>> ---
>>>>    drivers/phy/qualcomm/Kconfig               |  11 +
>>>>    drivers/phy/qualcomm/Makefile              |   1 +
>>>>    drivers/phy/qualcomm/phy-qcom-uniphy-usb.c | 322 +++++++++++++++++++++
>>>>    3 files changed, 334 insertions(+)
>>>>    create mode 100644 drivers/phy/qualcomm/phy-qcom-uniphy-usb.c
>>>>
>>>> diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig
>>>> index d891058b7c39..7257c8455c53 100644
>>>> --- a/drivers/phy/qualcomm/Kconfig
>>>> +++ b/drivers/phy/qualcomm/Kconfig
>>>> @@ -154,6 +154,17 @@ config PHY_QCOM_M31_USB
>>>>          management. This driver is required even for peripheral only or
>>>>          host only mode configurations.
>>>>    +config PHY_QCOM_UNIPHY_USB
>>>> +    tristate "Qualcomm USB Super-Speed UNIPHY driver"
>>> Can we please have more specific driver name? As I wrote earlier,
>>> there are two other (different) kinds of Qualcomm UNI PHY devices:
>>> - DSI / HDMI UNIPHY on apq8064 / msm8974 / msm8960 (?)
>>> - USB QMP UNI PHY drivers
>>>
>>> Adding a driver called UNIPHY, which is not related to those two kinds
>>> sounds pretty confusing to me.
>> This UNIPHY is different from above mentioned ones. This a custom
>> version for 22nm on Qualcomm IPQ5332.
>> Can we name the driver as phy-qcom-uniphy-usb-ss-22ull.c /
>> phy-qcom-usb-ss-22ull.c ?
> usb-ss-22ull sounds better. Or maybe usb-ipq-ss
Sure, will rename it to phy-qcom-usb-ss-22ull.c
>
>>>> +    depends on USB && (ARCH_QCOM || COMPILE_TEST)
>>>> +    select GENERIC_PHY
>>>> +    help
>>>> +      Enable this to support the Qualcomm USB Super-Speed UNIPHY
>>>> transceiver
>>>> +      with DWC3 USB core. It handles PHY initialization, clock
>>>> +      management required after resetting the hardware and power
>>>> +      management. This driver is required even for peripheral only or
>>>> +      host only mode configurations.
>>>> +
>>>>    config PHY_QCOM_USB_HS
>>>>        tristate "Qualcomm USB HS PHY module"
>>>>        depends on USB_ULPI_BUS
>>>> diff --git a/drivers/phy/qualcomm/Makefile
>>>> b/drivers/phy/qualcomm/Makefile
>>>> index ffd609ac6233..c3e0112a7a70 100644
>>>> --- a/drivers/phy/qualcomm/Makefile
>>>> +++ b/drivers/phy/qualcomm/Makefile
>>>> @@ -17,6 +17,7 @@ obj-$(CONFIG_PHY_QCOM_QMP_USB_LEGACY)    +=
>>>> phy-qcom-qmp-usb-legacy.o
>>>>    obj-$(CONFIG_PHY_QCOM_QUSB2)        += phy-qcom-qusb2.o
>>>>    obj-$(CONFIG_PHY_QCOM_SNPS_EUSB2)    += phy-qcom-snps-eusb2.o
>>>>    obj-$(CONFIG_PHY_QCOM_EUSB2_REPEATER)    += phy-qcom-eusb2-repeater.o
>>>> +obj-$(CONFIG_PHY_QCOM_UNIPHY_USB)    += phy-qcom-uniphy-usb.o
>>>>    obj-$(CONFIG_PHY_QCOM_USB_HS)         += phy-qcom-usb-hs.o
>>>>    obj-$(CONFIG_PHY_QCOM_USB_HSIC)     += phy-qcom-usb-hsic.o
>>>>    obj-$(CONFIG_PHY_QCOM_USB_HS_28NM)    += phy-qcom-usb-hs-28nm.o
>>>> diff --git a/drivers/phy/qualcomm/phy-qcom-uniphy-usb.c
>>>> b/drivers/phy/qualcomm/phy-qcom-uniphy-usb.c
>>>> new file mode 100644
>>>> index 000000000000..fdfc9c225995
>>>> --- /dev/null
>>>> +++ b/drivers/phy/qualcomm/phy-qcom-uniphy-usb.c
>>> So, is it a USB PHY or UNI PHY (where I would expect that it handles
>>> USB and PCIe?)
>> It is a USB PHY and the PHY name is UNIPHY. Added the usb in the file
>> name to differentiate it.
--
Thanks,
Praveenkumar



More information about the linux-arm-kernel mailing list