From patchwork Tue Dec 27 09:47:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacky Bai X-Patchwork-Id: 9489129 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id DBEEB62AAF for ; Tue, 27 Dec 2016 09:51:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CCA3C1FF26 for ; Tue, 27 Dec 2016 09:51:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C161620951; Tue, 27 Dec 2016 09:51:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 18FC81FF26 for ; Tue, 27 Dec 2016 09:51:24 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1cLoNH-0003yD-9v; Tue, 27 Dec 2016 09:48:51 +0000 Received: from mail-ve1eur01on0083.outbound.protection.outlook.com ([104.47.1.83] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1cLoN3-0003sj-F5 for linux-arm-kernel@lists.infradead.org; Tue, 27 Dec 2016 09:48:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=NCyr2/pZeav1cWoNa9tJmtqOv48jqFqb9z+OUdn7DiE=; b=klk3ELIHtM7Fa7AgP6Sasjj77aBbIJOzmSjlDUbUUV6M4d9UQSrvIHvDku81758SPbZYxT82euP0TfYVe9gZhRnzsE/iVjA5CIEGi6zcfp+ONoaVKuLI7MkrtAFNixNIfM81U6dd2t2vMZZmgfh48D7ZT1dcMOST6UvIZFkn82w= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ping.bai@nxp.com; Received: from b51503-01.ap.freescale.net (192.158.241.86) by DB4PR04MB538.eurprd04.prod.outlook.com (10.141.237.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 09:48:11 +0000 From: Bai Ping To: , , , , , Subject: [PATCH v2 01/12] ARM: imx: Add basic msl support for imx6sll Date: Tue, 27 Dec 2016 17:47:39 +0800 Message-ID: <1482832070-22668-2-git-send-email-ping.bai@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1482832070-22668-1-git-send-email-ping.bai@nxp.com> References: <1482832070-22668-1-git-send-email-ping.bai@nxp.com> MIME-Version: 1.0 X-Originating-IP: [192.158.241.86] X-ClientProxiedBy: KL1PR03CA0008.apcprd03.prod.outlook.com (10.165.63.18) To DB4PR04MB538.eurprd04.prod.outlook.com (10.141.237.28) X-MS-Office365-Filtering-Correlation-Id: a6f4d3eb-5e3b-442b-0290-08d42e3d7c16 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB4PR04MB538; X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 3:TlTbgExCk/us3fwz7GT7yQh9z+kbTpSWTTYvLFXnqsT1ofnY1PXJJg7Q+tPqYVlrVfkHtJDdeWlwpsXHDT53k4/KrlI8VNfG6EoMAcavMqp25V4NiWnIou2TLhlq39kCeNtQ6Zx+GdGRtIdJHha1sE1ATuugQ3XXpVnk+cg4kQ7VEFfYBV8rXoDBPvokGNBtJMvt37W+YbMrL9JdZ1kwzB6aM6L/LTStKXOchYD7DAWQSJtTdpojlnI9vxA3NhzxXop98ti9JlsaU8y7ROUr1Q== X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 25:uRv0wXjrUAK7h6u57LSdzOcqReiJRz/NnQ0Reve9ifbD8llYw2YYIGHZRDBu0q/bfcgtGjZFSK8zWfqVLJQvlyLcNSPBakpRTairGXta1vGoJJqe9y0E+gVYLq9zgE6mUsWMPJiagaBg1DjLLo8LbzXqbWk4sPDq3AEOn22gnMceM0Fvzpl7OCE680S8tFKYo0ksSQF617WDe8iayCY/ZCLoG6oEMtRPyctWQzBClIWRTZNmNAxQtfdheQyBsYvT79Jrr2TPOjxGrozrcs3kDazg59rbyCm6E8zi9Dv7sg/qCKWxb5sc9IZQVDuVbNAJ/p3zw0LxZIqe3TKFq3+HQidc46l4TMSLimoCLqT8UiaJq5/t92CLnCgdXYq2R/2cMvwCBtmkqURT1d/cmrs7m3YEF270IWz5YugQlt3+1aB4gy2BuAqhVAmBwxTUigMu+jDrUJvWCr8gQ82f2fYHPIF7Jdj5BbSog14JhBSaD1W8Jz0XI60JM4Yw/PD6HdjEWY4j2BFtlxTMN0olOMuFyki4r0Vid9fEtsUJ/b2UQaz4mRXUY/Lw+inQXWf6Jr8ZLuftjpJu/qkwU+wBeLBUpf+dsKnavg/Vk0VMIvQphkHUR9oMw1T17NAzkVwa3OrYzJg0Tt5z3RJfbqKihozMJUrjzRdRoMlKHBQRDwCfoLc6JUd/I9AYUlyHL1izqqD4VNpFjcPhvVtYLvB0/xvNONKl4JgpbUr4ynGdn/mRBeSUhNams5Jub2+ff2nlRqDf X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 31:IkDsyxRum/rUGRl8vraiu9Y+ZLQQjubgMGNjdMpBLLQJOwR7eYs8AhQgrZNAHhqHbADD3HSy0dtGvbGxHpCl5M67JdPqdwFpVWFiY0wsqGS7vN9WuXIL+GIUHuIjIfoYZ2JQILrh1QHuYyzMjndMVwGBEpD9OmSkHTM+qA+C2msX5JRqkVzXTnfBz7lzKtHeocnxKzxOC9B6RamP1if7b1HFU4cW91aUcCCDETVSm+ASL+5rfZrdkViyRY9vXHfxb3hDoUAmKJ5q/4UJmfCsSg==; 20:zeMakyWPnyoRGI+XfJ0lzdGxED98LAetcTjGQ6dcPlq0Tcp3I1/yWGfG7NYgsbulBk71Ri7liQtJ1wkHvhrpTf39G5Rl3+oXUPDlAalvoS0Vb7IZcDucciBBWGUaKQbnHBCSbK2MSB9ZJTsgzUWRPRujt6q3rvLJnvXWwgBrIhnhxzuvGoiFHXQbbAIyibNzTiQvDU2CkcOwHZgqtIm35TRGJ9s8WNpSpZcunbc7B8b/BHTlV7aC2L4vyNd1yerMkF045wwDu9Kj0ShebaH+WCrkUM972/m/8VgqCClSFpqj8X8d80BEjywvRnI3Lqb0GBVm/mnaFAF8JMAQZPLHX67yQMpRPB1JDe+6YPa9YxVCX3GFFNOL3E+gzBQ+mcxnxCB3tGpbKYOWVzAZ0D30X8/zKB+QZWt592AjL902Oc0X4hm1HgD1MmvdhD76i6+2hoQs5jUzUnJ+cyuLUKihc417XBIn0StWvXSr0ohVutIHBYuB0VurhXPQguAHOcYe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148)(6047074); SRVR:DB4PR04MB538; BCL:0; PCL:0; RULEID:; SRVR:DB4PR04MB538; X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 4:r5ngeTGyITZcXmSbUqVAQW8CzDuBbF+9pcMUMFV3qzp5OEsHQnSGKc8bONgsAf0zt8MYs3GwNQHPVKLUEYFV+v7TsfptHEJOxu4ZZMqXp2LVRb2Yl+1ykg8qP0E2kO3d8IWLj0nljgBXujYA73NlDJbPrMJTcjDg6FPeb1ZpEFAjNrHINILxPKNMrl2xNv3J70webJaY0fmkHRE1mpXbrZ9D0jTsfokiGENV4tj8LfxlVtC7yNgB4BYXl6XSGAHAKxLT0Zi2erx0AgespdQdvwrMpOmCs5wN96UKIjoEdPjvO2Ek5lsdjR+oc4CLs3VB5paT1OjmzBh374SW+xhhRLN1tRIM8ydoKfP/Hv0/ttmfAMQwf8tNFAI/AHIItvbjeglnQCRZHsU8+9xMkPj6jH3tbLw8jLIXjpDUtTLuNwKREvcVerEOX0RsgB14xcLyyeREdGRzI2AXA43x8vv9eZ0mgRGGqDHR2SvKvo2Oo5MMNYPtcNsh28DDHvQSdSI4XwCFPaEbaY9IB0PdERv8uBn6y6WsRi5DPtKuEb2sVp1HuuKL9SKuza3YFL3RWsbRJfmPXcIRGYkC2QAEbLZQOc8qIvjS7WRBg+iKhV7+MK0KcWMTpVXyjBKeWQfs6tjDbbiWRaGFrpLvfXjkjhhDXw== X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39410400002)(39850400002)(39450400003)(39860400002)(39840400002)(199003)(189002)(7416002)(5003940100001)(81156014)(106356001)(86362001)(575784001)(2201001)(105586002)(5660300001)(7736002)(25786008)(68736007)(39060400001)(81166006)(6666003)(305945005)(6486002)(6506006)(6512006)(38730400001)(50226002)(2950100002)(8676002)(6116002)(5001770100001)(97736004)(92566002)(3846002)(33646002)(2906002)(4326007)(50466002)(189998001)(48376002)(42186005)(36756003)(101416001)(50986999)(76176999)(47776003)(66066001)(7099028)(32563001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR04MB538; H:b51503-01.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB4PR04MB538; 23:Xwq/otods2Ej5kLeSF7DW0nsVKwl3kLSrjNhnoCFwI?= =?us-ascii?Q?FaDM01W2rBQpICHUli72oeZGZgkTln7HWkeY3HMHQtN675Xwlim1tqq9uiLW?= =?us-ascii?Q?vAzy79G1/CYRTNF6cJiaNwdIe1shpB61caz0n9B34drPSVi29n8ytF5l5wKG?= =?us-ascii?Q?lXlDBkf3zRdk8ykqmwMWkp5lCbMR2Qgq97vHOPnc6APDoVgyTkHPUCTLcy8/?= =?us-ascii?Q?35rgqFJPYbZv5sWATsZu3g9SJRQexor1JRcgK5nI1weTJJv08VF2QUHi1x/8?= =?us-ascii?Q?UFJR/OKrbWBdqk7EhRX3/B9d0SwhJsegiO8ccqj3Fr4ZbFSlcoZpYJtQ9LE/?= =?us-ascii?Q?Jaidd//ZDOg96wV2AFmUpJ+bVLDBe0a/L6y+uscyGr69m3JlyY/09zaBLLfh?= =?us-ascii?Q?o4R20SBv5PYjoVxmjjZZpTawDwmL6JihKVbEiAwUY2TW1pGntT8Y4Oo+D9wJ?= =?us-ascii?Q?PI4qRBd2az+rWqeFzxy+ZNr739bkbgRWhB2K7fwdHA0PMGNitrq+YzkXkwTf?= =?us-ascii?Q?FdmL+O6cwfIxetUipd92O/ScQEYc2XYYD0Y391JqxqcpEwusyZnRK8QFrCYE?= =?us-ascii?Q?QUUuZ1wYBzr3sI0WNgj2t13TNhINnrli3hnLI8JMbARkcE4ojCjoN8QdhwMi?= =?us-ascii?Q?3NpJA/XSiyAGzvYsaSZS2kveahLWlhC1WfhDXMDpgHIb4VliLpyRQGedkhmq?= =?us-ascii?Q?yMXKoWYV1gDlcFzLT5Q6vh93pXN592KI8ne0VF4BNXGvZ5cnKBu0LQxR6w5G?= =?us-ascii?Q?FE68avKyYmJi3DZLaOYRulrQ2ZOGvXRlBsGfPl7hh9HxmcFeTvjutrqoqwH8?= =?us-ascii?Q?UWN07k6v20l19mgT/3/tCbdbg+mdvmGu9s+nDuEhfLjdXizEjCvarerQzeyA?= =?us-ascii?Q?W3vSLZNieCjy+/NdDFRmJiU9BjewPGlPf41Y2Z6S2sngbeeQUz5iJ4JfK+bO?= =?us-ascii?Q?Jpm2UUmQu4A1yFXoTOLfDfB6vW1mCo/jPyoZwGt8yzuR1Gho7EPh0goFTI7c?= =?us-ascii?Q?1yS2xOTGuhnTFScnzF1E1Rmn4j1wbkjDtOwrief9lpZOQCfDZtfi3tplmwMl?= =?us-ascii?Q?lQx/nXpdJNbapbmjg6/XXBRQKx2KqK55pxZZgPprrWFTerK7JvK8SfhACMSe?= =?us-ascii?Q?ONGiNIqK/PglygXtBTSZLX+aZeNE7oAIwti3lf/KtGTqVL6b89X2KChhTTZJ?= =?us-ascii?Q?O1wnnEF9W2VBYoSQ+DMF6Oy3/hP+7CEK0rg8arfOxgJsnb2EQ+44TFU7cET+?= =?us-ascii?Q?VwMLQhy3U9x7uDZy+TlzsF4sGGk2GqfmJY8KsAHG6AlOLwyVHfV/2RJM7gnj?= =?us-ascii?Q?EKO+abrvcF6+s37iwV/Gs=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 6:JIa7EAa+AZu99owwzT1P9iJ+Ws7edsKSqtYEVLWAi8jO2U0dvrt2SS+1De8noFTBLTZ9dGqYHqCRKzNHzyLFPyh2nXhtpkg8MCFqZ12wptxwvcY/cuPjABpJ6wpwfpQvjvLgJJI6wQnBEi0lwdosrUDeTBFxyPeoH3V2+9K2tKhpIJuxxaLCvwJOY8U5UCx5YePg7kgqR14b7bPPXWIFrkjwWTccYClE/5zxT3D+kVq630T0MMShO9vvlUFnewyIoaloCrUfHV/SD2fTyUQKALZ2G6VJgtiNeoP3f3L7+BMmDF3LxoT6YDihc5UCO0kmglbbDZUjiiFQAH3Yh83m16emZnA4oftWA+yE0K8Shh7bh6WfPQydIbCqg1sK/hwE8ZKzTGjF8CIimr5awpdweQEkFz7isnlCH3zTyLDzFihNDup9d4KjWVZjTFGPcnrOEUmnknSCNUgK9wMmA61HJA==; 5:q12PVRKRBsoiT4iKtMBJiy/KYgpa9emIJWwHijDmw7oqcbh++SYhbkst+SvMVzldN392QaPXk68GBPlvSrH0AtSJjciNY74GyNS+Ys6QynrQOBrUbrSN19w5VO9S+QFE7IslydN+VByppmqTkis0YQ==; 24:IlcpzL5RKK6gvyNjf9KKIi6YLIGHITU0lrV9us1e7kUjwvoDkwd4H6+++cudghNvyWHbe0IMnfkxQ0O1tjFmm0BUbZcuD8nlToCAzH5RE8c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB538; 7:/7U+N8UOkLvCT9LyHKmG86/QM2oGVOpWGOH+f9kwLkOigrWJbl2dGobastqzkKBjOih8GorWd1eWX510mo99nA8buSEccshlAg1Bme+aOh/jvqGT6uCwLfBE5UT5Tt1UNdt7kumHw+22VFFEBeVjHqMetM2iFhpk/XD7WYmCM4E7l62yoDuYYol+ZMHYwYgtfhd5+ykKe1wO90nAjvY4Y3ecF7Mdn2W4R6GLtM0I9dhV3KPEnBqFpV++8qPRXhtW7oQ43cuPfasffiaRELGHJe2X0FzbpiIH8e4e1+EpBmdsbdYqkcnjjZGbxgOLk7aqzclyIMhra6gFdGEqWsmPkn9RWVn/mEhCPhxb5yFgnigfISpxMedZPCG1TURkPzoD3O4zr53BeVV64MwpEb2u8I1XU889Vqg/WVhwvjsK2A+lV5Yzd4cPVJ0nIMHUa+FRJ4QQuc5fTwmmwiQfl9qS1g== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:48:11.6745 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR04MB538 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161227_014837_799401_5973889B X-CRM114-Status: GOOD ( 16.43 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, kernel@pengutronix.de, daniel.lezcano@linaro.org, linux-gpio@vger.kernel.org, p.zabel@pengutronix.de, jacky.baip@gmail.com, fabio.estevam@nxp.com, tglx@linutronix.de, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add basic MSL support for i.MX6SLL. The i.MX 6SoloLiteLite application processors are NXP's latest additions to a growing family of multimedia-focused products offering high-performance processing optimized for lowest power consumption. The i.MX 6SoloLiteLite processors feature NXP's advanced implementation of the ARM Cortex-A9 core, which can be interfaced with LPDDR3 and LPDDR2 DRAM memory devices. Signed-off-by: Bai Ping --- arch/arm/mach-imx/Kconfig | 7 +++++++ arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/cpu.c | 3 +++ arch/arm/mach-imx/cpuidle-imx6sl.c | 7 +++++-- arch/arm/mach-imx/gpc.c | 8 ++++++++ arch/arm/mach-imx/mach-imx6sl.c | 10 ++++++++-- arch/arm/mach-imx/mxc.h | 6 ++++++ 7 files changed, 38 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 936c59d..33bcfda 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -512,6 +512,13 @@ config SOC_IMX6SL help This enables support for Freescale i.MX6 SoloLite processor. +config SOC_IMX6SLL + bool "i.MX6 SoloLiteLite support" + select SOC_IMX6 + + help + This enables support for Freescale i.MX6 SoloLiteLite processor. + config SOC_IMX6SX bool "i.MX6 SoloX support" select PINCTRL_IMX6SX diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index cab1289..f2bf650 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -77,6 +77,7 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o endif obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o +obj-$(CONFIG_SOC_IMX6SLL) += mach-imx6sl.o obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c index b3347d3..62e8c0f 100644 --- a/arch/arm/mach-imx/cpu.c +++ b/arch/arm/mach-imx/cpu.c @@ -131,6 +131,9 @@ struct device * __init imx_soc_device_init(void) case MXC_CPU_IMX6UL: soc_id = "i.MX6UL"; break; + case MXC_CPU_IMX6SLL: + soc_id = "i.MX6SLL"; + break; case MXC_CPU_IMX7D: soc_id = "i.MX7D"; break; diff --git a/arch/arm/mach-imx/cpuidle-imx6sl.c b/arch/arm/mach-imx/cpuidle-imx6sl.c index 8d866fb..124f982 100644 --- a/arch/arm/mach-imx/cpuidle-imx6sl.c +++ b/arch/arm/mach-imx/cpuidle-imx6sl.c @@ -11,6 +11,7 @@ #include #include "common.h" +#include "hardware.h" #include "cpuidle.h" static int imx6sl_enter_wait(struct cpuidle_device *dev, @@ -21,9 +22,11 @@ static int imx6sl_enter_wait(struct cpuidle_device *dev, * Software workaround for ERR005311, see function * description for details. */ - imx6sl_set_wait_clk(true); + if (cpu_is_imx6sl()) + imx6sl_set_wait_clk(true); cpu_do_idle(); - imx6sl_set_wait_clk(false); + if (cpu_is_imx6sl()) + imx6sl_set_wait_clk(false); imx6_set_lpm(WAIT_CLOCKED); return index; diff --git a/arch/arm/mach-imx/gpc.c b/arch/arm/mach-imx/gpc.c index 1dc2a34..4ed8a63 100644 --- a/arch/arm/mach-imx/gpc.c +++ b/arch/arm/mach-imx/gpc.c @@ -26,6 +26,7 @@ #include "hardware.h" #define GPC_CNTR 0x000 +#define GPC_CNTR_L2_PGE 22 #define GPC_IMR1 0x008 #define GPC_PGC_GPU_PDN 0x260 #define GPC_PGC_GPU_PUPSCR 0x264 @@ -243,6 +244,7 @@ static int __init imx_gpc_init(struct device_node *node, { struct irq_domain *parent_domain, *domain; int i; + u32 val; if (!parent) { pr_err("%s: no parent, giving up\n", node->full_name); @@ -271,6 +273,12 @@ static int __init imx_gpc_init(struct device_node *node, for (i = 0; i < IMR_NUM; i++) writel_relaxed(~0, gpc_base + GPC_IMR1 + i * 4); + /* clear the L2_PGE bit on i.MX6SLL */ + if (cpu_is_imx6sll()) { + val = readl_relaxed(gpc_base + GPC_CNTR); + val &= ~(1 << GPC_CNTR_L2_PGE); + writel_relaxed(val, gpc_base + GPC_CNTR); + } /* * Clear the OF_POPULATED flag set in of_irq_init so that * later the GPC power domain driver will not be skipped. diff --git a/arch/arm/mach-imx/mach-imx6sl.c b/arch/arm/mach-imx/mach-imx6sl.c index 0408490..462ed9c 100644 --- a/arch/arm/mach-imx/mach-imx6sl.c +++ b/arch/arm/mach-imx/mach-imx6sl.c @@ -17,6 +17,7 @@ #include #include "common.h" +#include "hardware.h" #include "cpuidle.h" static void __init imx6sl_fec_init(void) @@ -54,7 +55,8 @@ static void __init imx6sl_init_machine(void) of_platform_default_populate(NULL, NULL, parent); - imx6sl_fec_init(); + if (cpu_is_imx6sl()) + imx6sl_fec_init(); imx_anatop_init(); imx6sl_pm_init(); } @@ -66,11 +68,15 @@ static void __init imx6sl_init_irq(void) imx_init_l2cache(); imx_src_init(); irqchip_init(); - imx6_pm_ccm_init("fsl,imx6sl-ccm"); + if (cpu_is_imx6sl()) + imx6_pm_ccm_init("fsl,imx6sl-ccm"); + else + imx6_pm_ccm_init("fsl,imx6sll-ccm"); } static const char * const imx6sl_dt_compat[] __initconst = { "fsl,imx6sl", + "fsl,imx6sll", NULL, }; diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h index 34f2ff6..e047611 100644 --- a/arch/arm/mach-imx/mxc.h +++ b/arch/arm/mach-imx/mxc.h @@ -39,6 +39,7 @@ #define MXC_CPU_IMX6SX 0x62 #define MXC_CPU_IMX6Q 0x63 #define MXC_CPU_IMX6UL 0x64 +#define MXC_CPU_IMX6SLL 0x67 #define MXC_CPU_IMX7D 0x72 #define IMX_DDR_TYPE_LPDDR2 1 @@ -73,6 +74,11 @@ static inline bool cpu_is_imx6ul(void) return __mxc_cpu_type == MXC_CPU_IMX6UL; } +static inline bool cpu_is_imx6sll(void) +{ + return __mxc_cpu_type == MXC_CPU_IMX6SLL; +} + static inline bool cpu_is_imx6q(void) { return __mxc_cpu_type == MXC_CPU_IMX6Q;