| 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; | |
| }; | |
| }; |