From patchwork Mon Jun 20 12:38:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ying Liu X-Patchwork-Id: 12887530 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 2343BC43334 for ; Mon, 20 Jun 2022 12:38:55 +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=27PDgE1sD132qIDGZIBlQplE+jZqzw+yNPMT7qbCSmY=; b=LQkgc4YTcNer4h zWGqBZ0Hw3DftBHsvUkGTS4Va/bspdrJRPiWLhua+5DixO9hJOBwpwzCrxvvsqVZj6uRR7ChHlngE iGp6t1XxkFFOQQTHHZWGnLydV5tY7t+kKBJryhbYsiQ/FLZhD8rlRKyEbeK/+N8NXowTddZgQPuAB i52R8DVwHdp3+CsoZjJRhAFe/9bToW3FW/qZQhJpgH5BlBXRc4C7t5iWPogAoZI7U4L2gS9eG9610 wbO7jWFze0x7Vf9T0b+1s5tjrt7tWeSgK3JNERKSSm6qVXx9BWApoh40VAzGs3eCvur54bFANSe+W jj8V9jibcyp5X1qlSk2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3Gf4-000TnO-Ro; Mon, 20 Jun 2022 12:37:47 +0000 Received: from mail-am6eur05on20613.outbound.protection.outlook.com ([2a01:111:f400:7e1b::613] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3Gep-000ThZ-6D; Mon, 20 Jun 2022 12:37:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UVriPHsmThzkJA4TE2fuJZaoqbujLqu5GsblZXxAwHO/qPWsKltbPfvUZBe+O/UXu36/tmXtVsKDofSNSs9UMvrE4o+76pGla3SCWhCMrKudrttpQGVlqt8MGH0iLupv/HRO4p5Omnpz5aZhJQr8DI39pXPOisAJIDD1aeZJXNpGVpHaxRIzfDSU3kcSSRr9SanHYymIR4CwTQrpRDqaJsmZZVi59BZnh9cnJGyeJ7zUE51QjtHODVwyXLL7nRU9oHYlC/cBAarpAq0Pq0Z7QoMUrRUQRuaMwjzWyuA52SVE9TK6gJaawm19oQ5mqcOS0+NZb9A3UFDaaFXpANFfeg== 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=Xg8jKT9xv+wYpvOnKROuqs4nIVHyK8TlHMIw5Sg0jhI=; b=WMAB9vp9CflLuAqo+JheD5CutyH3Rihm0wwNLZow+57JPUbg/kYmyq1wwv4mwDycAI7yvrI1ZvYKlcC/EvpgYxZSYlCToGQjpWq4g4Wy62ikQ1teWRKTiGAo9NBI2JMXETSaGOaAHYrnizBWIxUyfhbM0O++JCjWJGB3v4QefLI+THKszsn3GbPQJyfo5M7MpqhoKjJUGggcYdJ7mFGgnwPcrl37BCQ/7SaRcN43MAYY6/K/OADj8P036rO19EoN8KMlLWTHuZtPVLoIMcJOCRCZKpzhfeEhwkYVohfdkgnGxXINtEFJ+236Nczbh4ZF8Btp7ck4SRjBZDIgkiltvQ== 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=Xg8jKT9xv+wYpvOnKROuqs4nIVHyK8TlHMIw5Sg0jhI=; b=lM04ZVF9c2viCYQ6JlcvmfFO+X1noUqP46AovW63Wgj/F+RApcG9NmYxPf69qNadNRnUCEppnTtNqKRAqrpf+p9lErDtjeGzORsL1tayntUPKoLViW98o6uNN1nFqKzz0dHhmbeppC8Ap3YwZo8bRV3XJzBN+snL66LLYRq3nnQ= 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 AM8PR04MB7873.eurprd04.prod.outlook.com (2603:10a6:20b:247::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 12:37:28 +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 12:37:28 +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 v3 1/3] dt-bindings: vendor-prefixes: Add prefix for Mixel, Inc. Date: Mon, 20 Jun 2022 20:38:52 +0800 Message-Id: <20220620123854.1138028-2-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620123854.1138028-1-victor.liu@nxp.com> References: <20220620123854.1138028-1-victor.liu@nxp.com> X-ClientProxiedBy: SG2PR06CA0219.apcprd06.prod.outlook.com (2603:1096:4:68::27) 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: 889789aa-364e-45e3-84d9-08da52b9a2f9 X-MS-TrafficTypeDiagnostic: AM8PR04MB7873: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: ET3AzdrmQ8aq/xHtPD9wGUP69gB0kalxLp1/ysTCFKoia1UML4DTurewLKBi/sBUpw2/dAXs+Uj6rJ7DZ2jO1afqcC3yL34ZoI1mmIUpZiDu00kkITluWHBZv7h3uP2BnKKs3qQzax20A6lcKL17eTSgG0I8u1O6H8MSmRKxvxRWCWfBli0eUy27ykkQkdsS+s4yNF7KANFnCL7DG+WKrn5pt3lIsTXXQf4B7XE04yWGgmAVTPqS/hqNR5PDqdf5g9RbC4nN7vl6Gw67MAulD3pwQSjI/aqRLgx+txzBGcitB6DS/eM+5pIQb2OD2APaoOnANnTTNAu6C+WB7LSUMX6a/8W1drYDtiJeYLgqUCx/QBmyGWzKoXp4yKLYkjM1DuR2RnkNsCFFpjrYEkPsyYDuO/C+4U3MnIYDViCBDFA1aSgjFIqr/DlrsGV8Xbw00hfyQderM9gzGBGb1MNF2lEM5QbKbVDuV3t0tvR2B/IF4VOHLNqNUfjRMFAz9fRubEEjP+SuSYWJbwf7S/nEj7k6/NujSoRpAAPWMht/yg+2CBG+5f73dIM+BD50m56T9CakRA/kK0laCLX0GkHcyq81DEXuRN1hEXwhjFiQnE5/nKLmuVyUo+23iTonxrNDkK0FBRrCDJM/fqaebRIJIAcVXcQ02p42ncemPrRhMcBsvFIIyOP7vPr7p+S4lUNm1kIo77+v1RSA7UXv6pRupY9wVyXRvO9pr7559YmqWv32Cy90R0DQczuvc2FPthWBStuPUdu3PaCUsOpnlCfmD30Wpfz2+x15Qo1DrlNFg8k= 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)(396003)(39860400002)(376002)(136003)(366004)(346002)(66556008)(66946007)(36756003)(8676002)(4326008)(66476007)(6486002)(316002)(186003)(1076003)(478600001)(8936002)(2616005)(5660300002)(41300700001)(38100700002)(7416002)(6512007)(4744005)(26005)(38350700002)(52116002)(6666004)(6506007)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 25e0j1QnfuDZPPoPEjtlns7lT6XBRK30UBx9f14YAEpVmTaqk6n/E8qfhKKc+ISJALwYJmZQ/iohqUftzCLl/y90nkYkmZW66JHc9f9BtX7BQAcSFKoqErIk00Mhmxcz1MgECHQVZdfbXDS+qLSBA6//WHL/sF9oYrU4ENPcyUF8xInBG1eff3EJaC7+KsYKY6HDfiZYTOwCNB8CG1LHq6WMq+nTeJJ19sIKutTDO72D1ZtDBd6Y7nBcfGaZTHsSkB+ZrUG+xOIOUI8Ixly8qEnoonKi96MEaX9QhI0pkdZNrZx0j9dludYaI+Wq87FyH2Tlwx4qqk7quI6VNby6ZD5oXO2svzfs2XNZ7CXNfQlVP/EBJyMBwrqDMQy3kp2P4YW3H6e/zncy1rPM5cDh0XJxbhSty/uF5dfYQ622bfBTEUu5nQUFba5TjDtoktg2mB18nAdZ6L06hIP4tnO+wa47t6WXFKcO2y+j4alsJJm56tvtuerAyWvUtzCE26DPuoSs/Jfm789slbMzf94Gvu4AInZZn4LGRSX74nlX+Zoie0nQke80RTRoSQc7CPEN652ACL+/J5e1aDKkayC8nMtEZS6h0bAGgtxBJeMntB+DF3rgApq8muwHwOyuIMeunKo3jSQRYL3bD/pLVz5PSWkK42MXvrJPI0WWVK3jcaisFjjUsML8Uz9nY0w652lsa5RwjHNz8AHIyV1bEsxnUVklAuKGUwGTgCo0PapKyod3NYylkuS1pfyQVsiNgNP1wEWAubZcH2FFbRcTH7ISd+jYIe3ggi88p+dkmA/51h1LQyBqGe0yBpvuxRhHhdJIqtKRKMyS2XzrgWqe5TXj4hSNM1tbKCulAm4KvcghEe5zlads8eq5yyolLBgWT6fVH1xRRudArif/5CepxDYllVlomERjr9wVC3wNt5pK7Mn65FNbxLH/6LvBeVtFqGxwm6dqkRMesK5J9VqMG8MIUy2bDhvfuGcUE/xbsu5uhD/Z+gmvpoCt9nD5O8KJUjvfbngwx9e1rXbjyMDFuqIcTb6XE+ySH7vhy0rgzgWfcA91t+d+mleRHDwPZlv8vf1Qg4R9N9NEQdmeDwq47Z4cI5SLtLEiJqunXD72qYpmvwM1sfyjMnkaNO0OxKUhoOIKTol0YtH47/W273FuurJFByXc2kcATEVr2eNpM7pB7uakhQN3dgh1IdFRKbidn+o10wTzFAJz0iocy4R07hcO4vKxeQC4Hd1bealD1dcUv4VcxvzUr7H3u5Xk7DXGDVM32qf6sRP9MW257TFxHCDj2ju1cHSBqtA3qUnOG+tJ1jllCzI/98zauMooTRQJUSEZGwTb6ESENnPcTd/Sl6Jn/M8ZyQgg80pzObZE1lZOa5JVbMvWpluH+7aG8Jc7TV8p0ANq0ZuBMSuL/1JXUJKtc9rcdeRN/HTSa/jpDX/82vIzIF75vRkx53otVQ9/8nFhOf0IgR6cG3zK6uwj5JzgdNsb6fAk/DQ8/WSKreYTAsqL5VKrKprUysvdTShCHHzLmZkIfDalRlBJ8CQ+LoHn2PXIjqHEDqCaif1B1PGUNYDi0QQ+D87R1lKIbyJwt90T4muL/vQBeTZ+/5hGVUIRH2vNknB0SUW/gXBcVB/8kAeDlqiIAAx2PJao4qUPJPbXVr72tHZ4TGcHVh5Wxq1/YnfcZhWNSlUKfIwgH4P8ODSpaAPYcgdo5cnBQeRAzBc55NtGdFDlibybNILI6nuehw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 889789aa-364e-45e3-84d9-08da52b9a2f9 X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 12:37:28.6148 (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: F2OAxlU1mQIEWbvGlxP56dIb2pB3RLE4bEEjzVYLzpbJSyX89EU2gJxWdi3oqIvjWI5lBojaxapercCcOBvVzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7873 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220620_053731_285941_C727BBF2 X-CRM114-Status: UNSURE ( 7.37 ) 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). Acked-by: Krzysztof Kozlowski Signed-off-by: Liu Ying --- v2->v3: * Add Krzysztof's A-b tag. 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 12:38:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ying Liu X-Patchwork-Id: 12887585 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 E2735C43334 for ; Mon, 20 Jun 2022 13:19:02 +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=viKxbEugTM5WkeBZ3eWJbz6hrLqm8wEke2VfkSDRaTQ=; b=J0sqI/reUNZj7H uozIemr5L422Js3+nzrKA8bVAb1pTT84xuYalvYVW7ydqswTuteEXUnY7W7KvV7IUiBZBMeYdRufa JR01NgcQN5d416rIuNhov6tjOpjMyffd/Ha6PqJpda5g+BnSTFDrc0D0cCGj9dwIMwjYrq+a0GbSV jp8szqycNVotGMYZ7eDWGOoS/EHKohUzHlS/kMbLlXn+XXcF//HxAP0k5ToRZ6bHQ+fBKI3/o3q1L DcuhvKRgwTru8JaVmLbcR8MKYGOImEz06KVK3kVaeSOeqjqs4QygQol1KxmeSI0G1AnthecDQQB4v qykogP4BBiw/RLz+blCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3HHg-000lDZ-2R; Mon, 20 Jun 2022 13:17:41 +0000 Received: from mail-he1eur01on0609.outbound.protection.outlook.com ([2a01:111:f400:fe1e::609] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3Gtv-000ZX8-8u; Mon, 20 Jun 2022 12:53:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ym3ctNRXB+drBJH/ADX63zdYREjwCCn2N+hNUmPJ16A6pgl8Ptp6XS30yDIpj2Xw/sibxJ0z76SlvH68fmy3/ye+XdScBOf7ZuRwHpYxPkZiUixB2oVBOxTmcTeZIbQlK8amVtsEyER6NyXrKlOmcRqf2JN3WABjvUC/frA0ljRucDUUD16KfTQ4cdb8N76rY4IM4mUAX9Ny+iCX/opfp6HP8xsz59rdhfTP2eTBZh4Em2oGObxd95hUuUnUqYK50H+T2G7jr9SCld2d5qOP77w57sBSxRx7QiV2WR9GYR3LQzn2O8m+VihpeGyNcP0z0pj8YCxEYekvvy2KSkGDzA== 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=TR+12cvuFynEIiTRe/V/YLeiVgbSjZTlvYnsT3rLGsA=; b=Kx98VhyaquQfNpFcAZFBGCIgAhypD8anGcswkxVj6T+GWoXWNGUgcQ7Yg7pu2vbB/Kbjr53FfbaG+t95qBJOJvfmpEl10A3VnCPYBJtqMOEoiHlszmOtFU9ifPqU4HnNSQBlDPEu500/e+b4LcoxfH3AggZTjITRarDtVCYDamvwmWVbRuv9MJqAGU1SpCc+fXqnu4KV46X78l1HuKfFaYExM/SCRI2uzwgR1Ej1yfuCMCSP1FW35YnAYlx8Hefmlyy2ZSUaQ8qRacLvrGLRS8gpZouHESOcVljojHp4SkyK1QmzZW10d0z75SHtwAAUawfI4Ld93aodYrFLiQogCg== 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=TR+12cvuFynEIiTRe/V/YLeiVgbSjZTlvYnsT3rLGsA=; b=swZq5BbI5LArGtIWzyM6UX7KpLdYEX6Grofz2oJrhXIbQFy87/e40Dag9rGmUKd8xc4n1cLQydBL9W4bTUlxllDbqt3pYP7fEu/3+nttbrzSWGNlVNi9GmTYGV4l77mrST97S0ka1NZkgNjs3R3YcIryhxx/F7FUFEAyDnx4i+k= 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 AM8PR04MB7873.eurprd04.prod.outlook.com (2603:10a6:20b:247::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 12:37:33 +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 12:37:32 +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 v3 2/3] dt-bindings: phy: Add Freescale i.MX8qm Mixel LVDS PHY binding Date: Mon, 20 Jun 2022 20:38:53 +0800 Message-Id: <20220620123854.1138028-3-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620123854.1138028-1-victor.liu@nxp.com> References: <20220620123854.1138028-1-victor.liu@nxp.com> X-ClientProxiedBy: SG2PR06CA0219.apcprd06.prod.outlook.com (2603:1096:4:68::27) 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: c5c744b8-3797-4047-1dda-08da52b9a59f X-MS-TrafficTypeDiagnostic: AM8PR04MB7873: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: qpAhcnaG7BNwIPswYa67fpPOzT9gKGu6q66ojvC371RXjJFrS/Qh+lnGgfxIoPlkOYxfZM9b5JTG5vl6mBLSg6NUhXoRTaxWkJqZW5jKbpMxgmirKo2tsO4KZEXY3k9qV7O9zz/CnRgv5x2gOSIPRyczbi1XGf401Jd+mk3HuPQWYBJeDWbCWcWPJ0FKZkLAaWTKeS4SEbOcViQDfsyUzzLi4BWHSs/Mh5lfyC3H23eStHPBwacSm3B5udgHc5HvYMhhTg7ljXoDEDKrpZwYHrJJNMLCujGgUKU7joCFAe9eTcUiTvystTzoIvFl6Nft9QjJY9Vx29ksmsKFIZxrt4zLXm+VDyKOsYJQDbTz8Hz2zkSSNjJgAX6ECyGuQeHh1f+cWWqlKA5CK+DJPJAmvEt6RWq0W5YVjpOasFsvY2naPlKsoTJAulOsH3FHUHEL7kagxXG0TWHHgvymjVYpBi28jA/WjlesT2OvnWnAej03EnLJf24GQp1MiaksJ2ejbgx+mt90QfRj7LzQ0rW9i40x3Xfe652NMMnNTrqRhmtqWfx9XV8MmrLrup7OaRCOpbDfCPcAoe6PRgd6+hoYPV57ei+IGwJ9u+yZ7PexsJETUmNgtDIYqakpG7YvrUnUSpoNa/DCodGTXn74DSj4L95HRitQqPMUOz4JoGuL7bY0dRu8aCvFTnj8tePfeWWnkZNao6o2JW79vKdqkjTvu0sTH0uTv8Jg98dnoSpwwaxG2e2QEjXpItn61yhneHOPo7MWaE6xmYRj0h1khU//K3OKZ/6ZaEzUkXB/Z2qx26wCnYlTZtR3XL3KBromFp0G 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)(396003)(39860400002)(376002)(136003)(366004)(346002)(66556008)(66946007)(36756003)(8676002)(4326008)(66476007)(6486002)(83380400001)(316002)(186003)(966005)(1076003)(478600001)(8936002)(2616005)(5660300002)(41300700001)(38100700002)(7416002)(6512007)(26005)(38350700002)(52116002)(6666004)(6506007)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AI9mAcfWTAVCuug7EXcVt6luEVo5rzgPczVL8m5O7Rm51lEwmS+y6VliC/If77ig2oIjlYLdbSy6ZuxNlNDmj49lTxCYeXUL6btW9g0BdS808z9vA98qNqp9p8DT62ctc61nshwoOzO153tfwZFXbX1m6fKB2jh7dZQYUCFYfNqrfYlqZp2hwuA6LsuMOLY6gx77IbxLmjCXF6Uq63jXbqI4ieN4VpvIyClUEwVeD92AFQR/qJ/rnDkG+IJHH7lUm+nWa+1VVstG8MoVS6edaZwuRTjGSlUXu6i2RdWtu9QmQYDI7AbW3s+tkQA8KM9ODWaHVMH91I+64UKc4FXwS48d5Z8VH+w3Q5ZpheYJfzJWE4dEeOKbyxC2koJMq8FSGIW5WpBB4GihlGntVXcDZlPvvJt7c6dEH7MMMk+QXvOtM7JorKGX4JZztOVHNwE+8ZbeeEQxUI98lKZnpRprTJaGEsbZ1sKW43ejpHFawHRYiMx9CGypExZHn2K9V74evstPFdvY/9SJNfUDsa7nzx9LN8bSjWUG1nRiXZ9xdHx77Np2fwqJmpoZzOecBP4C2zlIx8P2WvoslOcZHsxo8jv4fC21h1CqfgiAMuwhO2INXg9jSxUuQ7ZAnPV2adUr1JUU2o4WTBQDjeXhCpmYMj5A0bkIGP+TWYbsN5e0fl4kQPy1lBTFzZ8SQJ0jE4ZzyxCucsYA2eMoN9kQWHLl9L3pcli2QY6m5Tj8GslZQwr6B/GH2S92h8vn6W32eJfMufOs7Pwc6/zwJQD0HMupsEAuCYj+Rtdr58rClawHlzFbR2wMNhn1mbYQTtw54h1G3On34OhlW8L5mtSEXshJGESwSxKRvcY02L/onH+/bK6sEFEqnBIsq+xxj2O9CwVBXMVQFMgjmcHvenbyApgfvFWk9Cdn5dFasN1ixpR2e7pUVdCbNGf3+FK80LhfrADAhO3FPLqDgvonjwETOa38PLDzYslwX6mIyI/yD/ZTXZqFSw6NBBMzwSHowGU4RXBVTm3XBJZ48DaepS/ip97pxJA3awGWB7JxiVo58jKa9Vvp3pft58seeW1hpHohKsQAEEX9W06BBNkBPgc8eHFIcHwJTPgCYkjFZVsYtQ57IM6nN4e8ys6Jl23mn5rm0EVYifVBKRipkinT0+dS/Lp2kxataKn85QnRHjwFNUzuNwogcZpXGRR87rPjZHUVDW0CpWS0U0N5q0/90gxSNpvcnZdsoPW/lx9qWMEYtI1YS0TsbTsSdutKC3VWYPWmdOU5zBrRUzBQfZ2kOn7X5oKfYDN7vo5SMoVe8vEoAEjcVLTdiH1b/TH4KHv7pWIIBHaYLjn9k9oDWLwK1VFYdfs0TFVApFW09ZLxqtpvyOIRNIK+TjxUAlyhTEbe/2cnGRmEox3VmF0SrrbRsDuBtpB0hVgfBPF9sorrncsF9lVTvGXTc+ts58tw7g2KPvDRiRWIsamsrdB5yq92EX+Fa2pXrioPFZcNssEd+oj316bBwevi5OkTinUXBLFe11IOFZve2vAQblrmRFJ+ky3cRLvsOeob13Q/bqynW120jLxs80Sl3yRcS1CAfzO6F58E2TsdDDck2dqUhiCkV6KaFdmQ35pSURDQk8EiZixV0c9ELMYaOqXkSwjL76xdqAAHVEhq3L3/fbU0ZNuoXxcCbXFwtpMyrpN5wGNq6UhPWFd6OuVmZmtsVScRDHkEe8cB+c9h8f4AmgzdWF1g2p8TOYFt6A== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5c744b8-3797-4047-1dda-08da52b9a59f X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 12:37:32.9004 (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: qwyaM3YuBYoksd0cdmnbQy1ld+P/yh+NMc7bTQ29HrpWtR7z15Xu5O8NbUpH78jSYVZvPIHTV92rIW9FkJy0Dg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7873 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220620_055307_568916_A0D45855 X-CRM114-Status: GOOD ( 13.46 ) 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 Reviewed-by: Krzysztof Kozlowski --- v2->v3: * Change compatible string from 'mixel,lvds-phy' to 'mixel,28fdsoi-lvds-1250-8ch-tx-pll' in patch 1/3. (Krzysztof) * Rename dt-binding file to 'fsl,imx8qm-lvds-phy.yaml'. (Krzysztof) 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/fsl,imx8qm-lvds-phy.yaml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8qm-lvds-phy.yaml diff --git a/Documentation/devicetree/bindings/phy/fsl,imx8qm-lvds-phy.yaml b/Documentation/devicetree/bindings/phy/fsl,imx8qm-lvds-phy.yaml new file mode 100644 index 000000000000..8767e48c71a6 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/fsl,imx8qm-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/fsl,imx8qm-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,28fdsoi-lvds-1250-8ch-tx-pll + + "#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 12:38:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ying Liu X-Patchwork-Id: 12887531 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 30702C43334 for ; Mon, 20 Jun 2022 12:39:10 +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=OeNmiMp5m+yLYKnE8pnsxZc9VgDM4uxth3VWIQZ2lYw=; b=MFkRNYXkDqaDPh JCP1fQy9vxKYx8QDJfDAa3E3LBdml0jJxv80fMx3OUazJOk/0mmWGvFW3J03IQkX38x/oZVJnODHg bR6apDwvp8dO2sizPQ25wv68RQuCZAaMqHxUxT+J1FFGAmhpi6xs5QfuC1jVXoelXV50nuFs5yTmt DlW4QAPsqFcXQsGggeKwnYm7QNU6m+HWfrX2Q5AF1NcyAixi+dTNKJZUxlAMleztCSEtRK+t+uclP 6W2h7TLuwxBCrOBEhrUKmFu19xOlmu3KLzB+9gWIMJUAx2spxOxNh8ved1ip6YxmlZqVuF0XkxkGd 6SjoYb9HflOcmXPqnOSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3GfH-000Tr4-Ho; Mon, 20 Jun 2022 12:37:59 +0000 Received: from mail-he1eur04on0613.outbound.protection.outlook.com ([2a01:111:f400:fe0d::613] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3Gf3-000Tku-64; Mon, 20 Jun 2022 12:37:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CVPWlBUtLHxj4So9+YY709ObMKP4d7/81dFpwuLb3S8IgUXd+6gY8J2UmxqR0BDjweWL+iMOf6RipYFBt/CN/lFUxEycPKu6v3iNihuvorvKuUUnEGyNbd8+mGdmIXqjc80WpvSuivPBGMIrkuZSb90oofGZd1/0bCcwulKoyXHo8IDbxMRYlH3RXKovUMDYS4D/ztOxraBKPULvhZ2fyOPvE4PfB3/pLIX5k4XO2x+sRcV583kDpKnS34AX7/UU3w0jn4ycf82nPb0lU309KN7JYbBT1KEeFJQuRVKWKW6SMJ3Y5hriTKgSU4qnX5bJN9pxlWlJgOoLgYuVwALZEg== 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=7YOldlPREB8yae/CoX0VqwFYfCl+I7MwfoNDjCHUFMw=; b=P2LPiGhFKBHH8tfBkVT6A6L4gRD9YMNRU2tzgpfpdKfx2OrR52lkXkzUmUmiQZqFNmMcfN1OdCAI66lrp0NaPPYnlM9tyHo3xT1tQZPBQHl8teQjy+S3/7SRIi8MpFTQsSvT+M4GbmT03PfRZv6nO1qkkMMwiOXNy8nZ9159KbIlSgdLyDqLJrCWFiTrxBlaC3WYgi6jSLjmD1+dlixjp3MY0b2B31FfZ5UIWdx7XGRtSZl+gkyVnq1CckoZsYlyFroPdTaU5mXEGOP+tAGvp9PDvbLvpWQ8icacPn3xNd540BXEBsw6nrNGuqFg4x9/txCyN6rjuwZM+u1jtT9BDg== 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=7YOldlPREB8yae/CoX0VqwFYfCl+I7MwfoNDjCHUFMw=; b=E8ooBB9hrWwdeXpCEIB0/YyZKY/ArqoeuYgJogOtWfdpRwXMLVYkL0rrKC/qTW2PDO8Q2IrYE+4CB/bhbLkLo/dn6x4LPeYUQhxyxkNqf6dW7mm0PsSt7MnojWFPW//uS0Bz/0I8QHDuka14LdYKYW88H3HYqV6n2vXGhdt7USY= 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 AM8PR04MB7873.eurprd04.prod.outlook.com (2603:10a6:20b:247::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 12:37:37 +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 12:37:37 +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 v3 3/3] phy: freescale: Add i.MX8qm Mixel LVDS PHY support Date: Mon, 20 Jun 2022 20:38:54 +0800 Message-Id: <20220620123854.1138028-4-victor.liu@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220620123854.1138028-1-victor.liu@nxp.com> References: <20220620123854.1138028-1-victor.liu@nxp.com> X-ClientProxiedBy: SG2PR06CA0219.apcprd06.prod.outlook.com (2603:1096:4:68::27) 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: 9c09a91a-5680-4cda-311f-08da52b9a81e X-MS-TrafficTypeDiagnostic: AM8PR04MB7873: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: gU/hN/m/VLn2pMD2vvYkv3C/riag+rN6VY8LMiFQtKnkz7t1kuQzg9154iE9cj/dW+Z1INYOndn+fC4IXQNe2zRIX/Tz07VOUVJFSAFh2RbGi5cd0R1kOF/h37xZLr8fy54y8zChh9Sxa/IoRYThe4k3RnLIj/d2aVyA1Z0vc662X0En0R+5hT3AAxyGj6LFnebXuhuAGlJo6L+hD/XeTU4m9YuWHYUYQ3Em8gOL8iBNP6EblvMysIP1f/lhMJ+EHEJ4ZFy+7QKVTM7yPdw5bgICR9zC8CKWbyveXnWGyN/RkTBoStPvzhZk66vYFyOo6TOV80a0Oytc3grn8+9f/Vbg5OebLMVAlCT2sm13O4bTlfCiUVssX8JBFNU+FulUHF9dQGWVvaASbDr0Co3gyu8nOTYUSHR6OSVUDJtoVLLZjy8rMPYt9tNQ5MT8NK97xuIJc3uRcBytLGWvHPPoU57XQA/3PsrIQRqapAYC+RLRhVIH/dNF9xF0CUvoWBMihL/GtslChsE1jiEfQlKvybl6DUk/ConUseXVXUwVHUOc/Cu2FrvQDGFSyN/+5V9rtEorn8qgjY9Mn8vWZlSxSqd4RoMBQXfhHdJXBarinrOtgT6pEBdFsia7Wi++N57W7wZr7hhvCiv1NqC+ohwmcBdS3nEZOp8lhB7wNGZE9QScEaoMqfxvxpnLV43om3q+JhToiC8r3VOmiin5SkX9uw== 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)(396003)(39860400002)(376002)(136003)(366004)(346002)(66556008)(66946007)(36756003)(8676002)(4326008)(66476007)(6486002)(83380400001)(316002)(186003)(1076003)(478600001)(8936002)(2616005)(5660300002)(41300700001)(38100700002)(7416002)(6512007)(30864003)(26005)(38350700002)(52116002)(6666004)(6506007)(86362001)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pcjAzLoMIm48SNMwYBwf4G5845U/XPx6SCrMEGymkidnh7Hw0pMF9nQWw0K+NhdSlhcxqonL0U+JB4vo0NcgXDmizVBPdE87YvMHeGBA9OgR3aWI6FrBCxKwcv2841r41wOpD7vpotsyNcF1urYFLOlzSGjDioAcxQajXTUCvFphL8t2HIJLDR0iHSt+O5cJym+uftCf4vmNTM5s3Wsh/rGCze8odPwEoVTgOTFjzox783wC8y1iRGvCyG/PQzaviDfTU4vw9OSIU2DokUnm5zvqnbGktSmMkcCtMX1WLSlvEUmHcEmIi+vNqZf7d3AWROAqNnLi1PRPmSZjaGvhbJdF0Xv+YVZe33SNccCHhDQEbdrPW4nl6JngaJTP+J9aKi92Fcwz8LQnWHIe/fZDA0iSbI1Ws8+PxaW1m++Ar/GVJ4Gi8Mj36YOHqHqOUwmRNzybIq5/QylYwyK0+0U6bp/mAJLLdBP5HAYLQiCnkYDad4c5snjfV05H2osxRVPzRe5LeEgZZE1Ce/DNznyUlhl8fZI+EBIcuHZjCJ2Skgp0kzk22iDewztmG1WmqGqUCiepCJundpmraUCKRcYi8Bu3mVJ8RQCFue8pInYQdZFYXybnnM2WDyJqYjlPk9SCClnjJ5hMgyi/GHIE6fLzNtDI8drtV7detgnqDch5sadF0l5Utr1zbkLWYGE82I/up3sXMzj4htBp7gN+EM6lNV6xonpjyt3BHowCDZndplbLy8sCOM84IjcfXmHGxdwUzoIUE6OuTgoQGZnaNidXMEgJGHcFcCFzMdmosFaTSKqAz3/aii1B6mCtFTcGIgUxWxdggzgpD4sF2Ev5aS8sxiawc9f8G/NTSrSXwDxlv2oGoi+O11aa0EGiUl0sjq0c+eWE1R6vlva9JJ8dxKHKMWkUmfjj2Yfy7CBTUA66ZlG/pWVFqlsRMHcgk2fA00/CkH2cxpjd5evhfHFIxHgkVkN0lHtBBD5OhG6qTxImz/cnW5Vi5HRHTejCO6NMqEUUavbYFA46cm9PCiS+HEfsQUmMumylUA3iUl+6oXqyx7QbbeTA0sBpgaWnC9NW4Jk394QwW5Nby20pQF6hU/LZ1kxEuIvzK1CA+6sGoOX+ennJHTPypCfXpBTv5K1xudqKPTToyMSrTXkhzNKVIZbucXTClkUsYsgV45pb1tyGMk75TluGUQA7NwQOpoVZcKiAT8H0M9rhw+724uavmj47yqUFPJQ3eyWNgO46YsEInl7zcYodhpxoq4VQUZxDzpXjbIKanhFTe9HZDZC9MsYm9t5DFRP2M+93Ui8dvOq/ybXVa/egNIKaZ7jsXxDi6Lu2VlOrh8O7JGXciaxOSswFr4/HLnnIX5nWD+N6opk6gUizZRE7wJk66mumqKFv7/xHG2PfY0ouyIK47C0AsW7X+uXZCwi4DsG1gLCWkTmK8SASllWdEEDPerJdy05V2eXb2oJ4F+AoS9Sbupv9DwoxgUPavW8X+KrUa7Q9SypB+0H2MqsubuYbTsguQIrGvMhg2tWUYLH2RWfvCGa7Z9n+yZtVwodFOikyzXQUJk0CrOPla/jXP18MuHwWue7Jbyc86HMJuRkO1TCuGqci0q2Luhg5VgzMpsMHJahvSRMKCONtrnGGxsnqSa2iZaEYPU2OqSzaPm3eOEPQt6DxIo84amGoMenlJOa0iyWM2x47RPVbmtMTZ5vnHWWvjjWTI9onRIhdl3wztRr1YbqNkUoPQw== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c09a91a-5680-4cda-311f-08da52b9a81e X-MS-Exchange-CrossTenant-AuthSource: AM7PR04MB7046.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 12:37:37.1824 (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: dYtes46rW0ZZ2+hZ8ll8+b00pr1oGBPkQbOwHso40fcmyBmPffuAOcqrRMFFkf7ihu8Ns4t4j4hkxNzI3/XeDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7873 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220620_053745_445295_5A30DCD9 X-CRM114-Status: GOOD ( 21.51 ) 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 --- v2->v3: * No change. v1->v2: * Drop 'This patch' from commit message. (Krzysztof) * Make dev_err_probe() function calls as one-liners. (Krzysztof) * Drop unnecessary debug messages. (Krzysztof) * Get phy_ref_clk without name specified due to 'clock-names' dropped from dt-binding. 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");