From 1c4dfd0cc1f4d24f18fe445ce29f9eed3ae84bd4 Mon Sep 17 00:00:00 2001 From: Hiteshkumar Patel Date: Thu, 19 Dec 2024 05:51:25 +0000 Subject: [PATCH] t23x: dts: Add IGX500 to public repo Add IGX500 dts support to nv-public Bug 5018940 Change-Id: Ida4a7de3d060dc660acbbdbf9b5020ba198dc5d3 Signed-off-by: Hiteshkumar Patel Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/3271404 (cherry picked from commit 34a5de4f2c74b55499ba00634dcbaca7cebc6e3e) Reviewed-on: https://git-master.nvidia.com/r/c/device/hardware/nvidia/t23x-public-dts/+/3275750 Reviewed-by: Dipen Patel Reviewed-by: Brad Griffis GVS: buildbot_gerritrpt --- nv-platform/Makefile | 3 + .../tegra234-dcb-p3971-0000+p3701-0000.dtsi | 534 ++++++++++++++++++ .../tegra234-p3971-0000+p3701-0000-nv.dts | 13 + ...gra234-p3971-0000+p3701-0008-nv-safety.dts | 10 + .../tegra234-p3971-0000+p3701-0008-nv.dts | 13 + ...ra234-p3971-0000+p3701-xxxx-nv-common.dtsi | 356 ++++++++++++ nv-platform/tegra234-p3971-0000.dtsi | 387 +++++++++++++ overlay/Makefile | 2 + ...+p3701-0008-camera-dual-imx274-overlay.dts | 344 +++++++++++ ...00+p3701-0008-camera-p3762-a00-overlay.dts | 305 ++++++++++ ...egra234-p3971-0000-camera-imx274-dual.dtsi | 66 +++ 11 files changed, 2033 insertions(+) create mode 100644 nv-platform/tegra234-dcb-p3971-0000+p3701-0000.dtsi create mode 100644 nv-platform/tegra234-p3971-0000+p3701-0000-nv.dts create mode 100644 nv-platform/tegra234-p3971-0000+p3701-0008-nv-safety.dts create mode 100644 nv-platform/tegra234-p3971-0000+p3701-0008-nv.dts create mode 100644 nv-platform/tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi create mode 100644 nv-platform/tegra234-p3971-0000.dtsi create mode 100644 overlay/tegra234-p3971-0000+p3701-0008-camera-dual-imx274-overlay.dts create mode 100644 overlay/tegra234-p3971-0000+p3701-0008-camera-p3762-a00-overlay.dts create mode 100644 overlay/tegra234-p3971-0000-camera-imx274-dual.dtsi diff --git a/nv-platform/Makefile b/nv-platform/Makefile index b1f47dc..4e561e4 100644 --- a/nv-platform/Makefile +++ b/nv-platform/Makefile @@ -28,6 +28,9 @@ dtb-y += tegra234-p3768-0000+p3767-0004-nv.dtb dtb-y += tegra234-p3768-0000+p3767-0004-nv-super.dtb dtb-y += tegra234-p3768-0000+p3767-0005-nv.dtb dtb-y += tegra234-p3768-0000+p3767-0005-nv-super.dtb +dtb-y += tegra234-p3971-0000+p3701-0000-nv.dtb +dtb-y += tegra234-p3971-0000+p3701-0008-nv.dtb +dtb-y += tegra234-p3971-0000+p3701-0008-nv-safety.dtb ifneq ($(dtb-y),) dtb-y := $(addprefix $(makefile-path)/,$(dtb-y)) diff --git a/nv-platform/tegra234-dcb-p3971-0000+p3701-0000.dtsi b/nv-platform/tegra234-dcb-p3971-0000+p3701-0000.dtsi new file mode 100644 index 0000000..8b9f930 --- /dev/null +++ b/nv-platform/tegra234-dcb-p3971-0000+p3701-0000.dtsi @@ -0,0 +1,534 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +/ { + display@13800000 { + nvidia,dcb-image = [ + 55 aa 16 00 00 37 34 30 30 e9 4c 19 77 cc 56 49 + 44 45 4f 20 0d 00 00 00 70 01 00 00 00 00 49 42 + 4d 20 56 47 41 20 43 6f 6d 70 61 74 69 62 6c 65 + 01 00 00 00 10 00 c7 17 31 30 2f 32 36 2f 32 31 + 00 00 00 00 00 00 00 00 21 18 50 00 f1 2a 00 00 + 50 4d 49 44 00 00 00 00 00 00 00 a0 00 b0 00 b8 + 00 c0 00 0e 47 41 31 30 42 20 56 47 41 20 42 49 + 4f 53 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 56 65 72 73 69 6f 6e 20 39 34 2e + 30 42 2e 30 30 2e 30 30 2e 32 30 20 0d 0a 00 43 + 6f 70 79 72 69 67 68 74 20 28 43 29 20 31 39 39 + 36 2d 32 30 32 31 20 4e 56 49 44 49 41 20 43 6f + 72 70 2e 0d 0a 00 00 00 ff ff 00 00 00 00 ff ff + 47 50 55 20 42 6f 61 72 64 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 43 68 69 70 20 52 65 76 20 20 20 00 00 + 00 00 00 00 00 00 00 ba 91 98 96 91 9a 9a 8d 96 + 91 98 df ad 9a 93 9a 9e 8c 9a df d2 df b1 90 8b + df b9 90 8d df af 8d 90 9b 8a 9c 8b 96 90 91 df + aa 8c 9a f2 f5 ff 00 00 00 00 00 00 00 00 00 00 + 50 43 49 52 de 10 94 22 00 00 18 00 00 00 00 03 + 16 00 01 00 00 80 00 00 2e 8b c0 2e 8b c0 8b c0 + 4e 50 44 45 01 01 14 00 16 00 00 01 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ff b8 42 49 54 00 00 01 0c 06 12 45 32 01 04 00 + 38 02 42 02 25 00 44 02 43 02 2c 00 69 02 44 01 + 04 00 95 02 49 01 24 00 99 02 4d 02 29 00 bd 02 + 4e 00 00 00 00 00 50 02 e8 00 e6 02 53 02 18 00 + ce 03 54 01 02 00 e6 03 55 01 05 00 ec 03 56 01 + 06 00 f1 03 78 01 08 00 f7 03 64 01 02 00 ff 03 + 70 02 04 00 01 04 75 01 11 00 05 04 69 02 6e 00 + 18 04 45 01 04 00 e8 03 00 00 86 04 86 04 fe 20 + 00 21 f0 2a 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 0b 94 20 00 00 00 00 00 a8 07 + 00 00 00 00 00 00 00 00 02 00 5c 5c 28 02 00 00 + 3c 02 04 00 10 00 00 00 00 f5 0e 00 00 00 00 00 + 00 35 44 00 00 c7 2d 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 72 30 00 00 e1 44 00 00 1f 45 00 + 00 46 45 00 00 00 00 00 00 da 04 00 00 00 00 de + 04 00 00 4a 08 de 04 26 2a 4a 08 28 2a 86 04 ef + 09 14 21 d4 09 d7 20 28 2a 90 00 ab 21 01 4c 08 + 3a 09 f0 43 00 00 fa 43 00 00 03 10 00 00 00 21 + 00 00 0c 21 00 00 50 4a 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 d5 33 00 00 bb 36 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 af 3c 00 00 00 00 00 00 e9 3c + 00 00 0e 43 00 00 00 00 00 00 00 00 00 00 df 33 + 00 00 2e 3d 00 00 9c 43 00 00 ad 36 00 00 00 00 + 00 00 00 00 00 00 be 43 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 0b + 00 00 c1 0a 00 00 5b 0b 00 00 11 3c 00 00 17 3c + 00 00 1c 3c 00 00 20 3c 00 00 2a 3c 00 00 31 3c + 00 00 3f 3c 00 00 81 3c 00 00 00 00 00 00 00 00 + 00 00 92 3c 00 00 ec 45 00 00 92 47 00 00 07 48 + 00 00 8d 49 00 00 7c 4b 00 00 b8 4b 00 00 e2 49 + 00 00 98 3c 00 00 79 3c 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 e8 4d 00 00 9c 3c 00 00 a5 3c + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 + 50 b5 00 19 cf 00 28 75 0e 14 89 0e 23 00 01 23 + 23 01 14 ac 0e 28 18 11 00 00 00 00 d4 0e 01 00 + 00 f1 0d c3 0c 00 00 00 00 01 01 00 00 00 00 f4 + 1c 2d 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 92 2d 00 00 00 00 00 00 0b 94 20 00 00 20 + 92 d2 01 58 03 00 00 31 30 2f 32 36 2f 32 31 00 + 00 00 00 00 00 00 00 00 00 00 00 21 01 10 00 00 + 00 80 01 00 00 00 00 00 30 30 30 30 30 30 30 30 + 30 30 30 30 00 00 00 00 00 00 00 00 03 42 00 00 + b9 78 8f 47 ad 04 4f 3d bf 01 4c 10 55 04 be ee + 54 33 00 00 00 00 00 00 c5 4c 00 00 00 00 00 00 + 00 00 93 4e 00 00 01 00 10 00 bf 09 30 00 02 00 + 94 22 00 00 00 00 01 00 44 00 6b 09 00 00 86 04 + 00 00 3a 09 00 00 de 04 00 00 00 00 00 00 4a 08 + 00 00 5c 08 00 00 45 0b 00 00 c1 0a 00 00 5b 0b + 00 00 71 0b 00 00 f1 0d 00 00 c3 0c 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 3c 21 00 00 30 c0 + 61 40 00 00 00 10 00 00 00 00 08 23 61 00 80 00 + 00 00 80 00 00 00 88 23 61 00 80 00 00 00 80 00 + 00 00 08 24 61 00 80 00 00 00 80 00 00 00 88 24 + 61 00 80 00 00 00 80 00 00 00 08 25 61 00 80 00 + 00 00 80 00 00 00 88 25 61 00 80 00 00 00 80 00 + 00 00 08 26 61 00 80 00 00 00 80 00 00 00 00 2a + 13 00 00 00 04 00 00 00 04 00 00 2a 13 00 00 00 + 01 00 00 00 01 00 00 6e 13 00 00 00 04 00 00 00 + 04 00 00 6e 13 00 00 00 01 00 00 00 01 00 4c 00 + 12 00 3f 00 00 00 00 00 00 00 0c 24 02 00 01 00 + 00 00 00 00 00 00 e4 05 02 00 7c 00 00 00 00 00 + 00 00 e4 05 02 00 7c 00 00 00 18 00 00 00 e4 05 + 02 00 7c 00 00 00 0c 00 00 00 e4 05 02 00 7c 00 + 00 00 04 00 00 00 e4 05 02 00 7c 00 00 00 08 00 + 00 00 e4 05 02 00 7c 00 00 00 14 00 00 00 20 0e + 9a 00 00 00 02 00 00 00 02 00 00 0e 9a 00 00 00 + 02 00 00 00 02 00 00 0e 9a 00 01 00 00 00 01 00 + 00 00 34 c0 61 40 00 00 00 80 00 00 00 00 00 0c + 82 00 ff ff ff ff 00 00 00 00 00 0c 82 00 01 00 + 00 00 00 00 00 00 00 0c 82 00 02 00 00 00 00 00 + 00 00 00 0c 82 00 04 00 00 00 00 00 00 00 00 0c + 82 00 08 00 00 00 00 00 00 00 00 0c 82 00 10 00 + 00 00 00 00 00 00 00 0c 82 00 20 00 00 00 00 00 + 00 00 90 02 82 00 01 00 00 00 00 00 00 00 88 02 + 82 00 ff 00 00 00 00 00 00 00 c0 04 82 00 07 00 + 00 00 00 00 00 00 00 0a 00 00 00 00 f0 1f 00 00 + 00 00 88 80 08 00 00 00 0f 00 00 00 01 00 40 c0 + 08 00 00 00 0c 00 00 00 0c 00 40 c0 08 00 1f 00 + 00 00 00 00 00 00 00 0a 00 00 00 00 f0 1f 00 00 + 00 00 74 09 9a 00 0f 00 00 00 00 00 00 00 e8 73 + 13 00 01 00 00 00 01 00 00 00 0c 06 9a 00 40 00 + 00 00 40 00 00 00 64 00 12 00 40 00 00 00 40 00 + 00 00 04 14 00 00 04 00 00 00 00 00 00 00 04 14 + 00 00 08 00 00 00 08 00 00 00 14 38 82 00 00 00 + 01 00 00 00 01 00 00 0a 00 00 00 00 f0 1f 00 00 + 00 00 0c 14 00 00 01 00 00 00 01 00 00 00 0c 14 + 00 00 02 00 00 00 01 00 00 00 88 54 62 00 00 00 + 01 00 00 00 00 00 88 54 62 00 00 00 02 00 00 00 + 00 00 88 54 62 00 00 00 04 00 00 00 00 00 9c 8b + 11 00 00 00 00 80 00 00 00 00 14 0c 82 00 01 00 + 00 00 00 00 00 00 14 0c 82 00 02 00 00 00 00 00 + 00 00 14 0c 82 00 04 00 00 00 00 00 00 00 14 0c + 82 00 08 00 00 00 00 00 00 00 14 0c 82 00 10 00 + 00 00 00 00 00 00 14 0c 82 00 20 00 00 00 00 00 + 00 00 9c 8b 11 00 00 00 00 80 00 00 00 00 10 01 + 82 00 01 00 00 00 00 00 00 00 d4 06 82 00 ff 03 + 00 00 00 00 00 00 14 0c 82 00 3f 00 00 00 01 00 + 00 00 00 14 00 00 02 00 00 00 00 00 00 00 44 c1 + 61 60 01 00 00 00 01 00 00 00 20 87 08 00 04 00 + 00 00 00 00 00 00 40 00 82 00 01 00 00 00 00 00 + 00 00 54 9b 41 00 ff 00 00 00 00 00 00 00 68 9b + 41 00 03 00 00 00 00 00 00 00 40 80 11 00 02 00 + 00 00 00 00 00 00 04 0c 82 00 01 00 00 00 00 00 + 00 00 04 14 00 00 00 04 00 00 00 00 00 00 34 04 + 82 00 01 00 00 00 00 00 00 00 4c 08 00 01 02 03 + 04 05 06 07 00 01 02 03 04 05 06 07 41 06 24 06 + 00 00 00 07 00 02 bf 00 01 51 00 04 bf 00 02 5e + 00 01 bf 00 03 52 00 03 bf 00 84 19 00 00 4f 00 + 85 7b 59 98 4f 00 06 ff 00 00 4f 00 07 ff 00 00 + ef 00 08 ff 00 00 ef 00 09 ff 00 00 ef 00 0a ff + 00 00 ef 00 0b ff 00 00 ef 00 0c ff 00 00 ef 00 + 0d ff 00 00 ef 00 0e ff 00 00 ef 00 0f ff 00 00 + ef 00 10 42 50 11 e4 00 11 41 42 0b e2 00 12 40 + 41 0a e1 00 13 70 51 12 e5 00 14 ff 00 00 ef 00 + 15 ff 00 00 ef 00 16 ff 00 00 ef 00 17 ff 00 00 + ef 00 18 ff 00 00 ef 00 19 ff 00 00 ef 00 1a ff + 00 00 ef 00 1b ff 00 00 ef 00 1c ff 00 00 ef 00 + 1d ff 00 00 ef 00 1e ff 00 00 ef 00 1f ff 00 00 + ef 00 00 ff 00 00 0f 00 00 ff 00 00 0f 00 00 ff + 00 00 0f 00 00 ff 00 00 0f 00 10 07 16 10 00 a1 + 0a 01 f0 10 03 00 00 00 00 ff ff ff 00 ff ff 00 + 10 00 00 00 00 00 00 1f 01 00 00 00 00 00 00 ff + ff ff 00 ff ff 00 10 00 00 00 00 00 00 2f 02 00 + 00 00 00 00 00 ff ff ff 00 ff ff 00 10 00 00 00 + 00 00 00 3f 03 00 00 00 00 00 00 ff ff ff 00 ff + ff 00 10 00 00 00 00 00 00 4f 04 00 00 00 00 00 + 00 ff ff ff 00 ff ff 00 10 00 00 00 00 00 00 5f + 05 00 00 00 00 00 00 ff ff ff 00 ff ff 00 10 00 + 00 00 00 00 00 6f 06 00 00 00 00 00 00 ff ff ff + 00 ff ff 00 10 00 00 00 00 00 00 7f 07 00 00 00 + 00 00 00 ff ff ff 00 ff ff 00 10 00 00 00 00 00 + 00 8f 00 00 00 00 00 00 00 ff ff ff 00 ff ff 00 + 10 00 00 00 00 00 00 9f 01 00 00 00 00 00 00 ff + ff ff 00 ff ff 00 10 00 00 00 00 00 00 af 02 00 + 00 00 00 00 00 ff ff ff 00 ff ff 00 10 00 00 00 + 00 00 00 bf 03 00 00 00 00 00 00 ff ff ff 00 ff + ff 00 10 00 00 00 00 00 00 cf 04 00 00 00 00 00 + 00 ff ff ff 00 ff ff 00 10 00 00 00 00 00 00 df + 05 00 00 00 00 00 00 ff ff ff 00 ff ff 00 10 00 + 00 00 00 00 00 ef 06 00 00 00 00 00 00 ff ff ff + 00 ff ff 00 10 00 00 00 00 00 00 ff 07 00 00 00 + 00 00 00 ff ff ff 00 ff ff 00 10 00 00 00 00 00 + 00 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e + 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e + 1f 10 04 20 04 00 00 80 00 b8 4c 0a ff e0 93 04 + 00 20 d6 13 00 e0 93 04 01 20 d6 13 00 ff 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 ff 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 ff 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 + 00 00 00 00 00 00 00 00 01 00 00 00 00 ff 00 00 + 00 00 00 00 00 20 05 11 01 00 00 35 0c 00 ff ff + ff ff ff ff ff ff ff 00 00 00 00 10 05 11 01 00 + 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 + 00 30 08 10 01 14 01 15 0e 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 10 0d 17 34 b0 8f 11 00 00 00 00 00 00 + 00 00 00 34 a8 04 82 00 00 00 00 00 00 00 00 00 + 34 a0 04 82 00 00 00 00 00 00 00 00 00 34 d4 02 + 82 00 00 00 00 00 00 00 00 00 34 a4 04 82 00 00 + 00 00 00 00 00 00 00 34 7c 14 00 00 00 00 00 00 + 00 00 00 00 34 08 0e 82 00 00 00 00 00 00 00 00 + 00 34 0c 0e 82 00 00 00 00 00 00 00 00 00 34 a8 + 83 11 00 00 00 00 00 00 00 00 00 34 78 01 82 00 + 00 00 00 00 00 00 00 00 34 78 01 82 00 00 00 00 + 00 00 00 00 00 34 ac 04 82 00 00 00 00 00 00 00 + 00 00 34 94 10 82 00 00 00 00 00 00 00 00 00 34 + 88 10 82 00 00 00 00 00 00 00 00 00 34 8c 10 82 + 00 00 00 00 00 00 00 00 00 34 90 10 82 00 00 00 + 00 00 00 00 00 00 34 ac 83 11 00 00 00 00 00 00 + 00 00 00 34 78 01 82 00 00 00 00 00 00 00 00 00 + 34 d4 02 82 00 00 00 00 00 00 00 00 00 34 78 05 + 82 00 00 00 00 00 00 00 00 00 34 b0 04 82 00 00 + 00 00 00 00 00 00 00 34 78 01 82 00 00 00 00 00 + 00 00 00 00 34 7c 07 82 00 00 00 00 00 00 00 00 + 00 10 03 1b 05 80 00 07 60 05 08 40 08 09 60 0d + 0a 40 10 0d f0 17 0c e0 15 0e 60 18 0f 40 1c 10 + e0 23 15 80 24 16 26 29 17 60 2d 18 40 30 19 60 + 35 1a 60 39 1b 60 3d 1d e0 43 1e a5 44 1f 60 49 + 20 60 4d 21 60 51 22 fc 47 23 a0 58 24 66 59 25 + 2c 5a 26 f2 5a ff 7d f4 ed 1f 18 7c a3 82 dc b6 + 81 88 d5 6f da 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 4e 56 49 44 49 41 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 4e 56 49 44 49 41 20 + 43 6f 72 70 6f 72 61 74 69 6f 6e 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 42 49 4f 53 + 20 43 65 72 74 69 66 69 63 61 74 65 20 43 68 65 + 63 6b 20 46 61 69 6c 65 64 21 21 21 0d 0a 00 00 + 00 00 00 00 22 05 02 0e 0c 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 50 04 13 0e 07 95 01 95 01 d0 07 + a0 0f 1b 00 1b 00 0f 0f 32 ff 01 3f 08 95 01 95 + 01 d0 07 a0 0f 1b 00 1b 00 0f 0f 32 ff 01 3f 0b + 95 01 95 01 d0 07 a0 0f 1b 00 1b 00 0f 0f 32 ff + 01 3f 04 e1 00 13 01 94 11 28 23 e1 00 13 01 01 + 01 14 ff 01 02 0c 1b 00 1b 00 40 06 80 0c 1b 00 + 1b 00 01 01 28 ff 01 3f 41 1b 00 1b 00 40 06 8c + 0a 1b 00 28 00 01 ff 28 ff 03 3f 42 1b 00 1b 00 + 40 06 8c 0a 1b 00 28 00 01 ff 28 ff 03 3f 80 1b + 00 1b 00 20 03 54 06 1b 00 1b 00 01 01 14 ff 01 + 3f 81 1b 00 1b 00 20 03 54 06 1b 00 1b 00 01 01 + 14 ff 01 3f 82 1b 00 1b 00 20 03 54 06 1b 00 1b + 00 01 01 14 ff 01 3f 83 1b 00 1b 00 20 03 54 06 + 1b 00 1b 00 01 01 14 ff 01 3f 0d 1b 00 1b 00 20 + 03 54 06 1b 00 1b 00 01 01 14 ff 01 3f 0e 1b 00 + 1b 00 e8 03 d0 07 0d 00 1b 00 01 ff 28 ff 01 1f + 0f 95 01 95 01 d0 07 a0 0f 1b 00 1b 00 0f 0f 32 + ff 01 3f 10 04 02 06 00 00 00 07 00 07 00 07 00 + 07 00 07 10 05 04 10 04 0f 0f 0f 0f 2f 2f 2f 2f + 1c 1c 1c 1c 0f 46 40 00 0f 0f 0f 0f 2f 2f 2f 2f + 1d 1d 1d 1d 0f 46 40 00 0f 0f 0f 0f 2f 2f 2f 2f + 1e 1e 1e 1e 0f 46 40 00 0f 0f 0f 0f 2f 2f 2f 2f + 1f 1f 1f 1f 0f 46 40 00 0f 0f 0f 0f 2d 2d 2d 2d + 19 19 19 19 0f 46 40 00 0f 0f 0f 0f 2c 2c 2c 2c + 1b 1b 1b 1b 0f 46 40 00 0f 0f 0f 0f 2b 2b 2b 2b + 1d 1d 1d 1d 0f 46 40 00 0f 0f 0f 0f 2a 2a 2a 2a + 1f 1f 1f 1f 0f 46 40 00 0e 0e 0e 0e 29 29 29 29 + 18 18 18 18 0f 46 40 00 0e 0e 0e 0e 28 28 28 28 + 1a 1a 1a 1a 0f 46 40 00 0e 0e 0e 0e 27 27 27 27 + 1c 1c 1c 1c 0f 46 40 00 0e 0e 0e 0e 26 26 26 26 + 1e 1e 1e 1e 0f 46 40 00 0f 0f 0f 0f 2d 2d 2d 2d + 19 19 19 19 0f 46 40 00 0f 0f 0f 0f 2c 2c 2c 2c + 1b 1b 1b 1b 0f 46 40 00 0f 0f 0f 0f 2b 2b 2b 2b + 1d 1d 1d 1d 0f 46 40 00 0f 0f 0f 0f 2a 2a 2a 2a + 1f 1f 1f 1f 0f 46 40 00 20 19 04 00 00 50 32 74 + 40 e8 80 e4 57 01 04 04 06 76 19 00 00 13 10 00 + 00 49 11 00 00 47 12 00 00 45 13 00 00 43 14 00 + 00 41 15 00 00 3f 16 00 00 10 08 0e 05 00 2c 04 + 04 d1 84 00 00 00 00 0a 05 00 06 00 00 00 00 00 + 38 3d 3e 3f 3a 00 00 00 00 05 05 05 05 00 00 00 + 00 00 00 00 00 88 58 24 00 00 00 00 00 75 40 00 + 00 00 00 0a 05 00 06 00 00 00 00 00 38 3d 3e 3f + 3a 3f 3f 3f 3f 05 05 05 05 0a 0a 0a 0a 00 00 00 + 00 88 58 24 00 00 00 00 00 65 19 00 00 00 00 0a + 05 00 06 00 00 00 00 00 48 3a 3a 3a 3a 3a 3a 3a + 3a 00 00 00 00 00 00 00 00 00 00 00 00 f8 5a 24 + 00 00 00 00 00 00 00 00 00 00 00 0a 0a 00 06 00 + 00 00 00 00 58 3a 3a 3a 3a 3a 3a 3a 3a 00 00 00 + 00 00 00 00 00 00 00 00 00 f8 5a 24 00 00 00 00 + 00 03 00 00 01 0a 05 0f 46 40 00 00 03 00 44 06 + 00 00 01 0a 08 0f 46 40 00 00 03 00 44 08 00 00 + 01 0a 05 0f 46 40 00 00 03 00 44 0a 00 00 01 0a + 05 0f 46 40 00 00 03 00 44 0c 00 00 01 0a 08 0f + 46 40 00 00 03 00 44 10 08 0e 05 00 2c 04 04 d1 + 84 00 00 00 00 0a 05 00 06 00 00 00 00 00 38 3d + 3e 3f 3a 00 00 00 00 05 05 05 05 00 00 00 00 00 + 00 00 00 88 58 24 00 00 00 00 00 75 40 00 00 00 + 00 0a 05 00 06 00 00 00 00 00 38 3d 3e 3f 3a 00 + 00 00 00 05 05 05 05 00 00 00 00 00 00 00 00 88 + 58 24 00 00 00 00 00 65 19 00 00 00 00 0a 05 00 + 06 00 00 00 00 00 48 3a 3a 3a 3a 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 f8 5a 24 00 00 + 00 00 00 00 00 00 00 00 00 0a 0a 00 06 00 00 00 + 00 00 58 3a 3a 3a 3a 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 f8 5a 24 00 00 00 00 00 0c + 00 00 01 0a 05 0f 46 40 00 00 03 00 44 0d 00 00 + 01 0a 08 0f 46 40 00 00 03 00 44 0e 00 00 01 0a + 05 0f 46 40 00 00 03 00 44 0f 01 00 01 0a 05 0f + 46 40 00 00 03 00 44 10 01 00 01 0a 08 0f 46 40 + 00 00 03 00 44 10 08 0e 05 00 2c 04 04 d1 84 00 + 00 00 00 0a 05 00 06 00 00 00 00 00 38 3d 3e 3f + 3a 00 00 00 00 05 05 05 05 00 00 00 00 00 00 00 + 00 88 58 24 00 00 00 00 00 75 40 00 00 00 00 0a + 05 00 06 00 00 00 00 00 38 3d 3e 3f 3a 3f 3f 3f + 3f 05 05 05 05 05 05 05 05 00 00 00 00 88 58 24 + 00 00 00 00 00 65 19 00 00 00 00 0a 05 00 06 00 + 00 00 00 00 48 3a 3a 3a 3a 3a 3a 3a 3a 00 00 00 + 00 00 00 00 00 00 00 00 00 f8 5a 24 00 00 00 00 + 00 00 00 00 00 00 00 0a 0a 00 06 00 00 00 00 00 + 58 3a 3a 3a 3a 3a 3a 3a 3a 00 00 00 00 00 00 00 + 00 00 00 00 00 f8 5a 24 00 00 00 00 00 0c 01 00 + 01 0a 05 0f 46 40 00 00 03 00 44 0d 01 00 01 0a + 08 0f 46 40 00 00 03 00 44 0e 02 00 01 0a 05 0f + 46 40 00 00 03 00 44 0f 02 00 01 0a 05 0f 46 40 + 00 00 03 00 44 10 02 00 01 0a 08 0f 46 40 00 00 + 03 00 44 10 08 0e 05 00 2c 04 04 d1 84 00 00 00 + 00 0a 05 00 06 00 00 00 00 00 38 3d 3e 3f 3a 00 + 00 00 00 05 05 05 05 00 00 00 00 00 00 00 00 88 + 58 24 00 00 00 00 00 75 40 00 00 00 00 0a 05 00 + 06 00 00 00 00 00 38 3d 3e 3f 3a 00 00 00 00 05 + 05 05 05 00 00 00 00 00 00 00 00 88 58 24 00 00 + 00 00 00 65 19 00 00 00 00 0a 05 00 06 00 00 00 + 00 00 48 3a 3a 3a 3a 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 f8 5a 24 00 00 00 00 00 00 + 00 00 00 00 00 0a 0a 00 06 00 00 00 00 00 58 3a + 3a 3a 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 f8 5a 24 00 00 00 00 00 0c 00 00 01 0a + 05 0f 46 40 00 00 03 00 44 0d 00 00 01 0a 08 0f + 46 40 00 00 03 00 44 0e 00 00 01 0a 05 0f 46 40 + 00 00 03 00 44 0f 01 00 01 0a 05 0f 46 40 00 00 + 03 00 44 10 01 00 01 0a 08 0f 46 40 00 00 03 00 + 44 10 08 0e 05 00 2c 04 04 d1 84 00 00 00 00 0a + 05 00 06 00 00 00 00 00 38 3d 3e 3f 3a 00 00 00 + 00 05 05 05 05 00 00 00 00 00 00 00 00 88 58 24 + 00 00 00 00 00 75 40 00 00 00 00 0a 05 00 06 00 + 00 00 00 00 38 3d 3e 3f 3a 3f 3f 3f 3f 05 05 05 + 05 08 08 08 08 00 00 00 00 88 58 24 00 00 00 00 + 00 65 19 00 00 00 00 0a 05 00 06 00 00 00 00 00 + 48 3a 3a 3a 3a 3a 3a 3a 3a 00 00 00 00 00 00 00 + 00 00 00 00 00 f8 5a 24 00 00 00 00 00 00 00 00 + 00 00 00 0a 0a 00 06 00 00 00 00 00 58 3a 3a 3a + 3a 3a 3a 3a 3a 00 00 00 00 00 00 00 00 00 00 00 + 00 f8 5a 24 00 00 00 00 00 0c 01 00 01 0a 05 0f + 46 40 00 00 03 00 44 0d 01 00 01 0a 08 0f 46 40 + 00 00 03 00 44 0e 02 00 01 0a 05 0f 46 40 00 00 + 03 00 44 0f 02 00 01 0a 05 0f 46 40 00 00 03 00 + 44 10 02 00 01 0a 08 0f 46 40 00 00 03 00 44 10 + 08 0e 05 00 2c 04 04 d1 84 00 00 00 00 0a 05 00 + 06 00 00 00 00 00 38 3d 3e 3f 3a 00 00 00 00 05 + 05 05 05 00 00 00 00 00 00 00 00 88 58 24 00 00 + 00 00 00 75 40 00 00 00 00 0a 05 00 06 00 00 00 + 00 00 38 3d 3e 3f 3a 00 00 00 00 05 05 05 05 00 + 00 00 00 00 00 00 00 88 58 24 00 00 00 00 00 65 + 19 00 00 00 00 0a 05 00 06 00 00 00 00 00 48 3a + 3a 3a 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 f8 5a 24 00 00 00 00 00 00 00 00 00 00 + 00 0a 0a 00 06 00 00 00 00 00 58 3a 3a 3a 3a 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 + 5a 24 00 00 00 00 00 0c 00 00 01 0a 05 0f 46 40 + 00 00 03 00 44 0d 00 00 01 0a 08 0f 46 40 00 00 + 03 00 44 0e 00 00 01 0a 05 0f 46 40 00 00 03 00 + 44 0f 01 00 01 0a 05 0f 46 40 00 00 03 00 44 10 + 01 00 01 0a 08 0f 46 40 00 00 03 00 44 7a 14 c0 + 61 40 01 00 c2 0d 74 05 00 6e 14 c0 61 40 ff ff + bf ff 00 00 00 00 6e e4 c5 61 40 fe ff ff ff 00 + 00 00 00 71 5b f5 19 71 5b 6f 17 5b 74 17 71 56 + 00 ff 72 71 6e 0c c1 61 40 fe ff ff ff 00 00 00 + 00 6e 40 65 61 80 fe ff ff ff 00 00 00 00 71 6e + 00 23 61 40 ff ff 80 fc 00 00 23 00 71 6e 00 23 + 61 40 ff ff 80 fc 00 00 27 00 71 6e 00 23 61 40 + ff ff 80 fc 00 00 2b 00 71 6e 00 23 61 40 ff ff + 80 fc 00 00 2f 00 71 41 23 10 08 6a 18 cb bd dc + 4e 5c 08 00 00 00 00 00 00 ac 18 31 19 c1 00 00 + 00 00 00 00 00 00 00 00 00 00 06 03 80 01 10 00 + 60 04 02 03 80 01 10 00 02 04 2e 23 02 01 10 00 + 02 00 2f 32 03 02 10 00 02 00 fe 40 04 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 00 00 + 00 00 0f 00 00 00 00 00 00 00 41 06 0f 04 02 0f + 06 00 00 10 ff 03 00 80 ff 03 00 80 ff 03 00 10 + ff 03 00 10 ff 03 00 10 ff 03 00 10 ff 03 00 10 + ff 03 00 10 ff 03 00 10 ff 03 00 00 ff 03 00 00 + ff 03 00 00 ff 03 00 00 ff 03 00 00 40 05 20 04 + 01 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 + 00 40 05 10 04 00 46 10 00 00 ff 01 00 00 ff 02 + 00 00 ff 03 00 00 ff 04 00 00 ff 00 00 00 ff 00 + 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 + 00 00 ff 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 + 00 00 ff 00 00 00 10 05 40 01 00 00 00 0b 03 00 + 00 0a 02 00 00 08 02 00 20 04 02 00 80 00 00 00 + 80 00 00 00 80 00 00 00 80 00 00 00 20 00 00 00 + 20 00 03 00 00 0c 03 00 00 0a 03 00 80 0b 03 00 + 80 0b 03 00 80 0b 03 00 80 0b 03 71 71 6e 14 c0 + 61 40 ff ff 3f fa 00 00 c0 01 74 05 00 6e 14 c0 + 61 40 f7 ff ff ff 08 00 00 00 6e b8 c1 61 40 ff + ff 3f 81 00 03 00 08 6e 00 23 61 40 ff ff 83 fc + 00 00 00 00 71 58 40 c0 61 40 10 00 00 0a 1d 00 + 00 0a 04 00 00 08 04 00 20 04 04 00 80 00 00 00 + 80 00 00 00 80 00 00 00 80 00 00 00 20 00 00 00 + 20 00 1d 00 00 0c 1d 00 00 0a 1d 00 80 0a 1d 00 + 80 0a 1d 00 80 0a 1d 00 80 0a 1d 71 6e 00 23 61 + 40 ff ff fc fc 00 00 02 03 71 7a 14 c0 61 40 14 + 00 c2 0d 74 05 00 6e 14 c0 61 40 ff ff bf ff 00 + 00 00 00 74 14 00 71 6e 14 c0 61 40 ff ff ff f2 + 00 00 00 00 74 0a 00 6e 00 23 61 40 ff ff fc ff + 00 00 01 00 6e 0c c1 61 60 ff bf ff ff 00 40 00 + 00 6e 14 c0 61 40 ff ff 7f ff 00 00 00 00 6e 30 + c1 61 60 f0 ff ff ff 0f 00 00 00 6e 34 c0 61 40 + ff ff ee 7f 00 00 00 80 56 17 ff 6e 0c c1 61 60 + fc ff ff ff 01 00 00 00 6e 30 c1 61 60 0f ff ff + ff f0 00 00 00 74 0a 00 6e 30 c1 61 60 0f ff ff + ff 00 00 00 00 6e 10 c1 61 40 e0 e0 e0 e0 00 00 + 00 00 6e 2c c1 61 40 e0 e0 e0 e0 00 00 00 00 3a + 05 15 6e 40 c1 61 60 fd ff ff ff 02 00 00 00 98 + 0a 01 00 00 01 fe 01 71 98 02 01 00 00 01 d0 00 + 6e 10 c1 61 40 e0 e0 e0 e0 10 10 10 10 6e 2c c1 + 61 40 e0 e0 e0 e0 10 10 10 10 71 5f 0c c1 61 60 + 00 01 40 ff 40 00 00 00 00 40 65 61 80 fe bf 00 + bf 3a 00 03 5b 59 1b 72 71 3a 07 01 38 6e 40 c1 + 61 60 fe ff ff ff 01 00 00 00 72 5b ad 1c 52 e8 + df 00 71 71 6e 0c c1 61 60 fe ff 00 ff 00 00 00 + 00 6e 30 c1 61 40 f0 ff ff ff 00 00 00 00 6e b0 + c1 61 40 f0 ff ff ff 00 00 00 00 6e 34 c0 61 40 + ff ff ee 7f 00 00 11 80 56 17 ff 6e 14 c0 61 40 + ff ff 7f ff 00 00 80 00 6e 00 23 61 40 ff ff fc + ff 00 00 02 00 74 05 00 6e 14 c0 61 40 ff ff ff + f2 00 00 00 0d 74 05 00 6e 14 c0 61 40 ff ff bf + ff 00 00 40 00 74 05 00 6e 14 c0 61 40 f7 ff ff + ff 08 00 00 00 6e 0c c0 61 40 ff f0 f0 f0 00 03 + 05 05 6e b8 c1 61 40 ff ff ff 81 00 03 00 08 6e + 00 23 61 40 ff ff 83 fc 00 00 00 00 6e 40 c1 61 + 60 fe ff ff ff 00 00 00 00 71 6e 0c c1 61 60 fd + ff ff ff 02 00 00 00 6e 30 c1 61 60 ff ff bf ff + 00 00 40 00 71 10 05 40 01 01 00 00 00 00 0a 10 + 00 00 00 a0 40 00 00 80 40 00 00 80 40 00 00 80 + 40 00 00 80 40 00 00 80 40 00 00 20 00 00 32 10 + 80 00 0a 90 80 00 00 80 80 00 00 80 80 00 00 80 + 80 00 00 80 80 00 00 80 80 00 71 71 6e 40 65 61 + 80 fe ff ff ff 00 00 00 00 71 71 98 07 01 00 00 + 01 ef 10 71 98 07 01 00 00 01 ef 00 71 58 40 c0 + 61 40 10 00 00 00 00 32 10 00 00 00 a0 40 00 00 + 80 40 00 00 80 40 00 00 80 40 00 00 80 40 00 00 + 80 40 00 00 20 00 00 32 10 80 00 96 90 80 00 00 + 80 80 00 00 80 80 00 00 80 80 00 00 80 80 00 00 + 80 80 00 71 42 15 02 07 13 04 03 0a 04 28 23 28 + 23 01 04 04 06 45 1c 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 14 00 02 19 0a 03 1e 14 04 + 2b 28 06 1e 00 03 25 0f 04 2f 21 06 28 00 04 32 + 14 06 3c 00 06 14 00 02 19 0a 03 1e 14 04 2b 28 + 06 1e 00 03 25 0f 04 2f 21 06 28 00 04 32 14 06 + 3c 00 06 14 00 02 19 0a 03 1e 14 04 2b 28 06 1e + 00 03 25 0f 04 2f 21 06 28 00 04 32 14 06 3c 00 + 06 0f 00 02 16 09 03 1d 0e 04 27 12 06 17 00 03 + 21 09 04 27 0e 06 1f 00 04 27 09 06 27 00 06 a7 + 1d 00 00 2f 1e 00 00 b7 1e 00 00 3f 1f 00 00 c7 + 1f 00 00 4f 20 00 00 10 08 00 00 00 10 08 00 1e + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 14 + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 10 + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 0c + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 0a + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 09 + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 08 + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 06 + 00 00 00 00 01 05 05 00 40 00 00 00 00 00 30 10 + 08 00 00 00 10 08 00 1e 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 14 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 10 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0c 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0a 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 09 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 08 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 06 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 10 08 00 00 00 10 08 00 1e + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 14 + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 10 + 00 00 00 00 03 00 01 00 50 00 00 00 00 00 00 0c + 00 00 00 00 03 00 01 00 50 00 00 00 00 00 00 0a + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 09 + 00 00 00 00 03 00 01 00 40 00 00 00 00 00 00 08 + 00 00 00 00 03 00 01 00 40 00 00 00 00 00 00 06 + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 10 + 08 00 00 00 10 08 00 1e 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 14 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 10 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0c 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0a 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 09 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 08 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 06 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 10 08 00 00 00 10 08 00 1e + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 14 + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 10 + 00 00 00 00 03 00 01 00 50 00 00 00 00 00 00 0c + 00 00 00 00 03 00 01 00 50 00 00 00 00 00 00 0a + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 09 + 00 00 00 00 03 00 01 00 40 00 00 00 00 00 00 08 + 00 00 00 00 03 00 01 00 40 00 00 00 00 00 00 06 + 00 00 00 00 00 05 05 00 00 00 00 00 00 00 00 10 + 08 00 00 00 10 08 00 1e 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 14 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 10 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0c 00 00 00 00 03 00 01 00 + 50 00 00 00 00 00 00 0a 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 09 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 08 00 00 00 00 03 00 01 00 + 40 00 00 00 00 00 00 06 00 00 00 00 00 05 05 00 + 00 00 00 00 00 00 00 ]; + }; +}; diff --git a/nv-platform/tegra234-p3971-0000+p3701-0000-nv.dts b/nv-platform/tegra234-p3971-0000+p3701-0000-nv.dts new file mode 100644 index 0000000..abc194f --- /dev/null +++ b/nv-platform/tegra234-p3971-0000+p3701-0000-nv.dts @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +/dts-v1/; +#include "../tegra234-p3701-0000.dtsi" +#include "tegra234-p3701-0000.dtsi" +#include "tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi" + +/ { + model = "NVIDIA p3971-0000+p3701-0000"; + compatible = "nvidia,p3971-0000+p3701-0000", "nvidia,p3701-0000", "nvidia,tegra234"; + +}; diff --git a/nv-platform/tegra234-p3971-0000+p3701-0008-nv-safety.dts b/nv-platform/tegra234-p3971-0000+p3701-0008-nv-safety.dts new file mode 100644 index 0000000..b31c9a8 --- /dev/null +++ b/nv-platform/tegra234-p3971-0000+p3701-0008-nv-safety.dts @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0 +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +#include "tegra234-p3971-0000+p3701-0008-nv.dts" +#include "tegra234-p3740-0002+p3701-0008-safety.dtsi" + +/ { + compatible = "nvidia,p3971-0000+p3701-0008", "safety", "nvidia,p3701-0008", "nvidia,tegra234"; + +}; diff --git a/nv-platform/tegra234-p3971-0000+p3701-0008-nv.dts b/nv-platform/tegra234-p3971-0000+p3701-0008-nv.dts new file mode 100644 index 0000000..cc5375d --- /dev/null +++ b/nv-platform/tegra234-p3971-0000+p3701-0008-nv.dts @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +/dts-v1/; +#include "../tegra234-p3701-0008.dtsi" +#include "tegra234-p3701-0008.dtsi" +#include "tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi" + +/ { + model = "NVIDIA p3971-0000+p3701-0008"; + compatible = "nvidia,p3971-0000+p3701-0008", "nvidia,p3701-0008", "nvidia,tegra234"; + +}; diff --git a/nv-platform/tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi b/nv-platform/tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi new file mode 100644 index 0000000..7f48114 --- /dev/null +++ b/nv-platform/tegra234-p3971-0000+p3701-xxxx-nv-common.dtsi @@ -0,0 +1,356 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +#include "nv-soc/tegra234-overlay.dtsi" +#include "nv-soc/tegra234-soc-audio-dai-links.dtsi" +#include "nv-soc/tegra234-soc-camera.dtsi" + +#include "tegra234-p3971-0000.dtsi" + +/ { + aliases { + serial0 = &tcu; + serial1 = &uarta; + }; + + serial { + status = "okay"; + }; + + bus@0 { + mc-hwpm@2c10000 { + status = "okay"; + }; + + serial@3100000 { + compatible = "nvidia,tegra194-hsuart"; + reset-names = "serial"; + status = "okay"; + }; + + i2c@3160000 { + status = "okay"; + }; + + i2c@3180000 { + status = "okay"; + }; + + i2c@3190000 { + status = "okay"; + }; + + i2c@31b0000 { + status = "okay"; + }; + + i2c@31c0000 { + status = "okay"; + + }; + + i2c@31e0000 { + status = "okay"; + }; + + padctl@3520000 { + status = "okay"; + + pads { + usb2 { + lanes { + usb2-0 { + status = "okay"; + }; + + usb2-1 { + status = "okay"; + }; + + usb2-2 { + status = "okay"; + }; + + usb2-3 { + status = "okay"; + }; + }; + }; + + usb3 { + lanes { + usb3-0 { + status = "okay"; + }; + + usb3-1 { + status = "okay"; + }; + + usb3-2 { + status = "okay"; + }; + }; + }; + }; + + ports { + usb2-0 { + mode = "otg"; + vbus-supply = <&vdd_5v0_sys>; + usb-role-switch; + role-switch-default-mode = "peripheral"; + status = "okay"; + }; + + usb2-1 { + mode = "host"; + vbus-supply = <&vdd_5v0_sys>; + status = "okay"; + }; + + usb2-2 { + mode = "host"; + vbus-supply = <&vdd_5v0_sys>; + status = "okay"; + }; + + usb2-3 { + mode = "host"; + vbus-supply = <&vdd_5v0_sys>; + status = "okay"; + }; + + usb3-0 { + nvidia,usb2-companion = <0>; + status = "okay"; + }; + + usb3-1 { + nvidia,usb2-companion = <3>; + status = "okay"; + }; + + usb3-2 { + nvidia,usb2-companion = <1>; + status = "okay"; + }; + }; + }; + + usb@3550000 { + status = "okay"; + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>; + phy-names = "usb2-0", "usb3-0"; + }; + + usb@3610000 { + status = "okay"; + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>, + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>, + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>, + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>, + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>, + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>; + phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3", "usb3-0", "usb3-1", "usb3-2"; + }; + + hardware-timestamp@3aa0000 { + status = "okay"; + }; + + hsp@3c00000 { + status = "okay"; + }; + + hsp@c150000 { + status = "okay"; + }; + + hardware-timestamp@c1e0000 { + status = "okay"; + }; + + i2c@c240000 { + status = "okay"; + }; + + i2c@c250000 { + status = "okay"; + }; + + mttcan@c310000 { + status = "okay"; + }; + + mttcan@c320000 { + status = "okay"; + }; + + actmon@d230000 { + status = "okay"; + }; + + hwpm@f100000 { + status = "okay"; + }; + + host1x@13e00000 { + nvjpg@15380000 { + status = "okay"; + }; + + nvdec@15480000 { + status = "okay"; + }; + + nvenc@154c0000 { + status = "okay"; + }; + + tsec@15500000 { + status = "okay"; + }; + + nvjpg@15540000 { + status = "okay"; + }; + + se@15810000 { + status = "okay"; + }; + + se@15820000 { + status = "okay"; + }; + + se@15840000 { + status = "okay"; + }; + + nvdla0@15880000 { + status = "okay"; + }; + + nvdla1@158c0000 { + status = "okay"; + }; + + ofa@15a50000 { + status = "okay"; + }; + + pva0@16000000 { + status = "okay"; + + pva0_niso1_ctx0 { + status = "okay"; + }; + + pva0_niso1_ctx1 { + status = "okay"; + }; + + pva0_niso1_ctx2 { + status = "okay"; + }; + + pva0_niso1_ctx3 { + status = "okay"; + }; + + pva0_niso1_ctx4 { + status = "okay"; + }; + + pva0_niso1_ctx5 { + status = "okay"; + }; + + pva0_niso1_ctx6 { + status = "okay"; + }; + + pva0_niso1_ctx7 { + status = "okay"; + }; + }; + }; + + gpu@17000000 { + status = "okay"; + }; + }; + + tegra-hsp@b950000 { + status = "okay"; + }; + + dce@d800000 { + status = "okay"; + }; + + tegra_mce@e100000 { + status = "okay"; + }; + + display@13800000 { + status = "okay"; + }; + + cpus { + idle-states { + c7 { + status = "okay"; + }; + }; + }; + + nvpmodel { + status = "okay"; + }; + + soctherm-oc-event { + status = "okay"; + }; + + sound { + status = "okay"; + compatible = "nvidia,tegra186-audio-graph-card", + "nvidia,tegra186-ape"; + clocks = <&bpmp TEGRA234_CLK_PLLA>, + <&bpmp TEGRA234_CLK_PLLA_OUT0>, + <&bpmp TEGRA234_CLK_AUD_MCLK>; + clock-names = "pll_a", "plla_out0", "extern1"; + assigned-clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>; + assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>; + + nvidia-audio-card,name = "NVIDIA IGX500 Orin APE"; + + nvidia-audio-card,mclk-fs = <256>; + + nvidia-audio-card,widgets = + "Headphone", "CVB-RT Headphone Jack", + "Microphone", "CVB-RT Mic Jack", + "Microphone", "CVB-RT Int Mic"; + + nvidia-audio-card,routing = + "CVB-RT Headphone Jack", "CVB-RT HPOL", + "CVB-RT Headphone Jack", "CVB-RT HPOR", + "CVB-RT IN1P", "CVB-RT Mic Jack", + "CVB-RT IN2P", "CVB-RT Mic Jack", + "CVB-RT DMIC1", "CVB-RT Int Mic", + "CVB-RT DMIC2", "CVB-RT Int Mic"; + + /* I2S4 dai node */ + nvidia-audio-card,dai-link@79 { + link-name = "rt5640-playback"; + codec { + sound-dai = <&rt5640 0>; + prefix = "CVB-RT"; + }; + }; + }; +}; diff --git a/nv-platform/tegra234-p3971-0000.dtsi b/nv-platform/tegra234-p3971-0000.dtsi new file mode 100644 index 0000000..759a220 --- /dev/null +++ b/nv-platform/tegra234-p3971-0000.dtsi @@ -0,0 +1,387 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +#include +#include +#include "tegra234-dcb-p3971-0000+p3701-0000.dtsi" +#include + +/ { + bus@0 { + aconnect@2900000 { + ahub@2900800 { + i2s@2901300 { + ports { + port@1 { + endpoint { + dai-format = "i2s"; + remote-endpoint = <&rt5640_ep>; + }; + }; + }; + }; + }; + }; + + hda@3510000 { + nvidia,model = "NVIDIA IGX500 Orin HDA"; + status = "okay"; + }; + + i2c@3160000 { + status = "okay"; + + eeprom@56 { + compatible = "atmel,24c02"; + reg = <0x56>; + + label = "system"; + vcc-supply = <&vdd_1v8_cvb>; + address-width = <8>; + pagesize = <8>; + size = <256>; + read-only; + }; + }; + + i2c@31b0000 { + status = "okay"; + }; + + host1x@13e00000 { + tsec@15500000 { + status = "okay"; + }; + }; + + i2c@31c0000 { + status = "okay"; + + rt5640: audio-codec@1c { + compatible = "realtek,rt5640"; + reg = <0x1c>; + + clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>; + clock-names = "mclk"; + + realtek,dmic1-data-pin = ; + realtek,dmic2-data-pin = ; + realtek,jack-detect-source = ; + + /* Codec IRQ output */ + interrupt-parent = <&gpio>; + interrupts = ; + + #sound-dai-cells = <1>; + sound-name-prefix = "CVB-RT"; + + status = "okay"; + + port { + rt5640_ep: endpoint { + remote-endpoint = <&i2s4_dap>; + mclk-fs = <256>; + }; + }; + }; + }; + + /* SPI1 in 40 pin conn */ + spi@3210000 { + status = "okay"; + spi@0 { /* chip select 0 */ + compatible = "tegra-spidev"; + reg = <0x0>; + spi-max-frequency = <50000000>; + }; + + spi@1 { /* chips select 1 */ + compatible = "tegra-spidev"; + reg = <0x1>; + spi-max-frequency = <50000000>; + }; + }; + + /* SPI3 is connected to Aurix */ + spi@3230000 { + status = "disabled"; + }; + + pwm@3280000 { + status = "okay"; + }; + + + pwm@32f0000 { + status = "okay"; + }; + + /* Enable fan PWM */ + pwm@32a0000 { + status = "okay"; + }; + + /* + * This is on 40-pin header (pin-18) + * On Orin, the pad control configures it as GPIO/SDMMC. + * No pwm support. + */ + pwm@32c0000 { + status = "disabled"; + }; + + tachometer@39c0000 { + status = "okay"; + }; + + pcie@14100000 { + status = "okay"; + + vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; + + phys = <&p2u_hsio_3>; + phy-names = "p2u-0"; + }; + + pcie@14160000 { + status = "okay"; + + vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; + + phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>, + <&p2u_hsio_7>; + phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3"; + }; + + pcie@141a0000 { + status = "okay"; + + vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; + + phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>, + <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>, + <&p2u_nvhs_6>, <&p2u_nvhs_7>; + phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4", + "p2u-5", "p2u-6", "p2u-7"; + }; + + pcie@141e0000 { + status = "okay"; + + vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; + + phys = <&p2u_gbe_0>, <&p2u_gbe_1>, <&p2u_gbe_2>, <&p2u_gbe_3>, + <&p2u_gbe_4>, <&p2u_gbe_5>, <&p2u_gbe_6>, <&p2u_gbe_7>; + phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4", + "p2u-5", "p2u-6", "p2u-7"; + }; + + ufshci@2500000 { + status = "okay"; + }; + }; + + chosen { + bootargs = "console=ttyTCU0,115200n8"; + stdout-path = "serial0:115200n8"; + }; + + display@13800000 { + status = "okay"; + }; + + eeprom-manager { + data-size = <0x100>; + bus@0 { + i2c-bus = <&gen1_i2c>; + eeprom@1 { + slave-address = <0x56>; + label = "cvb"; + }; + }; + }; + + fan: pwm-fan { + compatible = "pwm-fan"; + pwms = <&pwm3 0 45334>; + #cooling-cells = <2>; + }; + + /* fan_nvme is no-stuff, same PWM instance is routed to 40-pin header */ + fan_nvme: pwm-fan-nvme { + compatible = "pwm-fan"; + pwms = <&pwm8 0 45334>; + #cooling-cells = <2>; + status = "disabled"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + key-force-recovery { + label = "Force Recovery"; + gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>; + linux,input-type = ; + linux,code = ; + }; + + key-power { + label = "Power"; + gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>; + linux,input-type = ; + linux,code = ; + wakeup-event-action = ; + wakeup-source; + }; + }; + + vcc_src_20v_cvb: regulator-vcc-src-fet { + compatible = "regulator-fixed"; + reg = <1>; + regulator-name = "VCC_SRC_FET"; + regulator-min-microvolt = <20000000>; + regulator-max-microvolt = <20000000>; + regulator-always-on; + regulator-boot-on; + }; + + vdd_5v_cvb: vdd_5v_ao_cvb: regulator-vdd-5v-ao { + compatible = "regulator-fixed"; + reg = <2>; + regulator-name = "VDD_5V_AO"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + }; + + vdd_3v3_cbv: regulator-vdd-3v3 { + compatible = "regulator-fixed"; + reg = <3>; + regulator-name = "VDD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + vdd_3v3_ao_cvb: regulator-vdd-3v3-ao { + compatible = "regulator-fixed"; + reg = <4>; + regulator-name = "VDD_3V3_AO"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + vdd_1v8_cvb: regulator-vdd-1v8 { + compatible = "regulator-fixed"; + reg = <5>; + regulator-name = "VDD_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vdd_12v_cvb: regulator-vdd-12v { + compatible = "regulator-fixed"; + reg = <6>; + regulator-name = "VDD_12V"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + gpio = <&gpio TEGRA234_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>; + regulator-always-on; + }; + + vdd_3v3_dp_en: regulator-vdd-3v3-dp-en { + compatible = "regulator-fixed"; + reg = <7>; + regulator-name = "VDD_3V3_DP_EN"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) GPIO_ACTIVE_HIGH>; + regulator-always-on; + enable-active-high; + }; + + sound { + status = "okay"; + + compatible = "nvidia,tegra186-audio-graph-card"; + + dais = /* ADMAIF (FE) Ports */ + <&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>, + <&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>, + <&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>, + <&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>, + <&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>, + /* XBAR Ports */ + <&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s4_port>, + <&xbar_i2s6_port>, <&xbar_dmic3_port>, + <&xbar_sfc1_in_port>, <&xbar_sfc2_in_port>, + <&xbar_sfc3_in_port>, <&xbar_sfc4_in_port>, + <&xbar_mvc1_in_port>, <&xbar_mvc2_in_port>, + <&xbar_amx1_in1_port>, <&xbar_amx1_in2_port>, + <&xbar_amx1_in3_port>, <&xbar_amx1_in4_port>, + <&xbar_amx2_in1_port>, <&xbar_amx2_in2_port>, + <&xbar_amx2_in3_port>, <&xbar_amx2_in4_port>, + <&xbar_amx3_in1_port>, <&xbar_amx3_in2_port>, + <&xbar_amx3_in3_port>, <&xbar_amx3_in4_port>, + <&xbar_amx4_in1_port>, <&xbar_amx4_in2_port>, + <&xbar_amx4_in3_port>, <&xbar_amx4_in4_port>, + <&xbar_adx1_in_port>, <&xbar_adx2_in_port>, + <&xbar_adx3_in_port>, <&xbar_adx4_in_port>, + <&xbar_mix_in1_port>, <&xbar_mix_in2_port>, + <&xbar_mix_in3_port>, <&xbar_mix_in4_port>, + <&xbar_mix_in5_port>, <&xbar_mix_in6_port>, + <&xbar_mix_in7_port>, <&xbar_mix_in8_port>, + <&xbar_mix_in9_port>, <&xbar_mix_in10_port>, + <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>, + <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>, + <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>, + <&xbar_asrc_in7_port>, + <&xbar_ope1_in_port>, + /* HW accelerators */ + <&sfc1_out_port>, <&sfc2_out_port>, + <&sfc3_out_port>, <&sfc4_out_port>, + <&mvc1_out_port>, <&mvc2_out_port>, + <&amx1_out_port>, <&amx2_out_port>, + <&amx3_out_port>, <&amx4_out_port>, + <&adx1_out1_port>, <&adx1_out2_port>, + <&adx1_out3_port>, <&adx1_out4_port>, + <&adx2_out1_port>, <&adx2_out2_port>, + <&adx2_out3_port>, <&adx2_out4_port>, + <&adx3_out1_port>, <&adx3_out2_port>, + <&adx3_out3_port>, <&adx3_out4_port>, + <&adx4_out1_port>, <&adx4_out2_port>, + <&adx4_out3_port>, <&adx4_out4_port>, + <&mix_out1_port>, <&mix_out2_port>, <&mix_out3_port>, + <&mix_out4_port>, <&mix_out5_port>, + <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>, + <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>, + <&ope1_out_port>, + /* BE I/O Ports */ + <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>, + <&dmic3_port>; + + label = "NVIDIA IGX500 Orin APE"; + + widgets = "Microphone", "CVB-RT MIC Jack", + "Microphone", "CVB-RT MIC", + "Headphone", "CVB-RT HP Jack", + "Speaker", "CVB-RT SPK"; + + routing = /* I2S4 <-> RT5640 */ + "CVB-RT AIF1 Playback", "I2S4 DAP-Playback", + "I2S4 DAP-Capture", "CVB-RT AIF1 Capture", + /* RT5640 codec controls */ + "CVB-RT HP Jack", "CVB-RT HPOL", + "CVB-RT HP Jack", "CVB-RT HPOR", + "CVB-RT IN1P", "CVB-RT MIC Jack", + "CVB-RT IN2P", "CVB-RT MIC Jack", + "CVB-RT IN2N", "CVB-RT MIC Jack", + "CVB-RT IN3P", "CVB-RT MIC Jack", + "CVB-RT SPK", "CVB-RT SPOLP", + "CVB-RT SPK", "CVB-RT SPORP", + "CVB-RT SPK", "CVB-RT LOUTL", + "CVB-RT SPK", "CVB-RT LOUTR", + "CVB-RT DMIC1", "CVB-RT MIC", + "CVB-RT DMIC2", "CVB-RT MIC"; + }; +}; diff --git a/overlay/Makefile b/overlay/Makefile index 33aaf51..90e8f81 100644 --- a/overlay/Makefile +++ b/overlay/Makefile @@ -44,6 +44,8 @@ dtbo-y += tegra234-p3767-0000+p3509-a02-csi.dtbo dtbo-y += tegra234-p3767-0000+p3509-a02-hdr40.dtbo dtbo-y += tegra234-p3767-0000+p3509-a02-m2ke.dtbo dtbo-y += tegra234-p3767-0000+p3768-0000-csi.dtbo +dtbo-y += tegra234-p3971-0000+p3701-0008-camera-dual-imx274-overlay.dtbo +dtbo-y += tegra234-p3971-0000+p3701-0008-camera-p3762-a00-overlay.dtbo dtbo-y += tegra234-p3737-camera-dual-imx274-overlay.dtbo dtbo-y += tegra234-p3737-camera-e3331-overlay.dtbo dtbo-y += tegra234-p3737-camera-e3333-overlay.dtbo diff --git a/overlay/tegra234-p3971-0000+p3701-0008-camera-dual-imx274-overlay.dts b/overlay/tegra234-p3971-0000+p3701-0008-camera-dual-imx274-overlay.dts new file mode 100644 index 0000000..b01bf64 --- /dev/null +++ b/overlay/tegra234-p3971-0000+p3701-0008-camera-dual-imx274-overlay.dts @@ -0,0 +1,344 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2022-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +/* + * Jetson Device-tree overlay for Camera Dual-IMX274 on t23x + p3971 platforms + * + */ + +/dts-v1/; +/plugin/; + +#include "dt-bindings/gpio/tegra234-gpio.h" +#include "dt-bindings/clock/tegra234-clock.h" +#include "tegra234-p3971-0000-camera-imx274-dual.dtsi" + + +/ { + overlay-name = "Jetson Camera Dual-IMX274"; + jetson-header-name = "Jetson AGX CSI Connector"; + compatible = "nvidia,p3971-0000+p3701-0008"; + + fragment@0 { + target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@1 { + target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a/ports/port@0/endpoint"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + remote-endpoint = <&liimx274_csi_in0>; + }; + }; + fragment@2 { + target-path = "/tegra-camera-platform/modules/module0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + badge = "imx274_bottom_A6V26"; + position = "bottom"; + orientation = "0"; + }; + }; + fragment@3 { + target-path = "/tegra-camera-platform/modules/module0/drivernode0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + pcl_id = "v4l2_sensor"; + sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/tca9546@70/i2c@0/imx274_a@1a"; + }; + }; + fragment@4 { + target-path = "/tegra-camera-platform/modules/module0/drivernode1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + pcl_id = "v4l2_lens"; + sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/lens_imx274@A6V26/"; + }; + }; + fragment@5 { + target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@6 { + target-path = "/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a/ports/port@0/endpoint"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + remote-endpoint = <&liimx274_csi_in1>; + }; + }; + fragment@7 { + target-path = "/tegra-camera-platform/modules/module1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + badge = "imx274_top_A6V26"; + position = "top"; + orientation = "0"; + }; + }; + fragment@8 { + target-path = "/tegra-camera-platform/modules/module1/drivernode0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + pcl_id = "v4l2_sensor"; + sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@3180000/tca9546@70/i2c@1/imx274_c@1a"; + }; + }; + fragment@9 { + target-path = "/tegra-camera-platform/modules/module1/drivernode1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + pcl_id = "v4l2_lens"; + sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/lens_imx274@A6V26/"; + }; + }; + /* Enable VI ports - capture_vi_base, */ + fragment@10 { + target-path = "/tegra-capture-vi"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + num-channels=<2>; + }; + }; + fragment@11 { + target-path = "/tegra-capture-vi/ports/port@0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@12 { + target-path = "/tegra-capture-vi/ports/port@1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@13 { + target-path = "/tegra-capture-vi/ports/port@0/endpoint"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + port-index = <0>; + bus-width = <4>; + remote-endpoint = <&liimx274_csi_out0>; + + }; + }; + fragment@14 { + target-path = "/tegra-capture-vi/ports/port@1/endpoint"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + port-index = <2>; + bus-width = <4>; + remote-endpoint = <&liimx274_csi_out1>; + }; + }; + /* Enable CSI ports */ + fragment@15 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + num-channels=<2>; + }; + }; + fragment@16 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@17 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@18 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@0/endpoint@0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + port-index = <0>; + bus-width = <4>; + remote-endpoint = <&liimx274_imx274_out0>; + }; + }; + fragment@19 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@20 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@0/ports/port@1/endpoint@1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + remote-endpoint = <&liimx274_vi_in0>; + }; + }; + fragment@21 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@22 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@23 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@0/endpoint@2"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + port-index = <2>; + bus-width = <4>; + remote-endpoint = <&liimx274_imx274_out1>; + }; + }; + fragment@24 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + fragment@25 { + target-path = "/bus@0/host1x@13e00000/nvcsi@15a00000/channel@1/ports/port@1/endpoint@3"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + remote-endpoint = <&liimx274_vi_in1>; + }; + }; + /* tegra-camera-platform settings */ + fragment@26 { + target-path = "/tegra-camera-platform"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + num_csi_lanes = <8>; + max_lane_speed = <1500000>; + min_bits_per_pixel = <10>; + vi_peak_byte_per_pixel = <2>; + vi_bw_margin_pct = <25>; + isp_peak_byte_per_pixel = <5>; + isp_bw_margin_pct = <25>; + }; + }; + /* pca9646 i2c mux */ + fragment@27 { + target-path = "/bus@0/i2c@3180000/tca9546@70"; + board_config { + ids = "LPRD-dual-imx274-002"; + sw-modules = "kernel"; + }; + __overlay__ { + status = "okay"; + }; + }; + +}; diff --git a/overlay/tegra234-p3971-0000+p3701-0008-camera-p3762-a00-overlay.dts b/overlay/tegra234-p3971-0000+p3701-0008-camera-p3762-a00-overlay.dts new file mode 100644 index 0000000..605e2f0 --- /dev/null +++ b/overlay/tegra234-p3971-0000+p3701-0008-camera-p3762-a00-overlay.dts @@ -0,0 +1,305 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +/dts-v1/; +/plugin/; + +#include "dt-bindings/gpio/tegra234-gpio.h" +#include "dt-bindings/clock/tegra234-clock.h" +#include "tegra234-camera-p3762-a00.dtsi" + +/* camera control gpio definitions */ +#define CAM0_RST_L TEGRA234_MAIN_GPIO(H, 3) +#define CAM0_PWDN TEGRA234_MAIN_GPIO(E, 6) +#define CAM1_RST_L TEGRA234_MAIN_GPIO(AC, 1) +#define CAM1_PWDN TEGRA234_MAIN_GPIO(AC, 0) +#define PWR_EN TEGRA234_MAIN_GPIO(AC, 7) +#define GYRO1_IRQ_GPIO TEGRA234_AON_GPIO(CC, 1) +#define ACCE1_IRQ_GPIO TEGRA234_AON_GPIO(CC, 0) + +/ { + overlay-name = "Jetson Camera Hawk-Owl p3762 module"; + jetson-header-name = "Jetson AGX CSI Connector"; + compatible = "nvidia,p3971-0000+p3701-0008"; + + fragment-camera-hawk-owl@0 { + target-path = "/"; + __overlay__ { + bus@0 { + /* set camera gpio direction to output */ + gpio@2200000 { + camera-control-output-low { + gpio-hog; + output-low; + gpios = ; + label = "cam0-rst", "cam0-pwdn", + "cam1-rst", "cam1-pwdn"; + }; + }; + i2c@3180000 { + max96712_b@62 { + compatible = "nvidia,max96712"; + reg = <0x62>; + channel = "b"; + pwdn-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + ar0234_i@30 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "b"; + has-eeprom; + eeprom-addr = <0x38>; + reset-gpios = <&gpio CAM1_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_j@32 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "b"; + has-eeprom; + eeprom-addr = <0x3a>; + reset-gpios = <&gpio CAM1_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_k@34 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "b"; + has-eeprom; + eeprom-addr = <0x3c>; + reset-gpios = <&gpio CAM1_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_l@36 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "b"; + has-eeprom; + eeprom-addr = <0x3e>; + reset-gpios = <&gpio CAM1_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM1_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + }; + i2c@31e0000 { + max96712_a@62 { + compatible = "nvidia,max96712"; + reg = <0x62>; + channel = "a"; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + status = "okay"; + }; + virtual_i2c_mux@50 { + reg = <0x50>; + compatible = "nvidia,virtual-i2c-mux"; + #address-cells = <1>; + #size-cells = <0>; + i2c-parent = <&dp_aux_ch3_i2c>; + status = "okay"; + + i2c@0 { + reg = <0>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + + bmi088_a@69 { + compatible = "bmi,bmi088"; + reg = <0x69>; + accel_i2c_addr = <0x19>; + /* Old BMI088 driver uses *_gpio property and the latest + * BMI088 driver uses *-gpios property. Have both versions + * to maintain backward compatibility. + */ + accel_irq_gpio = <&gpio_aon ACCE1_IRQ_GPIO GPIO_ACTIVE_HIGH>; + gyro_irq_gpio = <&gpio_aon GYRO1_IRQ_GPIO GPIO_ACTIVE_HIGH>; + accel_irq-gpios = <&gpio_aon ACCE1_IRQ_GPIO GPIO_ACTIVE_HIGH>; + gyro_irq-gpios = <&gpio_aon GYRO1_IRQ_GPIO GPIO_ACTIVE_HIGH>; + accel_matrix = [01 00 00 00 01 00 00 00 01]; + gyro_matrix = [01 00 00 00 01 00 00 00 01]; + gyro_reg_0x18 = <0x81>; + timestamps = <&hte_aon ACCE1_IRQ_GPIO>, <&hte_aon GYRO1_IRQ_GPIO>; + timestamp-names = "accelerometer", "gyroscope"; + status = "okay"; + }; + ar0234_a@30 { + status = "okay"; + def-addr = <0x10>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x40>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_b@31 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x40>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + }; + i2c@1 { + reg = <1>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + ar0234_c@32 { + status = "okay"; + def-addr = <0x10>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x15>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_d@33 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x15>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_e@34 { + status = "okay"; + def-addr = <0x10>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x44>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_f@35 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x44>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_g@36 { + status = "okay"; + def-addr = <0x10>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x46>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + ar0234_h@37 { + status = "okay"; + def-addr = <0x18>; + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + channel = "a"; + has-eeprom; + eeprom-addr = <0x46>; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + pwdn-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + pwr-gpios = <&gpio PWR_EN GPIO_ACTIVE_HIGH>; + }; + }; + }; + }; + }; + }; + }; + fragment-cam-cdi-tsc@0 { + target-path = "/"; + __overlay__ { + tsc_sig_gen@c6a0000 { + status = "okay"; + generator@380 { + status = "okay"; + }; + }; + }; + }; +}; diff --git a/overlay/tegra234-p3971-0000-camera-imx274-dual.dtsi b/overlay/tegra234-p3971-0000-camera-imx274-dual.dtsi new file mode 100644 index 0000000..73ce072 --- /dev/null +++ b/overlay/tegra234-p3971-0000-camera-imx274-dual.dtsi @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2017-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +#include +#include +#include "tegra234-camera-imx274-dual.dtsi" + +#define CAM0_RST_L TEGRA234_MAIN_GPIO(H, 3) +#define CAM0_PWDN TEGRA234_MAIN_GPIO(E, 6) + +/* camera control gpio definitions */ +/ { + fragment-camera-dual-imx274@0 { + target-path = "/bus@0"; + __overlay__ { + gpio@2200000 { + camera-control-output-low { + gpio-hog; + output-low; + gpios = ; + label = "cam0-rst", "cam0-pwdn"; + }; + }; + i2c@3180000 { + tca9546@70 { + compatible = "nxp,pca9546"; + reg = <0x70>; + #address-cells = <1>; + #size-cells = <0>; + skip_mux_detect = "yes"; + vcc-supply = <&vdd_1v8_ls>; + i2c@0 { + reg = <0>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + imx274_a@1a { + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + reset-gpios = <&gpio CAM0_RST_L GPIO_ACTIVE_HIGH>; + }; + }; + i2c@1 { + reg = <1>; + i2c-mux,deselect-on-exit; + #address-cells = <1>; + #size-cells = <0>; + imx274_c@1a { + /* Define any required hw resources needed by driver */ + /* ie. clocks, io pins, power sources */ + clocks = <&bpmp TEGRA234_CLK_EXTPERIPH1>, + <&bpmp TEGRA234_CLK_EXTPERIPH1>; + clock-names = "extperiph1", "pllp_grtba"; + mclk = "extperiph1"; + reset-gpios = <&gpio CAM0_PWDN GPIO_ACTIVE_HIGH>; + }; + }; + }; + }; + }; + }; +};