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 ehci interrupt - clocks: Should reference the peripheral, host and system clocks - clock-names: Should contains two 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 contains 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 contains 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 contains 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>; ep0 { reg = <0>; atmel,fifo-size = <64>; atmel,nb-banks = <1>; }; ep1 { reg = <1>; atmel,fifo-size = <1024>; atmel,nb-banks = <2>; atmel,can-dma; atmel,can-isoc; }; ep2 { reg = <2>; atmel,fifo-size = <1024>; atmel,nb-banks = <2>; atmel,can-dma; atmel,can-isoc; }; ep3 { reg = <3>; atmel,fifo-size = <1024>; atmel,nb-banks = <3>; atmel,can-dma; }; ep4 { reg = <4>; atmel,fifo-size = <1024>; atmel,nb-banks = <3>; atmel,can-dma; }; ep5 { reg = <5>; atmel,fifo-size = <1024>; atmel,nb-banks = <3>; atmel,can-dma; atmel,can-isoc; }; ep6 { reg = <6>; atmel,fifo-size = <1024>; atmel,nb-banks = <3>; atmel,can-dma; atmel,can-isoc; }; };