From 8746e764865db5b924dff8e2483766881d6f1e78 Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Sat, 27 Dec 2025 03:08:25 +0000 Subject: [PATCH] t210: add prods --- .../arm64/boot/dts/nvidia/tegra210-prods.dtsi | 978 +++++++++++++ .../boot/dts/nvidia/tegra210b01-prods.dtsi | 1257 +++++++++++++++++ 2 files changed, 2235 insertions(+) create mode 100644 arch/arm64/boot/dts/nvidia/tegra210-prods.dtsi create mode 100644 arch/arm64/boot/dts/nvidia/tegra210b01-prods.dtsi diff --git a/arch/arm64/boot/dts/nvidia/tegra210-prods.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-prods.dtsi new file mode 100644 index 000000000000..dee2b7b7c53d --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra210-prods.dtsi @@ -0,0 +1,978 @@ +/* + * Copyright (c) 2014-2025, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +/ { + host1x@50000000 { + sor@54540000 { + prod-settings { + #prod-cells = <3>; + prod_c_dp { + prod = < + 0x0000005c 0x0f000f10 0x01000310 // SOR_NV_PDISP_SOR_PLL0_0 27:24=ICHPMP 0x01 + // 11:08=VCOCAP 0x03 + // 04:04=RESISTORSEL 0x01 + 0x00000060 0x03f00100 0x00400100 // SOR_NV_PDISP_SOR_PLL1_0 25:24=LVDSCM 0x00 + // 23:20=LOADADJ 0x04 + // 08:08=TMDS_TERM 0x01 + 0x00000068 0x00002000 0x00002000 // SOR_NV_PDISP_SOR_PLL3_0 13:13=PLVVDD_MODE 0x01 + 0x00000070 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LVDS_0 + 0x00000180 0x00000001 0x00000001 // SOR_NV_PDISP_SOR_DP_SPARE0_0 00:00=SEQ_ENABLE 0x01 + >; + }; + }; + }; + sor@54580000 { + prod-settings { + #prod-cells = <3>; + prod_list_hdmi_soc = "prod_c_hdmi_0m_54m", "prod_c_hdmi_54m_111m", + "prod_c_hdmi_111m_223m", "prod_c_hdmi_223m_300m", + "prod_c_hdmi_300m_600m"; + prod { + prod = < + 0x000003a0 0x00000001 0x00000001 // SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x1 + 0x0000005c 0x0f000700 0x01000000 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x0 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00401000 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x10 + >; + }; + prod_c_hdmi_0m_54m { + prod = < + 0x000003a0 0x000000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000000 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x0 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00401000 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x10 + >; + }; + prod_c_hdmi_54m_111m { + prod = < + 0x000003a0 0x00000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000100 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x1 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00404000 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x40 + + >; + }; + prod_c_hdmi_111m_223m { + prod = < + 0x000003a0 0x00000002 0x00000000 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x0 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0xff0fe0ff 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + prod_c_hdmi_223m_300m { + prod = < + 0x000003a0 0x00000002 0x00000000 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x0 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x0A000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0xA + 0x00000138 0xffffffff 0x333F3F3F // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3F + // 15:08=LANE1_DP_LANE1 0x3F + // 07:00=LANE0_DP_LANE2 0x3F + 0x00000148 0xffffffff 0x00171717 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x17 + // 15:08=LANE1_DP_LANE1 0x17 + // 07:00=LANE0_DP_LANE2 0x17 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + prod_c_hdmi_300m_600m { + prod = < + 0x000003a0 0x00000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333F3F3F // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3f + // 15:08=LANE1_DP_LANE1 0x3f + // 07:00=LANE0_DP_LANE2 0x3f + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + /* HDMI prod-settings for fall-back to old DT config + * when prod_list_hdmi_soc/board are not found */ + prod_c_54M { + prod = < + 0x000003a0 0x000000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000000 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x0 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00401000 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x10 + >; + }; + prod_c_75M { + prod = < + 0x000003a0 0x00000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000100 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x1 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00404000 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x40 + + >; + }; + prod_c_150M { + prod = < + 0x000003a0 0x00000002 0x00000000 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x0 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0xff0fe0ff 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333A3A3A // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3A + // 15:08=LANE1_DP_LANE1 0x3A + // 07:00=LANE0_DP_LANE2 0x3A + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + prod_c_300M { + prod = < + 0x000003a0 0x00000002 0x00000000 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x0 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x0A000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0xA + 0x00000138 0xffffffff 0x333F3F3F // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3F + // 15:08=LANE1_DP_LANE1 0x3F + // 07:00=LANE0_DP_LANE2 0x3F + 0x00000148 0xffffffff 0x00171717 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x17 + // 15:08=LANE1_DP_LANE1 0x17 + // 07:00=LANE0_DP_LANE2 0x17 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + prod_c_600M { + prod = < + 0x000003a0 0x00000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x01000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x1 + 0x00000060 0x00f01f00 0x00401380 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x4 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x333F3F3F // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x33 + // 23:16=LANE2_DP_LANE0 0x3f + // 15:08=LANE1_DP_LANE1 0x3f + // 07:00=LANE0_DP_LANE2 0x3f + 0x00000148 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x00 + // 23:16=LANE2_DP_LANE0 0x00 + // 15:08=LANE1_DP_LANE1 0x00 + // 07:00=LANE0_DP_LANE2 0x00 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + + prod_c_dp { + prod = < + 0x0000005c 0x0f000f10 0x01000310 // SOR_NV_PDISP_SOR_PLL0_0 27:24=ICHPMP 0x01 + // 11:08=VCOCAP 0x03 + // 04:04=RESISTORSEL 0x01 + 0x00000060 0x03f00100 0x00400100 // SOR_NV_PDISP_SOR_PLL1_0 25:24=LVDSCM 0x00 + // 23:20=LOADADJ 0x04 + // 08:08=TMDS_TERM 0x01 + 0x00000068 0x00002000 0x00002000 // SOR_NV_PDISP_SOR_PLL3_0 13:13=PLVVDD_MODE 0x01 + 0x00000070 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LVDS_0 + 0x00000180 0x00000001 0x00000001 // SOR_NV_PDISP_SOR_DP_SPARE0_0 00:00=SEQ_ENABLE 0x01 + >; + }; + }; + }; + + dpaux@545c0000 { + prod-settings { + #prod-cells = <3>; + + prod_c_dpaux_dp { + prod = < + 0x00000124 0x000037fe 0x000024c2 + >; + }; + prod_c_dpaux_hdmi { + prod = < + 0x00000124 0x00000700 0x00000400 + >; + }; + }; + }; + + dpaux@54040000 { + prod-settings { + #prod-cells = <3>; + prod_c_dpaux_dp { + prod = < + 0x00000124 0x000037fe 0x000024c2 + >; + }; + prod_c_dpaux_hdmi { + prod = < + 0x00000124 0x00000700 0x00000400 + >; + }; + }; + }; + }; + + pinmux@700008d4 { + prod-settings { + #prod-cells = <4>; + prod { + status = "okay"; + nvidia,prod-boot-init; + prod = <0 0x1C4 0xF7F7F000 0x51212000 + 0 0x128 0x01F1F000 0x01010000 //GPIO_PZ0 DRVUP-DN + 0 0x12C 0x01F1F000 0x01010000 //GPIO_PZ1 DRVUP-DN + 0 0x1C8 0xF0003FFD 0x00001040 + 0 0x1DC 0xF7F7F000 0x51212000 + 0 0x1E0 0xF0003FFD 0x00001040 + 0 0x23C 0x01F1F000 0x01F1F000 //TOUCH_CLK DRVUP-DN + 0 0x20 0x01F1F000 0x01010000 //AUD_MCLK + 0 0x44 0x01F1F000 0x01010000 //CAM1_MCLK DRVUP-DN + 0 0x50 0x01F1F000 0x01010000 //CAM2_MCLK DRVUP-DN + 0 0x58 0x01F1F000 0x01010000 //CAM_AF_EN DRVUP-DN + 0 0x5C 0x01F1F000 0x01010000 //CAM_FLASH_EN DRVUP-DN + 0 0xA0 0x01F1F000 0x01010000 //I2S4B DIN + 0 0xA4 0x01F1F000 0x01010000 //I2S4B DOUT + 0 0xA8 0x01F1F000 0x01010000 //I2S4B FS + 0 0xAC 0x01F1F000 0x01010000 //I2S4B SCLK + 0 0xB0 0x01F1F000 0x01F1F000 //DMIC1 CLK + 0 0xB4 0x01F1F000 0x01F1F000 //DMIC1 DATA + 0 0xB8 0x01F1F000 0x01F1F000 //DMIC2 CLK + 0 0xBC 0x01F1F000 0x01F1F000 //DMIC2 DATA + 0 0xC0 0x01F1F000 0x01F1F000 //DMIC3 CLK + 0 0xC4 0x01F1F000 0x01F1F000 //DMIC3 DATA + 1 0x00 0x00007200 0x00002000 + 1 0x04 0x00007200 0x00002000 + 1 0x08 0x00007200 0x00002000 + 1 0x0C 0x00007200 0x00002000 + 1 0x10 0x00007200 0x00002000 + 1 0x14 0x00007200 0x00002000 + 1 0x1C 0x00007200 0x00002000 + 1 0x20 0x00007200 0x00002000 + 1 0x24 0x00007200 0x00002000 + 1 0x28 0x00007200 0x00002000 + 1 0x2C 0x00007200 0x00002000 + 1 0x30 0x00007200 0x00002000 + 1 0x160 0x00001000 0x00001000>; + }; + + i2s2_prod { + prod = <0 0xB0 0x01F1F000 0x01010000 // FS + 0 0xB4 0x01F1F000 0x01010000 // DIN + 0 0xB8 0x01F1F000 0x01010000 // DOUT + 0 0xBC 0x01F1F000 0x01010000>; // SCLK + }; + + spi1_prod { + nvidia,prod-boot-init; + prod = <0 0x200 0xF0000000 0x50000000 + 0 0x204 0xF0000000 0x50000000 + 0 0x208 0xF0000000 0x50000000 + 0 0x20c 0xF0000000 0x50000000 + 0 0x210 0xF0000000 0x50000000 + 1 0x50 0x00006000 0x00006040 + 1 0x54 0x00006000 0x00006040 + 1 0x58 0x00006000 0x00006040 + 1 0x5c 0x00006000 0x00006040 + 1 0x60 0x00006000 0x00006040>; + }; + spi2_prod { + nvidia,prod-boot-init; + prod = <0 0x214 0xF0000000 0xd0000000 + 0 0x218 0xF0000000 0xd0000000 + 0 0x21c 0xF0000000 0xd0000000 + 0 0x220 0xF0000000 0xd0000000 + 0 0x224 0xF0000000 0xd0000000 + 1 0x64 0x00006000 0x00006040 + 1 0x68 0x00006000 0x00006040 + 1 0x6c 0x00006000 0x00006040 + 1 0x70 0x00006000 0x00006040 + 1 0x74 0x00006000 0x00006040>; + }; + spi3_prod { + nvidia,prod-boot-init; + prod = <0 0xcc 0x01404000 0x01414000 + 0 0xd0 0x01404000 0x01414000 + 0 0x140 0x01404000 0x01414000 + 0 0x144 0x01404000 0x01414000>; + }; + spi4_prod { + nvidia,prod-boot-init; + prod = <0 0x268 0x01404000 0x01414000 + 0 0x26c 0x01404000 0x01414000 + 0 0x270 0x01404000 0x01414000 + 0 0x274 0x01404000 0x01414000>; + }; + i2c0_prod { + nvidia,prod-boot-init; + prod = <0 0xD4 0x01F1F000 0x0001F000 + 0 0xD8 0x01F1F000 0x0001F000 + 1 0xBC 0x00001100 0x00000000 + 1 0xC0 0x00001100 0x00000000>; + }; + i2c1_prod { + nvidia,prod-boot-init; + prod = <0 0xDC 0x01F1F000 0x0001F000 + 0 0xE0 0x01F1F000 0x0001F000 + 1 0xC4 0x00001100 0x00000000 + 1 0xC8 0x00001100 0x00000000>; + }; + i2c2_prod { + nvidia,prod-boot-init; + prod = <0 0xE4 0x01F1F000 0x0001F000 + 0 0xE8 0x01F1F000 0x0001F000 + 1 0xCC 0x00001100 0x00000000 + 1 0xD0 0x00001100 0x00000000 + 0 0x60 0x01F1F000 0x0001F000 + 0 0x64 0x01F1F000 0x0001F000 + 1 0xD4 0x00001100 0x00000000 + 1 0xD8 0x00001100 0x00000000>; + }; + i2c4_prod { + nvidia,prod-boot-init; + prod = <0 0x198 0x01F1F000 0x0001F000 + 0 0x19C 0x01F1F000 0x0001F000 + 1 0xDC 0x00001100 0x00000000 + 1 0xE0 0x00001100 0x00000000>; + }; + i2c0_hs_prod { + prod = <0 0xD4 0x01F1F000 0x01F1F000 + 0 0xD8 0x01F1F000 0x01F1F000 + 1 0xBC 0x00001100 0x00001000 + 1 0xC0 0x00001100 0x00001000>; + }; + i2c1_hs_prod { + prod = <0 0xDC 0x01F1F000 0x01F1F000 + 0 0xE0 0x01F1F000 0x01F1F000 + 1 0xC4 0x00001100 0x00001000 + 1 0xC8 0x00001100 0x00001000>; + }; + i2c2_hs_prod { + prod = <0 0xE4 0x01F1F000 0x01F1F000 + 0 0xE8 0x01F1F000 0x01F1F000 + 1 0xCC 0x00001100 0x00001000 + 1 0xD0 0x00001100 0x00001000 + 0 0x60 0x01F1F000 0x01F1F000 + 0 0x64 0x01F1F000 0x01F1F000 + 1 0xD4 0x00001100 0x00001000 + 1 0xD8 0x00001100 0x00001000>; + }; + i2c4_hs_prod { + prod = <0 0x198 0x01F1F000 0x01F1F000 + 0 0x19C 0x01F1F000 0x01F1F000 + 1 0xDC 0x00001100 0x00001000 + 1 0xE0 0x00001100 0x00001000>; + }; + }; + }; + + spi@7000d400 { + prod-settings { + #prod-cells = <3>; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000007>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000d600 { + prod-settings { + #prod-cells = <3>; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000006>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000d800 { + prod-settings { + #prod-cells = <3>; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000008>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000da00 { + prod-settings { + #prod-cells = <3>; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + + padctl@7009f000 { + prod-settings { + #prod-cells = <4>; + prod_c_bias { + prod = < + 0 0x00000284 0x0000003f 0x0000003a + >; + }; + prod_c_bias_a02 { + prod = < + 0 0x00000284 0x0000003f 0x00000038 + >; + }; + prod_c_utmi0 { + prod = < + 0 0x00000084 0x00000020 0x00000040 + >; + }; + prod_c_utmi1 { + prod = < + 0 0x000000C4 0x00000020 0x00000040 + >; + }; + prod_c_utmi2 { + prod = < + 0 0x00000104 0x00000020 0x00000040 + >; + }; + prod_c_utmi3 { + prod = < + 0 0x00000144 0x00000020 0x00000040 + >; + }; + prod_c_ss0 { + prod = < + 0 0x00000a60 0x00030000 0x00020000 + 0 0x00000a64 0x0000ffff 0x000000fc + 0 0x00000a68 0xffffffff 0xc0077f1f + 0 0x00000a74 0xffffffff 0xfcf01368 + >; + }; + prod_c_ss1 { + prod = < + 0 0x00000aa0 0x00030000 0x00020000 + 0 0x00000aa4 0x0000ffff 0x000000fc + 0 0x00000aa8 0xffffffff 0xc0077f1f + 0 0x00000ab4 0xffffffff 0xfcf01368 + >; + }; + prod_c_ss2 { + prod = < + 0 0x00000ae0 0x00030000 0x00020000 + 0 0x00000ae4 0x0000ffff 0x000000fc + 0 0x00000ae8 0xffffffff 0xc0077f1f + 0 0x00000af4 0xffffffff 0xfcf01368 + >; + }; + prod_c_ss3 { + prod = < + 0 0x00000b20 0x00030000 0x00020000 + 0 0x00000b24 0x0000ffff 0x000000fc + 0 0x00000b28 0xffffffff 0xc0077f1f + 0 0x00000b34 0xffffffff 0xfcf01368 + >; + }; + prod_c_hsic0 { + prod = < + 0 0x00000344 0x0000001f 0x0000001c + >; + }; + prod_c_hsic1 { + prod = < + 0 0x00000344 0x0000001f 0x0000001c + >; + }; + }; + }; + + sata@70020000 { + prod-settings { + #prod-cells = <4>; + prod { + prod = < + 0 0x00000680 0x00000001 0x00000001 // SATA_CHX_INDEX_0 0 + 0 0x00000690 0x00000FFF 0x00000715 // SATA_CHX_PHY_CTRL1_GEN1_0 31:0 + 0 0x00000694 0x000FF0FF 0x0000E01B // SATA_CHX_PHY_CTRL1_GEN2_0 31:0 + 0 0x000006d0 0xFFFFFFFF 0x00AB000F // SATA_CHX_PHY_CTRL11_0 31:0 + 0 0x00000170 0x0000F000 0x00007000 // NV_PROJ_SATA_FIFO_0 15:12 + 2 0x00000960 0x03000000 0x01000000 // XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_1_0 25:24 + >; + }; + }; + }; + + mmc@700b0600 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x00000000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs200 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs400 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs533 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00002000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30000505 0x30000505>; + }; + + + prod { + prod = < + 0x0000100 0x1FFF000E 0x8090028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x5 + // 23:16=TAP_VAL 0x9 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x0000010C 0x00003F00 0x00002800 //SDMMC_VENDOR_CAP_OVERRIDES_0 13:8=DQS_TRIM_VAL 0x28 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x0000128 0x43000000 0x00000000 // SDMMC_VENDOR_MISC_CNTRL2_0 30:30=SDMMC_CLK_OVR_ON 0x0 + // 25:25=ADMA3_CLKEN_OVERRIDE 0x0 + // 24:24=CQE_CLKEN_OVERRIDE 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mmc@700b0400 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x3000007D>; + }; + prod_c_hs { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x3000007D>; + }; + prod_c_sdr12 { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr25 { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr50 { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001C0 0x0000E000 0x00008000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr104 { + prod = <0x00000100 0x00FF0000 0x00010000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x00000000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x3090028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x5 + // 23:16=TAP_VAL 0x9 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x0000128 0x43000000 0x00000000 // SDMMC_VENDOR_MISC_CNTRL2_0 30:30=SDMMC_CLK_OVR_ON 0x0 + // 25:25=ADMA3_CLKEN_OVERRIDE 0x0 + // 24:24=CQE_CLKEN_OVERRIDE 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mmc@700b0200 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_sdr12 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_sdr25 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_sdr50 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00008000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_sdr104 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs200 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs400 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30000505>; + }; + prod_c_hs533 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00002000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30000505 0x30000505>; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x8090028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x5 + // 23:16=TAP_VAL 0x9 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x0000128 0x43000000 0x00000000 // SDMMC_VENDOR_MISC_CNTRL2_0 30:30=SDMMC_CLK_OVR_ON 0x0 + // 25:25=ADMA3_CLKEN_OVERRIDE 0x0 + // 24:24=CQE_CLKEN_OVERRIDE 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mmc@700b0000 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x3000007D>; + }; + prod_c_hs { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x3000007D>; + }; + prod_c_sdr12 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr25 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr50 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00008000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_sdr104 { + prod = <0x00000100 0x00FF0000 0x00040000 + 0x000001C0 0x0000E000 0x00004000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x00000000 + 0x000001E0 0x0000000F 0x00000007 + 0x000001E4 0x30077F7F 0x30007B7B>; + }; + + + prod { + prod = < + 0x0000100 0x1FFF000E 0x2090028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x5 + // 23:16=TAP_VAL 0x9 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x0000128 0x43000000 0x00000000 // SDMMC_VENDOR_MISC_CNTRL2_0 30:30=SDMMC_CLK_OVR_ON 0x0 + // 25:25=ADMA3_CLKEN_OVERRIDE 0x0 + // 24:24=CQE_CLKEN_OVERRIDE 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mipi@700e3000 { + prod-settings { + #prod-cells = <3>; + prod_c_dphy_dsi { + prod = < + 0x00000038 0x00001f00 0x00000200 //MIPI_CAL_DSIA_MIPI_CAL_CONFIG_0 12:8=MIPI_CAL_HSPUOSDSIA 0x2 + 0x0000003c 0x00001f00 0x00000200 //MIPI_CAL_DSIB_MIPI_CAL_CONFIG_0 12:8=MIPI_CAL_HSPUOSDSIB 0x2 + 0x00000040 0x00001f00 0x00000200 //MIPI_CAL_DSIC_MIPI_CAL_CONFIG_0 12:8=MIPI_CAL_HSPUOSDSIC 0x2 + 0x00000044 0x00001f00 0x00000200 //MIPI_CAL_DSID_MIPI_CAL_CONFIG_0 12:8=MIPI_CAL_HSPUOSDSID 0x2 + + 0x0000005c 0x00000f00 0x00000300 //MIPI_CAL_MIPI_BIAS_PAD_CFG1_0 11:8=PAD_DRIV_UP_REF 0x3 + 0x00000060 0x000f00f0 0x00010010 //MIPI_CAL_MIPI_BIAS_PAD_CFG2_0 07:04=PAD_VAUXP_LEVEL 0x1 + // 19:16=PAD_VCLAMP_LEVEL 0x1 + 0x00000064 0x0000001f 0x00000002 //MIPI_CAL_DSIA_MIPI_CAL_CONFIG_2_0 04:00=MIPI_CAL_HSCLKPUOSDSIA 0x2 + 0x00000068 0x0000001f 0x00000002 //MIPI_CAL_DSIB_MIPI_CAL_CONFIG_2_0 04:00=MIPI_CAL_HSCLKPUOSDSIB 0x2 + 0x00000070 0x0000001f 0x00000002 //MIPI_CAL_DSIC_MIPI_CAL_CONFIG_2_0 04:00=MIPI_CAL_HSCLKPUOSDSIC 0x2 + 0x00000074 0x0000001f 0x00000002 //MIPI_CAL_DSID_MIPI_CAL_CONFIG_2_0 04:00=MIPI_CAL_HSCLKPUOSDSID 0x2 + >; + }; + }; + }; + +}; diff --git a/arch/arm64/boot/dts/nvidia/tegra210b01-prods.dtsi b/arch/arm64/boot/dts/nvidia/tegra210b01-prods.dtsi new file mode 100644 index 000000000000..3c7854bbd60e --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra210b01-prods.dtsi @@ -0,0 +1,1257 @@ +/* + * tegra210b01-soc-prod.dtsi: SOC specific DTSI file Prod nodes. + * + * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + */ + +#define SOR_NV_PDISP_SOR_PLL0 0x5C +#define SOR_NV_PDISP_SOR_PLL1 0x60 +#define SOR_NV_PDISP_SOR_PLL2 0x64 +#define SOR_NV_PDISP_SOR_PLL3 0x68 +#define SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0x138 +#define SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0x148 +#define SOR_NV_PDISP_SOR_DP_PADCTL0 0x170 +#define SOR_NV_PDISP_SOR_DP_PADCTL2 0x1CC + +/ { + host1x@50000000 { + sor1 { + prod-settings { + #prod-cells = <3>; + prod_list_hdmi_soc = "prod_c_hdmi_0m_54m", "prod_c_hdmi_54m_111m", + "prod_c_hdmi_111m_223m", "prod_c_hdmi_223m_300m", + "prod_c_hdmi_300m_600m"; + prod_c_hdmi_0m_54m { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050100 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x401000 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x54000000 + >; + }; + }; + prod_c_hdmi_54m_111m { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050100 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x404000 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x44000000 + >; + }; + }; + prod_c_hdmi_111m_223m { + asic { + prod = <0x000003a0 0x00000002 0x00000000>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + prod_c_hdmi_223m_300m { + asic { + prod = <0x000003a0 0x00000002 0x00000000>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x0 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333F3F3F + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + prod_c_hdmi_300m_600m { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x0 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333F3F3F + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + + /* HDMI prod-settings for fall-back to old DT config + * when prod_list_hdmi_soc/board are not found */ + prod_c_54M { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050100 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x401000 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x54000000 + >; + }; + }; + prod_c_75M { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050100 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x404000 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x44000000 + >; + }; + }; + prod_c_150M { + asic { + prod = <0x000003a0 0x00000002 0x00000000>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x2 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333A3A3A + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + prod_c_300M { + asic { + prod = <0x000003a0 0x00000002 0x00000000>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x0 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333F3F3F + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + prod_c_600M { + asic { + prod = <0x000003a0 0x00000002 0x00000002>; /* SOR_NV_PDISP_INPUT_CONTROL 00:00=HDMI_SRC_SELECT 0x0 */ + }; + char { + prod = < + SOR_NV_PDISP_SOR_PLL0 0x0F0F0F00 0x05050300 + SOR_NV_PDISP_SOR_PLL1 0x00F01F00 0x00401300 + SOR_NV_PDISP_SOR_PLL2 0x0000FF00 0x0 + SOR_NV_PDISP_SOR_PLL3 0xFF000FF0 0x38000440 + SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0 0xFFFFFFFF 0x333F3F3F + SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0 0xFFFFFFFF 0x0 + SOR_NV_PDISP_SOR_DP_PADCTL0 0x0040FF00 0x406600 + SOR_NV_PDISP_SOR_DP_PADCTL2 0xFF000000 0x34000000 + >; + }; + }; + }; + }; + }; + + pinmux@700008d4 { + prod-settings { + #prod-cells = <4>; + mask-one-style; + touch_prod { + status = "okay"; + nvidia,prod-boot-init; + prod = < + 0 0x23C 0x01F1F000 0x01F1F000 //TOUCH_CLK DRVUP-DN + >; + }; + + aux_clk_prod { + status = "okay"; + nvidia,prod-boot-init; + prod = <1 0x160 0x00001000 0x00001000>; + }; + + i2c0_prod { + nvidia,prod-boot-init; + prod = <0 0xD4 0x01F1F000 0x0001F000 + 0 0xD8 0x01F1F000 0x0001F000 + 1 0xBC 0x00001100 0x00001000 + 1 0xC0 0x00001100 0x00001000>; + }; + i2c1_prod { + nvidia,prod-boot-init; + prod = <0 0xDC 0x01F1F000 0x0001F000 + 0 0xE0 0x01F1F000 0x0001F000 + 1 0xC4 0x00001100 0x00001000 + 1 0xC8 0x00001100 0x00001000>; + }; + i2c2_prod { + nvidia,prod-boot-init; + prod = <0 0xE4 0x01F1F000 0x0001F000 + 0 0xE8 0x01F1F000 0x0001F000 + 1 0xCC 0x00001100 0x00001000 + 1 0xD0 0x00001100 0x00001000 + 0 0x60 0x01F1F000 0x0001F000 + 0 0x64 0x01F1F000 0x0001F000 + 1 0xD4 0x00001100 0x00001000 + 1 0xD8 0x00001100 0x00001000>; + }; + i2c4_prod { + nvidia,prod-boot-init; + prod = <0 0x198 0x01F1F000 0x0001F000 + 0 0x19C 0x01F1F000 0x0001F000 + 1 0xDC 0x00001100 0x00001000 + 1 0xE0 0x00001100 0x00001000>; + }; + + sdmmc_prod { + status = "okay"; + nvidia,prod-boot-init; + prod = <0 0x1C4 0xF7F7F000 0x51212000 + 0 0x1C8 0xF0003FFD 0x00001040 + 0 0x1DC 0xF7F7F000 0x51212000 + 0 0x1E0 0xF0003FFD 0x00001040 + 1 0x00 0x00007200 0x00002000 + 1 0x04 0x00007200 0x00002000 + 1 0x08 0x00007200 0x00002000 + 1 0x0C 0x00007200 0x00002000 + 1 0x10 0x00007200 0x00002000 + 1 0x14 0x00007200 0x00002000 + 1 0x1C 0x00007200 0x00002000 + 1 0x20 0x00007200 0x00002000 + 1 0x24 0x00007200 0x00002000 + 1 0x28 0x00007200 0x00002000 + 1 0x2C 0x00007200 0x00002000 + 1 0x30 0x00007200 0x00002000>; + }; + + spi1_prod { + nvidia,prod-boot-init; + prod = <0 0x200 0x0000ffff 0x0000a0a0 + 1 0x050 0x00006000 0x00006000 + 1 0x054 0x00006000 0x00006000 + 1 0x058 0x00006000 0x00006000 + 1 0x05c 0x00006000 0x00006000 + 1 0x060 0x00006000 0x00006000>; + }; + spi2_prod { + nvidia,prod-boot-init; + prod = <0 0x214 0xf0000000 0xa0000000 + 0 0x218 0xf0000000 0xa0000000 + 0 0x21c 0xf0000000 0xa0000000 + 0 0x220 0xf0000000 0xa0000000 + 0 0x224 0xf0000000 0xa0000000 + 1 0x064 0x00006000 0x00006000 + 1 0x068 0x00006000 0x00006000 + 1 0x06c 0x00006000 0x00006000 + 1 0x070 0x00006000 0x00006000 + 1 0x074 0x00006000 0x00006000>; + }; + spi3_prod { + nvidia,prod-boot-init; + prod = <0 0x0cc 0x01f1f000 0x01a1a000 + 0 0x0d0 0x01f1f000 0x01a1a000 + 0 0x140 0x01f1f000 0x01a1a000 + 0 0x144 0x01f1f000 0x01a1a000 + 1 0x004 0x00006000 0x00006000 + 1 0x008 0x00006000 0x00006000 + 1 0x00c 0x00006000 0x00006000 + 1 0x010 0x00006000 0x00006000>; + }; + spi4_prod { + nvidia,prod-boot-init; + prod = <0 0x268 0x01f1f000 0x01a1a000 + 0 0x26c 0x01f1f000 0x01a1a000 + 0 0x270 0x01f1f000 0x01a1a000 + 0 0x274 0x01f1f000 0x01a1a000 + 1 0x078 0x00006000 0x00006000 + 1 0x07c 0x00006000 0x00006000 + 1 0x080 0x00006000 0x00006000 + 1 0x084 0x00006000 0x00006000>; + }; + eqos { + status = "disabled"; + nvidia,prod-boot-init; + prod = <0 0x8 0x00000001 0x00000000>; + }; + + dmic1_prod { + nvidia,prod-boot-init; + prod = <0 0xB0 0x01F1F000 0x01F1F000 + 0 0xB4 0x01F1F000 0x01F1F000>; + }; + dmic2_prod { + nvidia,prod-boot-init; + prod = <0 0xB8 0x01F1F000 0x01F1F000 + 0 0xBC 0x01F1F000 0x01F1F000>; + }; + dmic3_prod { + nvidia,prod-boot-init; + prod = <0 0xC0 0x01F1F000 0x01F1F000 + 0 0xC4 0x01F1F000 0x01F1F000>; + }; + i2s4a_uart2_prod { + status = "disabled"; + nvidia,prod-boot-init; + prod = <0 0x258 0x01F1F000 0x01F1F000 // I2S4A + 0 0x25C 0x01F1F000 0x01F1F000 + 0 0x260 0x01F1F000 0x01F1F000 + 0 0x264 0x01F1F000 0x01F1F000>; + }; + dap4_prod { + nvidia,prod-boot-init; + prod = <0 0xA0 0x01F1F000 0x01616000 // I2S4B + 0 0xA4 0x01F1F000 0x01616000 + 0 0xA8 0x01F1F000 0x01616000 + 0 0xAC 0x01F1F000 0x01616000>; + }; + gpio_pe6_7_prod { + nvidia,prod-boot-init; + prod = <0 0xF4 0x01F1F000 0x01F1F000 // I2S5A + 0 0xF8 0x01F1F000 0x01F1F000>; + }; + spdif_prod { + nvidia,prod-boot-init; + prod = <0 0x1FC 0x01F1F000 0x01818000 // SPDIF + 0 0x1F8 0x01F1F000 0x01818000>; + }; + spdif_uart2_bt_prod { + status = "disabled"; + nvidia,prod-boot-init; + prod = <0 0x260 0x01F1F000 0x01818000 + 0 0x264 0x01F1F000 0x01818000 + 0 0x18 0x01F1F000 0x01818000 + 0 0x28 0x01F1F000 0x01818000>; + }; + uart1_prod { + nvidia,prod-boot-init; + char { + prod = <0 0x248 0x1F1F000 0x00000000 + 0 0x24c 0x1F1F000 0x00000000 + 0 0x250 0x1F1F000 0x00000000 + 0 0x254 0x1F1F000 0x00000000>; + }; + }; + uart2_prod { + nvidia,prod-boot-init; + status = "disabled"; + char { + prod = <0 0x258 0x1F1F000 0x00000000 + 0 0x25c 0x1F1F000 0x00000000 + 0 0x260 0x1F1F000 0x00000000 + 0 0x264 0x1F1F000 0x00000000>; + }; + }; + uart3_prod { + nvidia,prod-boot-init; + status = "disabled"; + char { + prod = <0 0x268 0x1F1F000 0x00000000 + 0 0x26c 0x1F1F000 0x00000000 + 0 0x270 0x1F1F000 0x00000000 + 0 0x274 0x1F1F000 0x00000000>; + }; + }; + uart4_prod { + nvidia,prod-boot-init; + char { + prod = <0 0x278 0x1F1F000 0x00000000 + 0 0x27c 0x1F1F000 0x00000000 + 0 0x280 0x1F1F000 0x00000000 + 0 0x284 0x1F1F000 0x00000000>; + }; + }; + sdmmc1_prod { + nvidia,prod-boot-init; + char { + prod = <1 0x00 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_CLK 12:12=E_SCHMT 0x1 + 1 0x04 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_CMD 12:12=E_SCHMT 0x1 + 1 0x08 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_DAT3 12:12=E_SCHMT 0x1 + 1 0x0c 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_DAT2 12:12=E_SCHMT 0x1 + 1 0x10 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_DAT1 12:12=E_SCHMT 0x1 + 1 0x14 0x00001000 0x00001000 //PINMUX_AUX_SDMMC1_DAT0 12:12=E_SCHMT 0x1 + >; + }; + }; + sdmmc2_prod { + nvidia,prod-boot-init; + char { + prod = <1 0x294 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT0_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x298 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT1_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x29C 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT2_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2A0 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT3_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2A4 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT4_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2A8 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT5_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2AC 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT6_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2B0 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_DAT7_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2B4 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_CLK_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 1 0x2BC 0x00009000 0x00001000 //PINMUX_AUX_SDMMC2_CMD_0 15:15=E_PREEMP 0x0 12:12=E_SCHMT 0x1 + 0 0x1C8 0xF7F7F000 0x00A0A000 //APB_MISC_GP_SDMMC2_PAD_CFGPADCTRL_0 18:12=CFG2TMC_SDMMC2_PAD_CAL_DRVDN 0xA + // 26:20=CFG2TMC_SDMMC2_PAD_CAL_DRVUP 0xA + // 29:28=CFG2TMC_SDMMC2_CLK_CFG_CAL_DRVDN_SLWR 0x0 + // 31:30=CFG2TMC_SDMMC2_CLK_CFG_CAL_DRVUP_SLWF 0x0 + >; + }; + }; + sdmmc4_prod { + nvidia,prod-boot-init; + char { + prod = <0 0x1E0 0x00000001 0x00000001 //APB_MISC_GP_EMMC4_PAD_CFGPADCTRL_0 0:0=CFG2TMC_EMMC4_PAD_E_SCH 0x1 + 0 0x1E8 0x00000004 0x00000000 //APB_MISC_GP_EMMC4_PAD_PUPD_CFGPADCTRL_0 2:2=CFG2TMC_EMMC4_PAD_CLK_PUPD_PULLD 0x0 + >; + }; + }; + }; + }; + + i2c@7000c000 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f1f 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + i2c@7000c400 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f00 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + i2c@7000c500 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f1f 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + i2c@7000c700 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f1f 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + i2c@7000d000 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f1f 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + i2c@7000d100 { + prod-settings { + prod_c_sm { + prod = < + 0x00 0x00007000 0x00002000 + 0x6c 0xffff0000 0x00160000 + 0x94 0x00003f1f 0x00000304>; + }; + prod_c_fm { + prod = < + 0x00 0x00007000 0x00002000 + 0x94 0x00003f1f 0x00000204>; + }; + prod_c_fmplus { + prod = < + 0x00 0x00007000 0x00000000 + 0x94 0x00003f1f 0x00000204>; + }; + }; + }; + + padctl@7009f000 { + prod-settings { + #prod-cells = <4>; + mask-one-style; + prod_c_bias { + asic { + prod = < + 0 0x00000284 0x0000003f 0x0000003a + >; + }; + char { + prod = < + 0 0x00000284 0x00000700 0x00000300 + >; + }; + }; + prod_c_bias_a02 { + prod = < + 0 0x00000284 0x0000003f 0x00000038 + >; + }; + prod_c_utmi0 { + prod = < + 0 0x00000084 0x00000020 0x00000040 + >; + }; + prod_c_utmi1 { + prod = < + 0 0x000000C4 0x00000020 0x00000040 + >; + }; + prod_c_utmi2 { + prod = < + 0 0x00000104 0x00000020 0x00000040 + >; + }; + prod_c_utmi3 { + prod = < + 0 0x00000144 0x00000020 0x00000040 + >; + }; + prod_c_ss0 { + asic { + prod = < + 0 0x00000a60 0x00030000 0x00020000 + >; + }; + char { + prod = < + 0 0x00000a60 0x0000003f 0x00000027 + >; + }; + }; + prod_c_ss1 { + asic { + prod = < + 0 0x00000aa0 0x00030000 0x00020000 + >; + }; + char { + prod = < + 0 0x00000aa0 0x0000003f 0x00000027 + >; + }; + }; + prod_c_ss2 { + asic { + prod = < + 0 0x00000ae0 0x00030000 0x00020000 + >; + }; + char { + prod = < + 0 0x00000ae0 0x0000003f 0x00000027 + >; + }; + }; + prod_c_ss3 { + prod = < + 0 0x00000b20 0x00030000 0x00020000 + >; + }; + prod_c_hsic0 { + prod = < + 0 0x00000344 0x0000001f 0x0000001c + >; + }; + prod_c_hsic1 { + prod = < + 0 0x00000344 0x0000001f 0x0000001c + >; + }; + }; + }; + + + mmc@700b0000 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x1FFF0000 0x0E0B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs { + prod = <0x00000100 0x1FFF0000 0x0E0B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr12 { + prod = <0x00000100 0x1FFF0000 0x0E0B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr25 { + prod = <0x00000100 0x1FFF0000 0x0E0B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr50 { + prod = <0x00000100 0x1F000000 0x0E000000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL auto-tuned + 0x000001C0 0x0000E000 0x00008000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x4 + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr104 { + prod = <0x00000100 0x1F000000 0x0E000000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL auto-tuned + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x0E0B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x0E0B0028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xE + // 23:16=TAP_VAL 0xB + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mmc@700b0200 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr12 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr25 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr50 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001C0 0x0000E000 0x00008000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x4 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr104 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs200 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs400 { + prod = <0x00000100 0x1FFF0000 0x0D080000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x0D080028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x8 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + mmc@700b0400 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x1FFF0000 0x120B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs { + prod = <0x00000100 0x1FFF0000 0x120B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr12 { + prod = <0x00000100 0x1FFF0000 0x120B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr25 { + prod = <0x00000100 0x1FFF0000 0x120B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr50 { + prod = <0x00000100 0x1F000000 0x12000000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL auto-tuned + 0x000001C0 0x0000E000 0x00008000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x4 + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_sdr104 { + prod = <0x00000100 0x1F000000 0x12000000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL auto-tuned + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x120B0000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs200 { + prod = <0x00000100 0x1F000000 0x12000000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL auto-tuned + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000000 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x0 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x120B0028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0x12 + // 23:16=TAP_VAL 0xB + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + mmc@700b0600 { + prod-settings { + #prod-cells = <3>; + + prod_c_ds { + prod = <0x00000100 0x1FFF0000 0x0D090000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x9 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs { + prod = <0x00000100 0x1FFF0000 0x0D090000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_ddr52 { + prod = <0x00000100 0x1FFF0000 0x0D090000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x9 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs200 { + prod = <0x00000100 0x1FFF0000 0x0D090000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x9 + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + prod_c_hs400 { + prod = <0x00000100 0x1FFF0000 0x0D090000 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x9 + 0x000001C0 0x0000E000 0x00004000 // SDMMC_VENDOR_TUNING_CNTRL0_0 15:13=NUM_TUNING_ITERATIONS 0x2 + 0x000001E0 0x0000000F 0x00000007 // SDMMC_SDMEMCOMPPADCTRL_0 3:0=SDMMC2TMC_CFG_SDMEMCOMP_VREF_SEL 0x7 + 0x000001E4 0x30007F7F 0x30000000 // SDMMC_AUTO_CAL_CONFIG_0 14:8=AUTO_CAL_PD_OFFSET 0x0 + // 6:0=AUTO_CAL_PU_OFFSET 0x0 + // 28:28=AUTO_CAL_SLW_OVERRIDE 0x1 + // 29:29=AUTO_CAL_ENABLE 0x1 + >; + }; + + prod { + prod = < + 0x0000100 0x1FFF000E 0x0D090028 // SDMMC_VENDOR_CLOCK_CNTRL_0 28:24=TRIM_VAL 0xD + // 23:16=TAP_VAL 0x9 + // 05:05=SDR50_TUNING_OVERRIDE 0x1 + // 03:03=PADPIPE_CLKEN_OVERRIDE 0x1 + // 02:02=SPI_MODE_CLKEN_OVERRIDE 0x0 + // 01:01=INPUT_IO_CLK 0x0 + 0x000010C 0x00003F00 0x00002800 // SDMMC_VNDR_CAP_OVERRIDES_0 13:8=DQS_TRIM_VALUE 0x28 + 0x00001C0 0x08001FC0 0x8000040 // SDMMC_VENDOR_TUNING_CNTRL0_0 12:06=MUL_M 0x1 + // 27:27=RETUNING_REQ_EN_ON_CRC_ERR_DETECTION 0x1 + 0x00001C4 0x00000077 0x0 // SDMMC_VENDOR_TUNING_CNTRL1_0 02:00=STEP_SIZE_SDR50 0x0 + // 06:04=STEP_SIZE_SDR104_HS200 0x0 + 0x0000120 0x00020001 0x00001 // SDMMC_VENDOR_MISC_CNTRL_0 0:0=ERASE_TIMEOUT_LIMIT 0x1 + // 17:17=SDMMC_SPARE1[1] 0x0 + 0x00001F0 0x00080000 0x00080000 // SDMMC_IO_SPARE_0 19:19=SPARE_OUT[3] 0x1 + >; + }; + }; + }; + + host1x@50000000 { + sor@54580000 { + prod-settings { + #prod-cells = <3>; + prod_c_dp { + prod = < + 0x0000004c 0x00000003 0x00000003 // SOR_NV_PDISP_SOR_CLK_CNTRL_0 1:0=DIFF_DPCLK 0x3 + 0x0000005c 0x000f0000 0x00050000 // SOR_NV_PDISP_SOR_PLL0_0 27:24=ICHPMP 0x01 + // 11:08=VCOCAP 0x03 + // 04:04=RESISTORSEL 0x01 + 0x00000060 0x00f00100 0x00400100 // SOR_NV_PDISP_SOR_PLL1_0 25:24=LVDSCM 0x00 + // 08:08=TMDS_TERM 0x01 + 0x00000070 0xffffffff 0x00000000 // SOR_NV_PDISP_SOR_LVDS_0 + 0x00000170 0x00002000 0x00002000 // SOR_NV_PDISP_SOR_DP_PADCTL0 15:8=TX_PU_VALUE 0x20 + 0x00000180 0x00000001 0x00000001 // SOR_NV_PDISP_SOR_DP_SPARE0_0 00:00=SEQ_ENABLE 0x01 + 0x000001c8 0x00400000 0x00000000 // SOR_NV_PDISP_SOR_PLL4_0 22:22=ENABLE_LCKDET 0x00 + 0x000001cc 0xff000000 0x34000000 // SOR_NV_PDISP_SOR_PADCTL2_0 31:24=SPAREPLL 0x34 + >; + }; + prod_c_hbr { + prod = < + 0x0000004c 0x00000003 0x00000003 // SOR_NV_PDISP_SOR_CLK_CNTRL_0 1:0=DIFF_DPCLK 0x3 + 0x00000170 0x00001000 0x00001000 // SOR_NV_PDISP_SOR_DP_PADCTL0 15:8=TX_PU_VALUE 0x10 + >; + }; + prod_c_hbr2 { + prod = < + 0x0000004c 0x00000003 0x00000003 // SOR_NV_PDISP_SOR_CLK_CNTRL_0 1:0=DIFF_DPCLK 0x3 + 0x00000170 0x00002000 0x00002000 // SOR_NV_PDISP_SOR_DP_PADCTL0 15:8=TX_PU_VALUE 0x20 + >; + }; + prod_c_rbr { + prod = < + 0x0000004c 0x00000003 0x00000003 // SOR_NV_PDISP_SOR_CLK_CNTRL_0 1:0=DIFF_DPCLK 0x3 + 0x00000170 0x00001000 0x00001000 // SOR_NV_PDISP_SOR_DP_PADCTL0 15:8=TX_PU_VALUE 0x10 + >; + }; + }; + }; + + dpaux@54040000 { + prod-settings { + #prod-cells = <3>; + mask-one-style; + prod_c_dpaux_dp { + asic { + prod = < + 0x00000124 0x000037fe 0x000023a2 + >; + }; + }; + prod_c_dpaux_hdmi { + asic { + prod = < + 0x00000124 0x00000700 0x00000400 + >; + }; + }; + }; + }; + }; + + mipi@700e3000 { + prod-settings { + #prod-cells = <3>; + prod_c_dphy_dsi { + prod = < + 0x00000038 0x0000001f 0x00000006 // MIPI_CAL_DSIA_MIPI_CAL_CONFIG_0 4:0=MIPI_CAL_TERMOSDSIA 0x6 + 0x0000003c 0x0000001f 0x00000006 // MIPI_CAL_DSIB_MIPI_CAL_CONFIG_0 4:0=MIPI_CAL_TERMOSDSIB 0x6 + 0x00000040 0x0000001f 0x00000006 // MIPI_CAL_DSIC_MIPI_CAL_CONFIG_0 4:0=MIPI_CAL_TERMOSDSIC 0x6 + 0x00000044 0x0000001f 0x00000006 // MIPI_CAL_DSID_MIPI_CAL_CONFIG_0 4:0=MIPI_CAL_TERMOSDSID 0x6 + + 0x00000064 0x001f0000 0x00060000 // MIPI_CAL_DSIA_MIPI_CAL_CONFIG_2_0 20:16=MIPI_CAL_HSCLKTERMOSDSIA 0x6 + 0x00000068 0x001f0000 0x00060000 // MIPI_CAL_DSIB_MIPI_CAL_CONFIG_2_0 20:16=MIPI_CAL_HSCLKTERMOSDSIB 0x6 + 0x00000070 0x001f0000 0x00060000 // MIPI_CAL_DSIC_MIPI_CAL_CONFIG_2_0 20:16=MIPI_CAL_HSCLKTERMOSDSIC 0x6 + 0x00000074 0x001f0000 0x00060000 // MIPI_CAL_DSID_MIPI_CAL_CONFIG_2_0 20:16=MIPI_CAL_HSCLKTERMOSDSID 0x6 + + >; + }; + prod_c_dphy_csi { + prod = < + 0x00000000 0x00000010 0x00000010 // MIPI_CAL_MIPI_CAL_CTRL_0 4=MIPI_CAL_CLKEN_OVR 0x1 + >; + }; + }; + }; + spi@7000d400 { + prod-settings { + #prod-cells = <3>; + mask-one-style; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000007>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000d600 { + prod-settings { + #prod-cells = <3>; + mask-one-style; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000006>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000d800 { + prod-settings { + #prod-cells = <3>; + mask-one-style; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi flash rom */ + prod = <0x04 0x0000003f 0x00000008>; + }; + prod_c_loop { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + spi@7000da00 { + prod-settings { + #prod-cells = <3>; + mask-one-style; + prod { + prod = <0x04 0x00000fff 0x0>; + }; + prod_c_flash { + status = "disabled"; + /* enabled for spi loopback mode */ + prod = <0x04 0x00000fff 0x0000044b>; + }; + }; + }; + + sata@70020000 { + prod-settings { + #prod-cells = <4>; + mask-one-style; + prod { + prod = < + 0 0x00000680 0x00000001 0x00000001 // SATA_CHX_INDEX_0 0 + 0 0x00000690 0x00000FFF 0x00000715 // SATA_CHX_PHY_CTRL1_GEN1_0 31:0 + 0 0x00000694 0x000FF0FF 0x0000E01B // SATA_CHX_PHY_CTRL1_GEN2_0 31:0 + 0 0x000006d0 0xFFFFFFFF 0x00AB000F // SATA_CHX_PHY_CTRL11_0 31:0 + 0 0x00000170 0x0000F000 0x00007000 // NV_PROJ_SATA_FIFO_0 15:12 + 2 0x00000960 0x03000000 0x01000000 // XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_1_0 25:24 + >; + }; + }; + }; +};