Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Feb 2013 21:29:03 +0000 (UTC)
From:      Oleksandr Tymoshenko <gonzo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r246851 - in head/sys: arm/allwinner boot/fdt/dts
Message-ID:  <201302152129.r1FLT4S3005972@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gonzo
Date: Fri Feb 15 21:29:03 2013
New Revision: 246851
URL: http://svnweb.freebsd.org/changeset/base/246851

Log:
  Enable USB1 (which is EHCI0) for Allwinner A10
  
  Tested by: ganbold@

Modified:
  head/sys/arm/allwinner/a10_clk.c
  head/sys/arm/allwinner/a10_clk.h
  head/sys/arm/allwinner/a10_ehci.c
  head/sys/boot/fdt/dts/cubieboard.dts

Modified: head/sys/arm/allwinner/a10_clk.c
==============================================================================
--- head/sys/arm/allwinner/a10_clk.c	Fri Feb 15 21:24:21 2013	(r246850)
+++ head/sys/arm/allwinner/a10_clk.c	Fri Feb 15 21:29:03 2013	(r246851)
@@ -129,6 +129,7 @@ a10_clk_usb_activate(void)
 	/* Gating AHB clock for USB */
 	reg_value = ccm_read_4(sc, CCM_AHB_GATING0);
 	reg_value |= CCM_AHB_GATING_USB0; /* AHB clock gate usb0 */
+	reg_value |= CCM_AHB_GATING_EHCI0; /* AHB clock gate ehci1 */
 	reg_value |= CCM_AHB_GATING_EHCI1; /* AHB clock gate ehci1 */
 	ccm_write_4(sc, CCM_AHB_GATING0, reg_value);
 

Modified: head/sys/arm/allwinner/a10_clk.h
==============================================================================
--- head/sys/arm/allwinner/a10_clk.h	Fri Feb 15 21:24:21 2013	(r246850)
+++ head/sys/arm/allwinner/a10_clk.h	Fri Feb 15 21:29:03 2013	(r246851)
@@ -101,6 +101,7 @@
 #define CCM_MALI400_CLK		0x0154
 
 #define CCM_AHB_GATING_USB0	(1 << 0)
+#define CCM_AHB_GATING_EHCI0	(1 << 1)
 #define CCM_AHB_GATING_EHCI1	(1 << 3)
 
 #define CCM_USB_PHY		(1 << 8)

Modified: head/sys/arm/allwinner/a10_ehci.c
==============================================================================
--- head/sys/arm/allwinner/a10_ehci.c	Fri Feb 15 21:24:21 2013	(r246850)
+++ head/sys/arm/allwinner/a10_ehci.c	Fri Feb 15 21:29:03 2013	(r246851)
@@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
 #define SW_AHB_INCRX_ALIGN		(1 << 8)
 #define SW_AHB_INCR4			(1 << 9)
 #define SW_AHB_INCR8			(1 << 10)
+#define GPIO_USB1_PWR			230
 #define GPIO_USB2_PWR			227
 
 #define A10_READ_4(sc, reg)		\
@@ -182,6 +183,10 @@ a10_ehci_attach(device_t self)
 	GPIO_PIN_SETFLAGS(sc_gpio_dev, GPIO_USB2_PWR, GPIO_PIN_OUTPUT);
 	GPIO_PIN_SET(sc_gpio_dev, GPIO_USB2_PWR, GPIO_PIN_HIGH);
 
+	/* Give power to USB */
+	GPIO_PIN_SETFLAGS(sc_gpio_dev, GPIO_USB1_PWR, GPIO_PIN_OUTPUT);
+	GPIO_PIN_SET(sc_gpio_dev, GPIO_USB1_PWR, GPIO_PIN_HIGH);
+
 	/* Enable passby */
 	reg_value = A10_READ_4(sc, SW_USB_PMU_IRQ_ENABLE);
 	reg_value |= SW_AHB_INCR8; /* AHB INCR8 enable */

Modified: head/sys/boot/fdt/dts/cubieboard.dts
==============================================================================
--- head/sys/boot/fdt/dts/cubieboard.dts	Fri Feb 15 21:24:21 2013	(r246850)
+++ head/sys/boot/fdt/dts/cubieboard.dts	Fri Feb 15 21:29:03 2013	(r246851)
@@ -91,7 +91,14 @@
 			interrupt-parent = <&AINTC>;
 		};
 
-		usb1: usb@01c1c000 {
+		usb1: usb@01c14000 {
+			compatible = "allwinner,usb-ehci", "usb-ehci";
+			reg = <0x01c14000 0x1000>;
+			interrupts = < 39 >;
+			interrupt-parent = <&AINTC>;
+		};
+
+		usb2: usb@01c1c000 {
 			compatible = "allwinner,usb-ehci", "usb-ehci";
 			reg = <0x01c1c000 0x1000>;
 			interrupts = < 40 >;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302152129.r1FLT4S3005972>