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