From patchwork Mon Jun 20 03:45:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Ying X-Patchwork-Id: 12886968 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 11720C43334 for ; Mon, 20 Jun 2022 03:46:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FOrOaET3d05Uf8QoK7cTUGkUEnMUkeWYwTrioSqYaGk=; b=MXdijDo483mUSF XbBP5fh+UJW0G/XUNIhnOqB0+dx2oxGSBso5Z/EZgHZTgM7pKFu35Ibp+x4vkQO3YketB90NgNd4Z IvpCfmmkspL9qJPIg9c2cs8DM2t3W9azDoT0YRJS0PdzHYTIZHliDni6mWZzODxF46iUnUCrkw+bJ 5GR0md+HpfrLjDFoSrpYoItm95yJyY8a5dF20IbkulXz/n4ANbiHxCavoeZOrt+kqU8SFv0kI2BEd CJiNDrJhY3OoaTV/Iqt328djHqIAfjW0fsQTnwSRIaps+HNaCGjtTfBWUmb4tzXQAZwSKlF7jhKzJ VR9y9OUTeLWPCwYtWGiA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38Lk-00G1Pt-Dh; Mon, 20 Jun 2022 03:45:16 +0000 Received: from mail-vi1eur05on2062c.outbound.protection.outlook.com ([2a01:111:f400:7d00::62c] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38Kp-00G0me-Ez; Mon, 20 Jun 2022 03:44:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dwYgBBixOpMdYzc4OUY/G9Xsh4z8Rj7YLu7MLI8UDgUlF2cfUu8XmJaXdiMqMIsEeVqTH1e/rKSCpmNeA5oG+II3c3xcxGL8kD5zfu8fFu5NY1VEnS4iG68RmHZvpljCVI6yUZxyYMtPDpfZvKA8rum5mFFbUqCoQPiJVvj1qWa7q7RPICTPf/daijptyCKJFK5ajmso/DYTDbkzN9+gBJexr2uk7HB9X7l0KmVZDNPq9ZvbRCJM7wRRS7+zpLGf4XK+5TCGkea631oZKaoeQHLqywD25IeV6o9SfSezeU4Lw+cBDzdgntBObMj6dnity+t/fXjl+ugwIjS453OHoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mrLWL77nXlg8hwzfXMRQnkjSd5EmyvmAaXWblNIKYx4=; b=Aqa1A6g4yMd0ixy51olSo2W24Poaor4yQLG05/jIQqO/rsMMY4lVBIuPS9A4y4NXX/vq/2DG8TL6rPR/9P72TruPVWOTg8smF6J4Bv1ej+0mIwuFb9Ba6pQrLWbpNZP6Yh9e65yw6WycvYP9tkcdW43hW25GGStQeJHjsRBBAWmlYA3l7e8kq9/8VRm+8DS0DUy8ceWglO2x5+a233iVD3y/rlcqNlo4nvSkczxgm4COCLEt/bpt6fkfmSDocxh8lv9XYES22ZGt1fqeTRj47TcUd6WIOFcOUH4swUq5d1spnHhghitCJUmicvVd11O+TsmHunB0GbzGrjxateEbug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mrLWL77nXlg8hwzfXMRQnkjSd5EmyvmAaXWblNIKYx4=; b=KIvQSB1VCEeL9oXzRGtKzDwWdq4HJ7Ewl7YF8oxLDnsM9CbVCDkVYm0dyzi3Egnsb3DfVLJAbBWLotvypRLLHfXKEjfsojby7u6NpvJCYJZ5fsYIvYUM9/C3NLnXsNe/vlCfFe7RZcW9VCNu1JKPckOWsTw84CcXJS+YvoQwWnI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) by PA4PR04MB7965.eurprd04.prod.outlook.com (2603:10a6:102:c9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Mon, 20 Jun 2022 03:44:16 +0000 Received: from AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502]) by AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502%6]) with mapi id 15.20.5353.021; Mon, 20 Jun 2022 03:44:16 +0000 From: Liu Ying To: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: kishon@ti.com, vkoul@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, krzysztof.kozlowski@linaro.org Subject: [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add prefix for Mixel, Inc. Date: Mon, 20 Jun 2022 11:45:31 +0800 Message-Id: <20220620034533.4108170-2-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620034533.4108170-1-victor.liu@nxp.com> References: <20220620034533.4108170-1-victor.liu@nxp.com> X-ClientProxiedBy: SI2PR02CA0049.apcprd02.prod.outlook.com (2603:1096:4:196::7) To AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e20a5595-df3e-445a-8ec4-08da526f25c1 X-MS-TrafficTypeDiagnostic: PA4PR04MB7965:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XPi6eFw1uKKNSczanvjFI7kqcsLFJMtfmcfGJoMCbIBYwg6xDqroT+OoJDvO8GyT72McPfGDa95MnL3kyp5WFT1k+XfDswboxAmlMsqT5tzwjGJgeV76UEYBdO4CLNegpnHcf1ZxBY7WnO5DNZTDW3EywCoU2a3Lrf7j82f2pKnM2QjBVZvNXrfBzI/Md1ANAg/f2kPjWYZhee55SJkmHhDPLUCmCYzHuQSGbRPnzPfNqKLzh5COAed6hVg/PA9A9fvB/wbuGHgLw35XzZ7PY2gMiaKy1yJY5zQsNQX08vsCOacyi9PKGDy6age2ledjl2dtK+DHF0IFb48sEM07LW2Q+vqXQzcDTkvhv1DQWCWQP7pNS7hJ1xX6Bkkf/DS5ZXOFILqQTg+erCADgKNTMlvWZEiVO0P1KuEIqiUU1eqU9n1Bsx19OiscTVvcnP2YW4KKRASj0AOq45DH4SoJgkHx+A5JLWv6LE4NRO4PrTygZbdhK7qwwuApAa8uia/tO0oZNM7tNM+xt5rNTBwnCTN9QNRq65OsLGf1C0QHffXWO7z28SKvK/I0Cg5y/ka2HxqtX4Dx+IRPM9MMaWkWzSjd0f0nZtNRJ/cM8mL2btWmFbWEnasTcelkqU4hPgCc8hfWN5XD7s4rm+iwBjUvgGipt726QHoEky93l0nEQ+ivrNsnZKpDgSPPu2KfezJ7/a5T0bF5r+OhaXYVObnkm8BNaJECVux01iZs3qUBIZlMApKj5EbFGGhMOKl67AlIs55cMtmvTsECIupo8eIQ30jsdd0IFAY3qSo6DMutn3c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR04MB7046.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(6506007)(66556008)(52116002)(7416002)(5660300002)(316002)(4744005)(26005)(6512007)(6666004)(66476007)(498600001)(86362001)(8936002)(8676002)(66946007)(6486002)(4326008)(2906002)(1076003)(2616005)(186003)(36756003)(38350700002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5Lc+F0arqldD3tAqUURuTZ38rutatVvTKie4MtKoe/FI1k0R3We3usUc7k3obBLYDLLXZDeNbGNWu4Zc2YW5AR4+oUZEpsAog0TTFax3wetck8QBZ/oFNy3yo7ExH2ZrsEWWam3QFYuKhheNuv9Ftnerv51XEE/qCi7hpqKs0u7s8XNWlFH0L4uv0Ub7apd+wdy9f7Mh0ff7JnPVf7Z6N2tPPP+B0r9z6viJmZWMX3qlwFWq5FH+ukAsw3DXlpyjV0QPuEVd7R4FKt7uIqEGt3ZAAVPButQ6O1SjXqXp0jaNTA9ZAeddfzgArDqWratEqnMgPsM2QTyftPVyd5YbhE+VFfqe+NKVKS38B7LbynpxDGPuuK3x1Y2yei0J5xwig8f5lleWBUCvCDKugS2RTT4wM2U/HABz1piWxgDbhkRfUAm8Ihu/2rU/7UVV7mk+7AxAYXKvp7noDay4T3e3+IhB78rn2SOOp6BvyRAXTl+Bvs5Y+5bWxeofj/PFKqqUSrI0wKULDVDm4DEnOLgg0kNqVkU6eoSrPSuZtapsvsASAmPrBnwA897Mt1FO4a+O1UHkFS5kSEp4ySuCT8ocXbHJ6mogHOMg/G371x0D2ArTg7OivcAtGVQc+Vh2ECGwjgrdSXBisES8rSYsqv3FmyS4kVBG5FOWdei26xjq64kgAWKu38LRw+Yc5IUrncyxWq9wk4abXmUAovdaXlk9QZ+6bcXuFuAHLY7GeR4mzHgoqaYcPfbUvHwo3jWs9HhLXWqyVRJLy5337fAlzs6XK0KEuF5vwY8JtZLQ3Ba2oLvPvennAavr81j4FDDFuCXZKVmH/l964S8ipE2DfiA5bRsN6jYh/TnVYSYt+TP3ll/c9ZxFdu6o12tIQpFVMJh+ERvuUk/UNrPCfR9UzGHGC6+cjf76IMenCHotxIBVgdPItNnoVkBVaGyz3MfNu1uBgqSAFJvqgNPRz28NA21QDDgzP/9aTnbJRM5mvi+Uf2sQBvB/pOha3Z9auGGGsSthMrm9F7oAswuzjeLLjG+2wausZOAAna3gkrMuH4bpGsDzdie7hSjFQR2RHrV3Yo1u9hzbaYpJCXhwLydvfcAEmuo/uCG+JxvAstB5c8p3q71Vbp604nxKNVKiH5EzLGCI5/+e7Cj/bKFY9DUzsjuZb1upw/w468v0Lr7ZbpKBRPdgQAHVsuQ88tU6/y+zXwMKNEWFJRDG0Sy8S+pquGUmNIzN5Wa6vc6MYG7JU/qWjJSjYOjs4HRttJMk7EUqMoYYn3KsgsaZfHLrh1UGhVP+HDQ0Z+YttFykR5/7AF5s6bNuGvdFhc7UyRAcpwaWWnnRaWd0mF2JjCyV8G8sbVGIIDqu0LL/In+jDVgSuyZIaXC4glDYob3Bo/4Nj/NnQ2QewpOEakx1LpveKotsLtmbRPqCPepgfJpTjNoZmM1Fyt0Pp56CzRwx/1fuRV/+1NZBUCsPlNS3H6+1K9G8DPvMgXke5Ko3CYwojuDM0jFp4lXigyRc2EQzLg5t7p6TKy+/yGZdjYccM52r/kqZK+YWXJxPyuWCUPusJA2gSnF58rvW/RuQKy5PvtfpMcWJJQdJzlfnupCzCy0yVxVHwxpg9pmXa6zp0itdeNG5ldWAm9kz9SsxMxZyYQXU12EaOzxfvb5T4r1lPuE+tnPcfeV/lLRlL+ZJZUZNhoGOhWg7eJ6qUM4SihPkFt4rP+Bw7nSvweMddbGpjYUaOyjda41Caw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e20a5595-df3e-445a-8ec4-08da526f25c1 X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 03:44:15.7604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5R38AI/+O5ibreC/ZGYVXHFldHpez3RqGAI5/jb9LYY1dBCk1J0h4170u7dxgIuAqoUdFfEr48akQb8vjMo6Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7965 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220619_204419_565112_734451DE X-CRM114-Status: UNSURE ( 7.43 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add a vendor prefix entry for Mixel, Inc. (https://www.mixel.com). Signed-off-by: Liu Ying Acked-by: Krzysztof Kozlowski --- v1->v2: * Newly introduced in v2. (Krzysztof) Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index 6bb20b4554d7..bbce3b060710 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -792,6 +792,8 @@ patternProperties: description: MiraMEMS Sensing Technology Co., Ltd. "^mitsubishi,.*": description: Mitsubishi Electric Corporation + "^mixel,.*": + description: Mixel, Inc. "^miyoo,.*": description: Miyoo "^mntre,.*": From patchwork Mon Jun 20 03:45:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Ying X-Patchwork-Id: 12886969 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 1EF95C433EF for ; Mon, 20 Jun 2022 03:46:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=v9Rq3m2lKCvf9w9HyDOP+tBwkG0AF3JJBWrrJe2ts7g=; b=ciAzH2Hfju01K0 AqZC3wUcWFQY1EbwI8nNpVHyYqcJVKKILBL/sREvydPPHMP8P6Hv5WTzRI2KeGw4vp1YE8s2oUf4A a6KqUeZcYndfrtkVY5/8DgnJ9+i+uJJHRXZ2BQFvdcdDrljCcuIzvbJHo0ol0Fq47cZ1iIOgWpj23 9LI8KcGpHYquSyk0MGYZ35vw7TBZLikEmOLHaeKQZXGSCOgUqo0QL+Xt3DQ8e40CWpzK+ogozvAl+ rhzHyeXxgzeyHpMXbUBe/o3ff6sxikTbfVFuYk/I1tDmd3N1B0UB/ZeNisicI8UE094SnoX6o2eAF Mapo8cKUlSTXDefYmvWw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38M5-00G1gi-64; Mon, 20 Jun 2022 03:45:37 +0000 Received: from mail-vi1eur05on2062c.outbound.protection.outlook.com ([2a01:111:f400:7d00::62c] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38Kr-00G0me-Eu; Mon, 20 Jun 2022 03:44:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ex3h/jBwXmzEPwv1Pj/jeXERG1QNAshdlX3QZjA0lpB9+rkr91laHOt7v0DQwpe1Di3maoWLfSuh/ZC7YdG24VBHCDtdZHSu5aqOIoVU4A+vTO0O312Gkf7m4WtgN309x5DRw5u2YApek8EGINhMI/YgKGyWZLQF9F6IG863XoEFisshiEbd5CfnNly6NC1hm58TUNIE04Gyoe557FMq7S/uaqItD2SVHc/7rBveNjXDC3rCpYBKYfIFK91CE5IGtAlz7yw5f1nQFJ1S+V0AyTnsphc3BdtRiOJ5xj7e0Gjdueb/HzBjC2B6T79DEUr6WflLcqXVfm2VTcvpyyM6aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=juizKsphdYpyNHz5IT+Ty8u1IHR49IBXFXuhYegspOA=; b=SBteW4ABl396b6bDIsBEHRaywNlH8fsbFoCqAXr48RFmOsOGhEHNvFwAfo9MCzxocNRhGcf8kkMQK3fFphJjbpuIpvxt3ssfif2U122mFKPHQa7DSZNH50JfPuQ0CPeKGAaiwDU+mFCnlSx24RrLYfwsIiGdDSB6nBH/YSq92e/7ZsbmZ9AMMrTpjstgvE7g/3if06YAUNFERFasCTx3Fw5Bi5baf/GFh7Pqwnyt6Q2cOHcXPZJCaQtXVUznaA+bVxYhP6CQ1x+gvS6Gdi5G0PAJYlZhLFIp0p8peCPitp68C2BsB5V8rAYRwV0gMZOYIMM2Z8Z7VwL6aKAdhmetCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=juizKsphdYpyNHz5IT+Ty8u1IHR49IBXFXuhYegspOA=; b=P4luNwISB6/II7uSg6HyzHupSWwJSkpmUfSGjaMeGXZAMUUntAYIrRwxEOSrZd/7Fnv8c1e2mPTs9GXXnwYUGigz5DcP04YJj+SmG111hzfeM3Ctap0FBxdzPgNCyttNgqgphjiLlsvWg9s2u5VXuVF2wHRUtjzx2YZT7qUfcLI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) by PA4PR04MB7965.eurprd04.prod.outlook.com (2603:10a6:102:c9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Mon, 20 Jun 2022 03:44:20 +0000 Received: from AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502]) by AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502%6]) with mapi id 15.20.5353.021; Mon, 20 Jun 2022 03:44:20 +0000 From: Liu Ying To: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: kishon@ti.com, vkoul@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, krzysztof.kozlowski@linaro.org Subject: [PATCH v2 2/3] dt-bindings: phy: Add Freescale i.MX8qm Mixel LVDS PHY binding Date: Mon, 20 Jun 2022 11:45:32 +0800 Message-Id: <20220620034533.4108170-3-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620034533.4108170-1-victor.liu@nxp.com> References: <20220620034533.4108170-1-victor.liu@nxp.com> X-ClientProxiedBy: SI2PR02CA0049.apcprd02.prod.outlook.com (2603:1096:4:196::7) To AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 93202865-cfa6-4622-cff8-08da526f285a X-MS-TrafficTypeDiagnostic: PA4PR04MB7965:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jSXzEzZY0jLnqRuefjmSQLEJsL+WFirEpYiVo7rwsYkRsnBBFatUBws7LWwtM0yCaan5+1OX/tTWUkknef2kwlj6B5KIY1cRbKZo707o2kZJlSvSpqchaGUlamgSU89Yhi0pOnt3dgTntbeNUi5VPE3Qz8X7vr8kgmjEg/MeJp3dujrdy67izIRGzUpCrVUjAtQ5o7cwiqOMsm8bRtOcpCy9XlMNePGgZELYy7d9eopnMD1LsDLcfLQ3eEkrqH/FobnZGL2rW2FbPhJR57B2cOi56H7EXfAXOZsJxpzPIhYmmxQ0Ynr0XoPdRyGAeme5bIkZjRM7jNnOCx1aISeKsuHYxgK4xbkHpY4NV6kiS18TCllq7D4wa0MUVdcaCWINPcTGuq2A1WuQL5ADJSFoVpSb6yLeTjVqjAsHlB1IinIVOg9GjzOjavwopfD4fw4RYp44hyzYc/YmA1Msd6UidzLFGMJ71hAtbwhEJ7Tvz42vxyBVjbC3Q1m02xI/4/M15Z/T890ym//2nqa4UgQn93AZAGmspltQs8ZP2dZC2tjadBgTmOftuw7ynQEafLyIK0m29Or9rrOFIQrBGS1br19dCfuGjW60XZ6FwlhNKKSE0+0UMgcJXpn7FAudardmvAEgubwUU0w7vFPO8LvkkesKMhVfaDV4U94ASAETqBX3zsuU8eSSZHuHAdogr6k3v+V/lTeuQAnXvRllBeM9WCxVdcUwLXxK7xDUp9ngoeI+IkqV0vBx0geCsan3uinLDViG8J135vgUQQosflegrDdFLWJoqbeGkgWuLgdgt0U3UYxy8P86Hd4Yq6V6bXEW X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR04MB7046.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(6506007)(66556008)(52116002)(7416002)(5660300002)(316002)(26005)(6512007)(6666004)(966005)(66476007)(498600001)(86362001)(8936002)(8676002)(66946007)(6486002)(4326008)(2906002)(1076003)(2616005)(186003)(36756003)(38350700002)(38100700002)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZHPaI2ZHo0uK2w5dCtQ61HCleJIzyeZr7Z9qe6A9DZriOYOHIqbAOQwFhBwPDrFVQmUaA+KC1dCEIQf5EhW/9kH2KMp370kQYO+EvbNNFxaHL2WMlZUUbsesH/F4IOELYfMk3IXy3tJvFruiQuC38wSdbZDbLQrjBoXYLuM46ttMvECIGa4Uy7vPgfJD2hfi/xIH5uHoBA7M2MEdCGNV92jFqIwygTJgB8gOi+97TkhVbZsZO1IHR2GmXisruHDJUgldfDGJT9v2izgOte18neSwjfb0WxBYZ5kQ8kxcKy7YCPiQXRTLIyfGKH1IDArSZaKrZaOsGbhLTbxX7xxTz1cB2bNQRqKh9a1AzDUWnZo0WtHBOgtD2evLeomqUAE2n4/pSPVvRrbg0FURTOGlwS3lTdk2PkxwCgeEGfjAI3XzsRoDPZ8AUfsiGRI0KSQz/PKrRNQSTKPSSH3OZ5DjA1OCuwdNaiwvO7ftZNIxi/VUTh3TQoL43xsTSkRAHOBfzPYq7QAp4f2dsg//lw2rMw3laYsNKBHMUVHfzm+ObKg00X1i7LvQXOQryuItYQEd8ykobtxMh11tBTjHFMORT8NqYeOk1uzrxwMU4Ore5TaoqCRcswq2xjiq6uRgzYpbrIT8knmgSV81eK5moFQTV1StzNZj64RUnBwx5ICMyHCTtwS+6f7ujhKIXWemrijHTszZbIqwMCDCh1lkujT3T5c7qJlO2ikb23GAAuA4nWCm4qlRVcfJIS3fkVlcizuY3TpTVx2j/cRy4wPhauXrSnHXfouMROpgxHo2+ys7fiTxHkr8XN1Pxuwc7wZ8gXuNnGTlTDy+JsCTP0uj0FE8em871u+vT0aZuDwwlSIAotXuyQUMCflHFDtKAGA8+V+nw8dvHAVV0YYwjkeEo53vLxLUP/XXVnhvyPgdHvCNhNIX2BIbxDb3vJdMKGVCtHM7jDiQNRJoG/PGLNzPL/DnunKbv1geVtwlGrsjrVDdvCTtwo/DBby/recDx82m3V3YVkqiMNEQuYSyBHwHddR2xRgQotL2XFS/Mf1Sn1YOe3ohSl/7OnlbOMTz+1Mia1mj+VxeV6Dfag+XyAjjxPU1sXmfVz268G1c96uLyi35pIZndQxcs47mXRqDBNvtymcNyAIf514F4RqWG081kA239KMUGpVp76G0B6D7EpBI/X8sddltYoG4Q/LccsGGiteD7cgeWeX2xUbzBjqaiptuyUdUScGL1NuhieE4lIl+kMnaEUyyvGYC/P2kQRWVdVXaqLiWljrjCMYnoGixmTLcADZK1qyCTToxX46cG7Y4M39l26MGfOnOqObiN4XeBBITPIFMxwhDBZhcdJL6NHjJvMDXt6MlnoA5u+KFd8uK84sGDEXlzWSUgkGXtblgxFgy6fvu+ba0Lgwm/MZeRO84OfGoo3leBEEMJYPLVMxixpOiBFd2qJ26NfNDhytIpJ0RIhoDDV1zclyW+nTlBk3NWbMHDbec7oBg2NojytRW59hPz3n7RoMTP8Fgwt9a1Q1Mq3o6Dforos3HhGgWpfMo+okg29Cw8hdfzlAq8d/S0F1xfc41BdOKSwpqhHO/85XzNnbi5QXAA3g+r5Y7QB6RXakAw7BeafvfRC/QRhPU3dwAiqZ8X3a5ju+PGHXlzvUCBFNRSJUu/i9DOquzSVTmGbeQfmuF8O3FvzFpoWhko4R4WrFh9/sYN29t593dY3fGowJ9dhTPMrnhSwIwREu0iQ== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93202865-cfa6-4622-cff8-08da526f285a X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 03:44:20.0733 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8CtaQZUXwdPX6ZM31zTk1dnOY9qHaVCOOq8NQR9xRGhF0Z5hlSwR721Pzxf37MWWlryovcUTW74GuL26lYlRPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7965 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220619_204421_544316_BE6C6FE2 X-CRM114-Status: GOOD ( 13.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add bindings for Mixel LVDS PHY found on Freescale i.MX8qm SoC. Signed-off-by: Liu Ying --- v1->v2: * Set fsl,imx8qm-lvds-phy' and 'mixel,lvds-phy' as compatible's enum. (Krzysztof) * Skip 'clock-names' property. (Krzysztof) * Drop 'This patch' from commit message. (Krzysztof) .../bindings/phy/mixel,lvds-phy.yaml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/mixel,lvds-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/mixel,lvds-phy.yaml b/Documentation/devicetree/bindings/phy/mixel,lvds-phy.yaml new file mode 100644 index 000000000000..4bfcc0dd987f --- /dev/null +++ b/Documentation/devicetree/bindings/phy/mixel,lvds-phy.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/mixel,lvds-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Mixel LVDS PHY for Freescale i.MX8qm SoC + +maintainers: + - Liu Ying + +description: | + The Mixel LVDS PHY IP block is found on Freescale i.MX8qm SoC. + It converts two groups of four 7/10 bits of CMOS data into two + groups of four data lanes of LVDS data streams. A phase-locked + transmit clock is transmitted in parallel with each group of + data streams over a fifth LVDS link. Every cycle of the transmit + clock, 56/80 bits of input data are sampled and transmitted + through the two groups of LVDS data streams. Together with the + transmit clocks, the two groups of LVDS data streams form two + LVDS channels. + + The Mixel LVDS PHY found on Freescale i.MX8qm SoC is controlled + by Control and Status Registers(CSR) module in the SoC. The CSR + module, as a system controller, contains the PHY's registers. + +properties: + compatible: + enum: + - fsl,imx8qm-lvds-phy + - mixel,lvds-phy + + "#phy-cells": + const: 1 + description: | + Cell allows setting the LVDS channel index of the PHY. + Index 0 is for LVDS channel0 and index 1 is for LVDS channel1. + + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + +required: + - compatible + - "#phy-cells" + - clocks + - power-domains + +additionalProperties: false + +examples: + - | + #include + phy { + compatible = "fsl,imx8qm-lvds-phy"; + #phy-cells = <1>; + clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>; + power-domains = <&pd IMX_SC_R_LVDS_0>; + }; From patchwork Mon Jun 20 03:45:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Ying X-Patchwork-Id: 12886970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 70F9EC43334 for ; Mon, 20 Jun 2022 03:47:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=F4iwV9DuaXbREW5toQHiQhlTZpOMpD6BKKEKyTyljaQ=; b=C26SFEvyIdwcmA s3AjOMNY6cpirRRRRTuMR8VRt4BCj+/TNWP8/0i8BOUDOfsWBFzEp1djE0sSFcThqqCMaYWXEjsgp lDu85+z7CnNKkZpMgEeXed4qNlE3KMbO3tuAJib8LJji7+FWMOOtM7sBBZrXw12yu3YnN1qn+j6lI xKXdBigE8bHnpXhUEa4rmn2lusipgaCQ1jBiAxnqy27RZ90TetzPot9aDcUFVKMJO7uPo0lDJQiyN soPED3p3Zqc2rRv0FHsHQEbIW0uFGNYEOgDOglWjcSBkTpJBJlWPYNmYRpq9VHQFnOVHqk5xlxP59 6nunCdwgSwMWVqeqqkng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38Mb-00G22w-33; Mon, 20 Jun 2022 03:46:10 +0000 Received: from mail-am5eur02on0614.outbound.protection.outlook.com ([2a01:111:f400:fe07::614] helo=EUR02-AM5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o38Kx-00G0s7-QX; Mon, 20 Jun 2022 03:44:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FOyVw0fNGNPRvFonwtJAgzFWXb6njFqFSeiOoxKWdqTsvdh9H9YQrnQn/tM8oMcHOQPJ8OSRxmd/dvKDk9veLZga63L+YGUh2w1MV/eFm0TZRfTOzYGh5NvbXTAL3auVkhUw1+2pVs7O/7062+s1CfRMRVH5fWAFku3RjHfZkr8VcKQyj1boMYQ+HsrRBlkYNvdjA14azgRcUysmbpvf7IZnTYUzBJVVr4Q1mjRvIWYItqSN66/Vh0UwV+xrqcPBjyH/e+XsY9hiIFVab56F9v2dtOrzoG9LjJRCtNQThaQ5lbDtEnhn7IfN5jk+nTuvrI4XjVYMEAWTaid9CSHjWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tMaXT+oEMTEebcqyKU8b7m1grHc4GKptpfoEXSX1aeA=; b=iZpd9eLeVJC2FsQU7dKMNpO++SLloZcPBDQ2FJ+TnaZT+oNqTPerC/2UOu5dqrxgM8UsiHNz9femQ7Vu+MJfyn5DGARKLFZ4JOMYGgNBVu3wlyuCNpf5akxH5YkZYw+GQKYf+Qew1yePkjNCIlgK0AIbzx1twEHmgqdNGTglklwtmJ/tJYI2LILBS/uAQJYURPA6sFaj/XMlmqh9LudRNEUSf4ZkfThjSo+riHCyFSWFZeQ+q4Dn8Gn3l2HrrHIHErOIVggGvrRfwYwBGOYE2smz0FFR6Hw+jUhdD+HkTR01pBk9JYKxJteAYUvHXg8/Kuh4iguYEaROzzQbg5wjMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tMaXT+oEMTEebcqyKU8b7m1grHc4GKptpfoEXSX1aeA=; b=HVM8D50xx+YFm86UhUlMd3pIAmirv+F7q0bt8f6MqpBdSdlcKcijKWu2wvsJ2xm/A85sCZJHV0f2glhCckliajzepn2t2oLfzLq7dSwr7QKEAArL0ojbssNPBwrHX1pgDINnkesjmcysjkac4t208i4+62ty3pJww+lhqzusu0w= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) by PA4PR04MB7965.eurprd04.prod.outlook.com (2603:10a6:102:c9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.22; Mon, 20 Jun 2022 03:44:24 +0000 Received: from AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502]) by AM7PR04MB7046.eurprd04.prod.outlook.com ([fe80::3c82:f63b:711a:502%6]) with mapi id 15.20.5353.021; Mon, 20 Jun 2022 03:44:24 +0000 From: Liu Ying To: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: kishon@ti.com, vkoul@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, krzysztof.kozlowski@linaro.org Subject: [PATCH v2 3/3] phy: freescale: Add i.MX8qm Mixel LVDS PHY support Date: Mon, 20 Jun 2022 11:45:33 +0800 Message-Id: <20220620034533.4108170-4-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620034533.4108170-1-victor.liu@nxp.com> References: <20220620034533.4108170-1-victor.liu@nxp.com> X-ClientProxiedBy: SI2PR02CA0049.apcprd02.prod.outlook.com (2603:1096:4:196::7) To AM7PR04MB7046.eurprd04.prod.outlook.com (2603:10a6:20b:113::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c86d968-feaa-49ae-2168-08da526f2adf X-MS-TrafficTypeDiagnostic: PA4PR04MB7965:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1/56ioT3N2J//bHzkijOPnGgNKUI/RSSiMgACUKcgjO0B5pT5VcHRCrbCKsmhLBt5pECUcElgx4xL6J32Es8Qj2gd6Z6uMsbrnsengMNx6uhjSPtsgu1NPstJJgMrop1mGyegGu+b8S/SMtVBvT6mOIbIy4JX/KjuDnYcJfo0dwaJczg5VzXEjbLIuG+hwffcM7cIXyiGhKaHTZKjtQnP7g85aO+teNjBLoDIKsbif6eIKJXwe4ar4cDPtpoeytGkFCLVWEzINVMstzcSpEkIu3H5NjR8Vm4FWi9EA0e6wrWGtNWDTGiWOLTHO4xTpT19ALGrHgGNFgUqbQae/e6os0Kia+QvZr7DNXBNVBs63AAs5O+nxxeRia8FoF5QSt1dqRj9oMOR80hFBIWyZaRNZlOThHhNbMGdDrC9UZ45zTTBa2uc/Uvl5YFN9mzRvZUI2ZwVkCZ5bxy1IgypZDp6/F/LM+TkZGsbI6kZ+WhFXbq4gx6G+DPRtkTPlWLk8NRmktTzBWudDimUedl+Dr1nn42GeKpk4lP0oVeKcv06qnmDPB3FtyvJdVm4rO1TAfNmfSKyZXktQM714XmnyYdf9DqEs61hV2TDXK6oJXexMNYstHw2UJ+5VYSKS0/N+MzCZ5gIU1Ezj3ny0VEVqJX+63E1id+89izW6tmaRRSrDrCkvBDzxYDRSeJJmlwtlx8UeSC8RZoI9RbhmuN6ex+CQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM7PR04MB7046.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(6506007)(66556008)(52116002)(7416002)(5660300002)(316002)(26005)(6512007)(30864003)(6666004)(66476007)(498600001)(86362001)(8936002)(8676002)(66946007)(6486002)(4326008)(2906002)(1076003)(2616005)(186003)(36756003)(38350700002)(38100700002)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kuvYXUA3s3qyp350XrivIGyGrU1vT3Lt0a8Mp6S798YTRKES2CrJEAs7sCOTt4IhOLBOTv4ycWqoWs98FGx3RiUBw44ATlT61licptwP/1kiu3qU/RoIRp2iCBs6yGq7JlEF39rp1yLqNjRIMJi3Af6UoOCOcIIRA5zo0Wvp2t7W80ZJfVk6Fbu1pV7cRunYERUA87f2a7CFcXr0eNvNovGMYgx8TWRVR3+QAScCt1NYkyqzmVITpQEcLO+86CxVkUTKRJDNus4lOp1QApjTi/+yfYl/fieJXg1oy/UzvhgXm09s6NMV/IaRCtFGmVUyojGNrFx096lkDKofcW1nC/1yjH2wJ68gR1K84/GLiRqb69/UhDTbUcL/bvxisPsp1QQNHCqZUu8ojXzR2wXEZ4zjXR/XJq8BIZfgVIYEmlBkJN7/Pp506Fj2699gR1EKfWEfwE9U4KAa1hvNyAYDvdNoD5QULBfyG2nz/iwCMj3iuCf1HXxTdw95gNTRLWjEWdzf59fjCVdycQ+rAc1dSdV6DpHZExxQ9/WSktvQgbCDgz1roWhAn4iQwReEGy1uY7xZgoJurMBtB7jKg7ZsccnDMBOeLka1gVoMlWMDw88RBaGvBS9/vsbv2l51v3lM1nya9zI4cBrX9qdmus2JK7wghdiEbwLxkudnnBB+1Btn5CkVxQ2A4SWQ7BXCpB+OtZvTrK8+gcpRdWWTo4h4aRMyxlCuv8JDgOxSKUcKlXGbq907W0s+x7k1YI3/gH6rkoicCzcgaKHE8cWxzy/WBMUkj0GwnDnkzHoJphYtNuaWd860wfFn+881qv9ASFzOpNSSEVolaA+Rf9nhZZs06DH36P9NZuyJZVUl4GxyIZXgvE/eidX0QZZJG3lscTnj1GrVXUYmUlzLJmTeFzYt+8t0R1krHbmCBPGJeKjJ6eN17O6CaQM83f9uzBVDZCxW6VKuN0tT27WgHKsgkLBiWVBIoAzxpJoJlEebPbmD4YqZMDe+Yz5ALQTAkxhPRF10txQWGHP4gNLY6/s+c5jmDAjW03Mjwem/PTwh6ozMLm9ylaTdL2jERLeSz2UPOvLYsM78mQXsSTJKdPmColHCBpAQFIAbExolv/C/5jNH1Neyna2ZZl+/aM1XiDN5rfYSHp+fiaVFGXMEkhSJbhjdBmaffrOoriXI2swOmXkVrDSGzRLUEjqn7vheJTsahDRtHX6GR0/5Xn6Aybsdjv0mO7+Oi5+g+zXkNQXNV5Yb1ksreV7IdxkehAL5CzFNKD90Wf1nXxz/9yOW7qu9v/aUBSDRtOCMqMYl4ySFm6+Bd1J3P0jkv++spRmNE7zfJa1TuY7KBBWREErHMMWRxbbtjW4ZYxzy12Lo+ihHKYb4RbsZTYkdC9UH48Inv8bOzPVsZuR8CQAjFSIKpIqYZ3MfX77gB924V7+s4MdHzBR8DUNq+WVC7LKR0Nq38y1yYrqznpKs/foEEcXIZZA5TmXbzAx9B2222QGbwrsK/WHR/mZBs7shN+GKZCLAwoatILPZsyWd8MZyRod2jCgPAG7j1ksIaVqigQHr4ZO88U/eZXYu9/8Wfe44XIGnXytc7Uweaq33veTm59HkMVCKZnegfC2IzpNYL1R6Sk7FOEzwT66nIRlnEUUqNYo9wKPtMYeejmxNJI4Rg48HP9MDf4ScGNj9yDTIOCYzqf9wp0R/rwtc39O8quqGXmbK7WCjvxsNmPOnCpD9uriSZAfv9Nr/yg== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c86d968-feaa-49ae-2168-08da526f2adf X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 03:44:24.2889 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pvW9ssts5vNZr8ocYTsQxFt2KF2TDhm6Dj3l59Yi8vdvJ5ZSqzyeaqQ2CbaOzX9T4zNjsuDN+o4tWZsloYXwZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7965 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220619_204428_166973_26F0A62B X-CRM114-Status: GOOD ( 21.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add Freescale i.MX8qm LVDS PHY support. The PHY IP is from Mixel, Inc. Signed-off-by: Liu Ying --- v1->v2: * Drop 'This patch' from commit message. (Krzysztof) * Make dev_err_probe() function calls as one-liners. (Krzysztof) * Drop unnecessary debug messages. (Krzysztof) drivers/phy/freescale/Kconfig | 9 + drivers/phy/freescale/Makefile | 1 + .../phy/freescale/phy-fsl-imx8qm-lvds-phy.c | 440 ++++++++++++++++++ 3 files changed, 450 insertions(+) create mode 100644 drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig index f9c54cd02036..853958fb2c06 100644 --- a/drivers/phy/freescale/Kconfig +++ b/drivers/phy/freescale/Kconfig @@ -8,6 +8,15 @@ config PHY_FSL_IMX8MQ_USB select GENERIC_PHY default ARCH_MXC && ARM64 +config PHY_MIXEL_LVDS_PHY + tristate "Mixel LVDS PHY support" + depends on OF + select GENERIC_PHY + select REGMAP_MMIO + help + Enable this to add support for the Mixel LVDS PHY as found + on NXP's i.MX8qm SoC. + config PHY_MIXEL_MIPI_DPHY tristate "Mixel MIPI DSI PHY support" depends on OF && HAS_IOMEM diff --git a/drivers/phy/freescale/Makefile b/drivers/phy/freescale/Makefile index 3518d5dbe8a7..cedb328bc4d2 100644 --- a/drivers/phy/freescale/Makefile +++ b/drivers/phy/freescale/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_PHY_FSL_IMX8MQ_USB) += phy-fsl-imx8mq-usb.o +obj-$(CONFIG_PHY_MIXEL_LVDS_PHY) += phy-fsl-imx8qm-lvds-phy.o obj-$(CONFIG_PHY_MIXEL_MIPI_DPHY) += phy-fsl-imx8-mipi-dphy.o obj-$(CONFIG_PHY_FSL_IMX8M_PCIE) += phy-fsl-imx8m-pcie.o obj-$(CONFIG_PHY_FSL_LYNX_28G) += phy-fsl-lynx-28g.o diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c b/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c new file mode 100644 index 000000000000..37f77115ddab --- /dev/null +++ b/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c @@ -0,0 +1,440 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2017-2020,2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_SET 0x4 +#define REG_CLR 0x8 + +#define PHY_CTRL 0x0 +#define M_MASK GENMASK(18, 17) +#define M(n) FIELD_PREP(M_MASK, (n)) +#define CCM_MASK GENMASK(16, 14) +#define CCM(n) FIELD_PREP(CCM_MASK, (n)) +#define CA_MASK GENMASK(13, 11) +#define CA(n) FIELD_PREP(CA_MASK, (n)) +#define TST_MASK GENMASK(10, 5) +#define TST(n) FIELD_PREP(TST_MASK, (n)) +#define CH_EN(id) BIT(3 + (id)) +#define NB BIT(2) +#define RFB BIT(1) +#define PD BIT(0) + +/* Power On Reset(POR) value */ +#define CTRL_RESET_VAL (M(0x0) | CCM(0x4) | CA(0x4) | TST(0x25)) + +/* PHY initialization value and mask */ +#define CTRL_INIT_MASK (M_MASK | CCM_MASK | CA_MASK | TST_MASK | NB | RFB) +#define CTRL_INIT_VAL (M(0x0) | CCM(0x5) | CA(0x4) | TST(0x25) | RFB) + +#define PHY_STATUS 0x10 +#define LOCK BIT(0) + +#define PHY_NUM 2 + +#define MIN_CLKIN_FREQ 25000000 +#define MAX_CLKIN_FREQ 165000000 + +#define PLL_LOCK_SLEEP 10 +#define PLL_LOCK_TIMEOUT 1000 + +struct mixel_lvds_phy { + struct phy *phy; + struct phy_configure_opts_lvds cfg; + unsigned int id; +}; + +struct mixel_lvds_phy_priv { + struct regmap *regmap; + struct mutex lock; /* protect remap access and cfg of our own */ + struct clk *phy_ref_clk; + struct mixel_lvds_phy *phys[PHY_NUM]; +}; + +static int mixel_lvds_phy_init(struct phy *phy) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(phy->dev.parent); + + mutex_lock(&priv->lock); + regmap_update_bits(priv->regmap, + PHY_CTRL, CTRL_INIT_MASK, CTRL_INIT_VAL); + mutex_unlock(&priv->lock); + + return 0; +} + +static int mixel_lvds_phy_power_on(struct phy *phy) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(phy->dev.parent); + struct mixel_lvds_phy *lvds_phy = phy_get_drvdata(phy); + struct mixel_lvds_phy *companion = priv->phys[lvds_phy->id ^ 1]; + struct phy_configure_opts_lvds *cfg = &lvds_phy->cfg; + u32 val = 0; + u32 locked; + int ret; + + ret = clk_prepare_enable(priv->phy_ref_clk); + if (ret < 0) { + dev_err(&phy->dev, + "failed to enable PHY reference clock: %d\n", ret); + return ret; + } + + /* The master PHY would power on the slave PHY. */ + if (cfg->is_slave) + return 0; + + mutex_lock(&priv->lock); + if (cfg->bits_per_lane_and_dclk_cycle == 7) { + if (cfg->differential_clk_rate < 44000000) + val |= M(0x2); + else if (cfg->differential_clk_rate < 90000000) + val |= M(0x1); + else + val |= M(0x0); + } else { + val = NB; + + if (cfg->differential_clk_rate < 32000000) + val |= M(0x2); + else if (cfg->differential_clk_rate < 63000000) + val |= M(0x1); + else + val |= M(0x0); + } + regmap_update_bits(priv->regmap, PHY_CTRL, M_MASK | NB, val); + + /* + * Enable two channels synchronously, + * if the companion PHY is a slave PHY. + */ + if (companion->cfg.is_slave) + val = CH_EN(0) | CH_EN(1); + else + val = CH_EN(lvds_phy->id); + regmap_write(priv->regmap, PHY_CTRL + REG_SET, val); + + ret = regmap_read_poll_timeout(priv->regmap, PHY_STATUS, locked, + locked, PLL_LOCK_SLEEP, + PLL_LOCK_TIMEOUT); + if (ret < 0) { + dev_err(&phy->dev, "failed to get PHY lock: %d\n", ret); + clk_disable_unprepare(priv->phy_ref_clk); + } + mutex_unlock(&priv->lock); + + return ret; +} + +static int mixel_lvds_phy_power_off(struct phy *phy) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(phy->dev.parent); + struct mixel_lvds_phy *lvds_phy = phy_get_drvdata(phy); + + mutex_lock(&priv->lock); + regmap_write(priv->regmap, PHY_CTRL + REG_CLR, CH_EN(lvds_phy->id)); + mutex_unlock(&priv->lock); + + clk_disable_unprepare(priv->phy_ref_clk); + + return 0; +} + +static int mixel_lvds_phy_configure(struct phy *phy, + union phy_configure_opts *opts) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(phy->dev.parent); + struct phy_configure_opts_lvds *cfg = &opts->lvds; + int ret; + + ret = clk_set_rate(priv->phy_ref_clk, cfg->differential_clk_rate); + if (ret) + dev_err(&phy->dev, + "failed to set PHY reference clock rate(%lu): %d\n", + cfg->differential_clk_rate, ret); + + return ret; +} + +/* Assume the master PHY's configuration set is cached first. */ +static int mixel_lvds_phy_check_slave(struct phy *slave_phy) +{ + struct device *dev = &slave_phy->dev; + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(dev->parent); + struct mixel_lvds_phy *slv = phy_get_drvdata(slave_phy); + struct mixel_lvds_phy *mst = priv->phys[slv->id ^ 1]; + struct phy_configure_opts_lvds *mst_cfg = &mst->cfg; + struct phy_configure_opts_lvds *slv_cfg = &slv->cfg; + + if (mst_cfg->bits_per_lane_and_dclk_cycle != + slv_cfg->bits_per_lane_and_dclk_cycle) { + dev_err(dev, "number bits mismatch(mst: %u vs slv: %u)\n", + mst_cfg->bits_per_lane_and_dclk_cycle, + slv_cfg->bits_per_lane_and_dclk_cycle); + return -EINVAL; + } + + if (mst_cfg->differential_clk_rate != + slv_cfg->differential_clk_rate) { + dev_err(dev, "dclk rate mismatch(mst: %lu vs slv: %lu)\n", + mst_cfg->differential_clk_rate, + slv_cfg->differential_clk_rate); + return -EINVAL; + } + + if (mst_cfg->lanes != slv_cfg->lanes) { + dev_err(dev, "lanes mismatch(mst: %u vs slv: %u)\n", + mst_cfg->lanes, slv_cfg->lanes); + return -EINVAL; + } + + if (mst_cfg->is_slave == slv_cfg->is_slave) { + dev_err(dev, "master PHY is not found\n"); + return -EINVAL; + } + + return 0; +} + +static int mixel_lvds_phy_validate(struct phy *phy, enum phy_mode mode, + int submode, union phy_configure_opts *opts) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(phy->dev.parent); + struct mixel_lvds_phy *lvds_phy = phy_get_drvdata(phy); + struct phy_configure_opts_lvds *cfg = &opts->lvds; + int ret = 0; + + if (mode != PHY_MODE_LVDS) { + dev_err(&phy->dev, "invalid PHY mode(%d)\n", mode); + return -EINVAL; + } + + if (cfg->bits_per_lane_and_dclk_cycle != 7 && + cfg->bits_per_lane_and_dclk_cycle != 10) { + dev_err(&phy->dev, "invalid bits per data lane(%u)\n", + cfg->bits_per_lane_and_dclk_cycle); + return -EINVAL; + } + + if (cfg->lanes != 4 && cfg->lanes != 3) { + dev_err(&phy->dev, "invalid data lanes(%u)\n", cfg->lanes); + return -EINVAL; + } + + if (cfg->differential_clk_rate < MIN_CLKIN_FREQ || + cfg->differential_clk_rate > MAX_CLKIN_FREQ) { + dev_err(&phy->dev, "invalid differential clock rate(%lu)\n", + cfg->differential_clk_rate); + return -EINVAL; + } + + mutex_lock(&priv->lock); + /* cache configuration set of our own for check */ + memcpy(&lvds_phy->cfg, cfg, sizeof(*cfg)); + + if (cfg->is_slave) { + ret = mixel_lvds_phy_check_slave(phy); + if (ret) + dev_err(&phy->dev, + "failed to check slave PHY: %d\n", ret); + } + mutex_unlock(&priv->lock); + + return ret; +} + +static const struct phy_ops mixel_lvds_phy_ops = { + .init = mixel_lvds_phy_init, + .power_on = mixel_lvds_phy_power_on, + .power_off = mixel_lvds_phy_power_off, + .configure = mixel_lvds_phy_configure, + .validate = mixel_lvds_phy_validate, + .owner = THIS_MODULE, +}; + +static int mixel_lvds_phy_reset(struct device *dev) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(dev); + int ret; + + ret = pm_runtime_get_sync(dev); + if (ret < 0) { + dev_err(dev, "failed to get PM runtime: %d\n", ret); + return ret; + } + + regmap_write(priv->regmap, PHY_CTRL, CTRL_RESET_VAL); + + ret = pm_runtime_put(dev); + if (ret < 0) + dev_err(dev, "failed to put PM runtime: %d\n", ret); + + return ret; +} + +static struct phy *mixel_lvds_phy_xlate(struct device *dev, + struct of_phandle_args *args) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(dev); + unsigned int phy_id; + + if (args->args_count != 1) { + dev_err(dev, + "invalid argument number(%d) for 'phys' property\n", + args->args_count); + return ERR_PTR(-EINVAL); + } + + phy_id = args->args[0]; + + if (phy_id >= PHY_NUM) { + dev_err(dev, "invalid PHY index(%d)\n", phy_id); + return ERR_PTR(-ENODEV); + } + + return priv->phys[phy_id]->phy; +} + +static int mixel_lvds_phy_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct phy_provider *phy_provider; + struct mixel_lvds_phy_priv *priv; + struct mixel_lvds_phy *lvds_phy; + struct phy *phy; + int i; + int ret; + + if (!dev->of_node) + return -ENODEV; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + priv->regmap = syscon_node_to_regmap(dev->of_node->parent); + if (IS_ERR(priv->regmap)) + return dev_err_probe(dev, PTR_ERR(priv->regmap), + "failed to get regmap\n"); + + priv->phy_ref_clk = devm_clk_get(dev, NULL); + if (IS_ERR(priv->phy_ref_clk)) + return dev_err_probe(dev, PTR_ERR(priv->phy_ref_clk), + "failed to get PHY reference clock\n"); + + mutex_init(&priv->lock); + + dev_set_drvdata(dev, priv); + + pm_runtime_enable(dev); + + ret = mixel_lvds_phy_reset(dev); + if (ret) { + dev_err(dev, "failed to do POR reset: %d\n", ret); + return ret; + } + + for (i = 0; i < PHY_NUM; i++) { + lvds_phy = devm_kzalloc(dev, sizeof(*lvds_phy), GFP_KERNEL); + if (!lvds_phy) { + ret = -ENOMEM; + goto err; + } + + phy = devm_phy_create(dev, NULL, &mixel_lvds_phy_ops); + if (IS_ERR(phy)) { + ret = PTR_ERR(phy); + dev_err(dev, "failed to create PHY for channel%d: %d\n", + i, ret); + goto err; + } + + lvds_phy->phy = phy; + lvds_phy->id = i; + priv->phys[i] = lvds_phy; + + phy_set_drvdata(phy, lvds_phy); + } + + phy_provider = devm_of_phy_provider_register(dev, mixel_lvds_phy_xlate); + if (IS_ERR(phy_provider)) { + ret = PTR_ERR(phy_provider); + dev_err(dev, "failed to register PHY provider: %d\n", ret); + goto err; + } + + return 0; +err: + pm_runtime_disable(dev); + + return ret; +} + +static int mixel_lvds_phy_remove(struct platform_device *pdev) +{ + pm_runtime_disable(&pdev->dev); + + return 0; +} + +static int __maybe_unused mixel_lvds_phy_runtime_suspend(struct device *dev) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(dev); + + /* power down */ + mutex_lock(&priv->lock); + regmap_write(priv->regmap, PHY_CTRL + REG_SET, PD); + mutex_unlock(&priv->lock); + + return 0; +} + +static int __maybe_unused mixel_lvds_phy_runtime_resume(struct device *dev) +{ + struct mixel_lvds_phy_priv *priv = dev_get_drvdata(dev); + + /* power up + control initialization */ + mutex_lock(&priv->lock); + regmap_update_bits(priv->regmap, PHY_CTRL, + CTRL_INIT_MASK | PD, CTRL_INIT_VAL); + mutex_unlock(&priv->lock); + + return 0; +} + +static const struct dev_pm_ops mixel_lvds_phy_pm_ops = { + SET_RUNTIME_PM_OPS(mixel_lvds_phy_runtime_suspend, + mixel_lvds_phy_runtime_resume, NULL) +}; + +static const struct of_device_id mixel_lvds_phy_of_match[] = { + { .compatible = "fsl,imx8qm-lvds-phy" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, mixel_lvds_phy_of_match); + +static struct platform_driver mixel_lvds_phy_driver = { + .probe = mixel_lvds_phy_probe, + .remove = mixel_lvds_phy_remove, + .driver = { + .pm = &mixel_lvds_phy_pm_ops, + .name = "mixel-lvds-phy", + .of_match_table = mixel_lvds_phy_of_match, + } +}; +module_platform_driver(mixel_lvds_phy_driver); + +MODULE_DESCRIPTION("Mixel LVDS PHY driver"); +MODULE_AUTHOR("Liu Ying "); +MODULE_LICENSE("GPL");