1Atmel SOC USB controllers 2 3OHCI 4 5Required properties: 6 - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers 7 used in host mode. 8 - reg: Address and length of the register set for the device 9 - interrupts: Should contain ehci interrupt 10 - clocks: Should reference the peripheral, host and system clocks 11 - clock-names: Should contains two strings 12 "ohci_clk" for the peripheral clock 13 "hclk" for the host clock 14 "uhpck" for the system clock 15 - num-ports: Number of ports. 16 - atmel,vbus-gpio: If present, specifies a gpio that needs to be 17 activated for the bus to be powered. 18 - atmel,oc-gpio: If present, specifies a gpio that needs to be 19 activated for the overcurrent detection. 20 21usb0: ohci@00500000 { 22 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 23 reg = <0x00500000 0x100000>; 24 clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>; 25 clock-names = "ohci_clk", "hclk", "uhpck"; 26 interrupts = <20 4>; 27 num-ports = <2>; 28}; 29 30EHCI 31 32Required properties: 33 - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers 34 used in host mode. 35 - reg: Address and length of the register set for the device 36 - interrupts: Should contain ehci interrupt 37 - clocks: Should reference the peripheral and the UTMI clocks 38 - clock-names: Should contains two strings 39 "ehci_clk" for the peripheral clock 40 "usb_clk" for the UTMI clock 41 42usb1: ehci@00800000 { 43 compatible = "atmel,at91sam9g45-ehci", "usb-ehci"; 44 reg = <0x00800000 0x100000>; 45 interrupts = <22 4>; 46 clocks = <&utmi>, <&uhphs_clk>; 47 clock-names = "usb_clk", "ehci_clk"; 48}; 49 50AT91 USB device controller 51 52Required properties: 53 - compatible: Should be one of the following 54 "atmel,at91rm9200-udc" 55 "atmel,at91sam9260-udc" 56 "atmel,at91sam9261-udc" 57 "atmel,at91sam9263-udc" 58 - reg: Address and length of the register set for the device 59 - interrupts: Should contain macb interrupt 60 - clocks: Should reference the peripheral and the AHB clocks 61 - clock-names: Should contains two strings 62 "pclk" for the peripheral clock 63 "hclk" for the AHB clock 64 65Optional properties: 66 - atmel,vbus-gpio: If present, specifies a gpio that needs to be 67 activated for the bus to be powered. 68 69usb1: gadget@fffa4000 { 70 compatible = "atmel,at91rm9200-udc"; 71 reg = <0xfffa4000 0x4000>; 72 interrupts = <10 4>; 73 clocks = <&udc_clk>, <&udpck>; 74 clock-names = "pclk", "hclk"; 75 atmel,vbus-gpio = <&pioC 5 0>; 76}; 77 78Atmel High-Speed USB device controller 79 80Required properties: 81 - compatible: Should be one of the following 82 "atmel,at91sam9rl-udc" 83 "atmel,at91sam9g45-udc" 84 "atmel,sama5d3-udc" 85 - reg: Address and length of the register set for the device 86 - interrupts: Should contain usba interrupt 87 - clocks: Should reference the peripheral and host clocks 88 - clock-names: Should contains two strings 89 "pclk" for the peripheral clock 90 "hclk" for the host clock 91 - ep childnode: To specify the number of endpoints and their properties. 92 93Optional properties: 94 - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether 95 vbus is present (USB is connected). 96 97Required child node properties: 98 - name: Name of the endpoint. 99 - reg: Num of the endpoint. 100 - atmel,fifo-size: Size of the fifo. 101 - atmel,nb-banks: Number of banks. 102 - atmel,can-dma: Boolean to specify if the endpoint support DMA. 103 - atmel,can-isoc: Boolean to specify if the endpoint support ISOC. 104 105usb2: gadget@fff78000 { 106 #address-cells = <1>; 107 #size-cells = <0>; 108 compatible = "atmel,at91sam9rl-udc"; 109 reg = <0x00600000 0x80000 110 0xfff78000 0x400>; 111 interrupts = <27 4 0>; 112 clocks = <&utmi>, <&udphs_clk>; 113 clock-names = "hclk", "pclk"; 114 atmel,vbus-gpio = <&pioB 19 0>; 115 116 ep@0 { 117 reg = <0>; 118 atmel,fifo-size = <64>; 119 atmel,nb-banks = <1>; 120 }; 121 122 ep@1 { 123 reg = <1>; 124 atmel,fifo-size = <1024>; 125 atmel,nb-banks = <2>; 126 atmel,can-dma; 127 atmel,can-isoc; 128 }; 129 130 ep@2 { 131 reg = <2>; 132 atmel,fifo-size = <1024>; 133 atmel,nb-banks = <2>; 134 atmel,can-dma; 135 atmel,can-isoc; 136 }; 137 138 ep@3 { 139 reg = <3>; 140 atmel,fifo-size = <1024>; 141 atmel,nb-banks = <3>; 142 atmel,can-dma; 143 }; 144 145 ep@4 { 146 reg = <4>; 147 atmel,fifo-size = <1024>; 148 atmel,nb-banks = <3>; 149 atmel,can-dma; 150 }; 151 152 ep@5 { 153 reg = <5>; 154 atmel,fifo-size = <1024>; 155 atmel,nb-banks = <3>; 156 atmel,can-dma; 157 atmel,can-isoc; 158 }; 159 160 ep@6 { 161 reg = <6>; 162 atmel,fifo-size = <1024>; 163 atmel,nb-banks = <3>; 164 atmel,can-dma; 165 atmel,can-isoc; 166 }; 167}; 168