From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0796C43381 for ; Mon, 25 Mar 2019 14:15:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F9F120863 for ; Mon, 25 Mar 2019 14:15:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="nSa6o5s6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F9F120863 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sigxcpu.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=2WitSngaaIe+PKzY9ZJh1ls9bazNoj5llXrGtyCN5ig=; b=nSa6o5s63zfHzH /HipDbMdfj6Z4TfGUUJOQ6JhmBLZw2R1Y6FvZ8HX/smSNy4FdKbbJdZo4906aNmMHV5kTtu1mqgq7 IiU+vfk8xd0/yqTE68m3SIteRi7GIUYhPSVBxZnOdrF84Kad7Vqf59ivbWPL6dyef7g477KZ3mWA6 xZpf9c+tOlJIVrYYu0FqfUWhlg92qYwOFWeqGufB9vQ9OaVv/kFvCIC1SOTYOtemDU1ilS5DHKbb2 ftmJjCiqQ0hK1Y+HBGqj6R/ktfAMsgZlLMV8EU5z/XFcv2IdZGzdXJQd0BMVf3/N0t1bJV/A8sLAL mkHCSl0DHHwGTR+miU7w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h8QNm-0006nJ-Gf; Mon, 25 Mar 2019 14:15:22 +0000 Received: from honk.sigxcpu.org ([24.134.29.49]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h8QNJ-00054R-MA for linux-arm-kernel@lists.infradead.org; Mon, 25 Mar 2019 14:15:00 +0000 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id EC398FB04; Mon, 25 Mar 2019 15:14:49 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at honk.sigxcpu.org Received: from honk.sigxcpu.org ([127.0.0.1]) by localhost (honk.sigxcpu.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kNvEXCclaEH0; Mon, 25 Mar 2019 15:14:44 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id C7B1C4027E; Mon, 25 Mar 2019 15:14:43 +0100 (CET) From: =?UTF-8?q?Guido=20G=C3=BCnther?= To: Maxime Ripard , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, Robert Chiras , Sam Ravnborg , Fabio Estevam , linux-kernel@vger.kernel.org Subject: [PATCH v7 0/3] Mixel DPHY support for i.MX8 Date: Mon, 25 Mar 2019 15:14:40 +0100 Message-Id: X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190325_071454_063388_DDFA3BD8 X-CRM114-Status: GOOD ( 12.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org dGw7ZHI6IHY3IGZpeGVzIGEgYnVpbGQgaXNzdWVkIGR1ZSB0byB0aGUgbGFjayBvZiBhIEhBU19J T01FTQoKVGhpcyBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIE1peGVsIElQIGJhc2VkIG1p cGkgZHBoeSBhcyBmb3VuZCBvbiBpLk1YOApwcm9jZXNzb3JzLiAgSXQgaGFzIHN1cHBvcnQgZm9y IHRoZSBpLk1YOE1RLCBzdXBwb3J0IGZvciBvdGhlciB2YXJpYW50cyBjYW4gYmUKYWRkZWQgLSBv bmNlIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJ0cyBhcmUgaW4gLSB2aWEgdGhlIHByb3ZpZGVk IGRldmRhdGEuClRoZSBkcml2ZXIgaXMgc29tZXdoYXQgYmFzZWQgb24gd2hhdCdzIGZvdW5kIGlu IE5YUHMgQlNQLgoKUHVibGljIGRvY3VtZW50YXRpb24gb24gdGhlIERQSFkncyByZWdpc3RlcnMg aXMgY3VycmVudGx5IHRoaW4gaW4gdGhlIGkuTVg4CnJlZmVyZW5jZSBtYW51YWxzIChldmVuIG9u IHRoZSBpLk1YOFFYUCBmb3JtIDExLzE4KSBzbyBtb3N0IG9mIHRoZSB2YWx1ZXMgd2VyZQp0YWtl biBmcm9tIGV4aXN0aW5nIGRyaXZlcnMuIE5ld2VyIE5YUCBkcml2ZXJzIGhhdmUgYSBiaXQgbW9y ZSBkZXRhaWxzIHNvIHdoZXJlCnBvc3NpYmxlIHRoZSB0aW1pbmdzIGFyZSBjYWxjdWxhdGVkIGFu ZCB2YWxpZGF0ZWQuCgpJJ3ZlIGFsc28gc2VudCBvdXQgYW4gaW5pdGlhbCB2ZXJzaW9uIG9mIGEg TldMIG1pcGkgZHNpIGhvc3QgY29udHJvbGxlciBkcml2ZXIKdXNpbmcgdGhpczoKCiAgICBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1NYXJjaC8y MDk2ODUuaHRtbAoKUm9iZXJ0IENoaXJhcyAodGhlIGF1dGhvciBvZiB0aGUgY29ycmVzcG9uZGlu ZyBkcml2ZXIgaW4gTlhQcyB2ZW5kb3IgdHJlZSkgZ290CnRoaXMgZHJpdmVyIHRvIHdvcmsgaW4g aGlzIHRyZWUgYXMgd2VsbDoKCiAgICBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9hcm0t a2VybmVsL21zZzcxMTk1MC5odG1sCgpDaGFnZXMgZnJvbSB2NgoqIERlcGVuZCBvbiBIQVNfSU9N RU0gKGZpeGVzIGEgYnVpbGQgcHJvYmxlbSBvbiBVTSBzcG90dGVkIGJ5IGtidWlsZCkKCkNoYWdl cyBmcm9tIHY1CiogRml4IGJ1aWxkIHByb2JsZW1zIG9uIG1pcHMgKHNwb3R0ZWQgYnkgdGhlIGti dWlsZCB0ZXN0IHJvYm90KSBieSB1c2luZyB1MzIKICBjb25zaXN0ZW50bHkgYW5kIGxvbmcgbG9u ZyBmb3IgbHBfdC4KCkNoYW5nZXMgZnJvbSB2NAoqIEJ1aWxkIGJ5IGRlZmF1bHQgb24gQVJDSF9N WEMgJiYgQVJNNjQKCkNoYW5nZXMgZm9ybSB2MwoqIENoZWNrIGNvcnJlY3QgdmFyaWFibGUgYWZ0 ZXIgZGV2bV9pb3JlbWFwX3Jlc291cmNlCiogQWRkIFJvYmVydCBDaGlyYXMgYXMgQ28tYXV0aG9y ZWQtYnkgc2luY2UgaGUncyB0aGUgYXV0aG9yCiAgb2YgdGhlIGRyaXZlciBpbiBOWFBzIEJTUC4K CkNoYW5nZXMgZnJvbSB2MgoqIEFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBGYWJpbyBFc3Rl dmFtCiAgKiBLQ29uZmlnOiBzZWxlY3QgUkVHTUFQX01NSU8KICAqIERyb3AgcGh5X3JlYWQKICAq IERvbid0IG1ha2UgcGh5X3dyaXRlIGlubGluZQogICogUmVtb3ZlIGR1cGxpY2F0ZSBkZWJ1Z2dp bmcgb3V0cHV0CiAgKiBDb21tZW50IHN0eWxlIGFuZCB0eXBvIGZpeGVzCiAgKiBBZGQgI2RlZmlu ZXMncyBmb3IgUExMIGxvY2sgdGltaW5nIHZhbHVlcwogICogUmV0dXJuIGNvcnJlY3QgZXJyb3Ig dmFsdWUgd2hlbiBQTEwgZmFpbHMgdG8gbG9jawogICogQ2hlY2sgZXJyb3Igd2hlbiBlbmFibGlu ZyBjbG9jawogICogVXNlIGRldm1faW9yZW1hcF9yZXNvdXJjZQoqIEFzIHBlciByZXZpZXcgY29t bWVudHMgZnJvbSBSb2JlcnQgQ2hpcmFzCiAgKiBEZWFzc2VydCBQRF9EUEhZIGFmdGVyIFBMTCBs b2NrIChhcyBwZXIgbWl4ZWwgcmVmIG1hbnVhbCkKICAqIEFzc2VydCBQRF97RFBIWSxQTEx9IGJl Zm9yZSBwb3dlciBvbiAoYXMgcGVyIG1peGVsIHJlZiBtYW51YWwpbWFudWFsCiogQWRkIGV4aXQg cGh5X29wIHRvIHJlc2V0IENOL0NNL0NPCgpDaGFuZ2VzIGZyb20gdjEKKiBBcyBwZXIgcmV2aWV3 IGNvbW1lbnRzIGZyb20gRmFiaW8gRXN0ZXZhbQogICogS2NvbmZpZzogdHJpc3RhdGUgbWl4ZWwg ZHBoeSBzdXBwb3J0LgogICogRHJvcCB1bnVzZWQgJ3JldCcgaW4gbWl4ZWxfZHBoeV9yZWZfcG93 ZXJfb2ZmLgogICogTWF0Y2ggdmFsdWVzIG9mIERQSFlfUlhMe1BSUCxEUlB9IHRvIHRob3NlIG9m CiAgICBodHRwczovL3NvdXJjZS5jb2RlYXVyb3JhLm9yZy9leHRlcm5hbC9pbXgvbGludXgtaW14 L2xvZy8/aD1pbXhfNC4xNC43OF8xLjAuMF9nYQogICAgVGhlIHByZXZpb3VzIHZhbHVlcyB3ZXJl IGJhc2VkIG9uIDQuOS4KICAqIFVzZSByZXNvdXJjZSBzaXplIG9uIGRldm1faW9yZW1hcCwgd2Ug aGF2ZSB0aGF0IGluIGR0IGFscmVhZHkuCiAgKiBVc2UgcmVnbWFwIHNvIGl0J3Mgc2ltcGxlIHRv IGR1bXAgdGhlIHJlZ2lzdGVycy4KICAqIFVzZSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQgaW5z dGVhZCBvZiBvcGVuIGNvZGVkIGxvb3AuCiAgKiBBZGQgdW5kb2N1bWVudGVkIHJ4aHNfc2V0dGxl IHJlZ2lzdGVyCiogQXMgcGVyIHJldmlldyBjb21tZW50cyBmcm9tIFNhbSBSYXZuYm9yZwogICog TW92ZSBkcml2ZXIgdG8gZC9waHkvZnJlZXNjYWxlLwogICogTW92ZSBTUERYLUxpY2Vuc2UtSWRl bnRpZmllciB0byB0b3Agb2YgZmlsZS4KICAqIERyb3AgJy8qICNkZWZpbmUgREVCVUcgMSAqLycu CiAgKiBVc2UgR1BMLTIuMCsgc2luY2UgdGhlIHZlbmRvciBkcml2ZXIgdXNlcyB0aGF0IGFzIHdl bGwuCiAgKiBEcm9wIHRoZSBtdXRleCwgcmVnaXN0ZXIgYWNjZXNzIGlzIG5vdyBwcm90ZWN0ZWQg YnkgcmVnbWFwLgogICogRml4IHZhcmlvdXMgc3R5bGUgLyBpbmRlbnRhdGlvbiBpc3N1ZXMuCiog Q2hlY2sgZm9yIHJlZ2lzdGVyIHJlYWQsIHdyaXRlIGFuZCBpb3JlbWFwIGVycm9ycwoqIEltcHJv dmUgcGh5IHRpbWluZyBjYWxjdWxhdGlvbnMKICAqIFVzZSBMUCBjbG9jayByYXRlIHdoZXJlIHNl bnNpYmxlLCBjaGVjayBmb3IgZXJyb3JzCiAgKiBVc2UgYWQgaG9jIGZvcnVtdWxhcyBmb3IgdGlt aW5ncyBpbnZvbHZpbmcgaHMgY2xvY2sKKiBTd2l0Y2ggZnJvbSBkcGh5X29wcyB0byBkZXZkYXRh LiBPdGhlciBpLk1YOCB2YXJpYW50cwogIGRpZmZlciBpbiByZWdpc3RlciBsYXlvdXQgdG9vCiog QWRkIE1peGVsIEluYyB0byB2ZW5kb3ItcHJlZml4ZXMudHh0CgpHdWlkbyBHw7xudGhlciAoMyk6 CiAgZHQtYmluZGluZ3M6IEFkZCB2ZW5kb3IgcHJlZml4IGZvciBNaXhlbCBJbmMKICBkdC1iaW5k aW5nczogcGh5OiBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgbWl4ZWwgZHBoeQogIHBoeTogQWRkIGRy aXZlciBmb3IgbWl4ZWwgZHBoeSBmb3VuZCBvbiBpbXg4CgogLi4uL2JpbmRpbmdzL3BoeS9taXhl bCxtaXBpLWRzaS1waHkudHh0ICAgICAgIHwgIDI5ICsKIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdz L3ZlbmRvci1wcmVmaXhlcy50eHQgICB8ICAgMSArCiBkcml2ZXJzL3BoeS9mcmVlc2NhbGUvS2Nv bmZpZyAgICAgICAgICAgICAgICAgfCAgMTEgKwogZHJpdmVycy9waHkvZnJlZXNjYWxlL01ha2Vm aWxlICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9waHkvZnJlZXNjYWxlL3BoeS1mc2wtaW14 OC1taXBpLWRwaHkuYyAgICB8IDUwNiArKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdl ZCwgNTQ4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvcGh5L21peGVsLG1pcGktZHNpLXBoeS50eHQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL3BoeS9mcmVlc2NhbGUvcGh5LWZzbC1pbXg4LW1pcGktZHBoeS5jCgot LSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Subject: [PATCH v7 0/3] Mixel DPHY support for i.MX8 Date: Mon, 25 Mar 2019 15:14:40 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return-path: Sender: linux-kernel-owner@vger.kernel.org To: Maxime Ripard , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, Robert Chiras , Sam Ravnborg , Fabio Estevam , linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org tl;dr: v7 fixes a build issued due to the lack of a HAS_IOMEM This adds initial support for the Mixel IP based mipi dphy as found on i.MX8 processors. It has support for the i.MX8MQ, support for other variants can be added - once the platform specific parts are in - via the provided devdata. The driver is somewhat based on what's found in NXPs BSP. Public documentation on the DPHY's registers is currently thin in the i.MX8 reference manuals (even on the i.MX8QXP form 11/18) so most of the values were taken from existing drivers. Newer NXP drivers have a bit more details so where possible the timings are calculated and validated. I've also sent out an initial version of a NWL mipi dsi host controller driver using this: https://lists.freedesktop.org/archives/dri-devel/2019-March/209685.html Robert Chiras (the author of the corresponding driver in NXPs vendor tree) got this driver to work in his tree as well: https://www.spinics.net/lists/arm-kernel/msg711950.html Chages from v6 * Depend on HAS_IOMEM (fixes a build problem on UM spotted by kbuild) Chages from v5 * Fix build problems on mips (spotted by the kbuild test robot) by using u32 consistently and long long for lp_t. Changes from v4 * Build by default on ARCH_MXC && ARM64 Changes form v3 * Check correct variable after devm_ioremap_resource * Add Robert Chiras as Co-authored-by since he's the author of the driver in NXPs BSP. Changes from v2 * As per review comments from Fabio Estevam * KConfig: select REGMAP_MMIO * Drop phy_read * Don't make phy_write inline * Remove duplicate debugging output * Comment style and typo fixes * Add #defines's for PLL lock timing values * Return correct error value when PLL fails to lock * Check error when enabling clock * Use devm_ioremap_resource * As per review comments from Robert Chiras * Deassert PD_DPHY after PLL lock (as per mixel ref manual) * Assert PD_{DPHY,PLL} before power on (as per mixel ref manual)manual * Add exit phy_op to reset CN/CM/CO Changes from v1 * As per review comments from Fabio Estevam * Kconfig: tristate mixel dphy support. * Drop unused 'ret' in mixel_dphy_ref_power_off. * Match values of DPHY_RXL{PRP,DRP} to those of https://source.codeaurora.org/external/imx/linux-imx/log/?h=imx_4.14.78_1.0.0_ga The previous values were based on 4.9. * Use resource size on devm_ioremap, we have that in dt already. * Use regmap so it's simple to dump the registers. * Use regmap_read_poll_timeout instead of open coded loop. * Add undocumented rxhs_settle register * As per review comments from Sam Ravnborg * Move driver to d/phy/freescale/ * Move SPDX-License-Identifier to top of file. * Drop '/* #define DEBUG 1 */'. * Use GPL-2.0+ since the vendor driver uses that as well. * Drop the mutex, register access is now protected by regmap. * Fix various style / indentation issues. * Check for register read, write and ioremap errors * Improve phy timing calculations * Use LP clock rate where sensible, check for errors * Use ad hoc forumulas for timings involving hs clock * Switch from dphy_ops to devdata. Other i.MX8 variants differ in register layout too * Add Mixel Inc to vendor-prefixes.txt Guido Günther (3): dt-bindings: Add vendor prefix for Mixel Inc dt-bindings: phy: Add documentation for mixel dphy phy: Add driver for mixel dphy found on imx8 .../bindings/phy/mixel,mipi-dsi-phy.txt | 29 + .../devicetree/bindings/vendor-prefixes.txt | 1 + drivers/phy/freescale/Kconfig | 11 + drivers/phy/freescale/Makefile | 1 + .../phy/freescale/phy-fsl-imx8-mipi-dphy.c | 506 ++++++++++++++++++ 5 files changed, 548 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.txt create mode 100644 drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c -- 2.20.1