Add compatible "microchip,sam9x60-udc" and device tree binding.
Compared to SAM9X5 the only difference is the DPRAM memory from the
USB High Speed Device Port (UDPHS) hardware block was increased,
so we can reuse the same endpoint data.

Tested on SAM9X60-Curiosity board with nfs and ums commands.

Signed-off-by: Zixun LI <[email protected]>
---
 arch/arm/dts/sam9x60.dtsi                        | 14 ++++++++++++++
 arch/arm/mach-at91/include/mach/atmel_usba_udc.h |  2 +-
 drivers/usb/gadget/atmel_usba_udc.c              |  1 +
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/arch/arm/dts/sam9x60.dtsi b/arch/arm/dts/sam9x60.dtsi
index 3b684fc63d5..96a8faf09b3 100644
--- a/arch/arm/dts/sam9x60.dtsi
+++ b/arch/arm/dts/sam9x60.dtsi
@@ -69,6 +69,20 @@
                #size-cells = <1>;
                ranges;
 
+               usb0: gadget@500000 {
+                       compatible = "microchip,sam9x60-udc";
+                       reg = <0x500000 0x100000>,
+                               <0xf803c000 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
+                       clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc 
PMC_TYPE_CORE 8>;
+                       clock-names = "pclk", "hclk";
+                       assigned-clocks = <&pmc PMC_TYPE_CORE 8>;
+                       assigned-clock-rates = <480000000>;
+                       status = "disabled";
+               };
+
                usb1: usb@600000 {
                        compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00600000 0x100000>;
diff --git a/arch/arm/mach-at91/include/mach/atmel_usba_udc.h 
b/arch/arm/mach-at91/include/mach/atmel_usba_udc.h
index 835b47d91ba..23c71985c90 100644
--- a/arch/arm/mach-at91/include/mach/atmel_usba_udc.h
+++ b/arch/arm/mach-at91/include/mach/atmel_usba_udc.h
@@ -20,7 +20,7 @@
        }
 
 #if defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
-       defined(CONFIG_AT91SAM9X5)
+       defined(CONFIG_AT91SAM9X5) || defined(CONFIG_SAM9X60)
 static struct usba_ep_data usba_udc_ep[] = {
        EP("ep0", 0, 64, 1, 0, 0),
        EP("ep1", 1, 1024, 2, 1, 1),
diff --git a/drivers/usb/gadget/atmel_usba_udc.c 
b/drivers/usb/gadget/atmel_usba_udc.c
index a77037a7094..f9326f0a7e7 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -1443,6 +1443,7 @@ static const struct udevice_id usba_udc_ids[] = {
        { .compatible = "atmel,at91sam9rl-udc" },
        { .compatible = "atmel,at91sam9g45-udc" },
        { .compatible = "atmel,sama5d3-udc" },
+       { .compatible = "microchip,sam9x60-udc" },
        {}
 };
 
-- 
2.39.5

Reply via email to