dwc2: Using internal phy (fs mode) for STM32F4x9 platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,
I'm bringing the linux kernel for the STM32F4 MCU (mmu-less). This MCU
has two DWC2 cores on it:one for USB OTG HS and one for USB OTG FS.
I was able to make the DWC2 driver to work in FS mode using a internal
phy in both cores (HS and FS), but I had to patch it (in a bad way,
see bellow).
Basically STM32 uses a GGPIO register to control the POWER state of
the internal phy as it describes in the reference manual:

OTG general core configuration register (OTG_GCCFG)
Address offset: 0x038
Reset value: 0x0000 0000

Powerdown -> BIT(16)
Used to activate the transceiver in transmission/reception
0: Power down active
1: Power down deactivated (“Transceiver active”)

So far what I did was in the dwc2_core_init

+       /* Program the GGPIO register */
+       usbgpio = dwc2_readl(hsotg->regs + GGPIO);
+       usbgpio |= GGPIO_PWRDWN;
+       dwc2_writel(usbgpio, hsotg->regs + GGPIO);

So I would like to check what would be you recommendation to implement
in it in the right way.
As it is a internal USB core register I could not find a way to
implement a phy that access it.
Syscon is also not the case (I guess) for the same reason.

One way I thought would be to create a new property like:

- snps,ggpio-reg: the value of GGPIO register for specific SoC/Vendor

in my STM32 case could be something like that:

snps,ggpio-reg = <0x10>

The problem with this approach is that it could not be toggled
"logicaly" from let say some phy on/off code.

please share you thoughts on this.

br.,
Bruno
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux