From patchwork Wed Feb 5 17:18:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13961590 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012025.outbound.protection.outlook.com [52.101.66.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC5062135C5; Wed, 5 Feb 2025 17:20:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738776014; cv=fail; b=YJ1DdJ4Y1Q3w+zIciV81iXDtUoFKqN5PjNROlfEYaUf0Z2Og6KhJn8//RAntRDEOfpV+O5xMVcjOXFy9/uu3t5p1bc1XaQrkIWNSNYml6D6tCtnuUQWYmouolkRtZusu40ggVlIhvHVnz4pljj6r3eJ4SEQdZ8BL/aNaRzFkdFo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738776014; c=relaxed/simple; bh=ugygyO+yHnlfz+15NCVfVP0KrBW32DLhfdZDLvGYONw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DNJL/seZYdjS2vFPCc1YyuaO8FtRH/30lOveEaEcHcgtj5wepv2uokeLlAMxKFnPD7ArHInhNBWNqQ3A1of0FN+rJpou1SO1jcrKhDHuyRjFgKnIh0oe+ZS4Rt6BqvvCeydMB9ieibg7baEbpXQ+UfAB0gICpmd8OVQ4SgHO2i4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Gfz3Jf0u; arc=fail smtp.client-ip=52.101.66.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Gfz3Jf0u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XtGBhgDfBc9RAFT+O1gTpRx3SX3G4V+tUApezm7x6sd9HJooS1YYPPgugWALopmI9WCVG3967u45TLsUSEkmqhyVnJeNbzFQs8nuMuImnny+DJ0hNaORhz0qdxufLG5dIqvA+Vya4ZrA9pZvWAO7orPVi/dVLkHV2s/asrVRuCjKOS+XYB3tSBBtRGgdHsCVWRrwkF6r/VXYR5miDPFRaiUde0qmiT872wNTbA4SxYMoH0PLPlyL/UvXGAcxcPi2wYKFTQDOire9Y12m7sNRqUGbt2L0YHz+AHnT0PormkL7NoG9/vmr48+wI3Mw0y43VYlZnahfuBMTMzL/dpmViA== 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=cA4BaFPtGEObRac4g2FRPODf1jSnHQAkLe8NkZwPS8Q=; b=WX/MBAkVC7euIAt42P9Fa6tNloEKLHmzTLxKzYBR7cGw28EL6kHNlf/7ZVuhuCKadXKETU1qJ0A0a7Cse+Qz+U8ALMjzQH5G5f9qIYAHP11g49FkIWSo9F7NuLTEC18F9GkFmAfYBbJbCxD8aNowvgEBerMcKt4Ub2HRkSUBPqe8mFmgpxJUMQbNKaEt0w/jvp/NvcPBdfJzJrJP5KPFsANVx+Fqb55xykFyIlwK/J5j9PsaytC/vhf19frI8rb1WDv3zrdJ/XZsoNaLTAV7B8StauvnnBTJ3Xd9h1tx5heDl8CJFwzrZBeHSRZ1qOopSuDFp3p4bqMVVGOvGYpwyw== 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=cA4BaFPtGEObRac4g2FRPODf1jSnHQAkLe8NkZwPS8Q=; b=Gfz3Jf0uR+gHRVmc3qOJWaxkDkvrjHHU4gYq8s/IikO5NbfF/tcXiV2N+QQjIp6+hSdzhPorTJZAC/f8oBsG0NycSL/p7WCMkT+uD1CD+dR1eYZEFinlQEYeO7yQmbLEv2v6j4GHSL644HxMMIj2z2817tgsVbrx7kMYbof682q5JHG1RF5ik2Q1uDepo4WBgNJWbhAxpVmi7I3uVdmbJ7A6J+VjK41NKkiJMVjZFvm1tm/UehX6SrqcifFeMWLZpRtTYPb2ljbEvdfmgUHhq7CnQ8Lr7jDAVDgMaxQlShwAjZo0lTrGau+sE2Rz5JakxTbHOp2CpWoE3Q9KTRD9+Q== 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 DB9PR04MB8348.eurprd04.prod.outlook.com (2603:10a6:10:25c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 17:20:09 +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.8398.021; Wed, 5 Feb 2025 17:20:09 +0000 From: Frank Li Date: Wed, 05 Feb 2025 12:18:23 -0500 Subject: [PATCH v2 14/14] arm64: dts: imx8q: add camera ov5640 support for imx8qm-mek and imx8qxp-mek Message-Id: <20250205-8qxp_camera-v2-14-731a3edf2744@nxp.com> References: <20250205-8qxp_camera-v2-0-731a3edf2744@nxp.com> In-Reply-To: <20250205-8qxp_camera-v2-0-731a3edf2744@nxp.com> To: Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Philipp Zabel , Laurent Pinchart , Mauro Carvalho Chehab , Rui Miguel Silva , Martin Kepplinger , Purism Kernel Team Cc: linux-phy@lists.infradead.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, "Guoniu.zhou" , Robby Cai , Robert Chiras , Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1738775920; l=12281; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ugygyO+yHnlfz+15NCVfVP0KrBW32DLhfdZDLvGYONw=; b=xrUkliBjVZDYCRKRMfUBVRRWFwvsB0HkyIv7jfoB8wRYQsss/sRlZ+P0ZiPJsnZu8Wxyo2gey qEvsxohUtlODrodhiGbHfm/fS0V0PY2TWj2mU1VSa6oCNeKEjckJLfo X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0001.namprd13.prod.outlook.com (2603:10b6:a03:2c0::6) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|DB9PR04MB8348:EE_ X-MS-Office365-Filtering-Correlation-Id: 02954a83-4779-4b5f-cc8f-08dd4609574f 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|1800799024|52116014|376014|7416014|366016|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?N6Pk8xSVPmAuG/hHkt8e28yPnaoQIUf?= =?utf-8?q?pCgtPNruNO9ski8bnpsH0MqOUkU94Fm1gUDeJQOwy+i5rSpHXM1zTQqy34suhPj5q?= =?utf-8?q?FS4feZ567xaUsz8A05LqKflA2lQshT2Gb46nPzDSgWSsQvZt6A4wf0YqPSJJVmH+Q?= =?utf-8?q?tPgebCjvTp0MXnuI2jTjHSbm3R8jsrldBaomz9eriS3RpNC+BRsv7FEQfR82lVzIh?= =?utf-8?q?cTTGgjtJqkFRBmmjPzNn9xsoX8xxRlHrKNs1rRbntCAHGQNcUxFOlbKC1yELcNPkd?= =?utf-8?q?K5OuuO7KVRE4AjLDlPGuonhuFarMwVa/1ud68/09tueTmyorziiPtN5FmLrHaVSMK?= =?utf-8?q?327i12FUmRUPQ4lILRrCO/6VyCrYPj9MXHj4xK+A6GcCjQVt3qO1fGbj4r5h7xkxl?= =?utf-8?q?+MGVxPyIqBD5UwmYR1aGCiToi/rXg8I4SGGcb0ny0EXrkFU2ke44a/0lE/ux5rCn3?= =?utf-8?q?Y8oSPSdxTotfo0VFfNXTkmHZWmnLLu6dh5dakv6fhtXkR8kXx8BJAZqKx8b83YguO?= =?utf-8?q?Ikcr3gNyjFoxLNcIOv/g+tSTCxcKNQ23Mr8flZzxN67XYT3ilZi5V6ZcfHwYChAsE?= =?utf-8?q?ohz5DGLK3Z2HM6EtaXKCFUZzs2M8RbiZ9/2FvjTwbyQJf/ffoUxTVffUkwOewGOeg?= =?utf-8?q?2JYFYiUnj29lrGqw3tLzHe7owp29HwD2eWMu9P2CkRTzZ0zqKjg5ibhecOAxpf65B?= =?utf-8?q?SLWN5u9lQnst1vo7L3MVE/ZDgGigMf+cw2WdIN/ILycuy9SwOklChBq8izE/12ScZ?= =?utf-8?q?V6je1UmnFFjyCoXtJdNWcWUnLuhmRuZKphN7AQfZ2l5v5NPaKq+T7qOOHxvpqtWVj?= =?utf-8?q?fajXBUmQvBM+9GyHZLhrlM+OSobNlZ6ghiwphdWgt2Wa+v5s1+respMs8EkgmawE+?= =?utf-8?q?I3JRI4OaDNx4EBsSV6Kki9TRIu5TjyrJW4j+dpGSzztVRfXpb27+adgD8unZu/KbC?= =?utf-8?q?VJkV5hh6x93NdwTwBDjSY235O3W/KouPy8fM5PT+eWrDGFbwSDh3ajn3Y4ehI0FD0?= =?utf-8?q?XYr8ZNThjvt23+piZqYYCpwbvPCdZWt+wK7MZnPp9QQas6szSmw4qjkmoDStHTP/7?= =?utf-8?q?ugfL3PUDHYGeIaL7Jn7RIRx/b5pCaiKmP6rGCOdZGBEYEE26A35oHRWqG0co9C6WS?= =?utf-8?q?nA8hd2zS7fBx9QCobJsgk05lLauQlh2UeZwoAwwEe3GZx9L+tdOeQLvs5BXaHlOyi?= =?utf-8?q?v94hl3VAvpQsCL7vDEnGWcvosR0bCc4OszKQ0Hs6wb8MfJOBXFhbvfnWI7auqXuyB?= =?utf-8?q?RD+cbgbZkj3ZCASbkRkB2mNP7DAPioa2pJUSqOwH9DC8XzYORbFExiqFMvsb+X8lR?= =?utf-8?q?NEF+htVqIOOULUGlpv5KMXDrfhBfNCFc8Hiw/YS/wZfB6pkJm4PICq7hpdXmmXTxp?= =?utf-8?q?H1Dj+SQ4dJmMmN6LHoD5sdqPyhqK+3C/Q=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)(1800799024)(52116014)(376014)(7416014)(366016)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?CYgbDbGkxT+OJxVnpsXQd2H9MzUy?= =?utf-8?q?Oka6mUIiIEg7h9MHKQEwKh+YLiLDL1SQLY5G3t51wKuJeK/wbbqfTnjQsHSTj0qc5?= =?utf-8?q?dg3FPyws6LB/Us70Kah6lu/EwpzbOaRDe527rN8LeKe4M1Dz5NCoLhIGAO2cwKyYN?= =?utf-8?q?SiNSpTVsHH8Kq5BDj451PKizIMwwE+N/4bFiym1cn8BWyeTGIPAqD5eqM39SX7d1b?= =?utf-8?q?ZGSsMmeUBhaALCkhfZ4rZUIjg6LXsB/GxXksuTkMS22DMxABkCTJmkBkmoLSs+dc8?= =?utf-8?q?ZPHLcBMe6rrX+hBZr6wLtzfg7ahl9pbzZzSwvEfwTP7Wah9Ip68+D3emfvczL/sO6?= =?utf-8?q?3n+qCokUUQgqyN4Gir2dow6tOJnDVn2Ay9CoZ7lsztni+qkBxHYaPqP4sEu4CntZd?= =?utf-8?q?7fXsBv5w75ODFFsKeS9roGgd/r3Ghg/s5bfbG6RgFb68SBs4FfP6EPARzlxXy40/4?= =?utf-8?q?CLuakMLJr0AWZfiUnFWTSoH4xD4ww9EGseisujrH4ZNa52V65tIaryr5zIONlqW9W?= =?utf-8?q?gdH/CGlgov2j/NdHFk8Vq2s5tC1R9cdgVw3jep5hE0I1+XyI7fOQVad63p3lI8ZEg?= =?utf-8?q?Kz74oU2MEH2Lhd3OJyBIUBjuzSrPhnfERF4Jyl59aDexcjKN0em8CalvHCxjw2SZ4?= =?utf-8?q?2lQGibOfzqGJIA2r82TZbMaOarXTrwpsLCWPvVZKSqGz1EgIoVXhgNICC5gwYAnkR?= =?utf-8?q?Et/GRBGtoT6uX29V7QqN2nAWgFHdbRimdqnaI4mJNhvenGQd+MeMBM+8t9aFkXLVC?= =?utf-8?q?H4l4FFyy64lCLP078semq3YZ/rlL7UUDUAYo5C7NIpixdsMA/z/d3l6mjxPhCCGfN?= =?utf-8?q?xgqmwd1DxbsRSXAaI/dIFAul7aMvZCpcj/HH8wXmhnz7BgTe7Q+rf4Ci6r8dZwNWH?= =?utf-8?q?tLcVTBzJWILof1fFPz3M97x6wsk4rc5tGAJoYPLPHJHnHL+EOitN1FYDUzHDzkURD?= =?utf-8?q?K8lJ5mWqDUgwupKppfv9Jp0rRbQyqmUyr2yAahkF20KiVpHErTvkkkGlF1acWzmS+?= =?utf-8?q?KgyMvxBBBQkdFio9DsMdwqOcvuqS5Xaabwpyg4fGf/SJQcHNpOgb43ebbCjUWXS0h?= =?utf-8?q?V7+cXwvAMiB5Q/lhhXbhUbzK+3WyflqU4s9b3uqh0U+4Sh6INMue4S6wbQ5j/BZWc?= =?utf-8?q?QBTV96D/MOlgENAeQ2nZcGhbrdGjAyxeD7SgVIC/Qd+PcqLGDaze7Hl198Hb4ssmW?= =?utf-8?q?uhQzVSPf6KU1kfCcEpZ2aITtqIQ2+Su+PF5gFJ/C3YkpjsprLxv0WBxaJmGSHpZaG?= =?utf-8?q?QP6h3hOsunHG5gOfAOIHnzeqCAy6zRDhsAdD6wInfhSFXEldf4+HJkmxQe9HzzIk9?= =?utf-8?q?/0XfqQXGAukwoK7+HHmJem0ngoxQAU4uDZadkizR9ywqIfd94lVJ1ynNqB4+CHw+I?= =?utf-8?q?5z+mH5FLSbV6lN30/0lv6ami8GpvU/XPYhBGGnD6XskOS8bcV44nD39HeYESCjvwP?= =?utf-8?q?5yOt8wV+usrB2xTdXXoxdBu4wCkWgOiDF7YI4jxQ19VdmdG0vH/xxMa1Eq7/hsBlh?= =?utf-8?q?5MRDs5moKtnP?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02954a83-4779-4b5f-cc8f-08dd4609574f X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 17:20:09.1337 (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: 764+WI1/vpJnSbKj358Lu151ziMZtsNmK6Q4s/uBibSQ2R7wA5lXOzX0O8brxp0jEsm8ut4n1dLIpmNOskinng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8348 Add ov5640 overlay file for imx8qm-mek and imx8qxp-mek board. Camera can connect different CSI port. So use dts overlay file to handle these difference connect options. Signed-off-by: Frank Li --- change from v1 to v2 - none --- arch/arm64/boot/dts/freescale/Makefile | 12 +++ .../boot/dts/freescale/imx8qm-mek-ov5640-csi0.dtso | 93 ++++++++++++++++++++++ .../boot/dts/freescale/imx8qm-mek-ov5640-csi1.dtso | 93 ++++++++++++++++++++++ arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 51 ++++++++++++ .../boot/dts/freescale/imx8qxp-mek-ov5640-csi.dtso | 92 +++++++++++++++++++++ arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 36 +++++++++ 6 files changed, 377 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 839432153cc7a..d1cbc08eb3f4d 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -261,12 +261,24 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-eval-v1.2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-ixora-v1.1.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qm-apalis-v1.1-ixora-v1.2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb + +imx8qm-mek-ov5640-csi0-dtbs := imx8qm-mek.dtb imx8qm-mek-ov5640-csi0.dtbo +dtb-${CONFIG_ARCH_MXC} += imx8qm-mek-ov5640-csi0.dtb +imx8qm-mek-ov5640-csi1-dtbs := imx8qm-mek.dtb imx8qm-mek-ov5640-csi1.dtbo +dtb-${CONFIG_ARCH_MXC} += imx8qm-mek-ov5640-csi1.dtb +imx8qm-mek-ov5640-dual-dtbs := imx8qm-mek.dtb imx8qm-mek-ov5640-csi0.dtbo imx8qm-mek-ov5640-csi1.dtbo +dtb-${CONFIG_ARCH_MXC} += imx8qm-mek-ov5640-dual.dtb + dtb-$(CONFIG_ARCH_MXC) += imx8qxp-ai_ml.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-aster.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-eval-v3.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-iris.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-iris-v2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb + +imx8qxp-mek-ov5640-csi-dtbs := imx8qxp-mek.dtb imx8qxp-mek-ov5640-csi.dtbo +dtb-${CONFIG_ARCH_MXC} += imx8qxp-mek-ov5640-csi.dtb + dtb-$(CONFIG_ARCH_MXC) += imx8qxp-tqma8xqp-mba8xx.dtb dtb-$(CONFIG_ARCH_MXC) += imx8ulp-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi0.dtso b/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi0.dtso new file mode 100644 index 0000000000000..c2bc5b839e3f7 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi0.dtso @@ -0,0 +1,93 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2025 NXP + */ + +/dts-v1/; +/plugin/; + +#include +#include + +&i2c_mipi_csi0 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <100000>; + pinctrl-0 = <&pinctrl_i2c_mipi_csi0>; + pinctrl-names = "default"; + status = "okay"; + + ov5640_mipi_0: camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&xtal24m>; + clock-names = "xclk"; + pinctrl-0 = <&pinctrl_mipi_csi0>; + pinctrl-names = "default"; + powerdown-gpios = <&lsio_gpio1 28 GPIO_ACTIVE_HIGH>; + reset-gpios = <&lsio_gpio1 27 GPIO_ACTIVE_LOW>; + AVDD-supply = <®_2v8>; + DVDD-supply = <®_1v5>; + DOVDD-supply = <®_1v8>; + status = "okay"; + + port { + ov5640_mipi_0_ep: endpoint { + bus-type = ; + data-lanes = <1 2>; + remote-endpoint = <&mipi_csi0_in>; + }; + }; + }; +}; + +&irqsteer_csi0 { + status = "okay"; +}; + +&isi { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@2 { + reg = <2>; + + isi_in_2: endpoint { + remote-endpoint = <&mipi_csi0_out>; + }; + }; + }; +}; + +&mipi_csi_0 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mipi_csi0_in: endpoint { + data-lanes = <1 2>; + remote-endpoint = <&ov5640_mipi_0_ep>; + }; + }; + + port@1 { + reg = <1>; + + mipi_csi0_out: endpoint { + remote-endpoint = <&isi_in_2>; + }; + }; + }; +}; + +&mipi_csi_0_phy { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi1.dtso b/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi1.dtso new file mode 100644 index 0000000000000..78cc0575fb005 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek-ov5640-csi1.dtso @@ -0,0 +1,93 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2025 NXP + */ + +/dts-v1/; +/plugin/; + +#include +#include + +&i2c_mipi_csi1 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <100000>; + pinctrl-0 = <&pinctrl_i2c_mipi_csi1>; + pinctrl-names = "default"; + status = "okay"; + + ov5640_mipi_1: camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&xtal24m>; + clock-names = "xclk"; + pinctrl-0 = <&pinctrl_mipi_csi1>; + pinctrl-names = "default"; + powerdown-gpios = <&lsio_gpio1 31 GPIO_ACTIVE_HIGH>; + reset-gpios = <&lsio_gpio1 30 GPIO_ACTIVE_LOW>; + AVDD-supply = <®_2v8>; + DVDD-supply = <®_1v5>; + DOVDD-supply = <®_1v8>; + status = "okay"; + + port { + ov5640_mipi_1_ep: endpoint { + bus-type = ; + data-lanes = <1 2>; + remote-endpoint = <&mipi_csi1_in>; + }; + }; + }; +}; + +&irqsteer_csi1 { + status = "okay"; +}; + +&isi { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@3 { + reg = <3>; + + isi_in_3: endpoint { + remote-endpoint = <&mipi_csi1_out>; + }; + }; + }; +}; + +&mipi_csi_1 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mipi_csi1_in: endpoint { + data-lanes = <1 2>; + remote-endpoint = <&ov5640_mipi_1_ep>; + }; + }; + + port@1 { + reg = <1>; + + mipi_csi1_out: endpoint { + remote-endpoint = <&isi_in_3>; + }; + }; + }; +}; + +&mipi_csi_1_phy { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts index 61ef00f4259e1..3a6e25e08c26a 100644 --- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts @@ -155,6 +155,27 @@ usb3_data_ss: endpoint { }; }; + reg_1v5: regulator-1v5 { + compatible = "regulator-fixed"; + regulator-name = "1v5"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + }; + + reg_1v8: regulator-1v8 { + compatible = "regulator-fixed"; + regulator-name = "1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + reg_2v8: regulator-2v8 { + compatible = "regulator-fixed"; + regulator-name = "2v8"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + reg_usdhc2_vmmc: usdhc2-vmmc { compatible = "regulator-fixed"; regulator-name = "SD1_SPWR"; @@ -727,6 +748,20 @@ IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31 0x0600004c >; }; + pinctrl_i2c_mipi_csi0: i2c-mipi-csi0grp { + fsl,pins = < + IMX8QM_MIPI_CSI0_I2C0_SCL_MIPI_CSI0_I2C0_SCL 0xc2000020 + IMX8QM_MIPI_CSI0_I2C0_SDA_MIPI_CSI0_I2C0_SDA 0xc2000020 + >; + }; + + pinctrl_i2c_mipi_csi1: i2c-mipi-csi1grp { + fsl,pins = < + IMX8QM_MIPI_CSI1_I2C0_SCL_MIPI_CSI1_I2C0_SCL 0xc2000020 + IMX8QM_MIPI_CSI1_I2C0_SDA_MIPI_CSI1_I2C0_SDA 0xc2000020 + >; + }; + pinctrl_i2c0: i2c0grp { fsl,pins = < IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL 0x06000021 @@ -905,6 +940,22 @@ IMX8QM_LVDS1_I2C1_SDA_LVDS1_I2C1_SDA 0xc600004c >; }; + pinctrl_mipi_csi0: mipi-csi0grp { + fsl,pins = < + IMX8QM_MIPI_CSI0_GPIO0_00_LSIO_GPIO1_IO27 0xC0000041 + IMX8QM_MIPI_CSI0_GPIO0_01_LSIO_GPIO1_IO28 0xC0000041 + IMX8QM_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT 0xC0000041 + >; + }; + + pinctrl_mipi_csi1: mipi-csi1grp { + fsl,pins = < + IMX8QM_MIPI_CSI1_GPIO0_00_LSIO_GPIO1_IO30 0xC0000041 + IMX8QM_MIPI_CSI1_GPIO0_01_LSIO_GPIO1_IO31 0xC0000041 + IMX8QM_MIPI_CSI1_MCLK_OUT_MIPI_CSI1_ACM_MCLK_OUT 0xC0000041 + >; + }; + pinctrl_pciea: pcieagrp { fsl,pins = < IMX8QM_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO28 0x04000021 diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek-ov5640-csi.dtso b/arch/arm64/boot/dts/freescale/imx8qxp-mek-ov5640-csi.dtso new file mode 100644 index 0000000000000..6d86b1f549d93 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek-ov5640-csi.dtso @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2024 NXP + */ +/dts-v1/; +/plugin/; + +#include +#include + +&i2c_mipi_csi0 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <100000>; + pinctrl-0 = <&pinctrl_i2c_mipi_csi0>; + pinctrl-names = "default"; + status = "okay"; + + ov5640_mipi: camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&xtal24m>; + clock-names = "xclk"; + pinctrl-0 = <&pinctrl_mipi_csi0>; + pinctrl-names = "default"; + powerdown-gpios = <&lsio_gpio3 7 GPIO_ACTIVE_HIGH>; + reset-gpios = <&lsio_gpio3 8 GPIO_ACTIVE_LOW>; + AVDD-supply = <®_2v8>; + DVDD-supply = <®_1v5>; + DOVDD-supply = <®_1v8>; + status = "okay"; + + port { + ov5640_mipi_ep: endpoint { + bus-type = ; + data-lanes = <1 2>; + remote-endpoint = <&mipi_csi0_in>; + }; + }; + }; +}; + +&irqsteer_csi0 { + status = "okay"; +}; + +&isi { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@2 { + reg = <2>; + + isi_in_2: endpoint { + remote-endpoint = <&mipi_csi0_out>; + }; + }; + }; +}; + +&mipi_csi_0 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mipi_csi0_in: endpoint { + data-lanes = <1 2>; + remote-endpoint = <&ov5640_mipi_ep>; + }; + }; + + port@1 { + reg = <1>; + + mipi_csi0_out: endpoint { + remote-endpoint = <&isi_in_2>; + }; + }; + }; +}; + +&mipi_csi_0_phy { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts index 89c6516c5ba90..a356c491375cb 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts @@ -90,6 +90,27 @@ usb3_data_ss: endpoint { }; }; + reg_1v5: regulator-1v5 { + compatible = "regulator-fixed"; + regulator-name = "1v5"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + }; + + reg_1v8: regulator-1v8 { + compatible = "regulator-fixed"; + regulator-name = "1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + reg_2v8: regulator-2v8 { + compatible = "regulator-fixed"; + regulator-name = "2v8"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + reg_pcieb: regulator-pcie { compatible = "regulator-fixed"; regulator-max-microvolt = <3300000>; @@ -749,6 +770,13 @@ IMX8QXP_FLEXCAN1_RX_ADMA_FLEXCAN1_RX 0x21 >; }; + pinctrl_i2c_mipi_csi0: i2c-mipi-csi0grp { + fsl,pins = < + IMX8QXP_MIPI_CSI0_I2C0_SCL_MIPI_CSI0_I2C0_SCL 0xc2000020 + IMX8QXP_MIPI_CSI0_I2C0_SDA_MIPI_CSI0_I2C0_SDA 0xc2000020 + >; + }; + pinctrl_ioexp_rst: ioexprstgrp { fsl,pins = < IMX8QXP_SPI2_SDO_LSIO_GPIO1_IO01 0x06000021 @@ -789,6 +817,14 @@ IMX8QXP_FLEXCAN2_RX_ADMA_UART3_RX 0x06000020 >; }; + pinctrl_mipi_csi0: mipi-csi0grp { + fsl,pins = < + IMX8QXP_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07 0xC0000041 + IMX8QXP_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08 0xC0000041 + IMX8QXP_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT 0xC0000041 + >; + }; + pinctrl_pcieb: pcieagrp { fsl,pins = < IMX8QXP_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO00 0x06000021