Atmel SOC USB controllers

OHCI

Required properties:
 - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
   used in host mode.
 - reg: Address and length of the register set for the device
 - interrupts: Should contain ohci interrupt
 - clocks: Should reference the peripheral, host and system clocks
 - clock-names: Should contain three strings
		"ohci_clk" for the peripheral clock
		"hclk" for the host clock
		"uhpck" for the system clock
 - 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.

usb0: ohci@00500000 {
	compatible = "atmel,at91rm9200-ohci", "usb-ohci";
	reg = <0x00500000 0x100000>;
	clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
	clock-names = "ohci_clk", "hclk", "uhpck";
	interrupts = <20 4>;
	num-ports = <2>;
};

EHCI

Required properties:
 - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
   used in host mode.
 - 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
 - clock-names: Should contain two strings
		"ehci_clk" for the peripheral clock
		"usb_clk" for the UTMI clock

usb1: ehci@00800000 {
	compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
	reg = <0x00800000 0x100000>;
	interrupts = <22 4>;
	clocks = <&utmi>, <&uhphs_clk>;
	clock-names = "usb_clk", "ehci_clk";
};

AT91 USB device controller

Required properties:
 - compatible: Should be one of the following
	       "atmel,at91rm9200-udc"
	       "atmel,at91sam9260-udc"
	       "atmel,at91sam9261-udc"
	       "atmel,at91sam9263-udc"
 - reg: Address and length of the register set for the device
 - interrupts: Should contain macb interrupt
 - clocks: Should reference the peripheral and the AHB clocks
 - clock-names: Should contain two strings
		"pclk" for the peripheral clock
		"hclk" for the AHB clock

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>;
	clocks = <&udc_clk>, <&udpck>;
	clock-names = "pclk", "hclk";
	atmel,vbus-gpio = <&pioC 5 0>;
};

Atmel High-Speed USB device controller

Required properties:
 - compatible: Should be one of the following
	       "atmel,at91sam9rl-udc"
	       "atmel,at91sam9g45-udc"
	       "atmel,sama5d3-udc"
 - reg: Address and length of the register set for the device
 - interrupts: Should contain usba interrupt
 - clocks: Should reference the peripheral and host clocks
 - clock-names: Should contain two strings
		"pclk" for the peripheral clock
		"hclk" for the host clock
 - ep childnode: To specify the number of endpoints and their properties.

Optional properties:
 - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
   vbus is present (USB is connected).

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>;
	clocks = <&utmi>, <&udphs_clk>;
	clock-names = "hclk", "pclk";
	atmel,vbus-gpio = <&pioB 19 0>;

	ep@0 {
		reg = <0>;
		atmel,fifo-size = <64>;
		atmel,nb-banks = <1>;
	};

	ep@1 {
		reg = <1>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@2 {
		reg = <2>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@3 {
		reg = <3>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

	ep@4 {
		reg = <4>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

	ep@5 {
		reg = <5>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@6 {
		reg = <6>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};
};
