Spec for USB OTG PHY

(Adam B) #1

Hi, I’m looking for any information about USB OTG PHY which is used in Allwinner R40. I’m interested mainly in PHY spec (register list and their descriptions). Anyone can help with this?

(bpi team) #2

R40 datasheet:


axp221s datasheet:


(Adam B) #3

I know both of datasheets but I’m afraid there is no any specification regarding USB PHY programming guide (registers, etc).

(bpi team) #4

sorry , we just have these documents , what are you want to do , please give me more information ,we can hlep you to ask allwinner about this .

(Adam B) #5

Ok, I’m trying to write my own USB OTG driver for Linux 4.15.x kernel. As far as I know the USB OTG in Allwinner R40 consists of two integrated circuits:

  1. Mentor Graphics MUSBMHDRC USB 2.0 multi-point dual-role controller
  2. So called PHY for above MUSBMHDRC controller

Those two integrated cirucits are working “together” to provide USB functionality in Allwinner R40 SoC. MUSBMHDRC is responsible for logic layer of USB and so called USB PHY is responsible for electrical layer. In other words PHY is responsible for reception and generation of proper electric signals in USB cable. Similar like in ethernet - there are also MAC and PHY layer integrated circuits.

For now I have documentation only for MUSBHDRC. To write proper driver I need documentation for the second integrated circuit - so called USB PHY. PHY is also called “physical layer” or transceiver.

Without docs for USB PHY I cannot write this driver. That what I need is specification for USB OTG PHY controller. I mean: address where it is mapped in Allwinner R40, register list and description for those registers.

I hope with this description it is more clear now. If not - I’ll try to answer the questions.

(bpi team) #6

this is your want ?

(Adam B) #7

Not quite. This page you cited comes from Allwinner_R40_User_Manual_V1.0.pdf - and it concerns USB OHCI HOST specification - so this is not I was asking for. I was asking for USB OTG and not USB HOST. Host and OTG are different things however they concerns USB. Please take a look at this spec you cited - there is chapter “8.6. OSB OTG” and it consists only one page. There are only genereal information about OTG but there are not any details.

As I wrote in one of my previous messages - OTG controller needs PHY controller (so called transceiver). I know that OTG controller is Mentor Graphics controller, but I don’t know what controller is used as PHY controller. So I don’t know how to program it.

I know where OTG is mapped - it is starting at 0x01C13000 address and PHY is at offset 0x400. But still don’t know the register list and description of them for PHY.

Maybe Allwinner wants some kind of NDA (Non Disclosure Agreement) for such a documentation?

(bpi team) #8

yes, we just can public those documents .sorry .