[Armadeus-commitlog] SF.net SVN: armadeus:[1072] trunk/buildroot/target/device/armadeus/linux/ kern
Brought to you by:
sszy
|
From: <ar...@us...> - 2009-02-19 13:59:21
|
Revision: 1072
http://armadeus.svn.sourceforge.net/armadeus/?rev=1072&view=rev
Author: artemys
Date: 2009-02-19 13:59:15 +0000 (Thu, 19 Feb 2009)
Log Message:
-----------
[LINUX] Add suspend of ISP1504 USB PHY
Modified Paths:
--------------
trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/281-apf27-armadeus-add_apf27.c.patch
Added Paths:
-----------
trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/312-apf27-armadeus-ulpi-add_function_control_register_address.patch
Modified: trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/281-apf27-armadeus-add_apf27.c.patch
===================================================================
--- trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/281-apf27-armadeus-add_apf27.c.patch 2009-02-18 14:22:01 UTC (rev 1071)
+++ trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/281-apf27-armadeus-add_apf27.c.patch 2009-02-19 13:59:15 UTC (rev 1072)
@@ -3,7 +3,7 @@
(Take a look at armadeus/target/linux/ directory to know how to generate it)
--- linux-2.6.27.13.original/arch/arm/mach-mx2/apf27.c
+++ linux-2.6.27.13.mod/arch/arm/mach-mx2/apf27.c
-@@ -0,0 +1,1109 @@
+@@ -0,0 +1,1118 @@
+ /*
+ * apf27.c
+ *
@@ -677,6 +677,11 @@
+ return ret;
+}
+
++static void isp1504_suspend(void __iomem *view)
++{
++ ulpi_clear(SUSPENDM, ISP1504_FCNCTL, view);
++}
++
+static int apf27_usbotg_init(struct platform_device *pdev)
+{
+ int ret;
@@ -972,18 +977,20 @@
+
+static void dump_gpio_port(int id)
+{
-+ u32 reg;
-+
-+ reg = __raw_readl(VA_GPIO_BASE + MXC_DDIR(id));
-+ printk("DDIR_%c: 0x%08x\n", port[id], reg);
-+ reg = __raw_readl(VA_GPIO_BASE + MXC_DR(id));
-+ printk("DR_%c: 0x%08x\n", port[id], reg);
-+ reg = __raw_readl(VA_GPIO_BASE + MXC_GIUS(id));
-+ printk("GIUS_%c: 0x%08x\n", port[id], reg);
-+ reg = __raw_readl(VA_GPIO_BASE + MXC_OCR1(id));
-+ printk("OCR1_%c: 0x%08x\n", port[id], reg);
-+ reg = __raw_readl(VA_GPIO_BASE + MXC_OCR2(id));
-+ printk("OCR2_%c: 0x%08x\n", port[id], reg);
++ u32 reg;
++
++ reg = __raw_readl(VA_GPIO_BASE + MXC_DDIR(id));
++ printk("DDIR_%c: 0x%08x\n", port[id], reg);
++ reg = __raw_readl(VA_GPIO_BASE + MXC_DR(id));
++ printk("DR_%c: 0x%08x\n", port[id], reg);
++ reg = __raw_readl(VA_GPIO_BASE + MXC_GIUS(id));
++ printk("GIUS_%c: 0x%08x\n", port[id], reg);
++ reg = __raw_readl(VA_GPIO_BASE + MXC_OCR1(id));
++ printk("OCR1_%c: 0x%08x\n", port[id], reg);
++ reg = __raw_readl(VA_GPIO_BASE + MXC_OCR2(id));
++ printk("OCR2_%c: 0x%08x\n", port[id], reg);
++ reg = __raw_readl(VA_GPIO_BASE + MXC_PUEN(id));
++ printk("PUEN_%c: 0x%08x\n", port[id], reg);
+ printk("---\n");
+}
+
@@ -997,11 +1004,13 @@
+ }
+}
+
-+
+static int apf27_pm_suspend(struct sys_device *sd, pm_message_t state)
+{
+ printk("___ %s\n", __func__);
+
++#ifdef CONFIG_USB_EHCI_MXC
++ isp1504_suspend((void __iomem *)(IO_ADDRESS(OTG_BASE_ADDR + 0x170)));
++#endif
+ dump_clocks();
+ dump_gpios();
+
Added: trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/312-apf27-armadeus-ulpi-add_function_control_register_address.patch
===================================================================
--- trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/312-apf27-armadeus-ulpi-add_function_control_register_address.patch (rev 0)
+++ trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/312-apf27-armadeus-ulpi-add_function_control_register_address.patch 2009-02-19 13:59:15 UTC (rev 1072)
@@ -0,0 +1,31 @@
+This patch adds Function Control Register's definition for ISP1504.
+It is needed to put this USB PHY in low power mode.
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: linux-2.6.27.13/arch/arm/plat-mxc/include/mach/ulpi.h
+===================================================================
+--- linux-2.6.27.13.orig/arch/arm/plat-mxc/include/mach/ulpi.h 2009-02-18 17:49:40.000000000 +0100
++++ linux-2.6.27.13/arch/arm/plat-mxc/include/mach/ulpi.h 2009-02-19 10:32:28.000000000 +0100
+@@ -10,6 +10,7 @@
+ #define ISP1504_VID_HIGH 0x01 /* Vendor ID high */
+ #define ISP1504_PID_LOW 0x02 /* Product ID low */
+ #define ISP1504_PID_HIGH 0x03 /* Product ID high */
++#define ISP1504_FCNCTL 0x04 /* Function Control */
+ #define ISP1504_ITFCTL 0x07 /* Interface Control */
+ #define ISP1504_OTGCTL 0x0A /* OTG Control */
+
+@@ -17,6 +18,13 @@
+ #define ISP1504_REG_SET 0x01
+ #define ISP1504_REG_CLEAR 0x02
+
++/* 1504 Function Control Register bits */
++#define SUSPENDM (1 << 6) /* Suspend LOW */
++#define RESET (1 << 5) /* Reset */
++#define OPMODE(x) (((x) & 0x03) << 3) /* Operation mode */
++#define TERMSELECT (1 << 2) /* Terminat° select */
++#define XCVRSELECT(x) (((x) & 0x03)) /* Tranceiver select */
++
+ /* 1504 OTG Control Register bits */
+ #define USE_EXT_VBUS_IND (1 << 7) /* Use ext. Vbus indicator */
+ #define DRV_VBUS_EXT (1 << 6) /* Drive Vbus external */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|