On 07/06/2019 07:46, Pawel Laszczak wrote: > >> >> Pawel, >> >> On 05/06/2019 13:03, Pawel Laszczak wrote: >>> This patch aim at documenting USB related dt-bindings for the >>> Cadence USBSS-DRD controller. >>> >>> Signed-off-by: Pawel Laszczak <pawell@xxxxxxxxxxx> >>> Reviewed-by: Rob Herring <robh@xxxxxxxxxx> >>> >>> --- >>> .../devicetree/bindings/usb/cdns-usb3.txt | 30 +++++++++++++++++++ >>> 1 file changed, 30 insertions(+) >>> create mode 100644 Documentation/devicetree/bindings/usb/cdns-usb3.txt >>> >>> diff --git a/Documentation/devicetree/bindings/usb/cdns-usb3.txt b/Documentation/devicetree/bindings/usb/cdns-usb3.txt >>> new file mode 100644 >>> index 000000000000..1d2b449e3cb4 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/usb/cdns-usb3.txt >>> @@ -0,0 +1,30 @@ >>> +Binding for the Cadence USBSS-DRD controller >>> + >>> +Required properties: >>> + - reg: Physical base address and size of the controller's register areas. >>> + Controller has 3 different regions: >>> + region 1 - HOST registers area >>> + region 2 - DEVICE registers area >>> + region 3 - OTG/DRD registers area >>> + - reg-names - register memory area names: >>> + "xhci" - for HOST registers space >>> + "dev" - for DEVICE registers space >>> + "otg" - for OTG/DRD registers space >>> + - compatible: Should contain: "cdns,usb3-1.0.0" or "cdns,usb3-1.0.1" >>> + - interrupts: Interrupts used by cdns3 controller. >> >> Since we are requesting 3 separate named interrupts in code we need to >> mention them here. > > Hi Roger, > > Yes, I know, but this code is Reviewed-by: Rob Herring, so I thought to add > this as separate patch after putting this driver into kernel. > Binding document should be updated as code changes. > I assume that after making some change in this file I should remove statement > Reviewed-by: Rob Herring <robh@xxxxxxxxxx> from this patch to start reviving > from the beginning. Yes. > > What do you think about such dt-binding: > > Required properties: > - reg: Physical base address and size of the controller's register areas. > Controller has 3 different regions: > region 1 - HOST registers area > region 2 - DEVICE registers area > region 3 - OTG/DRD registers area Is it so that region 1 is always HOST? offset 0 seems to be OTG though. If it is implementation specific then you could get rid of numbering. > - reg-names - register memory area names: > "xhci" - for HOST registers space > "dev" - for DEVICE registers space > "otg" - for OTG/DRD registers space > - compatible: Should contain: > "cdns,usb3-1.0.0" - for 0x00024502 controller version > "cdns,usb3-1.0.1" - for 0x00024509 controller version > "cdns,usb3-1.0.2" - for 0x0002450C controller version > "cdns,usb3-1.0.3" - for 0x0002450d controller version > > - interrupts: Interrupts used by cdns3 controller: > "host" - interrupt used by XHCI driver. > "peripheral" - interrupt used by device driver > "otg" - interrupt used by DRD/OTG part of driver > > Optional properties: > - maximum-speed : valid arguments are "super-speed", "high-speed" and > "full-speed"; refer to usb/generic.txt > - dr_mode: Should be one of "host", "peripheral" or "otg". > - phys: reference to the USB PHY need to add 'phy-names' since you request the PHY with name. > - on-chip-buff-size : size of memory intended as internal memory for endpoints > buffers expressed in KB > > Example: > usb@f3000000 { > compatible = "cdns,usb3-1.0.1"; > interrupts = <USB_HOST_IRQ 7 IRQ_TYPE_LEVEL_HIGH> coma missing. > <USB_DEVICE_IRQ 7 IRQ_TYPE_LEVEL_HIGH> here too. > <USB_OTG_IRQ 8 IRQ_TYPE_LEVEL_HIGH>; What is 7 and 8 ? > interrupt-names = "host", "peripheral", "otg"; > reg = <0xf3000000 0x10000 /* memory area for HOST registers */ should end with >, > 0xf3010000 0x10000 /* memory area for DEVICE registers */ here too > 0xf3020000 0x10000>; /* memory area for OTG/DRD registers */ > reg-names = "xhci", "dev", "otg"; > }; Isn't otg at offset 0, xhci at offset 0x10000 and dev at offset 0x20000? > > Is this correct now ? > > Maybe I should add something additionally for phy ? e.g. phys = <&usb3_phy>; phy-names = "cdns3,usbphy"; > > Regards, > Pawel > > >> >>> + >>> +Optional properties: >>> + - maximum-speed : valid arguments are "super-speed", "high-speed" and >>> + "full-speed"; refer to usb/generic.txt >>> + - dr_mode: Should be one of "host", "peripheral" or "otg". >>> + - phys: reference to the USB PHY >>> + >>> +Example: >>> + usb@f3000000 { >>> + compatible = "cdns,usb3-1.0.1"; >>> + interrupts = <USB_IRQ 7 IRQ_TYPE_LEVEL_HIGH>; >> >> This example won't work as code requests for 3 separate interrupts. >> >>> + reg = <0xf3000000 0x10000 /* memory area for HOST registers */ >>> + 0xf3010000 0x10000 /* memory area for DEVICE registers */ >>> + 0xf3020000 0x10000>; /* memory area for OTG/DRD registers */ >>> + reg-names = "xhci", "dev", "otg"; >>> + }; >>> >> -- cheers, -roger Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki