^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Atmel SOC USB controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) OHCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) used in host mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) - reg: Address and length of the register set for the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) - interrupts: Should contain ohci interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - clocks: Should reference the peripheral, host and system clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - clock-names: Should contain three strings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) "ohci_clk" for the peripheral clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) "hclk" for the host clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) "uhpck" for the system clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - num-ports: Number of ports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - atmel,vbus-gpio: If present, specifies a gpio that needs to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) activated for the bus to be powered.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - atmel,oc-gpio: If present, specifies a gpio that needs to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) activated for the overcurrent detection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) usb0: ohci@500000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) compatible = "atmel,at91rm9200-ohci", "usb-ohci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) reg = <0x00500000 0x100000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) clock-names = "ohci_clk", "hclk", "uhpck";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) interrupts = <20 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) num-ports = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) EHCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) used in host mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - reg: Address and length of the register set for the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - interrupts: Should contain ehci interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - clocks: Should reference the peripheral and the UTMI clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - clock-names: Should contain two strings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) "ehci_clk" for the peripheral clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) "usb_clk" for the UTMI clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) usb1: ehci@800000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) reg = <0x00800000 0x100000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) interrupts = <22 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) clocks = <&utmi>, <&uhphs_clk>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) clock-names = "usb_clk", "ehci_clk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) AT91 USB device controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) - compatible: Should be one of the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) "atmel,at91rm9200-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) "atmel,at91sam9260-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) "atmel,at91sam9261-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) "atmel,at91sam9263-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) - reg: Address and length of the register set for the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - interrupts: Should contain macb interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) - clocks: Should reference the peripheral and the AHB clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - clock-names: Should contain two strings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) "pclk" for the peripheral clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) "hclk" for the AHB clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) - atmel,vbus-gpio: If present, specifies a gpio that needs to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) activated for the bus to be powered.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) usb1: gadget@fffa4000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) compatible = "atmel,at91rm9200-udc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) reg = <0xfffa4000 0x4000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) interrupts = <10 4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) clocks = <&udc_clk>, <&udpck>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) clock-names = "pclk", "hclk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) atmel,vbus-gpio = <&pioC 5 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) Atmel High-Speed USB device controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) - compatible: Should be one of the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) "atmel,at91sam9rl-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) "atmel,at91sam9g45-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) "atmel,sama5d3-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) "microchip,sam9x60-udc"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) - reg: Address and length of the register set for the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) - interrupts: Should contain usba interrupt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) - clocks: Should reference the peripheral and host clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) - clock-names: Should contain two strings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) "pclk" for the peripheral clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) "hclk" for the host clock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Deprecated property:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) - ep childnode: To specify the number of endpoints and their properties.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) vbus is present (USB is connected).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Deprecated child node properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) - name: Name of the endpoint.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) - reg: Num of the endpoint.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - atmel,fifo-size: Size of the fifo.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) - atmel,nb-banks: Number of banks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) - atmel,can-dma: Boolean to specify if the endpoint support DMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) usb2: gadget@fff78000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #size-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) compatible = "atmel,at91sam9rl-udc";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) reg = <0x00600000 0x80000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 0xfff78000 0x400>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) interrupts = <27 4 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) clocks = <&utmi>, <&udphs_clk>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) clock-names = "hclk", "pclk";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) atmel,vbus-gpio = <&pioB 19 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) };