atmel-usb.txt 4.26 KB
Newer Older
1 2 3 4 5 6 7
Atmel SOC USB controllers

OHCI

Required properties:
 - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
   used in host mode.
8
 - reg: Address and length of the register set for the device
9
 - interrupts: Should contain ohci interrupt
10
 - clocks: Should reference the peripheral, host and system clocks
11
 - clock-names: Should contain three strings
12 13 14
		"ohci_clk" for the peripheral clock
		"hclk" for the host clock
		"uhpck" for the system clock
15 16 17 18 19 20
 - num-ports: Number of ports.
 - atmel,vbus-gpio: If present, specifies a gpio that needs to be
   activated for the bus to be powered.
 - atmel,oc-gpio: If present, specifies a gpio that needs to be
   activated for the overcurrent detection.

21
usb0: ohci@500000 {
22 23
	compatible = "atmel,at91rm9200-ohci", "usb-ohci";
	reg = <0x00500000 0x100000>;
24 25
	clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
	clock-names = "ohci_clk", "hclk", "uhpck";
26 27 28
	interrupts = <20 4>;
	num-ports = <2>;
};
29 30 31 32 33 34

EHCI

Required properties:
 - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
   used in host mode.
35 36 37
 - reg: Address and length of the register set for the device
 - interrupts: Should contain ehci interrupt
 - clocks: Should reference the peripheral and the UTMI clocks
38
 - clock-names: Should contain two strings
39 40
		"ehci_clk" for the peripheral clock
		"usb_clk" for the UTMI clock
41

42
usb1: ehci@800000 {
43 44 45
	compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
	reg = <0x00800000 0x100000>;
	interrupts = <22 4>;
46 47
	clocks = <&utmi>, <&uhphs_clk>;
	clock-names = "usb_clk", "ehci_clk";
48
};
49 50 51 52

AT91 USB device controller

Required properties:
53 54 55 56 57
 - compatible: Should be one of the following
	       "atmel,at91rm9200-udc"
	       "atmel,at91sam9260-udc"
	       "atmel,at91sam9261-udc"
	       "atmel,at91sam9263-udc"
58 59
 - reg: Address and length of the register set for the device
 - interrupts: Should contain macb interrupt
60
 - clocks: Should reference the peripheral and the AHB clocks
61
 - clock-names: Should contain two strings
62 63
		"pclk" for the peripheral clock
		"hclk" for the AHB clock
64 65 66 67 68 69 70 71 72

Optional properties:
 - atmel,vbus-gpio: If present, specifies a gpio that needs to be
   activated for the bus to be powered.

usb1: gadget@fffa4000 {
	compatible = "atmel,at91rm9200-udc";
	reg = <0xfffa4000 0x4000>;
	interrupts = <10 4>;
73 74
	clocks = <&udc_clk>, <&udpck>;
	clock-names = "pclk", "hclk";
75 76
	atmel,vbus-gpio = <&pioC 5 0>;
};
77 78 79 80

Atmel High-Speed USB device controller

Required properties:
81
 - compatible: Should be one of the following
82 83 84
	       "atmel,at91sam9rl-udc"
	       "atmel,at91sam9g45-udc"
	       "atmel,sama5d3-udc"
85 86
 - reg: Address and length of the register set for the device
 - interrupts: Should contain usba interrupt
87
 - clocks: Should reference the peripheral and host clocks
88
 - clock-names: Should contain two strings
89 90
		"pclk" for the peripheral clock
		"hclk" for the host clock
91 92 93
 - ep childnode: To specify the number of endpoints and their properties.

Optional properties:
94 95
 - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
   vbus is present (USB is connected).
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

Required child node properties:
 - name: Name of the endpoint.
 - reg: Num of the endpoint.
 - atmel,fifo-size: Size of the fifo.
 - atmel,nb-banks: Number of banks.
 - atmel,can-dma: Boolean to specify if the endpoint support DMA.
 - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.

usb2: gadget@fff78000 {
	#address-cells = <1>;
	#size-cells = <0>;
	compatible = "atmel,at91sam9rl-udc";
	reg = <0x00600000 0x80000
	       0xfff78000 0x400>;
	interrupts = <27 4 0>;
112 113
	clocks = <&utmi>, <&udphs_clk>;
	clock-names = "hclk", "pclk";
114 115
	atmel,vbus-gpio = <&pioB 19 0>;

116
	ep@0 {
117 118 119 120 121
		reg = <0>;
		atmel,fifo-size = <64>;
		atmel,nb-banks = <1>;
	};

122
	ep@1 {
123 124 125 126 127 128 129
		reg = <1>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

130
	ep@2 {
131 132 133 134 135 136 137
		reg = <2>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

138
	ep@3 {
139 140 141 142 143 144
		reg = <3>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

145
	ep@4 {
146 147 148 149 150 151
		reg = <4>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

152
	ep@5 {
153 154 155 156 157 158 159
		reg = <5>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};

160
	ep@6 {
161 162 163 164 165 166 167
		reg = <6>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};
};