On Tue, Apr 27, 2021 at 1:41 PM Andre Przywara <andre.przyw...@arm.com> wrote: > > On Tue, 27 Apr 2021 02:37:20 +0200 > Marek Vasut <ma...@denx.de> wrote: > > Hi, > > > On 4/27/21 2:03 AM, Andre Przywara wrote: > > > As the comment in musb_regs.h describes, Allwinner saves the > > > MUSB_CONFIGDATA register, which always return 0 on those SoCs. > > > > > > This is also true for the H6 and H616, so extend the quirk to those > > > controllers as well. > > > > > > This fixes USB peripheral mode on H6 and H616 boards. > > > > > > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > > > --- > > > drivers/usb/musb-new/musb_regs.h | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/usb/musb-new/musb_regs.h > > > b/drivers/usb/musb-new/musb_regs.h > > > index c4d7203b851..bee1b715a95 100644 > > > --- a/drivers/usb/musb-new/musb_regs.h > > > +++ b/drivers/usb/musb-new/musb_regs.h > > > @@ -432,7 +432,8 @@ static inline u8 musb_read_ulpi_buscontrol(void > > > __iomem *mbase) > > > static inline u8 musb_read_configdata(void __iomem *mbase) > > > { > > > #if defined CONFIG_MACH_SUN8I_A33 || defined CONFIG_MACH_SUN8I_A83T || \ > > > - defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I > > > + defined CONFIG_MACH_SUNXI_H3_H5 || defined CONFIG_MACH_SUN50I || \ > > > + defined CONFIG_SUN50I_GEN_H6 > > > > Isn't there some better solution then ever-growing list of macros to > > check, like e.g. a single CONFIG_MACH_SUNXI ? > > I was wondering the same, but I think this does not apply to the older > SoCs (we use ARCH_SUNXI in the two functions above and below, so I > guess the differentiation here is deliberate). I will test this later. > > So we could probably use the quirk also for the older, working(?) SoCs, > but I am not sure we should do that. CONFIG_SUN50I_GEN_H6 is already a > symbol covering multiple SoCs, so ideally we won't need to add many > more. > I can have a look if we have other checks like that in the code, then > maybe define a collective symbol for newer SoCs?
The better approach is to support config_read via musb_platform_ops. If so, we can identify the offsets to endpoint registers using SoC musb reg space and return the relevant 16-bit config value. Jagan. -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/linux-sunxi/CAMty3ZB0twvNAu40D-2Sn5Z_6WYYNBB8c%3Dt-kmHfV-djM%3DWcKw%40mail.gmail.com.