Back to home page

OSCL-LXR

 
 

    


0001   AM33xx MUSB
0002 ~~~~~~~~~~~~~~~
0003 - compatible: ti,am33xx-usb
0004 - reg: offset and length of the usbss register sets
0005 - ti,hwmods : must be "usb_otg_hs"
0006 
0007 The glue layer contains multiple child nodes. It is required to have
0008 at least a control module node, USB node and a PHY node. The second USB
0009 node and its PHY node are optional. The DMA node is also optional.
0010 
0011 Reset module
0012 ~~~~~~~~~~~~
0013 - compatible: ti,am335x-usb-ctrl-module
0014 - reg: offset and length of the "USB control registers" in the "Control
0015   Module" block. A second offset and length for the USB wake up control
0016   in the same memory block.
0017 - reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for
0018   the USB wake up control register.
0019 
0020 USB PHY
0021 ~~~~~~~
0022 compatible: ti,am335x-usb-phy
0023 reg: offset and length of the "USB PHY" register space
0024 ti,ctrl_mod: reference to the "reset module" node
0025 reg-names: phy
0026 The PHY should have a "phy" alias numbered properly in the alias
0027 node.
0028 
0029 USB
0030 ~~~
0031 - compatible: ti,musb-am33xx
0032 - reg: offset and length of "USB Controller Registers", and offset and
0033   length of "USB Core" register space.
0034 - reg-names: control for the ""USB Controller Registers" and "mc" for
0035   "USB Core" register space
0036 - interrupts: USB interrupt number
0037 - interrupt-names: mc
0038 - dr_mode: Should be one of "host", "peripheral" or "otg".
0039 - mentor,multipoint: Should be "1" indicating the musb controller supports
0040   multipoint. This is a MUSB configuration-specific setting.
0041 - mentor,num-eps: Specifies the number of endpoints. This is also a
0042   MUSB configuration-specific setting. Should be set to "16"
0043 - mentor,ram-bits: Specifies the ram address size. Should be set to "12"
0044 - mentor,power: Should be "500". This signifies the controller can supply up to
0045   500mA when operating in host mode.
0046 - phys: reference to the USB phy
0047 - dmas: specifies the dma channels
0048 - dma-names: specifies the names of the channels. Use "rxN" for receive
0049   and "txN" for transmit endpoints. N specifies the endpoint number.
0050 
0051 The controller should have an "usb" alias numbered properly in the alias
0052 node.
0053 
0054 DMA
0055 ~~~
0056 - compatible: ti,am3359-cppi41
0057 - reg: offset and length of the following register spaces: USBSS, USB
0058   CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager
0059 - reg-names: glue, controller, scheduler, queuemgr
0060 - #dma-cells: should be set to 2. The first number represents the
0061   endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
0062   for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
0063   1 for TX transfers.
0064 - dma-channels: should be set to 30 representing the 15 endpoints for
0065   each USB instance.
0066 - #dma-channels: deprecated
0067 
0068 Example:
0069 ~~~~~~~~
0070 The following example contains all the nodes as used on am335x-evm:
0071 
0072 aliases {
0073         usb0 = &usb0;
0074         usb1 = &usb1;
0075         phy0 = &usb0_phy;
0076         phy1 = &usb1_phy;
0077 };
0078 
0079 usb: usb@47400000 {
0080         compatible = "ti,am33xx-usb";
0081         reg = <0x47400000 0x1000>;
0082         ranges;
0083         #address-cells = <1>;
0084         #size-cells = <1>;
0085         ti,hwmods = "usb_otg_hs";
0086 
0087         ctrl_mod: control@44e10000 {
0088                 compatible = "ti,am335x-usb-ctrl-module";
0089                 reg = <0x44e10620 0x10
0090                         0x44e10648 0x4>;
0091                 reg-names = "phy_ctrl", "wakeup";
0092         };
0093 
0094         usb0_phy: usb-phy@47401300 {
0095                 compatible = "ti,am335x-usb-phy";
0096                 reg = <0x47401300 0x100>;
0097                 reg-names = "phy";
0098                 ti,ctrl_mod = <&ctrl_mod>;
0099                 #phy-cells = <0>;
0100         };
0101 
0102         usb0: usb@47401000 {
0103                 compatible = "ti,musb-am33xx";
0104                 reg = <0x47401400 0x400
0105                         0x47401000 0x200>;
0106                 reg-names = "mc", "control";
0107 
0108                 interrupts = <18>;
0109                 interrupt-names = "mc";
0110                 dr_mode = "otg"
0111                 mentor,multipoint = <1>;
0112                 mentor,num-eps = <16>;
0113                 mentor,ram-bits = <12>;
0114                 mentor,power = <500>;
0115                 phys = <&usb0_phy>;
0116 
0117                 dmas = <&cppi41dma  0 0 &cppi41dma  1 0
0118                         &cppi41dma  2 0 &cppi41dma  3 0
0119                         &cppi41dma  4 0 &cppi41dma  5 0
0120                         &cppi41dma  6 0 &cppi41dma  7 0
0121                         &cppi41dma  8 0 &cppi41dma  9 0
0122                         &cppi41dma 10 0 &cppi41dma 11 0
0123                         &cppi41dma 12 0 &cppi41dma 13 0
0124                         &cppi41dma 14 0 &cppi41dma  0 1
0125                         &cppi41dma  1 1 &cppi41dma  2 1
0126                         &cppi41dma  3 1 &cppi41dma  4 1
0127                         &cppi41dma  5 1 &cppi41dma  6 1
0128                         &cppi41dma  7 1 &cppi41dma  8 1
0129                         &cppi41dma  9 1 &cppi41dma 10 1
0130                         &cppi41dma 11 1 &cppi41dma 12 1
0131                         &cppi41dma 13 1 &cppi41dma 14 1>;
0132                 dma-names =
0133                         "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
0134                         "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
0135                         "rx14", "rx15",
0136                         "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
0137                         "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
0138                         "tx14", "tx15";
0139         };
0140 
0141         usb1_phy: usb-phy@47401b00 {
0142                 compatible = "ti,am335x-usb-phy";
0143                 reg = <0x47401b00 0x100>;
0144                 reg-names = "phy";
0145                 ti,ctrl_mod = <&ctrl_mod>;
0146                 #phy-cells = <0>;
0147         };
0148 
0149         usb1: usb@47401800 {
0150                 compatible = "ti,musb-am33xx";
0151                 reg = <0x47401c00 0x400
0152                         0x47401800 0x200>;
0153                 reg-names = "mc", "control";
0154                 interrupts = <19>;
0155                 interrupt-names = "mc";
0156                 dr_mode = "host"
0157                 mentor,multipoint = <1>;
0158                 mentor,num-eps = <16>;
0159                 mentor,ram-bits = <12>;
0160                 mentor,power = <500>;
0161                 phys = <&usb1_phy>;
0162 
0163                 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
0164                         &cppi41dma 17 0 &cppi41dma 18 0
0165                         &cppi41dma 19 0 &cppi41dma 20 0
0166                         &cppi41dma 21 0 &cppi41dma 22 0
0167                         &cppi41dma 23 0 &cppi41dma 24 0
0168                         &cppi41dma 25 0 &cppi41dma 26 0
0169                         &cppi41dma 27 0 &cppi41dma 28 0
0170                         &cppi41dma 29 0 &cppi41dma 15 1
0171                         &cppi41dma 16 1 &cppi41dma 17 1
0172                         &cppi41dma 18 1 &cppi41dma 19 1
0173                         &cppi41dma 20 1 &cppi41dma 21 1
0174                         &cppi41dma 22 1 &cppi41dma 23 1
0175                         &cppi41dma 24 1 &cppi41dma 25 1
0176                         &cppi41dma 26 1 &cppi41dma 27 1
0177                         &cppi41dma 28 1 &cppi41dma 29 1>;
0178                 dma-names =
0179                         "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
0180                         "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
0181                         "rx14", "rx15",
0182                         "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
0183                         "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
0184                         "tx14", "tx15";
0185         };
0186 
0187         cppi41dma: dma-controller@7402000 {
0188                 compatible = "ti,am3359-cppi41";
0189                 reg =  <0x47400000 0x1000
0190                         0x47402000 0x1000
0191                         0x47403000 0x1000
0192                         0x47404000 0x4000>;
0193                 reg-names = "glue", "controller", "scheduler", "queuemgr";
0194                 interrupts = <17>;
0195                 interrupt-names = "glue";
0196                 #dma-cells = <2>;
0197                 dma-channels = <30>;
0198                 dma-requests = <256>;
0199         };
0200 };