1c66ec88fSEmmanuel Vadot AM33xx MUSB 2c66ec88fSEmmanuel Vadot~~~~~~~~~~~~~~~ 3c66ec88fSEmmanuel Vadot- compatible: ti,am33xx-usb 4c66ec88fSEmmanuel Vadot- reg: offset and length of the usbss register sets 5c66ec88fSEmmanuel Vadot- ti,hwmods : must be "usb_otg_hs" 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel VadotThe glue layer contains multiple child nodes. It is required to have 8c66ec88fSEmmanuel Vadotat least a control module node, USB node and a PHY node. The second USB 9c66ec88fSEmmanuel Vadotnode and its PHY node are optional. The DMA node is also optional. 10c66ec88fSEmmanuel Vadot 11c66ec88fSEmmanuel VadotReset module 12c66ec88fSEmmanuel Vadot~~~~~~~~~~~~ 13c66ec88fSEmmanuel Vadot- compatible: ti,am335x-usb-ctrl-module 14c66ec88fSEmmanuel Vadot- reg: offset and length of the "USB control registers" in the "Control 15c66ec88fSEmmanuel Vadot Module" block. A second offset and length for the USB wake up control 16c66ec88fSEmmanuel Vadot in the same memory block. 17c66ec88fSEmmanuel Vadot- reg-names: "phy_ctrl" for the "USB control registers" and "wakeup" for 18c66ec88fSEmmanuel Vadot the USB wake up control register. 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel VadotUSB PHY 21c66ec88fSEmmanuel Vadot~~~~~~~ 22c66ec88fSEmmanuel Vadotcompatible: ti,am335x-usb-phy 23c66ec88fSEmmanuel Vadotreg: offset and length of the "USB PHY" register space 24c66ec88fSEmmanuel Vadotti,ctrl_mod: reference to the "reset module" node 25c66ec88fSEmmanuel Vadotreg-names: phy 26c66ec88fSEmmanuel VadotThe PHY should have a "phy" alias numbered properly in the alias 27c66ec88fSEmmanuel Vadotnode. 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel VadotUSB 30c66ec88fSEmmanuel Vadot~~~ 31c66ec88fSEmmanuel Vadot- compatible: ti,musb-am33xx 32c66ec88fSEmmanuel Vadot- reg: offset and length of "USB Controller Registers", and offset and 33c66ec88fSEmmanuel Vadot length of "USB Core" register space. 34c66ec88fSEmmanuel Vadot- reg-names: control for the ""USB Controller Registers" and "mc" for 35c66ec88fSEmmanuel Vadot "USB Core" register space 36c66ec88fSEmmanuel Vadot- interrupts: USB interrupt number 37c66ec88fSEmmanuel Vadot- interrupt-names: mc 38c66ec88fSEmmanuel Vadot- dr_mode: Should be one of "host", "peripheral" or "otg". 39c66ec88fSEmmanuel Vadot- mentor,multipoint: Should be "1" indicating the musb controller supports 40c66ec88fSEmmanuel Vadot multipoint. This is a MUSB configuration-specific setting. 41c66ec88fSEmmanuel Vadot- mentor,num-eps: Specifies the number of endpoints. This is also a 42c66ec88fSEmmanuel Vadot MUSB configuration-specific setting. Should be set to "16" 43c66ec88fSEmmanuel Vadot- mentor,ram-bits: Specifies the ram address size. Should be set to "12" 44c66ec88fSEmmanuel Vadot- mentor,power: Should be "500". This signifies the controller can supply up to 45c66ec88fSEmmanuel Vadot 500mA when operating in host mode. 46c66ec88fSEmmanuel Vadot- phys: reference to the USB phy 47c66ec88fSEmmanuel Vadot- dmas: specifies the dma channels 48c66ec88fSEmmanuel Vadot- dma-names: specifies the names of the channels. Use "rxN" for receive 49c66ec88fSEmmanuel Vadot and "txN" for transmit endpoints. N specifies the endpoint number. 50c66ec88fSEmmanuel Vadot 51c66ec88fSEmmanuel VadotThe controller should have an "usb" alias numbered properly in the alias 52c66ec88fSEmmanuel Vadotnode. 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel VadotDMA 55c66ec88fSEmmanuel Vadot~~~ 56c66ec88fSEmmanuel Vadot- compatible: ti,am3359-cppi41 57c66ec88fSEmmanuel Vadot- reg: offset and length of the following register spaces: USBSS, USB 58c66ec88fSEmmanuel Vadot CPPI DMA Controller, USB CPPI DMA Scheduler, USB Queue Manager 59c66ec88fSEmmanuel Vadot- reg-names: glue, controller, scheduler, queuemgr 60c66ec88fSEmmanuel Vadot- #dma-cells: should be set to 2. The first number represents the 61c66ec88fSEmmanuel Vadot endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29 62c66ec88fSEmmanuel Vadot for endpoints 1 … 15 on instance 1). The second number is 0 for RX and 63c66ec88fSEmmanuel Vadot 1 for TX transfers. 64*d5b0e70fSEmmanuel Vadot- dma-channels: should be set to 30 representing the 15 endpoints for 65c66ec88fSEmmanuel Vadot each USB instance. 66*d5b0e70fSEmmanuel Vadot- #dma-channels: deprecated 67c66ec88fSEmmanuel Vadot 68c66ec88fSEmmanuel VadotExample: 69c66ec88fSEmmanuel Vadot~~~~~~~~ 70c66ec88fSEmmanuel VadotThe following example contains all the nodes as used on am335x-evm: 71c66ec88fSEmmanuel Vadot 72c66ec88fSEmmanuel Vadotaliases { 73c66ec88fSEmmanuel Vadot usb0 = &usb0; 74c66ec88fSEmmanuel Vadot usb1 = &usb1; 75c66ec88fSEmmanuel Vadot phy0 = &usb0_phy; 76c66ec88fSEmmanuel Vadot phy1 = &usb1_phy; 77c66ec88fSEmmanuel Vadot}; 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadotusb: usb@47400000 { 80c66ec88fSEmmanuel Vadot compatible = "ti,am33xx-usb"; 81c66ec88fSEmmanuel Vadot reg = <0x47400000 0x1000>; 82c66ec88fSEmmanuel Vadot ranges; 83c66ec88fSEmmanuel Vadot #address-cells = <1>; 84c66ec88fSEmmanuel Vadot #size-cells = <1>; 85c66ec88fSEmmanuel Vadot ti,hwmods = "usb_otg_hs"; 86c66ec88fSEmmanuel Vadot 87c66ec88fSEmmanuel Vadot ctrl_mod: control@44e10000 { 88c66ec88fSEmmanuel Vadot compatible = "ti,am335x-usb-ctrl-module"; 89c66ec88fSEmmanuel Vadot reg = <0x44e10620 0x10 90c66ec88fSEmmanuel Vadot 0x44e10648 0x4>; 91c66ec88fSEmmanuel Vadot reg-names = "phy_ctrl", "wakeup"; 92c66ec88fSEmmanuel Vadot }; 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot usb0_phy: usb-phy@47401300 { 95c66ec88fSEmmanuel Vadot compatible = "ti,am335x-usb-phy"; 96c66ec88fSEmmanuel Vadot reg = <0x47401300 0x100>; 97c66ec88fSEmmanuel Vadot reg-names = "phy"; 98c66ec88fSEmmanuel Vadot ti,ctrl_mod = <&ctrl_mod>; 99c66ec88fSEmmanuel Vadot #phy-cells = <0>; 100c66ec88fSEmmanuel Vadot }; 101c66ec88fSEmmanuel Vadot 102c66ec88fSEmmanuel Vadot usb0: usb@47401000 { 103c66ec88fSEmmanuel Vadot compatible = "ti,musb-am33xx"; 104c66ec88fSEmmanuel Vadot reg = <0x47401400 0x400 105c66ec88fSEmmanuel Vadot 0x47401000 0x200>; 106c66ec88fSEmmanuel Vadot reg-names = "mc", "control"; 107c66ec88fSEmmanuel Vadot 108c66ec88fSEmmanuel Vadot interrupts = <18>; 109c66ec88fSEmmanuel Vadot interrupt-names = "mc"; 110c66ec88fSEmmanuel Vadot dr_mode = "otg" 111c66ec88fSEmmanuel Vadot mentor,multipoint = <1>; 112c66ec88fSEmmanuel Vadot mentor,num-eps = <16>; 113c66ec88fSEmmanuel Vadot mentor,ram-bits = <12>; 114c66ec88fSEmmanuel Vadot mentor,power = <500>; 115c66ec88fSEmmanuel Vadot phys = <&usb0_phy>; 116c66ec88fSEmmanuel Vadot 117c66ec88fSEmmanuel Vadot dmas = <&cppi41dma 0 0 &cppi41dma 1 0 118c66ec88fSEmmanuel Vadot &cppi41dma 2 0 &cppi41dma 3 0 119c66ec88fSEmmanuel Vadot &cppi41dma 4 0 &cppi41dma 5 0 120c66ec88fSEmmanuel Vadot &cppi41dma 6 0 &cppi41dma 7 0 121c66ec88fSEmmanuel Vadot &cppi41dma 8 0 &cppi41dma 9 0 122c66ec88fSEmmanuel Vadot &cppi41dma 10 0 &cppi41dma 11 0 123c66ec88fSEmmanuel Vadot &cppi41dma 12 0 &cppi41dma 13 0 124c66ec88fSEmmanuel Vadot &cppi41dma 14 0 &cppi41dma 0 1 125c66ec88fSEmmanuel Vadot &cppi41dma 1 1 &cppi41dma 2 1 126c66ec88fSEmmanuel Vadot &cppi41dma 3 1 &cppi41dma 4 1 127c66ec88fSEmmanuel Vadot &cppi41dma 5 1 &cppi41dma 6 1 128c66ec88fSEmmanuel Vadot &cppi41dma 7 1 &cppi41dma 8 1 129c66ec88fSEmmanuel Vadot &cppi41dma 9 1 &cppi41dma 10 1 130c66ec88fSEmmanuel Vadot &cppi41dma 11 1 &cppi41dma 12 1 131c66ec88fSEmmanuel Vadot &cppi41dma 13 1 &cppi41dma 14 1>; 132c66ec88fSEmmanuel Vadot dma-names = 133c66ec88fSEmmanuel Vadot "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", 134c66ec88fSEmmanuel Vadot "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", 135c66ec88fSEmmanuel Vadot "rx14", "rx15", 136c66ec88fSEmmanuel Vadot "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 137c66ec88fSEmmanuel Vadot "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", 138c66ec88fSEmmanuel Vadot "tx14", "tx15"; 139c66ec88fSEmmanuel Vadot }; 140c66ec88fSEmmanuel Vadot 141c66ec88fSEmmanuel Vadot usb1_phy: usb-phy@47401b00 { 142c66ec88fSEmmanuel Vadot compatible = "ti,am335x-usb-phy"; 143c66ec88fSEmmanuel Vadot reg = <0x47401b00 0x100>; 144c66ec88fSEmmanuel Vadot reg-names = "phy"; 145c66ec88fSEmmanuel Vadot ti,ctrl_mod = <&ctrl_mod>; 146c66ec88fSEmmanuel Vadot #phy-cells = <0>; 147c66ec88fSEmmanuel Vadot }; 148c66ec88fSEmmanuel Vadot 149c66ec88fSEmmanuel Vadot usb1: usb@47401800 { 150c66ec88fSEmmanuel Vadot compatible = "ti,musb-am33xx"; 151c66ec88fSEmmanuel Vadot reg = <0x47401c00 0x400 152c66ec88fSEmmanuel Vadot 0x47401800 0x200>; 153c66ec88fSEmmanuel Vadot reg-names = "mc", "control"; 154c66ec88fSEmmanuel Vadot interrupts = <19>; 155c66ec88fSEmmanuel Vadot interrupt-names = "mc"; 156c66ec88fSEmmanuel Vadot dr_mode = "host" 157c66ec88fSEmmanuel Vadot mentor,multipoint = <1>; 158c66ec88fSEmmanuel Vadot mentor,num-eps = <16>; 159c66ec88fSEmmanuel Vadot mentor,ram-bits = <12>; 160c66ec88fSEmmanuel Vadot mentor,power = <500>; 161c66ec88fSEmmanuel Vadot phys = <&usb1_phy>; 162c66ec88fSEmmanuel Vadot 163c66ec88fSEmmanuel Vadot dmas = <&cppi41dma 15 0 &cppi41dma 16 0 164c66ec88fSEmmanuel Vadot &cppi41dma 17 0 &cppi41dma 18 0 165c66ec88fSEmmanuel Vadot &cppi41dma 19 0 &cppi41dma 20 0 166c66ec88fSEmmanuel Vadot &cppi41dma 21 0 &cppi41dma 22 0 167c66ec88fSEmmanuel Vadot &cppi41dma 23 0 &cppi41dma 24 0 168c66ec88fSEmmanuel Vadot &cppi41dma 25 0 &cppi41dma 26 0 169c66ec88fSEmmanuel Vadot &cppi41dma 27 0 &cppi41dma 28 0 170c66ec88fSEmmanuel Vadot &cppi41dma 29 0 &cppi41dma 15 1 171c66ec88fSEmmanuel Vadot &cppi41dma 16 1 &cppi41dma 17 1 172c66ec88fSEmmanuel Vadot &cppi41dma 18 1 &cppi41dma 19 1 173c66ec88fSEmmanuel Vadot &cppi41dma 20 1 &cppi41dma 21 1 174c66ec88fSEmmanuel Vadot &cppi41dma 22 1 &cppi41dma 23 1 175c66ec88fSEmmanuel Vadot &cppi41dma 24 1 &cppi41dma 25 1 176c66ec88fSEmmanuel Vadot &cppi41dma 26 1 &cppi41dma 27 1 177c66ec88fSEmmanuel Vadot &cppi41dma 28 1 &cppi41dma 29 1>; 178c66ec88fSEmmanuel Vadot dma-names = 179c66ec88fSEmmanuel Vadot "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", 180c66ec88fSEmmanuel Vadot "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", 181c66ec88fSEmmanuel Vadot "rx14", "rx15", 182c66ec88fSEmmanuel Vadot "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 183c66ec88fSEmmanuel Vadot "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", 184c66ec88fSEmmanuel Vadot "tx14", "tx15"; 185c66ec88fSEmmanuel Vadot }; 186c66ec88fSEmmanuel Vadot 187c66ec88fSEmmanuel Vadot cppi41dma: dma-controller@7402000 { 188c66ec88fSEmmanuel Vadot compatible = "ti,am3359-cppi41"; 189c66ec88fSEmmanuel Vadot reg = <0x47400000 0x1000 190c66ec88fSEmmanuel Vadot 0x47402000 0x1000 191c66ec88fSEmmanuel Vadot 0x47403000 0x1000 192c66ec88fSEmmanuel Vadot 0x47404000 0x4000>; 193c66ec88fSEmmanuel Vadot reg-names = "glue", "controller", "scheduler", "queuemgr"; 194c66ec88fSEmmanuel Vadot interrupts = <17>; 195c66ec88fSEmmanuel Vadot interrupt-names = "glue"; 196c66ec88fSEmmanuel Vadot #dma-cells = <2>; 197*d5b0e70fSEmmanuel Vadot dma-channels = <30>; 198*d5b0e70fSEmmanuel Vadot dma-requests = <256>; 199c66ec88fSEmmanuel Vadot }; 200c66ec88fSEmmanuel Vadot}; 201