Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752128AbbL1K4c (ORCPT ); Mon, 28 Dec 2015 05:56:32 -0500 Received: from mail-bl2on0138.outbound.protection.outlook.com ([65.55.169.138]:1440 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751882AbbL1Kz3 (ORCPT ); Mon, 28 Dec 2015 05:55:29 -0500 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none;freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; From: Ramneek Mehresh To: CC: , , , , Ramneek Mehresh , Shengzhou Liu Subject: [PATCH 2/7][v5]usb:fsl:otg: Add controller version based ULPI and UTMI phy Date: Mon, 28 Dec 2015 16:42:29 +0530 Message-ID: <1451301154-14422-3-git-send-email-ramneek.mehresh@freescale.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1451301154-14422-1-git-send-email-ramneek.mehresh@freescale.com> References: <1451301154-14422-1-git-send-email-ramneek.mehresh@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD047;1:iY6v3kjo3nCG6gqjE3oFI1ZD0aERyYdTa3yd8dIkg3pNMqpGFe9v9bUAfiZ4cRh1OmeYpJBAMgJKZsJcc0wwNk9PC5iWEvYmJhbo9f8tM/A1HrolFVI023nG9sxTU/gbjhoyMjfy9bbtywPH7O6uuIKdurPhUzfAVuk3JFasPNKucprF4ft2HUmsAV+s1nx9wBKNhcDOUccdCWu0wCPVN7Ch+USbeyl7oIlbFWm5q4TiR+Jd+Pi0zTjgN3waPpkt/aGm8U0M2VQAoeZHEEEAonegOEKycGsmDDJaPDI/JEaONVH2PJJqKUetk84DKTQkbMqC6l6Uy8kvYTl7+wD7W6+JrZIdO0RMBpV2Kh2c/LBAPCKeBKw8jL3V+gEehc/mMMBOieRXoduH4QVPxuS7k/50Di/QayJCy9HeuCtuips= X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(189002)(199003)(189998001)(19580395003)(81156007)(2351001)(2950100001)(575784001)(92566002)(87936001)(76506005)(77096005)(47776003)(229853001)(86362001)(69596002)(106466001)(19580405001)(76176999)(85326001)(50466002)(5003940100001)(11100500001)(586003)(5008740100001)(50986999)(33646002)(1096002)(104016004)(107886002)(48376002)(97736004)(50226001)(110136002)(6806005)(5001960100002)(4001430100002)(36756003)(1220700001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0301MB1292;H:az84smr01.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1292;2:IVzQJULNKlFuipQH2KlgY6I+rgJKVmXmCUoN/OheupWRN3AIoILSWIKDaGm5cJO/T3SKaNpEQ7PnCchggS8o4gfgLlStgByGzTpPWYRqqCG9NGiaCwpaxhu/owRMCxBw7KoXVW8IwwFonrVwjOCWGg==;3:0fMBxEtQgyz07xb2uMu2r12I5TXmUcuY3IRmGxvb1Dqp9nb4I5lJE5Mg7pnGzwI0thvtwwBRfzoEI1rns+4jFHNxKg81X4U5rDnZXVqUn4AQlCL1/22rqiep9Qf+KyssbR6kpoHoIg+XBdvuzCGI/u5vSQUYbjDM9qXwtRRhOu/BhpRu9anFssMB1lcfxAieM0ghlaHPSTYV8XEPsi7AMtAhI/v0w2Tt9ofaaxXrAA0=;25:hwBJEg/ACfxqa0/qDpURs3LI4RwiJY677g/KWuOfIl9oXKgKwpnw95KW439AYKV2ID1vspTqNZUf77LQR1cfByVdWG51kKjEudMD7TCj3BmhUpR/F1Vr1NOLzjrjiRhoAQHltdW64l2x0HYPCl99DYHMMTDaP8H7YfUu7iJ9IrTlJQnb4z67Qvm6jd/CzG/gxp3MwKgRIQkSSt2K3NG3vrSCKCunAuiScDEXp1uSKzVDh379iovUxjjE/0oBCOp1qnQJf/Ggd2y1Z/y/7KAB8Q== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1292; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1292;20:3XzmEeUwDgE3w8cWdwBFabL3SDrpjv2SDjgpKNF40pi2ry0Rg3yZrwu4VbiiDk/GTCTD4sWG5ISnBOvGCDoEeY7qUwjiC/jLpJNuWFCttA4ieSJdRqaxoLWmBpUiWL2o2YTKxREfmwOapQTZp+XkB5fyqMAOSyMkawXpfXsFCgLrK+rFpgCIwzrodRYmw+aO973d/5tb+8ZgGf6ToIy8tsbE8RFtQPUrH/yuia3Bz5V/5orZCilpe0WMx1RhgsOMSFU3NU7RxT53RLLw3mgZoOrSg3AJjmVBEiyhsAXvGIA5BMsGP2L9m/wAWifdM6oHcxfTfSum/E2EPyG876RkQVA9G8z04zNh591z0tzcspY=;4:8hhalOxwrYIgtvntHMS3M2E9JOyqBbB6UZjM+7/zFNTE/0aAyOSPm5TV9RyJ3YIaUTs8kAP2ljJEvvM97sv8K0wNotF3XeOudwT9WMbWDKA68Vl7tQt3VmDZ12IGWoMIOX4+ULmp9+h+l4xfC6DRPBHqNh1bKG/D36+jXwy1nbZdpCheLo2MZ5B9xJiWMjWI3LlhIEeEHLfvAYvQeWllSf4efzUa5lG2AQeOvFe5D14txv2PgJJIvya8ROK3Jegy6XYpXJJTkwO+W6rhCglCb4cL8FXyuWvw+i+g44bx+KFlktFKW/DOs4Iz1JQUcRF/jk93ew+TUpxeSO3zTRpV13eS84uDW9xawqyQDBHCM7XQL1QNg7r+HhddGrHCOr3+mRlqg/1NoLlPjI6jfC0nne6wKQgG/q2vT6GhP28stnz/boXKKZ0IIlFRcHqf6+/3 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001);SRVR:CY1PR0301MB1292;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1292; X-Forefront-PRVS: 08041D247D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB1292;23:Yod0xYEqodqPHlJ9x78YTdL28TLWh3dtwAPC4Fi?= =?us-ascii?Q?N7t4OR4iauz431jUtMLX1ZNf5iE5ypJVUY8+TS1ugkPBH8/r/31kd7sC/eXM?= =?us-ascii?Q?yTRxwA+VL/eLOj179RHE2xvCyCgxGb2qrTHsPQX4SRvvUj7OrSdjvnnT4v2x?= =?us-ascii?Q?Pywh7NAHMOPPijx49+/T7C0e+C/nBrJFXfg3WExDNh+sgZAl8Ohh5xw2h2EJ?= =?us-ascii?Q?ZzMuCC4LXmkDy/qa6iIvkCxFAkiF0LqE+0A9fFRjO5F1yQxSfl+ZBc/gkCUu?= =?us-ascii?Q?g6HBodVmjZBT5AO9HGBde2pL5WDobUxU2fgfFk59PWWk1MilKiPRw8WWhpbo?= =?us-ascii?Q?qpmBsn0d60GDV9w1NOos7mQ5aaDk2oMBxdjYrgnktnlqTaIKF42IzetFpz/9?= =?us-ascii?Q?PqIX0S/KBrSjjJ7RSlcxKus2gsG/+ca3yeAp/J55x2+uTB7n+6eeiN5pfhUc?= =?us-ascii?Q?uH8kg9vhBZHTrqV4ZofipN/bVHhEexe0oAbAz45ZdAha9EX1RN/UDtIMp76B?= =?us-ascii?Q?mYFpkvR0XmO/xf1V2V3HwmsC2nstd8f4E3RDlGulPnPbSXWYJYE7SAcWOjgd?= =?us-ascii?Q?/SYwxfnR3MQVOKcFRcTWyLKl8L6KFciKu3nv/Lw/425W8KTdf8X7LBggpqba?= =?us-ascii?Q?aIVx+rqmgiQ9GRb88tzlFkXLxVouW9x4b+amFOtP/fzhGazk3SMLcp+C6Hoz?= =?us-ascii?Q?22HuCo1nBHBuBQh/I+ni3PXMbFPCy6kARj3EiGr/Tnvt8P0tslvTE0Y0iVzI?= =?us-ascii?Q?TL+qLWrQDtzkVf2EiX60zBk0+HLKTErRW9R98lerjmrg92t/2i1A+UVY+xny?= =?us-ascii?Q?toZEkdfZDPSlzeMioyR7NvG2JvPU5ILu9NdQbleml7nQkOzDvIrNL6+Suihz?= =?us-ascii?Q?zxz1UwR3p91GI1V5VTQgBLLcxqSyHfLy9akFuhUw8/OQmCSkWQgkPBJmkIn7?= =?us-ascii?Q?QjTU3Rgx2rk0SRUyf3aWcNgTmAiIkBj/iPP+bdX7OtgPV/2lMkBnbfyHwm1I?= =?us-ascii?Q?31+4q/mBirn77OUE0nqvIjeeVhIWDNrP1/fpMA/nNMixBuBIpZke/fCW9Xi+?= =?us-ascii?Q?g2LH4QMiQIXYsfUeJt6lV7w6pdsEdkLaZq8Ipe4A8Mf4Ke4OJzsDIOswJ0u3?= =?us-ascii?Q?rIobQfrLvCBk=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1292;5:wBva2lxwGeDkz+xktgjg3DX5RVSk5ZjSTzOYFppXxZUYGR95HTqNQxrkWir1eVLEJV7AGdgNaPBVxDipgjBEqY2AUdeXkghII7T+td5dGjqzlQtkhPcwziWdPcLYrix+uIrDhY7L1Tnl9sbLFPwHOA==;24:IG38iy5snhz+edG5nvjm0q2Qdy6lwD4Z+Yku7suLnVnaELJwKh8pKdklu1Cn3KOd74f5U4h3IYyYgmjW20i2CI5fAo212v6b41cGahG1oUU= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2015 10:55:25.5713 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1292 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2657 Lines: 75 Add controller version based ULPI and UTMI phy initialization for otg driver. Signed-off-by: Shengzhou Liu Signed-off-by: Ramneek Mehresh Reviewed-by: Fleming Andrew-AFLEMING Tested-by: Fleming Andrew-AFLEMING --- drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++ drivers/usb/phy/phy-fsl-usb.h | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c index 94eb292..4e58aee 100644 --- a/drivers/usb/phy/phy-fsl-usb.c +++ b/drivers/usb/phy/phy-fsl-usb.c @@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev) temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW); switch (pdata->phy_mode) { case FSL_USB2_PHY_ULPI: + if (pdata->controller_ver) { + /* controller version 1.6 or above */ + setbits32(&p_otg->dr_mem_map->control, + USB_CTRL_ULPI_PHY_CLK_SEL); + /* + * Due to controller issue of PHY_CLK_VALID in ULPI + * mode, set USB_CTRL_USB_EN before checking + * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work + */ + clrsetbits_be32(&p_otg->dr_mem_map->control, + USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB); + } temp |= PORTSC_PTS_ULPI; break; case FSL_USB2_PHY_UTMI_WIDE: temp |= PORTSC_PTW_16BIT; /* fall through */ case FSL_USB2_PHY_UTMI: + if (pdata->controller_ver) { + /* controller version 1.6 or above */ + setbits32(&p_otg->dr_mem_map->control, + USB_CTRL_UTMI_PHY_EN); + /* Delay for UTMI PHY CLK to become stable - 10ms */ + mdelay(FSL_UTMI_PHY_DLY); + } + setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN); temp |= PORTSC_PTS_UTMI; /* fall through */ default: diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h index 2314995..4a78fb3 100644 --- a/drivers/usb/phy/phy-fsl-usb.h +++ b/drivers/usb/phy/phy-fsl-usb.h @@ -199,6 +199,13 @@ /* control Register Bit Masks */ #define USB_CTRL_IOENB (0x1<<2) #define USB_CTRL_ULPI_INT0EN (0x1<<0) +#define USB_CTRL_WU_INT_EN (0x1<<1) +#define USB_CTRL_LINE_STATE_FILTER__EN (0x1<<3) +#define USB_CTRL_KEEP_OTG_ON (0x1<<4) +#define USB_CTRL_OTG_PORT (0x1<<5) +#define USB_CTRL_PLL_RESET (0x1<<8) +#define USB_CTRL_UTMI_PHY_EN (0x1<<9) +#define USB_CTRL_ULPI_PHY_CLK_SEL (0x1<<10) /* BCSR5 */ #define BCSR5_INT_USB (0x02) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/