drivers:usb: Add device-tree fixup to identify socs having dual phy
Subsystems (2)
PATCH 1/2 drivers:usb: Add device-tree fixup to identify socs having dual phy
Identify soc(s) having dual phy so as to add "utmi_dual" as phy_mode for all these socs. This is required for supporting deel-sleep feature in linux for usb driver
Signed-off-by Ramneek Mehresh <[email protected]>
Signed-off-by Nikhil Badola <[email protected]>
--- drivers/usb/host/ehci-fsl.c | 7 ++++++- include/fsl_usb.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-)
drivers/usb/host/ehci-fsl.c +6 -1
@@ -259,7 +259,7 @@ static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum,void fdt_fixup_dr_usb (void *blob,bd_t *bd) {static const char *const modes[] = {"host" ,"peripheral" ,"otg" }; -static const char *const phys[] = {"ulpi" ,"utmi" }; +static const char *const phys[] = {"ulpi" ,"utmi" ,"utmi_dual" };int usb_erratum_a006261_off =-1 ;int usb_erratum_a007075_off =-1 ;int usb_erratum_a007792_off =-1 ;
@@ -303,6 +303,9 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd) dr_phy_type = phys[phy_idx]; } +if (has_dual_phy ()) + dr_phy_type = phys[2 ]; + usb_mode_off =fdt_fixup_usb_mode_phy_type (blob, dr_mode_type,NULL , usb_mode_off);
@@ -325,6 +328,7 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)if (usb_erratum_a006261_off <0 )return ; } +if (has_erratum_a007075 ()) { usb_erratum_a007075_off = fdt_fixup_usb_erratum (blob,
@@ -333,6 +337,7 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)if (usb_erratum_a007075_off <0 )return ; } +if (has_erratum_a007792 ()) { usb_erratum_a007792_off = fdt_fixup_usb_erratum (blob,
include/fsl_usb.h +32 -0
@@ -87,6 +87,33 @@ struct ccsr_usb_phy {/* USB Erratum Checking code */ #ifdef CONFIG_PPC +static inline bool has_dual_phy (void ) +{ +u32 svr =get_svr (); +u32 soc =SVR_SOC_VER (svr); + +switch (soc) { +case SVR_T1023 : +case SVR_T1024 : +case SVR_T1013 : +case SVR_T1014 : +return IS_SVR_REV (svr,1 ,0 ); +case SVR_T1040 : +case SVR_T1042 : +case SVR_T1020 : +case SVR_T1022 : +case SVR_T2080 : +case SVR_T2081 : +return IS_SVR_REV (svr,1 ,0 ) ||IS_SVR_REV (svr,1 ,1 ); +case SVR_T4240 : +case SVR_T4160 : +case SVR_T4080 : +return IS_SVR_REV (svr,1 ,0 ) ||IS_SVR_REV (svr,2 ,0 ); + } + +return false; +} +static inline bool has_erratum_a006261 (void ) {u32 svr =get_svr ();
@@ -165,6 +192,11 @@ static inline bool has_erratum_a007792(void) }#else +static inline bool has_dual_phy (void ) +{ +return false; +} +static inline bool has_erratum_a006261 (void ) {return false;
Signature · 1 line
1.7.11.7
York Sun
AppliedPATCH 1/2 drivers:usb: Add device-tree fixup to identify socs having dual phy
Quoted 7 lines · Nikhil Badola
Identify soc(s) having dual phy so as to add "
utmi_dual" asphy_modefor all these socs. This is required for supporting deel-sleep feature in linux for usb driverSigned-off-by Ramneek Mehresh <[email protected]>Signed-off-by Nikhil Badola <[email protected]>---
Applied to fsl-qoriq master, awaiting upstream.
York