From 18bb34db4c6a7eeb5130cf274076669e9e1b1b16 Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Wed, 29 Jul 2026 00:48:45 -0500 Subject: [PATCH] wip --- tegra210-nx.dtsi | 82 +- tegra210-odin-prods.dtsi | 131 +++ tegra210-odin.dts | 7 +- tegra210b01-nx.dtsi | 1777 ++++++++++++++++++++++++++++++++------ tegra210b01-vali.dts | 1492 +++++++++++++++++++++++++++++++- 5 files changed, 3154 insertions(+), 335 deletions(-) create mode 100644 tegra210-odin-prods.dtsi diff --git a/tegra210-nx.dtsi b/tegra210-nx.dtsi index 1334389..6af5580 100644 --- a/tegra210-nx.dtsi +++ b/tegra210-nx.dtsi @@ -11,6 +11,7 @@ #include #include "tegra210.dtsi" +#include "tegra210-prods.dtsi" / { aliases { @@ -274,29 +275,18 @@ }; /* Fixed regulators */ - ts_dvdd: ts_dvdd { + battery_reg: regulator@0 { compatible = "regulator-fixed"; - status = "okay"; - regulator-name = "ts_dvdd"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - gpio = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_HIGH>; - enable-active-high; - regulator-enable-ramp-delay = <10000>; - }; - - battery_reg: vdd-ac-bat { - compatible = "regulator-fixed"; - status = "okay"; + reg = <0>; regulator-name = "vdd-ac-bat"; regulator-min-microvolt = <4800000>; regulator-max-microvolt = <4800000>; regulator-always-on; - regulator-boot-on; }; - vdd_3v3: vdd-3v3 { + vdd_3v3: regulator@1 { compatible = "regulator-fixed"; + reg = <1>; regulator-name = "vdd-3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -320,22 +310,21 @@ vin-supply = <&max77620_ldo0>; }; - lcd_bl_en: lcd-bl-en { + lcd_bl_en: regulator@3 { compatible = "regulator-fixed"; + reg = <3>; + status = "okay"; /* Only enabled on Odin/Modin/Vali */ regulator-name = "lcd-bl-en"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; gpio = <&gpio TEGRA_GPIO(V, 1) 0>; regulator-boot-on; /* Must be set for seamless display */ enable-active-high; - regulator-always-on; - regulator-state-mem { - regulator-off-in-suspend; - }; }; - en_vdd_sd: en-vdd-sd { + en_vdd_sd: regulator@4 { compatible = "regulator-fixed"; + reg = <4>; regulator-name = "en-vdd-sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -359,8 +348,10 @@ }; /* LCD Power Enable -5V. Rohm BD8316GWL. */ - v_navdd_5v0: v-navdd-5v0 { + v_navdd_5v0: regulator@8 { compatible = "regulator-fixed"; + reg = <8>; + status = "okay"; /* Only enabled on Odin/Modin/Vali*/ regulator-name = "v_navdd_5v0"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; @@ -371,8 +362,9 @@ }; /* Joycon/Fan power (battery). Maxim MAX8969EWL53+. */ - v_vdd50_a: v-vdd50-a { + v_vdd50_a: regulator@9 { compatible = "regulator-fixed"; + reg = <9>; regulator-name = "v_vdd50_a"; regulator-min-microvolt = <5300000>; regulator-max-microvolt = <5300000>; @@ -381,8 +373,10 @@ }; /* Joycon/Fan power (usb). DC0 on Odin. Maxim MAX8969EWL53+ on Modin. */ - v_vdd50_b: v-vdd50-b { + v_vdd50_b: regulator@0xa { compatible = "regulator-fixed"; + reg = <10>; + status = "okay"; /* Only enabled on Odin/Modin */ regulator-name = "v_vdd50_b"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; @@ -390,8 +384,10 @@ enable-active-high; }; - v_vdd5v3: v-vdd5v3 { + /* VBUS power */ + v_vdd5v3: regulator@0xb { compatible = "regulator-fixed"; + reg = <11>; status = "okay"; /* Only enabled on Modin/Vali/Fric */ regulator-name = "v_vdd5v3"; regulator-min-microvolt = <5300000>; @@ -401,8 +397,10 @@ regulator-enable-ramp-delay = <10000>; }; - vdd3v3_gc: vdd3v3-gc { + vdd3v3_gc: regulator@0xc { compatible = "regulator-fixed"; + status = "disabled"; /* Only on Odin */ + reg = <12>; regulator-name = "vdd3v3_gc"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -413,34 +411,42 @@ vin-supply = <&vdd_3v3>; }; - /* TI TCR2EE48 4.8V */ - en_vdd_jcl_chgr: left-joycon-charger { + vdd_wlreg_on: regulator@0xd { compatible = "regulator-fixed"; + reg = <13>; + regulator-name = "vdd-wlreg_on"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&gpio TEGRA_GPIO(H, 1) 0>; + regulator-boot-on; + regulator-always-on; + enable-active-high; + }; + + /* TI TCR2EE48 4.8V */ + en_vdd_jcl_chgr: regulator@0xe { + compatible = "regulator-fixed"; + reg = <14>; status = "okay"; - regulator-name = "left-joycon-charger"; + regulator-name = "left-jc-reg"; regulator-min-microvolt = <4800000>; regulator-max-microvolt = <4800000>; gpio = <&gpio TEGRA_GPIO(CC, 3) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&v_vdd50_a>; - regulator-state-mem { - regulator-off-in-suspend; - }; }; /* TI TCR2EE48 4.8V */ - en_vdd_jcr_chgr: right-joycon-charger { + en_vdd_jcr_chgr: regulator@0xf { compatible = "regulator-fixed"; + reg = <15>; status = "okay"; - regulator-name = "right-joycon-charger"; + regulator-name = "right-jc-reg"; regulator-min-microvolt = <4800000>; regulator-max-microvolt = <4800000>; gpio = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>; enable-active-high; vin-supply = <&v_vdd50_a>; - regulator-state-mem { - regulator-off-in-suspend; - }; }; /* SDMMC4 for EMMC */ @@ -488,7 +494,7 @@ mmc@700b0000 { status = "okay"; bus-width = <4>; - max-frequency = <200000000>; + //max-frequency = <200000000>; cap-sd-highspeed; sd-uhs-sdr12; diff --git a/tegra210-odin-prods.dtsi b/tegra210-odin-prods.dtsi new file mode 100644 index 0000000..f8683ea --- /dev/null +++ b/tegra210-odin-prods.dtsi @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2019-2020, Billy Laws + * Copyright (c) 2019-2022, CTCaer + * + * 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. + * + */ + +/ { + host1x@50000000 { + sor@54580000 { + prod-settings { + #prod-cells = <3>; + prod_list_hdmi_board = "prod_c_hdmi_54m_75m", "prod_c_hdmi_75m_150m", + "prod_c_hdmi_150m_300m", "prod_c_hdmi_300m_600m"; + prod_c_hdmi_54m_75m { + board { + 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 0x00301300 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x3 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x29292929 // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x29 + // 23:16=LANE2_DP_LANE0 0x29 + // 15:08=LANE1_DP_LANE1 0x29 + // 07:00=LANE0_DP_LANE2 0x29 + 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_75m_150m { + board { + 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 0x00301300 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x3 + 0x00000068 0x0f000000 0x08000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0x8 + 0x00000138 0xffffffff 0x30373737 // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x30 + // 23:16=LANE2_DP_LANE0 0x37 + // 15:08=LANE1_DP_LANE1 0x37 + // 07:00=LANE0_DP_LANE2 0x37 + 0x00000148 0xffffffff 0x01020202 // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x01 + // 23:16=LANE2_DP_LANE0 0x02 + // 15:08=LANE1_DP_LANE1 0x02 + // 07:00=LANE0_DP_LANE2 0x02 + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + }; + prod_c_hdmi_150m_300m { + board { + prod = < + 0x000003a0 0x00000002 0x00000000 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x0 + 0x0000005c 0x0f000700 0x06000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0x6 + 0x00000060 0x00f01f00 0x00301300 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0x9 + // 23:20=LOADADJ 0x3 + 0x00000068 0x0f000000 0x0F000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0xF + 0x00000138 0xffffffff 0x30373737 // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x30 + // 23:16=LANE2_DP_LANE0 0x37 + // 15:08=LANE1_DP_LANE1 0x37 + // 07:00=LANE0_DP_LANE2 0x37 + 0x00000148 0xffffffff 0x103E3E3E // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x10 + // 23:16=LANE2_DP_LANE0 0x3E + // 15:08=LANE1_DP_LANE1 0x3E + // 07:00=LANE0_DP_LANE2 0x3E + 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 { + board { + prod = < + 0x000003a0 0x00000002 0x00000002 // SOR_NV_PDISP_INPUT_CONTROL 01:01=ARM_VIDEO_RANGE 0x1 + 0x0000005c 0x0f000700 0x0A000300 // SOR_NV_PDISP_SOR_PLL0_0 11:08=VCOCAP 0x3 + // 27:24=ICHPMP 0xA + 0x00000060 0x00f01f00 0x00301700 // SOR_NV_PDISP_SOR_PLL1_0 08:08=TMDS_TERM 0x1 + // 12:09=TMDS_TERMADJ 0xB + // 23:20=LOADADJ 0x3 + 0x00000068 0x0f000000 0x0E000000 // SOR_NV_PSIDP_SOR_PLL3_0 27:24=BG_VREF_LEVEL 0xE + 0x00000138 0xffffffff 0x353E3E3E // SOR_NV_PDISP_SOR_LANE_DRIVE_CURRENT0_0 + // 31:24=LANE3_DP_LANE3 0x35 + // 23:16=LANE2_DP_LANE0 0x3E + // 15:08=LANE1_DP_LANE1 0x3E + // 07:00=LANE0_DP_LANE2 0x3E + 0x00000148 0xffffffff 0x023F3F3F // SOR_NV_PDISP_SOR_LANE_PREEMPHASIS0_0 + // 31:24=LANE3_DP_LANE3 0x02 + // 23:16=LANE2_DP_LANE0 0x3F + // 15:08=LANE1_DP_LANE1 0x3F + // 07:00=LANE0_DP_LANE2 0x3F + 0x00000170 0x0040ff00 0x00406600 // SOR_NV_PDISP_SOR_DP_PADCTL0_0 + // 22:22=TX_PU 0x1 + // 15:08=TX_PU_VALUE 0x66 + >; + }; + }; + }; + }; + }; +}; diff --git a/tegra210-odin.dts b/tegra210-odin.dts index 8275418..8bceba6 100644 --- a/tegra210-odin.dts +++ b/tegra210-odin.dts @@ -2,6 +2,7 @@ /dts-v1/; #include "tegra210-nx.dtsi" +#include "tegra210-odin-prods.dtsi" / { model = "Nintendo Switch (2017)"; @@ -52,9 +53,11 @@ phy-names = "pcie-0"; status = "okay"; - wifi { /* PCIE-0 (Port 1) */ + wifi@1 { /* PCIE-0 (Port 1) */ + status = "okay"; compatible = "brcm,bcm4356-fmac"; - brcm,reset_on_wake; + reg = <1>; + reset-gpios = ; }; }; }; diff --git a/tegra210b01-nx.dtsi b/tegra210b01-nx.dtsi index d9231ba..6f90fd5 100644 --- a/tegra210b01-nx.dtsi +++ b/tegra210b01-nx.dtsi @@ -3,8 +3,10 @@ #include #include #include +#include #include "tegra210b01.dtsi" +#include "tegra210b01-prods.dtsi" / { aliases { @@ -52,6 +54,21 @@ }; }; + fan: pwm-fan { + compatible = "pwm-fan"; + cooling-min-state = <0>; + cooling-max-state = <5>; + #cooling-cells = <2>; + pwms = <&pwm 1 33333>; + fan-supply = <&v_vdd50_a>; + enable-gpios = <&gpio TEGRA_GPIO(A, 5) GPIO_ACTIVE_HIGH>; + /* cooling level (0, 1, 2, 3, 4, 5) - pwm inverted */ + cooling-levels = <255 204 153 102 51 0>; + + interrupt-parent = <&gpio>; + interrupts = ; + }; + memory@80000000 { device_type = "memory"; reg = <0x0 0x80000000 0x0 0xc0000000>; @@ -68,18 +85,52 @@ status = "okay"; }; - /* SDMMC4 for EMMC */ - mmc@700b0600 { + serial@70006300 { + /delete-property/ reg-shift; + status = "okay"; + compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart"; + reset-names = "serial"; + + bluetooth { + status = "okay"; + compatible = "brcm,bcm43438-bt"; + vbat-supply = <&battery_reg>; + vddio-supply = <&battery_reg>; + device-wakeup-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>; + shutdown-gpios = <&gpio TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; + interrupt-parent = <&gpio>; + interrupts = ; + interrupt-names = "host-wakeup"; + max-speed = <3000000>; /* Max supported 4 MBaud */ + }; + }; + + /* SDMMC1 for SD Card */ + mmc@700b0000 { + status = "okay"; + bus-width = <4>; + + cap-sd-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr50; + sd-uhs-sdr104; + + cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>; + + vmmc-supply = <&en_vdd_sd>; + vqmmc-supply = <&max77620_ldo2>; + }; + + /* SDMMC2 for Gamecard */ + mmc@700b0200 { status = "disabled"; bus-width = <8>; - max-frequency = <200000000>; - cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_HIGH>; - - cap-mmc-highspeed; mmc-ddr-1_8v; - mmc-hs200-1_8v; mmc-hs400-1_8v; + mmc-hs200-1_8v; + cap-mmc-highspeed; + cap-sd-highspeed; non-removable; vqmmc-supply = <&max77620_sd3>; @@ -91,38 +142,21 @@ status = "disabled"; }; - /* SDMMC2 for Gamecard */ - mmc@700b0200 { + /* SDMMC4 for EMMC */ + mmc@700b0600 { status = "disabled"; bus-width = <8>; - max-frequency = <200000000>; - mmc-ddr-1_8v; - mmc-hs400-1_8v; - mmc-hs200-1_8v; cap-mmc-highspeed; - cap-sd-highspeed; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; non-removable; vqmmc-supply = <&max77620_sd3>; vmmc-supply = <&vdd_3v3>; }; - /* SDMMC1 for SD Card */ - mmc@700b0000 { - status = "okay"; - bus-width = <4>; - max-frequency = <200000000>; - - cap-sd-highspeed; - sd-uhs-sdr12; - sd-uhs-sdr50; - sd-uhs-sdr104; - - vmmc-supply = <&en_vdd_sd>; - vqmmc-supply = <&max77620_ldo2>; - }; - i2c@7000c000 { status = "okay"; clock-frequency = <100000>; @@ -176,7 +210,16 @@ realtek,ldo1-en-gpios = <&gpio TEGRA_GPIO(Z, 4) GPIO_ACTIVE_HIGH>; realtek,over-current-threshold-microamp = <600>; realtek,over-current-scale-factor = <2>; - realtek,jack-detect-is-jd1; + realtek,jack-detect-source = ; + + sound-name-prefix = "x"; + + port { + rt5640_ep: endpoint { + remote-endpoint = <&i2s1_dap_ep>; + mclk-fs = <256>; + }; + }; }; /* PD Chip */ @@ -200,6 +243,26 @@ rohm,pd-12v-current-limit-ma = <1500>; rohm,pd-15v-current-limit-ma = <1200>; + // connector@0 { + // compatible = "usb-c-connector"; + // reg = <0>; + // label = "USB-C"; + // data-role = "dual"; + + // ports { + // #address-cells = <1>; + // #size-cells = <0>; + + // port@0 { + // reg = <0>; + + // usb_con_ep: endpoint { + // remote-endpoint = <&hs_typec_p0>; + // }; + // }; + // }; + // }; + port { usb_con_ep: endpoint { remote-endpoint = <&usb_port_0>; @@ -218,7 +281,7 @@ #thermal-sensor-cells = <1>; }; - }; + }; /* i2c3 @ 400000hz 49: stm touchscreen controller @@ -244,6 +307,1114 @@ }; }; + aconnect@702c0000 { + ahub@702d0800 { + /* I2S1: RT5639 */ + i2s@702d1000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + i2s1_cif_ep: endpoint { + remote-endpoint = <&xbar_i2s1_ep>; + }; + }; + + i2s1_port: port@1 { + reg = <1>; + + i2s1_dap_ep: endpoint { + dai-format = "i2s"; + remote-endpoint = <&rt5640_ep>; + }; + }; + }; + }; + + /* I2S2: BCM4356-BT PCM */ + i2s@702d1100 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + i2s2_cif_ep: endpoint { + remote-endpoint = <&xbar_i2s2_ep>; + }; + }; + + i2s2_port: port@1 { + reg = <1>; + + i2s2_dap_ep: endpoint { + dai-format = "dsp_a"; + remote-endpoint = <&spdif1_ep>; + }; + }; + }; + }; + + sfc@702d2000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sfc1_cif_in_ep: endpoint { + remote-endpoint = <&xbar_sfc1_in_ep>; + }; + }; + + sfc1_out_port: port@1 { + reg = <1>; + + sfc1_cif_out_ep: endpoint { + remote-endpoint = <&xbar_sfc1_out_ep>; + }; + }; + }; + }; + + sfc@702d2200 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sfc2_cif_in_ep: endpoint { + remote-endpoint = <&xbar_sfc2_in_ep>; + }; + }; + + sfc2_out_port: port@1 { + reg = <1>; + + sfc2_cif_out_ep: endpoint { + remote-endpoint = <&xbar_sfc2_out_ep>; + }; + }; + }; + }; + + sfc@702d2400 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sfc3_cif_in_ep: endpoint { + remote-endpoint = <&xbar_sfc3_in_ep>; + }; + }; + + sfc3_out_port: port@1 { + reg = <1>; + + sfc3_cif_out_ep: endpoint { + remote-endpoint = <&xbar_sfc3_out_ep>; + }; + }; + }; + }; + + sfc@702d2600 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + sfc4_cif_in_ep: endpoint { + remote-endpoint = <&xbar_sfc4_in_ep>; + }; + }; + + sfc4_out_port: port@1 { + reg = <1>; + + sfc4_cif_out_ep: endpoint { + remote-endpoint = <&xbar_sfc4_out_ep>; + }; + }; + }; + }; + + amx@702d3000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + amx1_in1_ep: endpoint { + remote-endpoint = <&xbar_amx1_in1_ep>; + }; + }; + + port@1 { + reg = <1>; + + amx1_in2_ep: endpoint { + remote-endpoint = <&xbar_amx1_in2_ep>; + }; + }; + + port@2 { + reg = <2>; + + amx1_in3_ep: endpoint { + remote-endpoint = <&xbar_amx1_in3_ep>; + }; + }; + + port@3 { + reg = <3>; + + amx1_in4_ep: endpoint { + remote-endpoint = <&xbar_amx1_in4_ep>; + }; + }; + + amx1_out_port: port@4 { + reg = <4>; + + amx1_out_ep: endpoint { + remote-endpoint = <&xbar_amx1_out_ep>; + }; + }; + }; + }; + + amx@702d3100 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + amx2_in1_ep: endpoint { + remote-endpoint = <&xbar_amx2_in1_ep>; + }; + }; + + port@1 { + reg = <1>; + + amx2_in2_ep: endpoint { + remote-endpoint = <&xbar_amx2_in2_ep>; + }; + }; + + amx2_in3_port: port@2 { + reg = <2>; + + amx2_in3_ep: endpoint { + remote-endpoint = <&xbar_amx2_in3_ep>; + }; + }; + + amx2_in4_port: port@3 { + reg = <3>; + + amx2_in4_ep: endpoint { + remote-endpoint = <&xbar_amx2_in4_ep>; + }; + }; + + amx2_out_port: port@4 { + reg = <4>; + + amx2_out_ep: endpoint { + remote-endpoint = <&xbar_amx2_out_ep>; + }; + }; + }; + }; + + adx@702d3800 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + adx1_in_ep: endpoint { + remote-endpoint = <&xbar_adx1_in_ep>; + }; + }; + + adx1_out1_port: port@1 { + reg = <1>; + + adx1_out1_ep: endpoint { + remote-endpoint = <&xbar_adx1_out1_ep>; + }; + }; + + adx1_out2_port: port@2 { + reg = <2>; + + adx1_out2_ep: endpoint { + remote-endpoint = <&xbar_adx1_out2_ep>; + }; + }; + + adx1_out3_port: port@3 { + reg = <3>; + + adx1_out3_ep: endpoint { + remote-endpoint = <&xbar_adx1_out3_ep>; + }; + }; + + adx1_out4_port: port@4 { + reg = <4>; + + adx1_out4_ep: endpoint { + remote-endpoint = <&xbar_adx1_out4_ep>; + }; + }; + }; + }; + + adx@702d3900 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + adx2_in_ep: endpoint { + remote-endpoint = <&xbar_adx2_in_ep>; + }; + }; + + adx2_out1_port: port@1 { + reg = <1>; + + adx2_out1_ep: endpoint { + remote-endpoint = <&xbar_adx2_out1_ep>; + }; + }; + + adx2_out2_port: port@2 { + reg = <2>; + + adx2_out2_ep: endpoint { + remote-endpoint = <&xbar_adx2_out2_ep>; + }; + }; + + adx2_out3_port: port@3 { + reg = <3>; + + adx2_out3_ep: endpoint { + remote-endpoint = <&xbar_adx2_out3_ep>; + }; + }; + + adx2_out4_port: port@4 { + reg = <4>; + + adx2_out4_ep: endpoint { + remote-endpoint = <&xbar_adx2_out4_ep>; + }; + }; + }; + }; + + dmic@702d4000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dmic1_cif_ep: endpoint { + remote-endpoint = <&xbar_dmic1_ep>; + }; + }; + + dmic1_port: port@1 { + reg = <1>; + + dmic1_dap_ep: endpoint { + /* Placeholder for external Codec */ + }; + }; + }; + }; + + dmic@702d4100 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dmic2_cif_ep: endpoint { + remote-endpoint = <&xbar_dmic2_ep>; + }; + }; + + dmic2_port: port@1 { + reg = <1>; + + dmic2_dap_ep: endpoint { + /* Placeholder for external Codec */ + }; + }; + }; + }; + + dmic@702d4200 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dmic3_cif_ep: endpoint { + remote-endpoint = <&xbar_dmic3_ep>; + }; + }; + + dmic3_port: port@1 { + reg = <1>; + + dmic3_dap_ep: endpoint { + /* Placeholder for external Codec */ + }; + }; + }; + }; + + processing-engine@702d8000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0x0>; + + ope1_cif_in_ep: endpoint { + remote-endpoint = <&xbar_ope1_in_ep>; + }; + }; + + ope1_out_port: port@1 { + reg = <0x1>; + + ope1_cif_out_ep: endpoint { + remote-endpoint = <&xbar_ope1_out_ep>; + }; + }; + }; + }; + + processing-engine@702d8400 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0x0>; + + ope2_cif_in_ep: endpoint { + remote-endpoint = <&xbar_ope2_in_ep>; + }; + }; + + ope2_out_port: port@1 { + reg = <0x1>; + + ope2_cif_out_ep: endpoint { + remote-endpoint = <&xbar_ope2_out_ep>; + }; + }; + }; + }; + + mvc@702da000 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mvc1_cif_in_ep: endpoint { + remote-endpoint = <&xbar_mvc1_in_ep>; + }; + }; + + mvc1_out_port: port@1 { + reg = <1>; + + mvc1_cif_out_ep: endpoint { + remote-endpoint = <&xbar_mvc1_out_ep>; + }; + }; + }; + }; + + mvc@702da200 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + mvc2_cif_in_ep: endpoint { + remote-endpoint = <&xbar_mvc2_in_ep>; + }; + }; + + mvc2_out_port: port@1 { + reg = <1>; + + mvc2_cif_out_ep: endpoint { + remote-endpoint = <&xbar_mvc2_out_ep>; + }; + }; + }; + }; + + amixer@702dbb00 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0x0>; + + mixer_in1_ep: endpoint { + remote-endpoint = <&xbar_mixer_in1_ep>; + }; + }; + + port@1 { + reg = <0x1>; + + mixer_in2_ep: endpoint { + remote-endpoint = <&xbar_mixer_in2_ep>; + }; + }; + + port@2 { + reg = <0x2>; + + mixer_in3_ep: endpoint { + remote-endpoint = <&xbar_mixer_in3_ep>; + }; + }; + + port@3 { + reg = <0x3>; + + mixer_in4_ep: endpoint { + remote-endpoint = <&xbar_mixer_in4_ep>; + }; + }; + + port@4 { + reg = <0x4>; + + mixer_in5_ep: endpoint { + remote-endpoint = <&xbar_mixer_in5_ep>; + }; + }; + + port@5 { + reg = <0x5>; + + mixer_in6_ep: endpoint { + remote-endpoint = <&xbar_mixer_in6_ep>; + }; + }; + + port@6 { + reg = <0x6>; + + mixer_in7_ep: endpoint { + remote-endpoint = <&xbar_mixer_in7_ep>; + }; + }; + + port@7 { + reg = <0x7>; + + mixer_in8_ep: endpoint { + remote-endpoint = <&xbar_mixer_in8_ep>; + }; + }; + + port@8 { + reg = <0x8>; + + mixer_in9_ep: endpoint { + remote-endpoint = <&xbar_mixer_in9_ep>; + }; + }; + + port@9 { + reg = <0x9>; + + mixer_in10_ep: endpoint { + remote-endpoint = <&xbar_mixer_in10_ep>; + }; + }; + + mixer_out1_port: port@a { + reg = <0xa>; + + mixer_out1_ep: endpoint { + remote-endpoint = <&xbar_mixer_out1_ep>; + }; + }; + + mixer_out2_port: port@b { + reg = <0xb>; + + mixer_out2_ep: endpoint { + remote-endpoint = <&xbar_mixer_out2_ep>; + }; + }; + + mixer_out3_port: port@c { + reg = <0xc>; + + mixer_out3_ep: endpoint { + remote-endpoint = <&xbar_mixer_out3_ep>; + }; + }; + + mixer_out4_port: port@d { + reg = <0xd>; + + mixer_out4_ep: endpoint { + remote-endpoint = <&xbar_mixer_out4_ep>; + }; + }; + + mixer_out5_port: port@e { + reg = <0xe>; + + mixer_out5_ep: endpoint { + remote-endpoint = <&xbar_mixer_out5_ep>; + }; + }; + }; + }; + + ports { + xbar_i2s1_port: port@a { + reg = <0xa>; + + xbar_i2s1_ep: endpoint { + remote-endpoint = <&i2s1_cif_ep>; + }; + }; + + xbar_i2s2_port: port@b { + reg = <0xb>; + + xbar_i2s2_ep: endpoint { + remote-endpoint = <&i2s2_cif_ep>; + }; + }; + + xbar_dmic1_port: port@f { + reg = <0xf>; + + xbar_dmic1_ep: endpoint { + remote-endpoint = <&dmic1_cif_ep>; + }; + }; + + xbar_dmic2_port: port@10 { + reg = <0x10>; + + xbar_dmic2_ep: endpoint { + remote-endpoint = <&dmic2_cif_ep>; + }; + }; + + xbar_dmic3_port: port@11 { + reg = <0x11>; + + xbar_dmic3_ep: endpoint { + remote-endpoint = <&dmic3_cif_ep>; + }; + }; + + xbar_sfc1_in_port: port@12 { + reg = <0x12>; + + xbar_sfc1_in_ep: endpoint { + remote-endpoint = <&sfc1_cif_in_ep>; + }; + }; + + port@13 { + reg = <0x13>; + + xbar_sfc1_out_ep: endpoint { + remote-endpoint = <&sfc1_cif_out_ep>; + }; + }; + + xbar_sfc2_in_port: port@14 { + reg = <0x14>; + + xbar_sfc2_in_ep: endpoint { + remote-endpoint = <&sfc2_cif_in_ep>; + }; + }; + + port@15 { + reg = <0x15>; + + xbar_sfc2_out_ep: endpoint { + remote-endpoint = <&sfc2_cif_out_ep>; + }; + }; + + xbar_sfc3_in_port: port@16 { + reg = <0x16>; + + xbar_sfc3_in_ep: endpoint { + remote-endpoint = <&sfc3_cif_in_ep>; + }; + }; + + port@17 { + reg = <0x17>; + + xbar_sfc3_out_ep: endpoint { + remote-endpoint = <&sfc3_cif_out_ep>; + }; + }; + + xbar_sfc4_in_port: port@18 { + reg = <0x18>; + + xbar_sfc4_in_ep: endpoint { + remote-endpoint = <&sfc4_cif_in_ep>; + }; + }; + + port@19 { + reg = <0x19>; + + xbar_sfc4_out_ep: endpoint { + remote-endpoint = <&sfc4_cif_out_ep>; + }; + }; + + xbar_mvc1_in_port: port@1a { + reg = <0x1a>; + + xbar_mvc1_in_ep: endpoint { + remote-endpoint = <&mvc1_cif_in_ep>; + }; + }; + + port@1b { + reg = <0x1b>; + + xbar_mvc1_out_ep: endpoint { + remote-endpoint = <&mvc1_cif_out_ep>; + }; + }; + + xbar_mvc2_in_port: port@1c { + reg = <0x1c>; + + xbar_mvc2_in_ep: endpoint { + remote-endpoint = <&mvc2_cif_in_ep>; + }; + }; + + port@1d { + reg = <0x1d>; + + xbar_mvc2_out_ep: endpoint { + remote-endpoint = <&mvc2_cif_out_ep>; + }; + }; + + xbar_amx1_in1_port: port@1e { + reg = <0x1e>; + + xbar_amx1_in1_ep: endpoint { + remote-endpoint = <&amx1_in1_ep>; + }; + }; + + xbar_amx1_in2_port: port@1f { + reg = <0x1f>; + + xbar_amx1_in2_ep: endpoint { + remote-endpoint = <&amx1_in2_ep>; + }; + }; + + xbar_amx1_in3_port: port@20 { + reg = <0x20>; + + xbar_amx1_in3_ep: endpoint { + remote-endpoint = <&amx1_in3_ep>; + }; + }; + + xbar_amx1_in4_port: port@21 { + reg = <0x21>; + + xbar_amx1_in4_ep: endpoint { + remote-endpoint = <&amx1_in4_ep>; + }; + }; + + port@22 { + reg = <0x22>; + + xbar_amx1_out_ep: endpoint { + remote-endpoint = <&amx1_out_ep>; + }; + }; + + xbar_amx2_in1_port: port@23 { + reg = <0x23>; + + xbar_amx2_in1_ep: endpoint { + remote-endpoint = <&amx2_in1_ep>; + }; + }; + + xbar_amx2_in2_port: port@24 { + reg = <0x24>; + + xbar_amx2_in2_ep: endpoint { + remote-endpoint = <&amx2_in2_ep>; + }; + }; + + xbar_amx2_in3_port: port@25 { + reg = <0x25>; + + xbar_amx2_in3_ep: endpoint { + remote-endpoint = <&amx2_in3_ep>; + }; + }; + + xbar_amx2_in4_port: port@26 { + reg = <0x26>; + + xbar_amx2_in4_ep: endpoint { + remote-endpoint = <&amx2_in4_ep>; + }; + }; + + port@27 { + reg = <0x27>; + + xbar_amx2_out_ep: endpoint { + remote-endpoint = <&amx2_out_ep>; + }; + }; + + xbar_adx1_in_port: port@28 { + reg = <0x28>; + + xbar_adx1_in_ep: endpoint { + remote-endpoint = <&adx1_in_ep>; + }; + }; + + port@29 { + reg = <0x29>; + + xbar_adx1_out1_ep: endpoint { + remote-endpoint = <&adx1_out1_ep>; + }; + }; + + port@2a { + reg = <0x2a>; + + xbar_adx1_out2_ep: endpoint { + remote-endpoint = <&adx1_out2_ep>; + }; + }; + + port@2b { + reg = <0x2b>; + + xbar_adx1_out3_ep: endpoint { + remote-endpoint = <&adx1_out3_ep>; + }; + }; + + port@2c { + reg = <0x2c>; + + xbar_adx1_out4_ep: endpoint { + remote-endpoint = <&adx1_out4_ep>; + }; + }; + + xbar_adx2_in_port: port@2d { + reg = <0x2d>; + + xbar_adx2_in_ep: endpoint { + remote-endpoint = <&adx2_in_ep>; + }; + }; + + port@2e { + reg = <0x2e>; + + xbar_adx2_out1_ep: endpoint { + remote-endpoint = <&adx2_out1_ep>; + }; + }; + + port@2f { + reg = <0x2f>; + + xbar_adx2_out2_ep: endpoint { + remote-endpoint = <&adx2_out2_ep>; + }; + }; + + port@30 { + reg = <0x30>; + + xbar_adx2_out3_ep: endpoint { + remote-endpoint = <&adx2_out3_ep>; + }; + }; + + port@31 { + reg = <0x31>; + + xbar_adx2_out4_ep: endpoint { + remote-endpoint = <&adx2_out4_ep>; + }; + }; + + xbar_mixer_in1_port: port@32 { + reg = <0x32>; + + xbar_mixer_in1_ep: endpoint { + remote-endpoint = <&mixer_in1_ep>; + }; + }; + + xbar_mixer_in2_port: port@33 { + reg = <0x33>; + + xbar_mixer_in2_ep: endpoint { + remote-endpoint = <&mixer_in2_ep>; + }; + }; + + xbar_mixer_in3_port: port@34 { + reg = <0x34>; + + xbar_mixer_in3_ep: endpoint { + remote-endpoint = <&mixer_in3_ep>; + }; + }; + + xbar_mixer_in4_port: port@35 { + reg = <0x35>; + + xbar_mixer_in4_ep: endpoint { + remote-endpoint = <&mixer_in4_ep>; + }; + }; + + xbar_mixer_in5_port: port@36 { + reg = <0x36>; + + xbar_mixer_in5_ep: endpoint { + remote-endpoint = <&mixer_in5_ep>; + }; + }; + + xbar_mixer_in6_port: port@37 { + reg = <0x37>; + + xbar_mixer_in6_ep: endpoint { + remote-endpoint = <&mixer_in6_ep>; + }; + }; + + xbar_mixer_in7_port: port@38 { + reg = <0x38>; + + xbar_mixer_in7_ep: endpoint { + remote-endpoint = <&mixer_in7_ep>; + }; + }; + + xbar_mixer_in8_port: port@39 { + reg = <0x39>; + + xbar_mixer_in8_ep: endpoint { + remote-endpoint = <&mixer_in8_ep>; + }; + }; + + xbar_mixer_in9_port: port@3a { + reg = <0x3a>; + + xbar_mixer_in9_ep: endpoint { + remote-endpoint = <&mixer_in9_ep>; + }; + }; + + xbar_mixer_in10_port: port@3b { + reg = <0x3b>; + + xbar_mixer_in10_ep: endpoint { + remote-endpoint = <&mixer_in10_ep>; + }; + }; + + port@3c { + reg = <0x3c>; + + xbar_mixer_out1_ep: endpoint { + remote-endpoint = <&mixer_out1_ep>; + }; + }; + + port@3d { + reg = <0x3d>; + + xbar_mixer_out2_ep: endpoint { + remote-endpoint = <&mixer_out2_ep>; + }; + }; + + port@3e { + reg = <0x3e>; + + xbar_mixer_out3_ep: endpoint { + remote-endpoint = <&mixer_out3_ep>; + }; + }; + + port@3f { + reg = <0x3f>; + + xbar_mixer_out4_ep: endpoint { + remote-endpoint = <&mixer_out4_ep>; + }; + }; + + port@40 { + reg = <0x40>; + + xbar_mixer_out5_ep: endpoint { + remote-endpoint = <&mixer_out5_ep>; + }; + }; + + xbar_ope1_in_port: port@41 { + reg = <0x41>; + + xbar_ope1_in_ep: endpoint { + remote-endpoint = <&ope1_cif_in_ep>; + }; + }; + + port@42 { + reg = <0x42>; + + xbar_ope1_out_ep: endpoint { + remote-endpoint = <&ope1_cif_out_ep>; + }; + }; + + xbar_ope2_in_port: port@43 { + reg = <0x43>; + + xbar_ope2_in_ep: endpoint { + remote-endpoint = <&ope2_cif_in_ep>; + }; + }; + + port@44 { + reg = <0x44>; + + xbar_ope2_out_ep: endpoint { + remote-endpoint = <&ope2_cif_out_ep>; + }; + }; + }; + }; + }; + gpu@57000000 { status = "okay"; vdd-supply = <&gpu_max_reg>; @@ -269,29 +1440,19 @@ }; /* Fixed regulators */ - ts_dvdd: ts_dvdd { + battery_reg: regulator@0 { + status = "okay"; compatible = "regulator-fixed"; - status = "okay"; - regulator-name = "ts_dvdd"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - gpio = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_HIGH>; - enable-active-high; - regulator-enable-ramp-delay = <10000>; - }; - - battery_reg: vdd-ac-bat { - compatible = "regulator-fixed"; - status = "okay"; + reg = <0>; regulator-name = "vdd-ac-bat"; regulator-min-microvolt = <4800000>; regulator-max-microvolt = <4800000>; regulator-always-on; - regulator-boot-on; }; - vdd_3v3: vdd-3v3 { + vdd_3v3: regulator@1 { compatible = "regulator-fixed"; + reg = <1>; regulator-name = "vdd-3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -302,17 +1463,6 @@ regulator-disable-ramp-delay = <10000>; }; - v_vdd5v3: v-vdd5v3 { - compatible = "regulator-fixed"; - status = "okay"; /* Only enabled on Modin/Vali/Fric */ - regulator-name = "v_vdd5v3"; - regulator-min-microvolt = <5300000>; - regulator-max-microvolt = <5300000>; - gpio = <&gpio TEGRA_GPIO(X, 3) 0>; - enable-active-high; - regulator-enable-ramp-delay = <10000>; - }; - max77620_gpio7: avdd-dsi-csi-1v2 { compatible = "regulator-fixed"; regulator-name = "max77620-gpio7"; @@ -326,22 +1476,21 @@ vin-supply = <&max77620_ldo0>; }; - // lcd_bl_en: lcd-bl-en { + // lcd_bl_en: regulator@3 { // compatible = "regulator-fixed"; + // reg = <3>; + // status = "okay"; /* Only enabled on Odin/Modin/Vali */ // regulator-name = "lcd-bl-en"; // regulator-min-microvolt = <1800000>; // regulator-max-microvolt = <1800000>; // gpio = <&gpio TEGRA_GPIO(V, 1) 0>; // regulator-boot-on; /* Must be set for seamless display */ // enable-active-high; - // regulator-always-on; - // regulator-state-mem { - // regulator-off-in-suspend; - // }; // }; - en_vdd_sd: en-vdd-sd { + en_vdd_sd: regulator@4 { compatible = "regulator-fixed"; + reg = <4>; regulator-name = "en-vdd-sd"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; @@ -365,8 +1514,10 @@ }; /* LCD Power Enable -5V. Rohm BD8316GWL. */ - v_navdd_5v0: v-navdd-5v0 { + v_navdd_5v0: regulator@8 { compatible = "regulator-fixed"; + reg = <8>; + status = "okay"; /* Only enabled on Odin/Modin/Vali*/ regulator-name = "v_navdd_5v0"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; @@ -376,10 +1527,96 @@ regulator-enable-ramp-delay = <232>; }; + /* Joycon/Fan power (battery). Maxim MAX8969EWL53+. */ + v_vdd50_a: regulator@9 { + compatible = "regulator-fixed"; + reg = <9>; + regulator-name = "v_vdd50_a"; + regulator-min-microvolt = <5300000>; + regulator-max-microvolt = <5300000>; + gpio = <&gpio TEGRA_GPIO(A, 5) 0>; + enable-active-high; + }; + + /* Joycon/Fan power (usb). DC0 on Odin. Maxim MAX8969EWL53+ on Modin. */ + v_vdd50_b: regulator@0xa { + compatible = "regulator-fixed"; + reg = <10>; + status = "okay"; /* Only enabled on Odin/Modin */ + regulator-name = "v_vdd50_b"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio TEGRA_GPIO(CC, 4) 0>; + enable-active-high; + }; + + /* VBUS power */ + v_vdd5v3: regulator@0xb { + compatible = "regulator-fixed"; + status = "okay"; /* Only enabled on Modin/Vali/Fric */ + regulator-name = "v_vdd5v3"; + regulator-min-microvolt = <5300000>; + regulator-max-microvolt = <5300000>; + gpio = <&gpio TEGRA_GPIO(X, 3) 0>; + enable-active-high; + regulator-enable-ramp-delay = <10000>; + }; + + vdd3v3_gc: regulator@0xc { + compatible = "regulator-fixed"; + status = "disabled"; /* Only on Odin */ + reg = <12>; + regulator-name = "vdd3v3_gc"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio TEGRA_GPIO(E, 5) 0>; + enable-active-high; + regulator-enable-ramp-delay = <472>; + regulator-disable-ramp-delay = <4880>; + vin-supply = <&vdd_3v3>; + }; + + vdd_wlreg_on: regulator@0xd { + compatible = "regulator-fixed"; + reg = <13>; + regulator-name = "vdd-wlreg_on"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&gpio TEGRA_GPIO(H, 1) 0>; + regulator-boot-on; + regulator-always-on; + enable-active-high; + }; + + /* TI TCR2EE48 4.8V */ + en_vdd_jcl_chgr: regulator@0xe { + compatible = "regulator-fixed-sync"; + reg = <14>; + status = "okay"; + regulator-name = "left-jc-reg"; + regulator-min-microvolt = <4800000>; + regulator-max-microvolt = <4800000>; + gpio = <&gpio TEGRA_GPIO(CC, 3) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&v_vdd50_a>; + }; + + /* TI TCR2EE48 4.8V */ + en_vdd_jcr_chgr: regulator@0xf { + compatible = "regulator-fixed-sync"; + reg = <15>; + status = "okay"; + regulator-name = "right-jc-reg"; + regulator-min-microvolt = <4800000>; + regulator-max-microvolt = <4800000>; + gpio = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>; + enable-active-high; + vin-supply = <&v_vdd50_a>; + }; + soctherm@700E2000 { throttle-cfgs { /* PG/ACOK/USB OC pin. CLK_32K_OUT. Used for LED PWM on Vali. */ - /* throttle_oc1: oc1 { // Sticky mode but not supported. nvidia,priority = <16>; nvidia,polarity-active-low = <1>; @@ -389,10 +1626,8 @@ nvidia,cpu-throt-percent = <75>; nvidia,gpu-throt-level = ; }; - */ /* Battery OC pin. GPIO_PL1. Traced but missing resistor. */ - /* throttle_oc2: oc2 { nvidia,priority = <24>; nvidia,polarity-active-low = <1>; @@ -402,94 +1637,84 @@ nvidia,cpu-throt-percent = <75>; nvidia,gpu-throt-level = ; }; - */ /* throttle_oc3: oc3: GPIO_PZ5. Floating. */ }; }; - thermal-zones { - PLL-therm { - status = "okay"; - polling-delay-passive = <500>; - thermal-zone-params { - governor-name = "step_wise"; - }; - trips { - cpu_heavy { - temperature = <94500>; - hysteresis = <0>; - type = "hot"; - writable; - }; - cpu_throttle { - temperature = <90500>; - hysteresis = <0>; - type = "passive"; - writable; - }; - cpu_critical { - temperature = <96000>; - hysteresis = <0>; - type = "critical"; - writable; - }; - dfll_cap_trip0: dfll-cap-trip0 { - temperature = ; - hysteresis = <1000>; /* millicelsius */ - type = "active"; - }; - dfll_cap_trip1: dfll-cap-trip1 { - temperature = ; - hysteresis = <1000>; /* millicelsius */ - type = "active"; - }; - }; - // cooling-maps { - // map0 { - // trip = <&{/thermal-zones/PLL-therm/trips/cpu_heavy}>; - // cdev-type = "tegra-heavy"; - // cooling-device = <&throttle_heavy 1 1>; - // }; - // map1 { - // trip = <&{/thermal-zones/PLL-therm/trips/cpu_throttle}>; - // cdev-type = "cpu-balanced"; - // cooling-device = <&{/bthrot_cdev/cpu_balanced} - // THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; - // }; - // dfll-cap-map0 { - // trip = <&dfll_cap_trip0>; - // cooling-device = <&dfll_cap 1 1>; - // }; - // dfll-cap-map1 { - // trip = <&dfll_cap_trip1>; - // cooling-device = <&dfll_cap 2 2>; - // }; - // }; - }; - Tboard_tegra { - status = "okay"; - polling-delay = <0>; - polling-delay-passive = <5500>; + sound { + status = "okay"; - trips { - board_emergency { - temperature = <85000>; - hysteresis = <2000>; - type = "passive"; - writable; - }; - }; - // cooling-maps { - // map0 { - // trip = <&{/thermal-zones/Tboard_tegra/trips/board_emergency}>; - // cdev-type = "emergency-balanced"; - // cooling-device = <&{/bthrot_cdev/emergency_balanced} - // THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; - // }; - // }; - }; - Tdiode_tegra { + compatible = "nvidia,tegra210-audio-graph-card"; + + dais = /* FE */ + <&admaif1_port>, <&admaif2_port>, <&admaif3_port>, + <&admaif4_port>, <&admaif5_port>, <&admaif6_port>, + <&admaif7_port>, <&admaif8_port>, <&admaif9_port>, + <&admaif10_port>, + /* Router */ + <&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_dmic1_port>, + <&xbar_dmic2_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_adx1_in_port>, <&xbar_adx2_in_port>, + <&xbar_mixer_in1_port>, <&xbar_mixer_in2_port>, + <&xbar_mixer_in3_port>, <&xbar_mixer_in4_port>, + <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>, + <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>, + <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>, + <&xbar_ope1_in_port>, <&xbar_ope2_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>, + <&adx1_out1_port>, <&adx1_out2_port>, + <&adx1_out3_port>, <&adx1_out4_port>, + <&adx2_out1_port>, <&adx2_out2_port>, + <&adx2_out3_port>, <&adx2_out4_port>, + <&mixer_out1_port>, <&mixer_out2_port>, + <&mixer_out3_port>, <&mixer_out4_port>, + <&mixer_out5_port>, + <&ope1_out_port>, <&ope2_out_port>, + /* I/O DAP Ports */ + <&i2s1_port>, <&i2s2_port>, <&dmic1_port>, <&dmic2_port>, <&dmic3_port>; + + label = "Nintendo Switch APE"; + + widgets = "Microphone", "x MIC Jack", + "Microphone", "y MIC", + "Headphone", "x HP Jack", + "Headphone", "y HP", + "Speaker", "x SPK", + "Speaker", "y OUT"; + + routing = /* I2S1 <-> RT5640, I2S2 <--> BCM4356-BT PCM */ + "x AIF1 Playback", "I2S1 DAP-Playback", + "I2S1 DAP-Capture", "x AIF1 Capture", + "y HIFI Playback", "I2S2 DAP-Playback", + "I2S2 DAP-Capture", "y HIFI Capture", + /* RT5640 codec controls */ + "x HP Jack", "x HPOL", + "x HP Jack", "x HPOR", + "x IN1P", "x MIC Jack", + "x SPK", "x SPORP", + "x SPK", "x SPORN", + "x SPK", "x SPOLP", + "x SPK", "x SPOLN", + /* BCM4356-BT PCM controls */ + "y HP", "y OUT", + "y IN", "y MIC"; + }; + + thermal-zones { + + diode-thermal { status = "okay"; polling-delay = <0>; polling-delay-passive = <1100>; @@ -574,44 +1799,6 @@ }; }; cooling-maps { - // map0 { - // trip = <&{/thermal-zones/Tdiode_tegra/trips/soc_critical}>; - // cdev-type = "tegra-shutdown"; - // cooling-device = <&{/soctherm@0x700E2000/throttle@critical} - // THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; - // }; - // map1 { - // trip = <&{/thermal-zones/Tdiode_tegra/trips/soc_emergency}>; - // cdev-type = "emergency-balanced"; - // cooling-device = <&{/bthrot_cdev/emergency_balanced} - // THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; - // }; - // gpu-scaling-map1 { - // trip = <&gpu_scaling_trip1>; - // cooling-device = <&gpu_scaling_cdev 1 1>; - // }; - // gpu-scaling-map2 { - // trip = <&gpu_scaling_trip2>; - // cooling-device = <&gpu_scaling_cdev 2 2>; - // }; - // gpu_scaling_map3 { - // trip = <&gpu_scaling_trip3>; - // cooling-device = <&gpu_scaling_cdev 3 3>; - // }; - // gpu-scaling-map4 { - // trip = <&gpu_scaling_trip4>; - // cooling-device = <&gpu_scaling_cdev 4 4>; - // }; - // gpu-scaling-map5 { - // trip = <&gpu_scaling_trip5>; - // cooling-device = <&gpu_scaling_cdev 5 5>; - // }; - - // gpu-vmax-map1 { - // trip = <&gpu_vmax_trip1>; - // cooling-device = <&gpu_vmax_cdev 1 1>; - // }; - core_dvfs_floor_map0 { trip = <&core_dvfs_floor_trip0>; cooling-device = <&core_dvfs_floor 1 1>; @@ -625,27 +1812,115 @@ trip = <&dfll_floor_trip0>; cooling-device = <&dfll_floor 1 1>; }; - // map2 { - // trip = <&{/thermal-zones/Tdiode_tegra/trips/gpu_throttle}>; - // cdev-type = "gpu-balanced"; - // cooling-device = <&{/bthrot_cdev/gpu_balanced} - // THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; - // }; }; }; - AO-therm { + + pllx-thermal { + polling-delay-passive = <500>; + + trips { + cpu_heavy { + temperature = <94500>; + hysteresis = <0>; + type = "hot"; + writable; + }; + cpu_throttle { + temperature = <90500>; + hysteresis = <0>; + type = "passive"; + writable; + }; + cpu_critical { + temperature = <96000>; + hysteresis = <0>; + type = "critical"; + writable; + }; + dfll_cap_trip0: dfll-cap-trip0 { + temperature = ; + hysteresis = <1000>; /* millicelsius */ + type = "active"; + }; + dfll_cap_trip1: dfll-cap-trip1 { + temperature = ; + hysteresis = <1000>; /* millicelsius */ + type = "active"; + }; + }; + + cooling-maps { + map0 { + trip = <&{/thermal-zones/pllx-thermal/trips/cpu_heavy}>; + cdev-type = "tegra-heavy"; + cooling-device = <&throttle_heavy 1 1>; + }; + dfll-cap-map0 { + trip = <&dfll_cap_trip0>; + cooling-device = <&dfll_cap 1 1>; + }; + dfll-cap-map1 { + trip = <&dfll_cap_trip1>; + cooling-device = <&dfll_cap 2 2>; + }; + }; + }; + + pmic-thermal { + polling-delay = <0>; + polling-delay-passive = <0>; + + thermal-sensors = <&pmic_b>; + trips { + die_temp_thresh: hot-die { + temperature = <120000>; + type = "active"; + hysteresis = <0>; + }; + }; + + cooling-maps { + map0 { + trip = <&die_temp_thresh>; + cooling-device = <&dummy_cool_dev THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <100>; + cdev-type = "emergency-balanced"; + }; + }; + }; + + charger-thermal { status = "okay"; + polling-delay = <0>; + polling-delay-passive = <0>; + + thermal-sensors = <&battery_charger>; + trips { + die_temp_thresh_chg: hot-die { + temperature = <120000>; + type = "active"; + hysteresis = <0>; + }; + }; + + cooling-maps { + map0 { + trip = <&die_temp_thresh_chg>; + cooling-device = <&dummy_cool_dev THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <100>; + cdev-type = "emergency-balanced"; + }; + }; }; }; pcie@1003000 { status = "okay"; - avdd-pll-uerefe-supply = <&max77620_ldo1>; hvddio-pex-supply = <&max77620_sd3>; dvddio-pex-supply = <&max77620_ldo1>; - dvdd-pex-pll-supply = <&max77620_ldo1>; - hvdd-pex-pll-e-supply = <&max77620_sd3>; vddio-pex-ctl-supply = <&max77620_sd3>; pci@1,0 { @@ -653,16 +1928,20 @@ phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>, /* Referred to plat config */ <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>; phy-names = "pcie-0", "pcie-1"; - status = "disabled"; + status = "okay"; }; pci@2,0 { status = "okay"; + nvidia,num-lanes = <1>; phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>; phy-names = "pcie-0"; - brcmf { /* PCIE-0 (Port 1) */ + wifi@1 { /* PCIE-0 (Port 1) */ + status = "okay"; compatible = "brcm,bcm4356-fmac"; + reg = <1>; + reset-gpios = ; }; }; }; @@ -747,45 +2026,6 @@ }; }; - pinmux@700008d4 { - // dsi_ab_pad_default: dsi_ab_pad_default { - // dsi_ab_pad_enable { - // nvidia,pins = "pad_dsi_ab"; - // nvidia,pad-power = ; - // }; - // }; - // dsi_cd_pad_default: dsi_cd_pad_default { - // dsi_cd_pad_enable { - // nvidia,pins = "pad_dsi_cd"; - // nvidia,pad-power = ; - // }; - // }; - // dsi_ab_pad_idle: dsi_ab_pad_idle { - // dsi_ab_pad_disable { - // nvidia,pins = "pad_dsi_ab"; - // nvidia,pad-power = ; - // }; - // }; - // dsi_cd_pad_idle: dsi_cd_pad_idle { - // dsi_cd_pad_disable { - // nvidia,pins = "pad_dsi_cd"; - // nvidia,pad-power = ; - // }; - // }; - - // /* Always on for T210B01 NX */ - // sdmmc1_schmitt_disable { - // sdmmc1 { - // nvidia,schmitt = ; - // }; - // }; - // sdmmc1_clk_schmitt_disable { - // sdmmc1 { - // nvidia,schmitt = ; - // }; - // }; - }; - pmc@7000e400 { nvidia,invert-interrupt; nvidia,suspend-mode = <0>; @@ -796,48 +2036,6 @@ nvidia,core-power-req-active-high; nvidia,sys-clock-req-active-high; status = "okay"; - - // TODO - // bootrom-commands { - // reset-commands { - // nvidia,command-retries-count = <2>; - // nvidia,delay-between-commands-us = <10>; - // nvidia,wait-before-start-bus-clear-us = <10>; - // #address-cells = <1>; - // #size-cells = <0>; - - // commands@4-0068 { - // nvidia,command-names = "r2p-setup"; - // reg = <0x68>; - // nvidia,enable-8bit-register; - // nvidia,enable-8bit-data; - // nvidia,controller-type-i2c; - // nvidia,controller-id = <4>; - // nvidia,enable-controller-reset; - // nvidia,write-commands = < - // 0x13 0x00 /* r2p enc 0 */ - // 0x1A 0x00 /* r2p enc 1 */ - // 0x11 0x00 /* r2p mgc 0 */ - // 0x18 0x00 /* r2p mgc 1 */ - // 0x04 0x01 /* Update RTC regs */ - // >; - // }; - // commands@4-003c { - // nvidia,command-names = "pmic-rails"; - // reg = <0x3c>; - // nvidia,enable-8bit-register; - // nvidia,enable-8bit-data; - // nvidia,controller-type-i2c; - // nvidia,controller-id = <4>; - // nvidia,enable-controller-reset; - // nvidia,write-commands = < - // 0x16 0x20 /* Set 1.0V and disable SD0 */ - // 0x42 0x99 /* Wake reasons: SFT_RST/ACOK/LID/EN0 */ - // 0x41 0x80 /* Reboot */ - // >; - // }; - // }; - // }; }; clk32k_in: clock-32k { @@ -869,6 +2067,8 @@ reg = <0>; status = "okay"; + rotation = <270>; + compatible = "nintendo,panel-nx-dsi"; reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; backlight = <&backlight>; @@ -901,7 +2101,7 @@ extcon-cables = <&bm92t 3>; extcon-cable-names = "typec1"; - //nvidia,outputs = <&sor1>;pa + nvidia,outputs = <&sor1>; }; }; @@ -1341,4 +2541,19 @@ // clock-names = "cap-clk"; // status = "disabled"; // }; + dummy_cool_dev: dummy-cool-dev { + compatible = "dummy-cooling-dev"; + #cooling-cells = <2>; /* min followed by max */ + }; +}; + +&spdif_dit1 { + sound-name-prefix = "x"; + + port { + spdif1_ep: endpoint { + remote-endpoint = <&i2s2_dap_ep>; + mclk-fs = <256>; + }; + }; }; diff --git a/tegra210b01-vali.dts b/tegra210b01-vali.dts index 107ada6..8e3c0b0 100644 --- a/tegra210b01-vali.dts +++ b/tegra210b01-vali.dts @@ -9,10 +9,1046 @@ pinmux: pinmux@700008d4 { status = "okay"; - pinctrl-names = "default"; + pinctrl-names = "default", "drive"; pinctrl-0 = <&pinmux_default>; + pinctrl-1 = <&drive_default>; pinmux_default: common { + /* SFIO Pin Configuration */ + aud_mclk_pbb0 { /* 3180 */ + nvidia,pins = "aud_mclk_pbb0"; + nvidia,function = "aud"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dvfs_pwm_pbb1 { /* 3184 */ + nvidia,pins = "dvfs_pwm_pbb1"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap1_din_pb1 { /* 3128 */ + nvidia,pins = "dap1_din_pb1"; + nvidia,function = "i2s1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap1_dout_pb2 { /* 312c */ + nvidia,pins = "dap1_dout_pb2"; + nvidia,function = "i2s1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap1_fs_pb0 { /* 3124 */ + nvidia,pins = "dap1_fs_pb0"; + nvidia,function = "i2s1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap1_sclk_pb3 { /* 3130 */ + nvidia,pins = "dap1_sclk_pb3"; + nvidia,function = "i2s1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dmic1_clk_pe0 { /* 30a4 */ + nvidia,pins = "dmic1_clk_pe0"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dmic1_dat_pe1 { /* 30a8 */ + nvidia,pins = "dmic1_dat_pe1"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dmic2_clk_pe2 { /* 30ac */ + nvidia,pins = "dmic2_clk_pe2"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dmic2_dat_pe3 { /* 30b0 */ + nvidia,pins = "dmic2_dat_pe3"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* SD Card Power Enable */ + dmic3_clk_pe4 { /* 30b4 */ + nvidia,pins = "dmic3_clk_pe4"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Gamecard Power Enable */ + dmic3_dat_pe5 { /* 30b8 */ + nvidia,pins = "dmic3_dat_pe5"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + gen3_i2c_scl_pf0 { /* 30cc */ + nvidia,pins = "gen3_i2c_scl_pf0"; + nvidia,function = "i2c3"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + nvidia,lpdr = ; + }; + + gen3_i2c_sda_pf1 { /* 30d0 */ + nvidia,pins = "gen3_i2c_sda_pf1"; + nvidia,function = "i2c3"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + nvidia,lpdr = ; + }; + + cam_i2c_scl_ps2 { /* 30d4 */ + nvidia,pins = "cam_i2c_scl_ps2"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + /* Gamecard Detect */ + cam_i2c_sda_ps3 { /* 30d8 */ + nvidia,pins = "cam_i2c_sda_ps3"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + cam1_mclk_ps0 { /* 3154 */ + nvidia,pins = "cam1_mclk_ps0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Charger IC (BQ24193) Battery Charge Status */ + cam2_mclk_ps1 { /* 3158 */ + nvidia,pins = "cam2_mclk_ps1"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pex_l0_clkreq_n_pa1 { /* 303c PARKED */ + nvidia,pins = "pex_l0_clkreq_n_pa1"; + nvidia,function = "pe0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + pex_l0_rst_n_pa0 { /* 3038 */ + nvidia,pins = "pex_l0_rst_n_pa0"; + nvidia,function = "pe0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + pex_l1_clkreq_n_pa4 { /* 3048 */ + nvidia,pins = "pex_l1_clkreq_n_pa4"; + nvidia,function = "pe1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + pex_l1_rst_n_pa3 { /* 3044 */ + nvidia,pins = "pex_l1_rst_n_pa3"; + nvidia,function = "pe1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + pex_wake_n_pa2 { /* 3040 */ + nvidia,pins = "pex_wake_n_pa2"; + nvidia,function = "pe"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + sdmmc1_clk_pm0 { /* 3000 */ + nvidia,pins = "sdmmc1_clk_pm0"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc1_cmd_pm1 { /* 3004 */ + nvidia,pins = "sdmmc1_cmd_pm1"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,schmitt = ; + }; + + sdmmc1_dat0_pm5 { /* 3008 */ + nvidia,pins = "sdmmc1_dat0_pm5"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,schmitt = ; + }; + + sdmmc1_dat1_pm4 { /* 300C */ + nvidia,pins = "sdmmc1_dat1_pm4"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,schmitt = ; + }; + + sdmmc1_dat2_pm3 { /* 3010 */ + nvidia,pins = "sdmmc1_dat2_pm3"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,schmitt = ; + }; + + sdmmc1_dat3_pm2 { /* 3014 */ + nvidia,pins = "sdmmc1_dat3_pm2"; + nvidia,function = "sdmmc1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,schmitt = ; + }; + + sdmmc3_clk_pp0 { /* 301c */ + nvidia,pins = "sdmmc3_clk_pp0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc3_cmd_pp1 { /* 3020 */ + nvidia,pins = "sdmmc3_cmd_pp1"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc3_dat0_pp5 { /* 3024 */ + nvidia,pins = "sdmmc3_dat0_pp5"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc3_dat1_pp4 { /* 3028 */ + nvidia,pins = "sdmmc3_dat1_pp4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc3_dat2_pp3 { /* 302C */ + nvidia,pins = "sdmmc3_dat2_pp3"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + sdmmc3_dat3_pp2 { /* 3030 */ + nvidia,pins = "sdmmc3_dat3_pp2"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + shutdown { /* 3178 */ + nvidia,pins = "shutdown"; + nvidia,function = "shutdown"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + lcd_te_py2 { /* 31f8 */ + nvidia,pins = "lcd_te_py2"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + // /* LCD Backlight PWM */ + // lcd_bl_pwm_pv0 { /* 31fc */ + // nvidia,pins = "lcd_bl_pwm_pv0"; + // nvidia,function = "pwm0"; + // nvidia,pull = ; + // nvidia,tristate = ; + // nvidia,enable-input = ; + // }; + + /* Fan PWM */ + lcd_gpio2_pv4 { /* 320c */ + nvidia,pins = "lcd_gpio2_pv4"; + nvidia,function = "pwm1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pwr_i2c_scl_py3 { /* 30dc */ + nvidia,pins = "pwr_i2c_scl_py3"; + nvidia,function = "i2cpmu"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + pwr_i2c_sda_py4 { /* 30e0 */ + nvidia,pins = "pwr_i2c_sda_py4"; + nvidia,function = "i2cpmu"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + clk_32k_in { /* 3160 */ + nvidia,pins = "clk_32k_in"; + nvidia,function = "clk"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Notification LED Clock */ + clk_32k_out_py5 { /* 3164 */ + nvidia,pins = "clk_32k_out_py5"; + nvidia,function = "blink"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* SD Card Detect */ + pz1 { /* 3280 */ + nvidia,pins = "pz1"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Audio Codec (ALC5639) Power Enable */ + pz4 { /* 328c */ + nvidia,pins = "pz4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pz5 { /* 3290 */ + nvidia,pins = "pz5"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + clk_req { /* 316c */ + nvidia,pins = "clk_req"; + nvidia,function = "sys"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + core_pwr_req { /* 317c */ + nvidia,pins = "core_pwr_req"; + nvidia,function = "core"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + cpu_pwr_req { /* 3170 */ + nvidia,pins = "cpu_pwr_req"; + nvidia,function = "cpu"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pwr_int_n { /* 3174 */ + nvidia,pins = "pwr_int_n"; + nvidia,function = "pmi"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap4_din_pj5 { /* 3148 */ + nvidia,pins = "dap4_din_pj5"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* NFC Power Enable */ + dap4_dout_pj6 { /* 314c */ + nvidia,pins = "dap4_dout_pj6"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* NFC IRQ */ + dap4_fs_pj4 { /* 3144 */ + nvidia,pins = "dap4_fs_pj4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Touchscreen (4CD60D) Reset */ + dap4_sclk_pj7 { /* 3150 */ + nvidia,pins = "dap4_sclk_pj7"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + gen1_i2c_scl_pj1 { /* 30bc */ + nvidia,pins = "gen1_i2c_scl_pj1"; + nvidia,function = "i2c1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + gen1_i2c_sda_pj0 { /* 30c0 */ + nvidia,pins = "gen1_i2c_sda_pj0"; + nvidia,function = "i2c1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + gen2_i2c_scl_pj2 { /* 30c4 */ + nvidia,pins = "gen2_i2c_scl_pj2"; + nvidia,function = "i2c2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + gen2_i2c_sda_pj3 { /* 30c8 */ + nvidia,pins = "gen2_i2c_sda_pj3"; + nvidia,function = "i2c2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + uart1_tx_pu0 { /* 30e4 */ + nvidia,pins = "uart1_tx_pu0"; + nvidia,function = "uarta"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart1_rx_pu1 { /* 30e8 */ + nvidia,pins = "uart1_rx_pu1"; + nvidia,function = "uarta"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart1_rts_pu2 { /* 30ec */ + nvidia,pins = "uart1_rts_pu2"; + nvidia,function = "uarta"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart1_cts_pu3 { /* 30f0 */ + nvidia,pins = "uart1_cts_pu3"; + nvidia,function = "uarta"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + jtag_rtck { /* 315c */ + nvidia,pins = "jtag_rtck"; + nvidia,function = "jtag"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth GPIO2 */ + pk0 { /* 3254 */ + nvidia,pins = "pk0"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth GPIO3 */ + pk1 { /* 3258 */ + nvidia,pins = "pk1"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth GPIO4 */ + pk2 { /* 325c */ + nvidia,pins = "pk2"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Joycon (R) Charge Enable */ + pk3 { /* 3260 */ + nvidia,pins = "pk3"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Joycon (L) Charge Enable */ + spdif_in_pcc3 { /* 31a4 */ + nvidia,pins = "spdif_in_pcc3"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pl1 { /* 3278 */ + nvidia,pins = "pl1"; + nvidia,function = "soc"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi1_mosi_pc0 { /* 3050 */ + nvidia,pins = "spi1_mosi_pc0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi1_miso_pc1 { /* 3054 */ + nvidia,pins = "spi1_miso_pc1"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi1_sck_pc2 { /* 3058 */ + nvidia,pins = "spi1_sck_pc2"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi1_cs0_pc3 { /* 305c */ + nvidia,pins = "spi1_cs0_pc3"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi1_cs1_pc4 { /* 3060 */ + nvidia,pins = "spi1_cs1_pc4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* For Sio only access */ + spi4_mosi_pc7 { /* 3078 */ + nvidia,pins = "spi4_mosi_pc7"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi4_miso_pd0 { /* 307c */ + nvidia,pins = "spi4_miso_pd0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi4_sck_pc5 { /* 3080 */ + nvidia,pins = "spi4_sck_pc5"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + spi4_cs0_pc6 { /* 0x3084 */ + nvidia,pins = "spi4_cs0_pc6"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + /* End of Sio only access */ + + uart2_tx_pg0 { /* 30f4 */ + nvidia,pins = "uart2_tx_pg0"; + nvidia,function = "uartb"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart2_rx_pg1 { /* 30f8 */ + nvidia,pins = "uart2_rx_pg1"; + nvidia,function = "uartb"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart2_rts_pg2 { /* 30fc */ + nvidia,pins = "uart2_rts_pg2"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart2_cts_pg3 { /* 3100 */ + nvidia,pins = "uart2_cts_pg3"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart3_tx_pd1 { /* 3104 */ + nvidia,pins = "uart3_tx_pd1"; + nvidia,function = "uartc"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart3_rx_pd2 { /* 3108 */ + nvidia,pins = "uart3_rx_pd2"; + nvidia,function = "uartc"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart3_rts_pd3 { /* 310C */ + nvidia,pins = "uart3_rts_pd3"; + nvidia,function = "uartc"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart3_cts_pd4 { /* 3110 */ + nvidia,pins = "uart3_cts_pd4"; + nvidia,function = "uartc"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart4_tx_pi4 { /* 3114 */ + nvidia,pins = "uart4_tx_pi4"; + nvidia,function = "uartd"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart4_rx_pi5 { /* 3118 */ + nvidia,pins = "uart4_rx_pi5"; + nvidia,function = "uartd"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart4_rts_pi6 { /* 311c */ + nvidia,pins = "uart4_rts_pi6"; + nvidia,function = "uartd"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + uart4_cts_pi7 { /* 3120 */ + nvidia,pins = "uart4_cts_pi7"; + nvidia,function = "uartd"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap2_din_paa2 { /* 3138 */ + nvidia,pins = "dap2_din_paa2"; + nvidia,function = "i2s2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap2_dout_paa3 { /* 313c */ + nvidia,pins = "dap2_dout_paa3"; + nvidia,function = "i2s2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap2_fs_paa0 { /* 3134 */ + nvidia,pins = "dap2_fs_paa0"; + nvidia,function = "i2s2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + dap2_sclk_paa1 { /* 3140 */ + nvidia,pins = "dap2_sclk_paa1"; + nvidia,function = "i2s2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* 5V Regulator - USB */ + usb_vbus_en0_pcc4 { /* 31a8 */ + nvidia,pins = "usb_vbus_en0_pcc4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + /* Sio POR */ + usb_vbus_en1_pcc5 { /* 31ac */ + nvidia,pins = "usb_vbus_en1_pcc5"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + hdmi_cec_pcc0 { /* 3198 */ + nvidia,pins = "hdmi_cec_pcc0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + /* GPIO Pin Configuration */ + dvfs_clk_pbb2 { /* 3188 */ + nvidia,pins = "dvfs_clk_pbb2"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Gamecard Reset */ + gpio_x1_aud_pbb3 { /* 318c */ + nvidia,pins = "gpio_x1_aud_pbb3"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Audio Codec (ALC5639) Alert */ + gpio_x3_aud_pbb4 { /* 3190 */ + nvidia,pins = "gpio_x3_aud_pbb4"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Joycon (L) Wake Detect */ + pe6 { /* 3248 */ + nvidia,pins = "pe6"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + cam_rst_ps4 { /* 31e0 */ + nvidia,pins = "cam_rst_ps4"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + cam_af_en_ps5 { /* 31e4 */ + nvidia,pins = "cam_af_en_ps5"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Charger IC (BQ24193) Battery Charge Enable */ + cam_flash_en_ps6 { /* 31e8 */ + nvidia,pins = "cam_flash_en_ps6"; + nvidia,function = "rsvd2"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Fan Tachometer */ + cam1_pwdn_ps7 { /* 31ec */ + nvidia,pins = "cam1_pwdn_ps7"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Sio BOOT0 */ + cam2_pwdn_pt0 { /* 31f0 */ + nvidia,pins = "cam2_pwdn_pt0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Sio RST */ + cam1_strobe_pt1 { /* 31f4 */ + nvidia,pins = "cam1_strobe_pt1"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* 5V Regulator - Battery */ + // pa5 { /* 304c */ + // nvidia,pins = "pa5"; + // nvidia,function = "rsvd1"; + // nvidia,pull = ; + // nvidia,tristate = ; + // nvidia,enable-input = ; + // }; + + als_prox_int_px3 { /* 3228 */ + nvidia,pins = "als_prox_int_px3"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Temperature Sensor (TMP451) Alert */ + temp_alert_px4 { /* 322c */ + nvidia,pins = "temp_alert_px4"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Motion IRQ */ + motion_int_px2 { /* 3224 */ + nvidia,pins = "motion_int_px2"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Audio Codec (ALC5639) Headphone Detect */ + touch_rst_pv6 { /* 3214 */ + nvidia,pins = "touch_rst_pv6"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Sio ext2 clk input */ + touch_clk_pv7 { /* 3218 */ + nvidia,pins = "touch_clk_pv7"; + nvidia,function = "touch"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Touchscreen (4CD60D) IRQ */ + touch_int_px1 { /* 3220 */ + nvidia,pins = "touch_int_px1"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + modem_wake_ap_px0 { /* 321c */ + nvidia,pins = "modem_wake_ap_px0"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Power Button */ + button_power_on_px5 { /* 3230 */ + nvidia,pins = "button_power_on_px5"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Volume Up Button */ + button_vol_up_px6 { /* 3234 */ + nvidia,pins = "button_vol_up_px6"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Volume Down Button */ + button_vol_down_px7 { /* 3238 */ + nvidia,pins = "button_vol_down_px7"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Home Button (RCM) */ + button_home_py1 { /* 3240 */ + nvidia,pins = "button_home_py1"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* LCD Backlight Power Enable */ + // lcd_bl_en_pv1 { /* 3200 */ + // nvidia,pins = "lcd_bl_en_pv1"; + // nvidia,function = "rsvd0"; + // nvidia,pull = ; + // nvidia,tristate = ; + // nvidia,enable-input = ; + // }; + + /* LCD Reset */ + lcd_rst_pv2 { /* 3204 */ + nvidia,pins = "lcd_rst_pv2"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + /* USB-PD (BM92T36) Reset */ ap_ready_pv5 { /* 3210 */ nvidia,pins = "ap_ready_pv5"; @@ -22,6 +1058,24 @@ nvidia,enable-input = ; }; + /* Charger IC (BQ24193) IRQ */ + pz0 { /* 327c */ + nvidia,pins = "pz0"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* SD Card Write Protect */ + pz3 { /* 3288 */ + nvidia,pins = "pz3"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + /* USB-PD (BM92T36) IRQ */ pk4 { /* 3264 */ nvidia,pins = "pk4"; @@ -39,20 +1093,429 @@ nvidia,tristate = ; nvidia,enable-input = ; }; + + /* PMIC CPU (MAX77621_CPU) IRQ */ + pk6 { /* 326c */ + nvidia,pins = "pk6"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* NFC Reset */ + pk7 { /* 3270 */ + nvidia,pins = "pk7"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pl0 { /* 3274 */ + nvidia,pins = "pl0"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Wi-Fi RF Disable */ + wifi_en_ph0 { /* 31b4 */ + nvidia,pins = "wifi_en_ph0"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Wi-Fi Reset */ + wifi_rst_ph1 { /* 31b8 */ + nvidia,pins = "wifi_rst_ph1"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Wi-Fi Wake Host */ + wifi_wake_ap_ph2 { /* 31bc */ + nvidia,pins = "wifi_wake_ap_ph2"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth - AP -> Wake BT Module */ + ap_wake_bt_ph3 { /* 31c0 */ + nvidia,pins = "ap_wake_bt_ph3"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth Reset */ + bt_rst_ph4 { /* 31c4 */ + nvidia,pins = "bt_rst_ph4"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth - BT Module -> Wake AP */ + bt_wake_ap_ph5 { /* 31c8 */ + nvidia,pins = "bt_wake_ap_ph5"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Joycon (R) Wake Detect */ + ph6 { /* 3250 */ + nvidia,pins = "ph6"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Bluetooth GPIO5 */ + ap_wake_nfc_ph7 { /* 31cc */ + nvidia,pins = "ap_wake_nfc_ph7"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* LCD Power Enable +5V */ + nfc_en_pi0 { /* 31d0 */ + nvidia,pins = "nfc_en_pi0"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* LCD Power Enable -5V */ + nfc_int_pi1 { /* 31d4 */ + nvidia,pins = "nfc_int_pi1"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + gps_en_pi2 { /* 31d8 */ + nvidia,pins = "gps_en_pi2"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + pcc7 { /* 3194 */ + nvidia,pins = "pcc7"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + dp_hpd0_pcc6 { /* 31b0 */ + nvidia,pins = "dp_hpd0_pcc6"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + hdmi_int_dp_hpd_pcc1 { /* 319c */ + nvidia,pins = "hdmi_int_dp_hpd_pcc1"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + nvidia,io-high-voltage = ; + }; + + /* Fuel Gauge IC (MAX17050) IRQ */ + button_slide_sw_py0 { /* 323c */ + nvidia,pins = "button_slide_sw_py0"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Sio IRQ */ + pe7 { /* 324c */ + nvidia,pins = "pe7"; + nvidia,function = "rsvd0"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + + /* Sio HOME button */ + lcd_gpio1_pv3 { /* 3208 */ + nvidia,pins = "lcd_gpio1_pv3"; + nvidia,function = "rsvd1"; + nvidia,pull = ; + nvidia,tristate = ; + nvidia,enable-input = ; + }; + }; + + drive_default: drive { + aud_mclk_pbb0 { + nvidia,pins = "aud_mclk_pbb0"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + cam1_mclk_ps0 { + nvidia,pins = "cam1_mclk_ps0"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + cam2_mclk_ps1 { + nvidia,pins = "cam2_mclk_ps1"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + cam_af_en_ps5 { + nvidia,pins = "cam_af_en_ps5"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + cam_flash_en_ps6 { + nvidia,pins = "cam_flash_en_ps6"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + cam_i2c_scl_ps2 { + nvidia,pins = "cam_i2c_scl_ps2"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + cam_i2c_sda_ps3 { + nvidia,pins = "cam_i2c_sda_ps3"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + dmic3_clk_pe4 { + nvidia,pins = "dmic3_clk_pe4"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x1F>; + }; + dmic3_dat_pe5 { + nvidia,pins = "dmic3_dat_pe5"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x1F>; + }; + dap4_din_pj5 { + nvidia,pins = "dap4_din_pj5"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dap4_dout_pj6 { + nvidia,pins = "dap4_dout_pj6"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dap4_fs_pj4 { + nvidia,pins = "dap4_fs_pj4"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dap4_sclk_pj7 { + nvidia,pins = "dap4_sclk_pj7"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dmic1_clk_pe0 { + nvidia,pins = "dmic1_clk_pe0"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dmic1_dat_pe1 { + nvidia,pins = "dmic1_dat_pe1"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dmic2_clk_pe2 { + nvidia,pins = "dmic2_clk_pe2"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + dmic2_dat_pe3 { + nvidia,pins = "dmic2_dat_pe3"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + touch_clk_pv7 { + nvidia,pins = "touch_clk_pv7"; + nvidia,pull-down-strength = <0x14>; + nvidia,pull-up-strength = <0x14>; + }; + gen1_i2c_scl_pj1 { + nvidia,pins = "gen1_i2c_scl_pj1"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + gen1_i2c_sda_pj0 { + nvidia,pins = "gen1_i2c_sda_pj0"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + gen2_i2c_scl_pj2 { + nvidia,pins = "gen2_i2c_scl_pj2"; + nvidia,pull-down-strength = <0x4>; + nvidia,pull-up-strength = <0x00>; + }; + gen2_i2c_sda_pj3 { + nvidia,pins = "gen2_i2c_sda_pj3"; + nvidia,pull-down-strength = <0x4>; + nvidia,pull-up-strength = <0x00>; + }; + gen3_i2c_scl_pf0 { + nvidia,pins = "gen3_i2c_scl_pf0"; + nvidia,pull-down-strength = <0x7>; + nvidia,pull-up-strength = <0x00>; + }; + gen3_i2c_sda_pf1 { + nvidia,pins = "gen3_i2c_sda_pf1"; + nvidia,pull-down-strength = <0x7>; + nvidia,pull-up-strength = <0x00>; + }; + pwr_i2c_scl_py3 { + nvidia,pins = "pwr_i2c_scl_py3"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + pwr_i2c_sda_py4 { + nvidia,pins = "pwr_i2c_sda_py4"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x00>; + }; + spi1_cs0_pc3 { + nvidia,pins = "spi1_cs0_pc3"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi1_cs1_pc4 { + nvidia,pins = "spi1_cs1_pc4"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi1_miso_pc1 { + nvidia,pins = "spi1_miso_pc1"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi1_mosi_pc0 { + nvidia,pins = "spi1_mosi_pc0"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi1_sck_pc2 { + nvidia,pins = "spi1_sck_pc2"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi2_cs0_pb7 { + nvidia,pins = "spi2_cs0_pb7"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi2_cs1_pdd0 { + nvidia,pins = "spi2_cs1_pdd0"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi2_miso_pb5 { + nvidia,pins = "spi2_miso_pb5"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi2_mosi_pb4 { + nvidia,pins = "spi2_mosi_pb4"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + spi2_sck_pb6 { + nvidia,pins = "spi2_sck_pb6"; + nvidia,pull-down-strength = <0x00>; + nvidia,pull-up-strength = <0x00>; + }; + dvfs_clk_pbb2 { + nvidia,pins = "dvfs_clk_pbb2"; + nvidia,pull-down-strength = <0x1F>; + nvidia,pull-up-strength = <0x1F>; + }; + dvfs_pwm_pbb1 { + nvidia,pins = "dvfs_pwm_pbb1"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + pz0 { + nvidia,pins = "pz0"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + pz1 { + nvidia,pins = "pz1"; + nvidia,pull-down-strength = <0x10>; + nvidia,pull-up-strength = <0x10>; + }; + gpio_x1_aud_pbb3 { + nvidia,pins = "gpio_x1_aud_pbb3"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + gpio_x3_aud_pbb4 { + nvidia,pins = "gpio_x3_aud_pbb4"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + uart3_tx_pd1 { + nvidia,pins = "uart3_tx_pd1"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + uart3_rx_pd2 { + nvidia,pins = "uart3_rx_pd2"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + uart3_rts_pd3 { + nvidia,pins = "uart3_rts_pd3"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; + uart3_cts_pd4 { + nvidia,pins = "uart3_cts_pd4"; + nvidia,pull-down-strength = <0x04>; + nvidia,pull-up-strength = <0x14>; + }; }; }; - /* Joycon/Fan power (usb) */ - v_vdd50_b: v-vdd50-b { + v_vdd50_b: regulator@0xa { status = "disabled"; /* Only enabled on Odin/Modin */ }; - en_vdd_jcl_chgr: left-joycon-charger { + en_vdd_jcl_chgr: regulator@0xe { status = "disabled"; /* Only enabled on Odin/Modin/Fric */ }; - en_vdd_jcr_chgr: right-joycon-charger { + en_vdd_jcr_chgr: regulator@0xf { status = "disabled"; /* Only enabled on Odin/Modin/Fric */ }; @@ -141,12 +1604,9 @@ xusb: usb@70090000 { status = "okay"; - phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>, - <&{/padctl@7009f000/pads/pcie/lanes/pcie-5}>; - phy-names = "usb2-0", "usb3-0"; - - extcon = <&bm92t 0>; - extcon-cable-names = "vbus"; + phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>;//, + //<&{/padctl@7009f000/pads/pcie/lanes/pcie-5}>; + phy-names = "usb2-0";//, "usb3-0"; avdd-usb-supply = <&vdd_3v3>; dvddio-pex-supply = <&max77620_ldo1>; @@ -160,9 +1620,6 @@ //<&{/padctl@7009f000/pads/pcie/lanes/pcie-5}>; phy-names = "usb2-0";//, "usb3-0"; - extcon = <&bm92t 1>; - extcon-cable-names = "id"; - hvdd-usb-supply = <&vdd_3v3>; avddio-usb-supply = <&max77620_ldo1>; }; @@ -175,4 +1632,11 @@ dvdd-pex-pll-supply = <&max77620_ldo1>; hvdd-pex-pll-e-supply = <&max77620_sd3>; }; + + serial@70006300 { + bluetooth { + vbat-supply = <&battery_reg>; + vddio-supply = <&max77620_sd3>; + }; + }; };