18c2ecf20Sopenharmony_ciAtmel SOC USB controllers
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciOHCI
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciRequired properties:
68c2ecf20Sopenharmony_ci - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
78c2ecf20Sopenharmony_ci   used in host mode.
88c2ecf20Sopenharmony_ci - reg: Address and length of the register set for the device
98c2ecf20Sopenharmony_ci - interrupts: Should contain ohci interrupt
108c2ecf20Sopenharmony_ci - clocks: Should reference the peripheral, host and system clocks
118c2ecf20Sopenharmony_ci - clock-names: Should contain three strings
128c2ecf20Sopenharmony_ci		"ohci_clk" for the peripheral clock
138c2ecf20Sopenharmony_ci		"hclk" for the host clock
148c2ecf20Sopenharmony_ci		"uhpck" for the system clock
158c2ecf20Sopenharmony_ci - num-ports: Number of ports.
168c2ecf20Sopenharmony_ci - atmel,vbus-gpio: If present, specifies a gpio that needs to be
178c2ecf20Sopenharmony_ci   activated for the bus to be powered.
188c2ecf20Sopenharmony_ci - atmel,oc-gpio: If present, specifies a gpio that needs to be
198c2ecf20Sopenharmony_ci   activated for the overcurrent detection.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciusb0: ohci@500000 {
228c2ecf20Sopenharmony_ci	compatible = "atmel,at91rm9200-ohci", "usb-ohci";
238c2ecf20Sopenharmony_ci	reg = <0x00500000 0x100000>;
248c2ecf20Sopenharmony_ci	clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
258c2ecf20Sopenharmony_ci	clock-names = "ohci_clk", "hclk", "uhpck";
268c2ecf20Sopenharmony_ci	interrupts = <20 4>;
278c2ecf20Sopenharmony_ci	num-ports = <2>;
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciEHCI
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ciRequired properties:
338c2ecf20Sopenharmony_ci - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
348c2ecf20Sopenharmony_ci   used in host mode.
358c2ecf20Sopenharmony_ci - reg: Address and length of the register set for the device
368c2ecf20Sopenharmony_ci - interrupts: Should contain ehci interrupt
378c2ecf20Sopenharmony_ci - clocks: Should reference the peripheral and the UTMI clocks
388c2ecf20Sopenharmony_ci - clock-names: Should contain two strings
398c2ecf20Sopenharmony_ci		"ehci_clk" for the peripheral clock
408c2ecf20Sopenharmony_ci		"usb_clk" for the UTMI clock
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciusb1: ehci@800000 {
438c2ecf20Sopenharmony_ci	compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
448c2ecf20Sopenharmony_ci	reg = <0x00800000 0x100000>;
458c2ecf20Sopenharmony_ci	interrupts = <22 4>;
468c2ecf20Sopenharmony_ci	clocks = <&utmi>, <&uhphs_clk>;
478c2ecf20Sopenharmony_ci	clock-names = "usb_clk", "ehci_clk";
488c2ecf20Sopenharmony_ci};
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciAT91 USB device controller
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciRequired properties:
538c2ecf20Sopenharmony_ci - compatible: Should be one of the following
548c2ecf20Sopenharmony_ci	       "atmel,at91rm9200-udc"
558c2ecf20Sopenharmony_ci	       "atmel,at91sam9260-udc"
568c2ecf20Sopenharmony_ci	       "atmel,at91sam9261-udc"
578c2ecf20Sopenharmony_ci	       "atmel,at91sam9263-udc"
588c2ecf20Sopenharmony_ci - reg: Address and length of the register set for the device
598c2ecf20Sopenharmony_ci - interrupts: Should contain macb interrupt
608c2ecf20Sopenharmony_ci - clocks: Should reference the peripheral and the AHB clocks
618c2ecf20Sopenharmony_ci - clock-names: Should contain two strings
628c2ecf20Sopenharmony_ci		"pclk" for the peripheral clock
638c2ecf20Sopenharmony_ci		"hclk" for the AHB clock
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciOptional properties:
668c2ecf20Sopenharmony_ci - atmel,vbus-gpio: If present, specifies a gpio that needs to be
678c2ecf20Sopenharmony_ci   activated for the bus to be powered.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciusb1: gadget@fffa4000 {
708c2ecf20Sopenharmony_ci	compatible = "atmel,at91rm9200-udc";
718c2ecf20Sopenharmony_ci	reg = <0xfffa4000 0x4000>;
728c2ecf20Sopenharmony_ci	interrupts = <10 4>;
738c2ecf20Sopenharmony_ci	clocks = <&udc_clk>, <&udpck>;
748c2ecf20Sopenharmony_ci	clock-names = "pclk", "hclk";
758c2ecf20Sopenharmony_ci	atmel,vbus-gpio = <&pioC 5 0>;
768c2ecf20Sopenharmony_ci};
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciAtmel High-Speed USB device controller
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciRequired properties:
818c2ecf20Sopenharmony_ci - compatible: Should be one of the following
828c2ecf20Sopenharmony_ci	       "atmel,at91sam9rl-udc"
838c2ecf20Sopenharmony_ci	       "atmel,at91sam9g45-udc"
848c2ecf20Sopenharmony_ci	       "atmel,sama5d3-udc"
858c2ecf20Sopenharmony_ci	       "microchip,sam9x60-udc"
868c2ecf20Sopenharmony_ci - reg: Address and length of the register set for the device
878c2ecf20Sopenharmony_ci - interrupts: Should contain usba interrupt
888c2ecf20Sopenharmony_ci - clocks: Should reference the peripheral and host clocks
898c2ecf20Sopenharmony_ci - clock-names: Should contain two strings
908c2ecf20Sopenharmony_ci		"pclk" for the peripheral clock
918c2ecf20Sopenharmony_ci		"hclk" for the host clock
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciDeprecated property:
948c2ecf20Sopenharmony_ci - ep childnode: To specify the number of endpoints and their properties.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciOptional properties:
978c2ecf20Sopenharmony_ci - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
988c2ecf20Sopenharmony_ci   vbus is present (USB is connected).
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciDeprecated child node properties:
1018c2ecf20Sopenharmony_ci - name: Name of the endpoint.
1028c2ecf20Sopenharmony_ci - reg: Num of the endpoint.
1038c2ecf20Sopenharmony_ci - atmel,fifo-size: Size of the fifo.
1048c2ecf20Sopenharmony_ci - atmel,nb-banks: Number of banks.
1058c2ecf20Sopenharmony_ci - atmel,can-dma: Boolean to specify if the endpoint support DMA.
1068c2ecf20Sopenharmony_ci - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciusb2: gadget@fff78000 {
1098c2ecf20Sopenharmony_ci	#address-cells = <1>;
1108c2ecf20Sopenharmony_ci	#size-cells = <0>;
1118c2ecf20Sopenharmony_ci	compatible = "atmel,at91sam9rl-udc";
1128c2ecf20Sopenharmony_ci	reg = <0x00600000 0x80000
1138c2ecf20Sopenharmony_ci	       0xfff78000 0x400>;
1148c2ecf20Sopenharmony_ci	interrupts = <27 4 0>;
1158c2ecf20Sopenharmony_ci	clocks = <&utmi>, <&udphs_clk>;
1168c2ecf20Sopenharmony_ci	clock-names = "hclk", "pclk";
1178c2ecf20Sopenharmony_ci	atmel,vbus-gpio = <&pioB 19 0>;
1188c2ecf20Sopenharmony_ci};
119