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