From patchwork Mon Feb 10 20:59:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13969138 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 16851C0219D for ; Mon, 10 Feb 2025 23:25:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=p03uJSijvTJl1WYCM/t70RjEhrD5nomucUy/Sv+1Hts=; b=eHxLLGGSlEJGnD5Sa7oOoG3NLi GyqsCZrz+2dfwyr0jHHg6mt6J0qO8YJxcQPULqCjoULwqf68QWBVUbVJk42aCIYAzKrsAMuquJ9hV k+k9QJwF1jFAD9Y3jWlIHIt2oIYdYVb54SwhvEC141bKnanWzEFmdbaodR6jMHK9PF8jmwlf9tIsi 0HbMfYIYm5x1pKanBqKF0pUw5GXrglhAv9cFAq2DjV37zY03E6a28uLzDIxaBYpO5OvF9kfpmLq2x gLNpdB3x0v2kE/SlyA+LA/Vk1IP57b/P+2CB2W5vjWKEv8wSTGOE2bi7mJgpkflPzrKKVfD+N1LCT VefcAKEg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thd9x-00000001pwu-2spS; Mon, 10 Feb 2025 23:25:49 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thatK-00000001QeF-3Vp3 for linux-arm-kernel@bombadil.infradead.org; Mon, 10 Feb 2025 21:00:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Content-Transfer-Encoding:Content-Type:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=p03uJSijvTJl1WYCM/t70RjEhrD5nomucUy/Sv+1Hts=; b=g7L+whyUGB4021eDCfXJh+SZP5 ZxwNQgEWhHypbCNc614TgEWpF1bMblGKOU1I+rYLPPT0Qb5Z7vhJZONP6xM/Iy7Pmx+hRvedPXToB sg5xaN7ONfN2ZbfqekZ34aeTbtVgsSSzjmsnJlmSni7M4dcZbjC3/h3wMQ5NFbPyYmlFpkBI5SZ8i wNr2PYk/mUYr4QNLnp9JD41bbBAf2MI+efUtKYQACP7fRJo7P1s1jNTc3isiZkn2mZJ0A+218dZ3I eTyA6aHJZq7iL+tABus4vRt6bHZtvwVGU2PRgzgIezBX//qcqN80Eecz9cIMpf8OCH6rVNP1MZMxe 04EAltNg==; Received: from mail-db8eur05on20608.outbound.protection.outlook.com ([2a01:111:f403:2614::608] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thatG-00000000GR9-3P54 for linux-arm-kernel@lists.infradead.org; Mon, 10 Feb 2025 21:00:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ygWsEx7WSsdIU9kSjYiGT32rBgMJ4CFfdU2y4BU5nzSSd3QOK2DCdpqpiQMLYqkA7bF/mqmkXzv/29FnY6gyOdy4Bl9eDG1OUOnvnxh6wbk2grmgU7tNW6fCVhDfI085WtCTgAwFhvQr9YLfqBbqpyCZ+Y6jjwJkqj6VY0/y27cnQ018kHC8NgYrgK0EStimRi9L8SM/oAAGhq8aDcMFdnDvVcO0ukaQfvaC5TuciViKaa3S8yEbteXe9Lkzngjp8CGx3NirTi+GO2UDnCTQ/nbB33T1kiUe0Ia0di7KOXIQnB0my3ydp2A6Mb2UAlJX0el7jOG8AD2rN4u5mD1w/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=p03uJSijvTJl1WYCM/t70RjEhrD5nomucUy/Sv+1Hts=; b=r5CQcEgzDJ2H3a55pPRJqyuAWm1TB+5rHqw4+uC4z9SixIfiYPBenZeHlssg8XXRXWThNEPPf7P53svqA53oN5qtwVoqESqTA/GJ29Tnog7B2gUiWrCQmnOdh77+hjpV+0gmCPp5yNoLDNPupRPIFPV2FNr0shF2/GP05/YZdRU2aTGCB0uOH+2OHYtaINbvqtnm762XvXuVZ8wFNeL8OZ4xypZjsqRY9TEhLaSCWvkmeRtXmFTfmFvC8fuamrfdCPqV4zMRWfRjD+whxAG1N+Ik72b+7XY77zqCbEKqgvc++FDEwOR2vQxWrZJEejhNvyhGqh5W4+YFWjrmfOjFcg== 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=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p03uJSijvTJl1WYCM/t70RjEhrD5nomucUy/Sv+1Hts=; b=hMJ7EFM2dG6QTaHsi61IDsVF4ft767n9buQQiYo9A3FPA2UcoSKff9zYP/zJu8L6C6VOzthHLXJpiGJVTkG71Gzo1RChxBoiNkiBT2IadvZUH27iappBUhEKvydwbR1Cc7X1SQ3G647hLTYpOZnARiNuWKVCit3BW+3ZR9JxowSZ7hS0oVWfhFZn63F19rNQFcgsaHwxLB96l3Ugzvb5phYfdYVYriUj24dfopCGtSYZ5dfv8duPJr/Zin1TziH2LGy9qBwYwzlZHtG7KSfqDx00uWzw2M/UQ9NSf/LtfGp8hh3+owrEKZOG+WVXdUB5Jt/LIThRA38kD4p0n9Odng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by DBAPR04MB7462.eurprd04.prod.outlook.com (2603:10a6:10:1a0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.19; Mon, 10 Feb 2025 21:00:23 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%6]) with mapi id 15.20.8422.012; Mon, 10 Feb 2025 21:00:23 +0000 From: Frank Li Date: Mon, 10 Feb 2025 15:59:26 -0500 Subject: [PATCH v3 07/12] media: imx8mq-mipi-csi2: Add imx8mq_plat_data for different compatible strings Message-Id: <20250210-8qxp_camera-v3-7-324f5105accc@nxp.com> References: <20250210-8qxp_camera-v3-0-324f5105accc@nxp.com> In-Reply-To: <20250210-8qxp_camera-v3-0-324f5105accc@nxp.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Dong Aisheng , Philipp Zabel , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Laurent Pinchart , Mauro Carvalho Chehab , Rui Miguel Silva , Martin Kepplinger , Purism Kernel Team Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, Robert Chiras , "Guoniu.zhou" , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1739221181; l=4303; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=mCQ0dpoMb0cB3d9MY8XgzIv35NywEgot9HMoXjS7eMA=; b=Uq/XYUrtjJsU7iObC06oX4CNuzdjxzupaMPUAAI2AZI2DyU6e/tLBFr03OmlutWCVBzemptxr 3K8n52DJJJfCmWvUSSWZ6Pjgqu5wANNoz9OjSEX1173+GHyoUPega4M X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: BY3PR03CA0009.namprd03.prod.outlook.com (2603:10b6:a03:39a::14) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|DBAPR04MB7462:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ea9a009-5256-4451-20f9-08dd4a15eff7 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?/KRrqp9HXAWo+SVWjeFi9BTdu30Rpb2?= =?utf-8?q?EisDSc6R4FFktfKGU5yqfU/+GEz39CC/sdQCfKF00Pz3XHl54mKvMhgU8THs5h76F?= =?utf-8?q?aEoIMu/25K051XaIqw+Vc09s/j12zp4GrXK4sKA0bFVNCWuFGERUC/0IWQMrW798L?= =?utf-8?q?nu2OjtXxAVWZRxvUGENtWsJfDpUD7JE7dydhMwdRNe9WZ2Oi4bSiFnRp+Ie4HsUFp?= =?utf-8?q?UjAstrLhZ5SuE57kx8LwssG1sG+G2zCuHPO/oSC73lkRuT6oFLGKpaMMH6uviEv7R?= =?utf-8?q?haHh5M8y5aAfcxkgj0UKHVuQjntcODXdZGSwmjatzQ95cpfRwYNTX8hlkq1BnSurq?= =?utf-8?q?VYvm0TVmepoG3i1ooJ5ZukNQxYxuBbS/fRetz1A56LBz2xidd1hFi7bXsELwS3iY6?= =?utf-8?q?pXTnh+MiGdsShgGhFn3rZth8iXztopaUgVbg2Hag2gEvi4PiYZ5tMz4fc2IMuO9y8?= =?utf-8?q?wbPd3rU/sgJOWU6zpDa4j3anGDsSMLuLzoGnmy8HWBtafhUek85lmEkIzS9yklx6C?= =?utf-8?q?c9fXDunHfliYIOJdJ6ODu8e4nQM069FVIv/MCh0U2oF99tgzcV2XZEWMQNEnPwYxs?= =?utf-8?q?TQTWm4BoYyfjdcGWtW8TRgBkdWTm1wud+BI9ySPa2zgF+cEe0ePCFctCWAq8wnFpI?= =?utf-8?q?GciAY+V2C6nM80vmv0WR5mMBsxz2gBteiS5ll+GfY1FawSX9eEQcdWGoGOFhvnzLg?= =?utf-8?q?mrZoZWP0KFV09DqJpliiT/VAtiEaYo4fgn6prY0LHAk9v0O/EZ0276niMlQ6qt7gJ?= =?utf-8?q?n5SO28TTc9MHcHkz0ecP2UjnptOMUXJdn6EghX1lHfI3DfpV8PhP5+VwRaDDEv/Om?= =?utf-8?q?89pQSdbOKMyQSbnBd6CXntablpgchClEwP3kAUr9lysWJPUT0MxpuvbREXhjDf6ct?= =?utf-8?q?spLgFAYR8TAot4MBr9xZkIP5mqX2Z4h12WwrqSel0bR9NJaNOZSGvoBfMIsQmoEyw?= =?utf-8?q?KjvMa1fmUgAlKBtmYDkNiDva+MvCkbh2KOij+7QJAnJs2XqjrUSojIlE9JqXAsyng?= =?utf-8?q?ZNfgGS+IWfc/4TUmSqyeyriTWGVBwodGDjSlsBc7GOydWIlwCtnXcGlSO1VpV7ePK?= =?utf-8?q?llzFymlJ7H/4t0IFebHI9YhzZwty3uadZdYHmsDqzZvAn3jtKatfbyKFiz4PTNkMl?= =?utf-8?q?DP5/0o2gC+SerLqwp1DXFFKsPISlz5Psm+0a0NWYp3ft/qUI2hxOnHJ5e938VngPz?= =?utf-8?q?OckoOYH43cu6Ep5Jt7oehYcFGD1QONXSQMwIKgBw+QrXhpsHTlXxzAYGwsBkIAZyL?= =?utf-8?q?rA5ikaBd0OJULw3WuXNu5lcDMTMcxsue/dqP/mwdUDuc5OiaqFhfacyaHHRf0NN0k?= =?utf-8?q?CcMg1560+HKusIE3P5gXTJtd1mOU0ytFJB2DV6JsKZmPLval3bhCxxhSE4SEiL2Ra?= =?utf-8?q?hlS13+3pBh5uiywVj0wHOm8dLWLgvwBpw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(52116014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?saPzaifrnyLnghpsoBFmfyNVtqMM?= =?utf-8?q?QspPGGZrBlZPEmHLwZ9gZSMoIaGLtSQvR7CzzFtd2ERXcreeJyPIwqQzT/70GG9ON?= =?utf-8?q?kpgd9J7iDb7buc8vjrPtcwaVqevStYHxljBUNPw155M5/8gemX1vFPKYJ/2R+gGcn?= =?utf-8?q?g9vMGoeIiM4aUvT4jM0i0FK3P0hQpmrYawHCLHuG0+lHZ8/3C74vb880tOwoMX4cM?= =?utf-8?q?vERVHf1oczCch2U4fQ9qhsqnvwzNrXlaKF8zJbIjA/X1Wx6ADxSk484zNubsKS+JY?= =?utf-8?q?tRh/tXyMRbolduMfVEHBVoJLmWo2cx0QL7TkwcBFmrMUfHG/GtUwKgKaj4/84AN7l?= =?utf-8?q?2gLIT1sTf9GgG1YgwMtAQwxTtHcPg4bFuq9IM8k3L5U61EIDnIMCUR70mWoYs1XcO?= =?utf-8?q?YZp1J+c/PKJGvT5k9oKa5JaJRx24HFN/YJnaeldhDFDTKF/x14ixeQnFMrNHzr+ty?= =?utf-8?q?p7+D3PoCF6kY/DGe4rIcS536DG/tHm7mXTQ/FK2zOHokA4zZ/UCLNTAeo5yJa3L3e?= =?utf-8?q?5hqio9hfF7UkqhxbW56zh3XoadK72zINxzTcaLpklo+PoutUNbKgVnCJAEgBleoca?= =?utf-8?q?NCuFfy3PCSJ6591OWuUXtmf1w7w3y93it44biWpEyALLmBuo8sX15EDOv4Cc6jkLr?= =?utf-8?q?wxJPArKZuklcD2u7LJEBdD1GE7EK75ZkPxUa6B1HJhiDmXaxO20u8bu6JayJwjpZW?= =?utf-8?q?kCMTjIYRnhD6d8rQwuhgPtRo+3SFUYkf3pnd9LdkkrbuoRnm3MVPKPsndd0rVfaNb?= =?utf-8?q?9Ir83kKxm6PU5GzYqC1U8OnyPNahFMFEANJP3Lh0MokNB+P0zaqT0sewozlUgtvPh?= =?utf-8?q?8YDuAuEweN9y0dDFzqGrgnahsRSUnwF2QlKbElEqrruPORIz3IrCGSpPCLDJ4EQPw?= =?utf-8?q?nQmc+7f5sWxnJK/odiOKwK834vS9JB3J1hTKdOdWVUwNu3N+UCMMnZScCrERCSjsn?= =?utf-8?q?1+gMr2RoHs5TJPtBLrql8zKFPWR+20zJPk9+/IsCqAyhbYe7YT2F98yTIvoZMwLOy?= =?utf-8?q?hfa922ppLPcv8ZHJK3wpK48F//bi9IfYpfcUEeHme8z4zVnup1r/cCtGyQs9KsIQH?= =?utf-8?q?0qrWtsazzU9S6/ge4gWi/rUkV2lFTydJPQ4vGIu14LonWs7NXohSLmsjxuVu4MFgO?= =?utf-8?q?9JEArK9cnLANZL83NwZUvlC/rD7CcRFgKfxowOR7lGSuMZCY+y5pqqM4sjfQfKTKq?= =?utf-8?q?S00nqG3aoR7JEZcPRVBHyGOhMTQCejVGr3gaj4AlAd4K9qCV76R0lo40dW0jfOjmD?= =?utf-8?q?ot5+0rzjdliPnkYqzk0Fh0EYIt8EtM7CETdbTi4IS3Wa0EkT0temcgy0IqTdQk6fd?= =?utf-8?q?dhtm9jjzy+5NoBALI9Efl/dyiXaibDWZIF3W18z7MZvbroOp9VZLMQ+WGMR+cplYe?= =?utf-8?q?LVCJZtz8vz30pwrjHjjn55XCj2jTsQiAM/s4ao0FPA7sMAjgV7yohlt5ae1sBkVf4?= =?utf-8?q?fVqTqorAVYcv+n+MMXIM7ixKcPzweVvirQsd2Izb+w2JM4mbap3anAXs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea9a009-5256-4451-20f9-08dd4a15eff7 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2025 21:00:23.8606 (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: jYUE540J78fCkkX6sc8DzO32QHmFdUDb4zF2Kt6xbH4yydeYZiEVbEtt82ukSWJyy7CO799LQcCuw/ulPUXv2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7462 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250210_210027_319995_7664DEFC X-CRM114-Status: GOOD ( 18.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 From: "Guoniu.zhou" Introduce `imx8mq_plat_data` along with enable/disable callback operations to facilitate support for new chips. No functional changes. Signed-off-by: Guoniu.zhou Signed-off-by: Frank Li --- Change from v2 to v3 - none change from v1 to v2 - remove internal review tags --- drivers/media/platform/nxp/imx8mq-mipi-csi2.c | 60 ++++++++++++++++++++------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/nxp/imx8mq-mipi-csi2.c b/drivers/media/platform/nxp/imx8mq-mipi-csi2.c index 1f2657cf6e824..b5eae56d92f49 100644 --- a/drivers/media/platform/nxp/imx8mq-mipi-csi2.c +++ b/drivers/media/platform/nxp/imx8mq-mipi-csi2.c @@ -62,6 +62,8 @@ #define CSI2RX_CFG_VID_P_FIFO_SEND_LEVEL 0x188 #define CSI2RX_CFG_DISABLE_PAYLOAD_1 0x130 +struct csi_state; + enum { ST_POWERED = 1, ST_STREAMING = 2, @@ -83,11 +85,11 @@ static const char * const imx8mq_mipi_csi_clk_id[CSI2_NUM_CLKS] = { #define CSI2_NUM_CLKS ARRAY_SIZE(imx8mq_mipi_csi_clk_id) -#define GPR_CSI2_1_RX_ENABLE BIT(13) -#define GPR_CSI2_1_VID_INTFC_ENB BIT(12) -#define GPR_CSI2_1_HSEL BIT(10) -#define GPR_CSI2_1_CONT_CLK_MODE BIT(8) -#define GPR_CSI2_1_S_PRG_RXHS_SETTLE(x) (((x) & 0x3f) << 2) +struct imx8mq_plat_data { + const char *name; + int (*enable)(struct csi_state *state, u32 hs_settle); + void (*disable)(struct csi_state *state); +}; /* * The send level configures the number of entries that must accumulate in @@ -106,6 +108,7 @@ static const char * const imx8mq_mipi_csi_clk_id[CSI2_NUM_CLKS] = { struct csi_state { struct device *dev; + const struct imx8mq_plat_data *pdata; void __iomem *regs; struct clk_bulk_data clks[CSI2_NUM_CLKS]; struct reset_control *rst; @@ -137,6 +140,35 @@ struct csi2_pix_format { u8 width; }; +/* ----------------------------------------------------------------------------- + * i.MX8MQ GPR + */ + +#define GPR_CSI2_1_RX_ENABLE BIT(13) +#define GPR_CSI2_1_VID_INTFC_ENB BIT(12) +#define GPR_CSI2_1_HSEL BIT(10) +#define GPR_CSI2_1_CONT_CLK_MODE BIT(8) +#define GPR_CSI2_1_S_PRG_RXHS_SETTLE(x) (((x) & 0x3f) << 2) + +static int imx8mq_gpr_enable(struct csi_state *state, u32 hs_settle) +{ + regmap_update_bits(state->phy_gpr, + state->phy_gpr_reg, + 0x3fff, + GPR_CSI2_1_RX_ENABLE | + GPR_CSI2_1_VID_INTFC_ENB | + GPR_CSI2_1_HSEL | + GPR_CSI2_1_CONT_CLK_MODE | + GPR_CSI2_1_S_PRG_RXHS_SETTLE(hs_settle)); + + return 0; +} + +static const struct imx8mq_plat_data imx8mq_data = { + .name = "i.MX8MQ", + .enable = imx8mq_gpr_enable, +}; + static const struct csi2_pix_format imx8mq_mipi_csi_formats[] = { /* RAW (Bayer and greyscale) formats. */ { @@ -364,14 +396,9 @@ static int imx8mq_mipi_csi_start_stream(struct csi_state *state, if (ret) return ret; - regmap_update_bits(state->phy_gpr, - state->phy_gpr_reg, - 0x3fff, - GPR_CSI2_1_RX_ENABLE | - GPR_CSI2_1_VID_INTFC_ENB | - GPR_CSI2_1_HSEL | - GPR_CSI2_1_CONT_CLK_MODE | - GPR_CSI2_1_S_PRG_RXHS_SETTLE(hs_settle)); + ret = state->pdata->enable(state, hs_settle); + if (ret) + return ret; return 0; } @@ -379,6 +406,9 @@ static int imx8mq_mipi_csi_start_stream(struct csi_state *state, static void imx8mq_mipi_csi_stop_stream(struct csi_state *state) { imx8mq_mipi_csi_write(state, CSI2RX_CFG_DISABLE_DATA_LANES, 0xf); + + if (state->pdata->disable) + state->pdata->disable(state); } /* ----------------------------------------------------------------------------- @@ -869,6 +899,8 @@ static int imx8mq_mipi_csi_probe(struct platform_device *pdev) state->dev = dev; + state->pdata = of_device_get_match_data(dev); + ret = imx8mq_mipi_csi_parse_dt(state); if (ret < 0) { dev_err(dev, "Failed to parse device tree: %d\n", ret); @@ -946,7 +978,7 @@ static void imx8mq_mipi_csi_remove(struct platform_device *pdev) } static const struct of_device_id imx8mq_mipi_csi_of_match[] = { - { .compatible = "fsl,imx8mq-mipi-csi2", }, + { .compatible = "fsl,imx8mq-mipi-csi2", .data = &imx8mq_data }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, imx8mq_mipi_csi_of_match);