Initial nx device trees

This commit is contained in:
Aaron Kling
2025-07-07 00:58:53 -05:00
parent 6f1524c5ac
commit 3c056c0f25
5 changed files with 1563 additions and 0 deletions

View File

@@ -3,7 +3,762 @@
/dts-v1/; /dts-v1/;
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/mfd/max77620.h>
#include "tegra210.dtsi" #include "tegra210.dtsi"
/ { / {
model = "Nintendo Switch (2017)";
compatible = "nintendo,odin", "nintendo,nx", "nvidia,tegra210";
aliases {
rtc0 = "/i2c@7000d000/pmic@3c";
rtc1 = "/rtc@7000e000";
serial0 = &uarta;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x1 0x0>;
};
pcie@1003000 {
status = "okay";
hvddio-pex-supply = <&vdd_1v8>;
dvddio-pex-supply = <&vdd_pex_1v05>;
vddio-pex-ctl-supply = <&vdd_1v8>;
pci@1,0 {
phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>,
<&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>,
<&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>,
<&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
phy-names = "pcie-0", "pcie-1", "pcie-2", "pcie-3";
nvidia,num-lanes = <4>;
status = "okay";
};
pci@2,0 {
phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>;
phy-names = "pcie-0";
status = "okay";
wifi@0,0 {
compatible = "brcm,bcm4356-fmac", "brcm,bcm4329-fmac";
};
};
};
host1x@50000000 {
dpaux@54040000 {
status = "okay";
};
dsi@54300000 {
status = "okay";
avdd-dsi-csi-supply = <&vdd_dsi_csi>;
};
sor@54580000 {
status = "okay";
avdd-io-hdmi-dp-supply = <&avdd_1v05>;
vdd-hdmi-dp-pll-supply = <&vdd_1v8>;
nvidia,dpaux = <&dpaux1>;
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1)
GPIO_ACTIVE_LOW>;
};
};
gpu@57000000 {
vdd-supply = <&vdd_gpu>;
status = "okay";
};
/* debug port */
serial@70006000 {
/delete-property/ dmas;
/delete-property/ dma-names;
status = "okay";
};
pwm@7000a000 {
status = "okay";
};
i2c@7000d000 {
status = "okay";
clock-frequency = <400000>;
vdd_cpu: regulator@1b {
compatible = "maxim,max77621";
reg = <0x1b>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(K, 6) IRQ_TYPE_LEVEL_LOW>;
regulator-always-on;
regulator-boot-on;
regulator-init-microvolt = <1000000>;
regulator-min-microvolt = <618750>;
regulator-max-microamp = <9000000>;
regulator-max-microvolt = <1400000>;
regulator-name = "VDD_CPU";
regulator-disable-ramp-delay = <60000>;
regulator-enable-ramp-delay = <500>;
regulator-ramp-delay = <12000>;
maxim,dvs-default-state = <1>;
maxim,enable-active-discharge;
maxim,enable-bias-control;
maxim,enable-falling-slew-rate;
maxim,enable-gpio = <&pmic 5 0>;
maxim,enable-remote-sense;
maxim,externally-enable;
maxim,sleep-on-dvs;
};
vdd_gpu: regulator@1c {
compatible = "maxim,max77621";
reg = <0x1c>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(K, 7) IRQ_TYPE_LEVEL_LOW>;
regulator-init-microvolt = <1000000>;
regulator-min-microvolt = <618750>;
regulator-max-microamp = <15000000>;
regulator-max-microvolt = <1150000>;
regulator-name = "VDD_GPU";
regulator-disable-ramp-delay = <60000>;
regulator-enable-ramp-delay = <500>;
regulator-ramp-delay = <12000>;
maxim,dvs-default-state = <1>;
maxim,enable-active-discharge;
maxim,enable-bias-control;
maxim,enable-falling-slew-rate;
maxim,enable-gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
maxim,enable-remote-sense;
maxim,externally-enable;
};
pmic: pmic@3c {
compatible = "maxim,max77620";
reg = <0x3c>;
interrupt-parent = <&tegra_pmc>;
interrupts = <51 IRQ_TYPE_LEVEL_LOW>;
#interrupt-cells = <2>;
interrupt-controller;
#gpio-cells = <2>;
gpio-controller;
pinctrl-names = "default";
pinctrl-0 = <&max77620_default>;
fps {
fps0 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
maxim,suspend-fps-time-period-us = <5120>;
};
fps1 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
maxim,suspend-fps-time-period-us = <5120>;
};
fps2 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
};
};
max77620_default: pinmux {
gpio0 {
pins = "gpio0";
function = "gpio";
};
gpio1 {
pins = "gpio1";
function = "fps-out";
drive-push-pull = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
};
gpio2 {
pins = "gpio2";
function = "fps-out";
drive-open-drain = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
};
gpio3 {
pins = "gpio3";
function = "fps-out";
drive-open-drain = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <4>;
maxim,active-fps-power-down-slot = <3>;
};
gpio4 {
pins = "gpio4";
function = "32k-out1";
};
gpio5_6_7 {
pins = "gpio5", "gpio6", "gpio7";
function = "gpio";
drive-push-pull = <1>;
};
};
regulators {
in-ldo0-1-supply = <&vdd_pre>;
in-ldo2-supply = <&vdd_3v3_sys>;
in-ldo3-5-supply = <&vdd_3v3_sys>;
in-ldo4-6-supply = <&battery_reg>;
in-ldo7-8-supply = <&vdd_pre>;
in-sd0-supply = <&battery_reg>;
in-sd1-supply = <&battery_reg>;
in-sd2-supply = <&battery_reg>;
in-sd3-supply = <&battery_reg>;
vdd_core: sd0 {
regulator-name = "VDD_CORE";
regulator-min-microvolt = <625000>;
regulator-max-microvolt = <1400000>;
regulator-enable-ramp-delay = <50>;
regulator-disable-ramp-delay = <4080>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
maxim,active-fps-power-up-slot = <1>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <27500>;
};
vdd_ddr: sd1 {
regulator-name = "VDD_DDR_1V1_PMIC";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1200000>;
regulator-disable-ramp-delay = <145800>;
regulator-enable-ramp-delay = <1000>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <5>;
maxim,active-fps-power-down-slot = <1>;
maxim,ramp-rate-setting = <27500>;
};
vdd_pre: sd2 {
regulator-name = "VDD_PRE_REG_1V35";
regulator-min-microvolt = <1325000>;
regulator-max-microvolt = <1350000>;
regulator-disable-ramp-delay = <32000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
maxim,active-fps-power-up-slot = <2>;
maxim,active-fps-power-down-slot = <5>;
maxim,ramp-rate-setting = <27500>;
};
vdd_1v8: sd3 {
regulator-name = "VDD_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-disable-ramp-delay = <118000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <3>;
maxim,active-fps-power-down-slot = <3>;
maxim,ramp-rate-setting = <27500>;
};
vdd_sys_1v2: ldo0 {
regulator-name = "AVDD_SYS_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
vdd_pex_1v05: ldo1 {
regulator-name = "VDD_PEX_1V05";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-disable-ramp-delay = <6000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
vddio_sdmmc: ldo2 {
regulator-name = "VDDIO_SDMMC";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-disable-ramp-delay = <7000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
ldo3 {
regulator-name = "VDD_GC_3V1";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
vdd_rtc: ldo4 {
regulator-name = "VDD_RTC";
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <850000>;
regulator-disable-ramp-delay = <610>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
regulator-disable-active-discharge;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <1>;
maxim,active-fps-power-down-slot = <7>;
};
ldo5 {
regulator-name = "VDDIO_GC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <60>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
ldo6 {
regulator-name = "VDD_TOUCH";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <50000>;
};
avdd_1v05_pll: ldo7 {
regulator-name = "AVDD_1V05_PLL";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-disable-ramp-delay = <2768>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
maxim,active-fps-power-up-slot = <3>;
maxim,active-fps-power-down-slot = <4>;
maxim,ramp-rate-setting = <50000>;
};
avdd_1v05: ldo8 {
regulator-name = "AVDD_SATA_HDMI_DP_1V05";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
maxim,active-fps-power-up-slot = <6>;
maxim,active-fps-power-down-slot = <1>;
maxim,ramp-rate-setting = <50000>;
};
};
};
};
pmc@7000e400 {
nvidia,invert-interrupt;
nvidia,suspend-mode = <0>;
nvidia,cpu-pwr-good-time = <0>;
nvidia,cpu-pwr-off-time = <0>;
nvidia,core-pwr-good-time = <13092 7752>;
nvidia,core-pwr-off-time = <44188>;
nvidia,core-power-req-active-high;
nvidia,sys-clock-req-active-high;
};
hda@70030000 {
nvidia,model = "Nintendo Switch";
status = "okay";
};
usb@70090000 {
phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>,
<&{/padctl@7009f000/pads/pcie/lanes/pcie-6}>;
phy-names = "usb2-0", "usb3-0";
avdd-usb-supply = <&vdd_3v3_sys>;
dvddio-pex-supply = <&vdd_pex_1v05>;
hvddio-pex-supply = <&vdd_1v8>;
status = "okay";
};
padctl@7009f000 {
status = "okay";
avdd-pll-utmip-supply = <&vdd_1v8>;
avdd-pll-uerefe-supply = <&avdd_1v05_pll>;
dvdd-pex-pll-supply = <&vdd_pex_1v05>;
hvdd-pex-pll-e-supply = <&vdd_1v8>;
pads {
usb2 {
status = "okay";
lanes {
type_c: usb2-0 {
nvidia,function = "xusb";
status = "okay";
};
};
};
pcie {
status = "okay";
lanes {
pcie-0 {
nvidia,function = "pcie-x1";
status = "okay";
};
pcie-1 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-2 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-3 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-4 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-5 {
nvidia,function = "usb3-ss";
status = "okay";
};
pcie-6 {
nvidia,function = "usb3-ss";
status = "okay";
};
};
};
};
ports {
usb2-0 {
status = "okay";
mode = "otg";
usb-role-switch;
vbus-supply = <&battery_reg>;
endpoint@0 {
reg = <0>;
};
};
usb3-0 {
status = "okay";
nvidia,usb2-companion = <0>;
};
};
};
mmc@700b0000 {
status = "okay";
bus-width = <4>;
cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
disable-wp;
vqmmc-supply = <&vddio_sdmmc>;
vmmc-supply = <&vdd_3v3_sd>;
};
mmc@700b0600 {
/* explicitly not enabled by default */
bus-width = <8>;
non-removable;
vqmmc-supply = <&vdd_1v8>;
vmmc-supply = <&vdd_3v3_sys>;
};
usb@700d0000 {
status = "okay";
phys = <&type_c>;
phy-names = "usb2-0";
avddio-usb-supply = <&vdd_pex_1v05>;
hvdd-usb-supply = <&vdd_3v3_sys>;
};
clock@70110000 {
status = "okay";
nvidia,cf = <6>;
nvidia,ci = <0>;
nvidia,cg = <2>;
nvidia,droop-ctrl = <0x00000f00>;
nvidia,force-mode = <1>;
nvidia,i2c-fs-rate = <400000>;
nvidia,sample-rate = <12500>;
vdd-cpu-supply = <&vdd_cpu>;
};
clk32k_in: clock-32k {
compatible = "fixed-clock";
clock-frequency = <32768>;
#clock-cells = <0>;
};
cpus {
cpu@0 {
enable-method = "psci";
};
cpu@1 {
enable-method = "psci";
};
cpu@2 {
enable-method = "psci";
};
cpu@3 {
enable-method = "psci";
};
idle-states {
cpu-sleep {
status = "okay";
};
};
};
gpio-keys {
compatible = "gpio-keys";
key-volume-down {
label = "Volume Down";
gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
debounce-interval = <10>;
};
key-volume-up {
label = "Volume Up";
gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <10>;
};
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
fan: pwm-fan {
compatible = "pwm-fan";
pwms = <&pwm 1 33333>;
fan-supply = <&vdd_fan>;
cooling-levels = <255 128 64 0>;
#cooling-cells = <2>;
};
battery_reg: regulator-vdd-ac-bat {
compatible = "regulator-fixed";
regulator-name = "vdd-ac-bat";
regulator-min-microvolt = <4800000>;
regulator-max-microvolt = <4800000>;
regulator-always-on;
regulator-boot-on;
};
vdd_3v3_sys: regulator-vdd-3v3-sys {
compatible = "regulator-fixed";
regulator-name = "VDD_3V3_SYS";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
regulator-boot-on;
gpio = <&pmic 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&battery_reg>;
};
vdd_3v3_sd: regulator-vdd-3v3-sd {
compatible = "regulator-fixed";
regulator-name = "VDD_3V3_SD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <472>;
regulator-disable-ramp-delay = <4880>;
gpio = <&gpio TEGRA_GPIO(E, 4) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_3v3_sys>;
};
vdd_dsi_csi: regulator-vdd-dsi-csi {
compatible = "regulator-fixed";
regulator-name = "AVDD_DSI_CSI_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_sys_1v2>;
};
vdd_fan: regulator-vdd-fan {
compatible = "regulator-fixed";
regulator-name = "VDD_FAN";
regulator-min-microvolt = <5300000>;
regulator-max-microvolt = <5300000>;
gpio = <&gpio TEGRA_GPIO(A, 5) GPIO_ACTIVE_LOW>;
vin-supply = <&battery_reg>;
regulator-enable-ramp-delay = <284>;
};
thermal-zones {
cpu-thermal {
trips {
cpu_trip_critical: critical {
temperature = <58000>;
hysteresis = <0>;
type = "critical";
};
cpu_trip_hot: hot {
temperature = <53000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active: active {
temperature = <48000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_passive: passive {
temperature = <30000>;
hysteresis = <2000>;
type = "passive";
};
};
cooling-maps {
cpu-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
cpu-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
cpu-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
cpu-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
};
};
};
}; };

View File

@@ -6,4 +6,26 @@
#include "tegra210b01-nx-common.dtsi" #include "tegra210b01-nx-common.dtsi"
/ { / {
model = "Nintendo Switch OLED";
compatible = "nintendo,fric", "nintendo,nx", "nvidia,tegra210b01", "nvidia,tegra210";
i2c@7000d000 {
pmic@3c {
regulators {
avdd_1v05: ldo8 {
regulator-name = "AVDD_SATA_HDMI_DP_1V05";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
};
};
};
}; };

View File

@@ -1,7 +1,747 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (C) 2025 The LineageOS Project // SPDX-FileCopyrightText: Copyright (C) 2025 The LineageOS Project
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/mfd/max77620.h>
#include "tegra210b01.dtsi" #include "tegra210b01.dtsi"
/ { / {
aliases {
rtc0 = "/i2c@7000d000/pmic@3c";
rtc1 = "/rtc@7000e000";
serial0 = &uarta;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x1 0x0>;
};
pcie@1003000 {
status = "okay";
hvddio-pex-supply = <&vdd_1v8>;
dvddio-pex-supply = <&vdd_pex_1v05>;
vddio-pex-ctl-supply = <&vdd_1v8>;
pci@1,0 {
phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>,
<&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
phy-names = "pcie-0", "pcie-1";
nvidia,num-lanes = <2>;
status = "okay";
};
pci@2,0 {
phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>;
phy-names = "pcie-0";
status = "okay";
wifi@0,0 {
compatible = "brcm,bcm4356-fmac", "brcm,bcm4329-fmac";
};
};
};
host1x@50000000 {
dpaux@54040000 {
status = "okay";
};
dsi@54300000 {
status = "okay";
avdd-dsi-csi-supply = <&vdd_sys_1v2>;
};
sor@54580000 {
status = "okay";
avdd-io-hdmi-dp-supply = <&avdd_1v05>;
vdd-hdmi-dp-pll-supply = <&vdd_1v8>;
nvidia,dpaux = <&dpaux1>;
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1)
GPIO_ACTIVE_LOW>;
};
};
gpu@57000000 {
vdd-supply = <&vdd_gpu>;
status = "okay";
};
/* debug port */
serial@70006000 {
/delete-property/ dmas;
/delete-property/ dma-names;
status = "okay";
};
pwm@7000a000 {
status = "okay";
};
i2c@7000d000 {
status = "okay";
clock-frequency = <400000>;
max77812: max77812@33 {
compatible = "maxim,max77812-regulator";
reg = <0x33>;
maxim,soft-start-slew-rate = <5000>;
maxim,shutdown-slew-rate = <5000>;
maxim,ramp-up-slew-rate = <5000>;
maxim,ramp-down-slew-rate = <5000>;
status = "okay";
regulators {
vin-supply = <&battery_reg>;
vdd_gpu: m1vout {
regulator-name = "vdd-gpu";
regulator-disable-ramp-delay = <5000>;
regulator-enable-ramp-delay = <5000>;
regulator-init-microvolt = <800000>;
regulator-min-microvolt = <250000>;
regulator-max-microvolt = <1525000>;
regulator-ramp-delay = <5000>;
maxim,peak-current-limit-ua = <7200000>;
};
m2vout {
regulator-name = "vdd-mvout2";
regulator-disable-ramp-delay = <5000>;
regulator-enable-ramp-delay = <5000>;
regulator-min-microvolt = <250000>;
regulator-max-microvolt = <1525000>;
regulator-ramp-delay = <5000>;
maxim,peak-current-limit-ua = <7200000>;
};
m3vout {
status = "okay";
regulator-name = "vddio-ddr";
regulator-disable-ramp-delay = <5000>;
regulator-enable-ramp-delay = <5000>;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <650000>;
regulator-ramp-delay = <5000>;
regulator-always-on;
regulator-boot-on;
maxim,peak-current-limit-ua = <7200000>;
};
vdd_cpu: m4vout {
regulator-name = "vdd-cpu";
regulator-disable-ramp-delay = <5000>;
regulator-enable-ramp-delay = <5000>;
regulator-init-microvolt = <1000000>;
regulator-min-microvolt = <250000>;
regulator-max-microvolt = <1525000>;
regulator-ramp-delay = <5000>;
regulator-always-on;
regulator-boot-on;
maxim,peak-current-limit-ua = <7200000>;
};
};
};
pmic: pmic@3c {
compatible = "maxim,max77620";
reg = <0x3c>;
interrupt-parent = <&tegra_pmc>;
interrupts = <51 IRQ_TYPE_LEVEL_LOW>;
#interrupt-cells = <2>;
interrupt-controller;
#gpio-cells = <2>;
gpio-controller;
pinctrl-names = "default";
pinctrl-0 = <&max77620_default>;
fps {
fps0 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
maxim,suspend-fps-time-period-us = <5120>;
};
fps1 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
maxim,suspend-fps-time-period-us = <5120>;
};
fps2 {
maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
};
};
max77620_default: pinmux {
gpio0 {
pins = "gpio0";
function = "gpio";
};
gpio1 {
pins = "gpio1";
function = "fps-out";
drive-push-pull = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <5>;
maxim,active-fps-power-down-slot = <0>;
};
gpio2 {
pins = "gpio2";
function = "fps-out";
drive-open-drain = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <6>;
maxim,active-fps-power-down-slot = <0>;
};
gpio3 {
pins = "gpio3";
function = "fps-out";
drive-open-drain = <1>;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <3>;
maxim,active-fps-power-down-slot = <0>;
};
gpio4 {
pins = "gpio4";
function = "32k-out1";
};
gpio5_6_7 {
pins = "gpio5", "gpio6", "gpio7";
function = "gpio";
drive-push-pull = <1>;
};
};
regulators {
in-ldo0-1-supply = <&vdd_pre>;
in-ldo2-supply = <&vdd_3v3_sys>;
in-ldo3-5-supply = <&vdd_3v3_sys>;
in-ldo4-6-supply = <&battery_reg>;
in-ldo7-8-supply = <&vdd_pre>;
in-sd0-supply = <&battery_reg>;
in-sd1-supply = <&battery_reg>;
in-sd2-supply = <&battery_reg>;
in-sd3-supply = <&battery_reg>;
vdd_core: sd0 {
regulator-name = "VDD_CORE";
regulator-min-microvolt = <625000>;
regulator-max-microvolt = <1400000>;
regulator-enable-ramp-delay = <50>;
regulator-disable-ramp-delay = <4080>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
maxim,active-fps-power-up-slot = <1>;
maxim,active-fps-power-down-slot = <7>;
maxim,ramp-rate-setting = <27500>;
};
vdd_ddr: sd1 {
regulator-name = "VDD_DDR_1V1_PMIC";
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1175000>;
regulator-disable-ramp-delay = <145800>;
regulator-enable-ramp-delay = <60>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <5>;
maxim,active-fps-power-down-slot = <2>;
maxim,ramp-rate-setting = <27500>;
};
vdd_pre: sd2 {
regulator-name = "VDD_PRE_REG_1V35";
regulator-min-microvolt = <1325000>;
regulator-max-microvolt = <1325000>;
regulator-disable-ramp-delay = <20000>;
regulator-enable-ramp-delay = <40>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <27500>;
};
vdd_1v8: sd3 {
regulator-name = "VDD_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-disable-ramp-delay = <118000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <27500>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <2>;
maxim,active-fps-power-down-slot = <4>;
maxim,ramp-rate-setting = <27500>;
};
vdd_sys_1v2: ldo0 {
regulator-name = "AVDD_SYS_1V2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
vdd_pex_1v05: ldo1 {
regulator-name = "VDD_PEX_1V05";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-disable-ramp-delay = <7000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
vddio_sdmmc: ldo2 {
regulator-name = "VDDIO_SDMMC";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-disable-ramp-delay = <6000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
ldo3 {
regulator-name = "VDD_GC_3V1";
regulator-min-microvolt = <3100000>;
regulator-max-microvolt = <3100000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
vdd_rtc: ldo4 {
regulator-name = "VDD_RTC";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-disable-ramp-delay = <610>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
regulator-disable-active-discharge;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <7>;
};
ldo5 {
regulator-name = "VDDIO_GC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <70>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
ldo6 {
regulator-name = "VDD_TOUCH";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
regulator-disable-ramp-delay = <3000>;
regulator-enable-ramp-delay = <100>;
regulator-ramp-delay = <50000>;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
/* Varies by variant */
ldo7 {
status = "disabled";
};
avdd_1v05: ldo8 {
regulator-name = "AVDD_SATA_HDMI_DP_1V05";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
};
};
};
pmc@7000e400 {
nvidia,invert-interrupt;
nvidia,suspend-mode = <0>;
nvidia,cpu-pwr-good-time = <0>;
nvidia,cpu-pwr-off-time = <0>;
nvidia,core-pwr-good-time = <13100 7800>;
nvidia,core-pwr-off-time = <44160>;
nvidia,core-power-req-active-high;
nvidia,sys-clock-req-active-high;
};
hda@70030000 {
nvidia,model = "Nintendo Switch";
status = "okay";
};
usb@70090000 {
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_sys>;
dvddio-pex-supply = <&vdd_pex_1v05>;
hvddio-pex-supply = <&vdd_1v8>;
status = "okay";
};
padctl@7009f000 {
status = "okay";
avdd-pll-utmip-supply = <&vdd_1v8>;
avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
dvdd-pex-pll-supply = <&vdd_pex_1v05>;
hvdd-pex-pll-e-supply = <&vdd_1v8>;
pads {
usb2 {
status = "okay";
lanes {
type_c: usb2-0 {
nvidia,function = "xusb";
status = "okay";
};
};
};
pcie {
status = "okay";
lanes {
pcie-0 {
nvidia,function = "pcie-x1";
status = "okay";
};
pcie-1 {
nvidia,function = "usb3-ss";
status = "okay";
};
pcie-2 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-3 {
nvidia,function = "pcie-x4";
status = "okay";
};
pcie-4 {
nvidia,function = "usb3-ss";
status = "okay";
};
pcie-5 {
nvidia,function = "usb3-ss";
status = "okay";
};
};
};
};
ports {
usb2-0 {
status = "okay";
mode = "otg";
usb-role-switch;
vbus-supply = <&battery_reg>;
endpoint@0 {
reg = <0>;
};
};
usb3-0 {
status = "okay";
nvidia,usb2-companion = <0>;
};
};
};
mmc@700b0000 {
status = "okay";
bus-width = <4>;
cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
disable-wp;
vqmmc-supply = <&vddio_sdmmc>;
vmmc-supply = <&vdd_3v3_sd>;
};
mmc@700b0600 {
/* explicitly not enabled by default */
bus-width = <8>;
non-removable;
vqmmc-supply = <&vdd_1v8>;
vmmc-supply = <&vdd_3v3_sys>;
};
usb@700d0000 {
status = "okay";
phys = <&type_c>;
phy-names = "usb2-0";
avddio-usb-supply = <&vdd_pex_1v05>;
hvdd-usb-supply = <&vdd_3v3_sys>;
};
clock@70110000 {
status = "okay";
nvidia,cf = <6>;
nvidia,ci = <0>;
nvidia,cg = <2>;
nvidia,droop-ctrl = <0x00000f00>;
nvidia,force-mode = <1>;
nvidia,i2c-fs-rate = <400000>;
nvidia,sample-rate = <12500>;
vdd-cpu-supply = <&vdd_cpu>;
};
clk32k_in: clock-32k {
compatible = "fixed-clock";
clock-frequency = <32768>;
#clock-cells = <0>;
};
cpus {
cpu@0 {
enable-method = "psci";
};
cpu@1 {
enable-method = "psci";
};
cpu@2 {
enable-method = "psci";
};
cpu@3 {
enable-method = "psci";
};
idle-states {
cpu-sleep {
status = "okay";
};
};
};
gpio-keys {
compatible = "gpio-keys";
key-volume-down {
label = "Volume Down";
gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
debounce-interval = <10>;
};
key-volume-up {
label = "Volume Up";
gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <10>;
};
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
fan: pwm-fan {
compatible = "pwm-fan";
pwms = <&pwm 1 33333>;
fan-supply = <&vdd_fan>;
cooling-levels = <255 128 64 0>;
#cooling-cells = <2>;
};
battery_reg: regulator-vdd-ac-bat {
compatible = "regulator-fixed";
regulator-name = "vdd-ac-bat";
regulator-min-microvolt = <4800000>;
regulator-max-microvolt = <4800000>;
regulator-always-on;
regulator-boot-on;
};
vdd_3v3_sys: regulator-vdd-3v3-sys {
compatible = "regulator-fixed";
regulator-name = "VDD_3V3_SYS";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <240>;
regulator-always-on;
regulator-boot-on;
gpio = <&pmic 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&battery_reg>;
};
vdd_3v3_sd: regulator-vdd-3v3-sd {
compatible = "regulator-fixed";
regulator-name = "VDD_3V3_SD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <472>;
regulator-disable-ramp-delay = <4880>;
gpio = <&gpio TEGRA_GPIO(E, 4) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_3v3_sys>;
};
vdd_fan: regulator-vdd-fan {
compatible = "regulator-fixed";
regulator-name = "VDD_FAN";
regulator-min-microvolt = <5300000>;
regulator-max-microvolt = <5300000>;
gpio = <&gpio TEGRA_GPIO(A, 5) GPIO_ACTIVE_LOW>;
vin-supply = <&battery_reg>;
regulator-enable-ramp-delay = <284>;
};
thermal-zones {
cpu-thermal {
trips {
cpu_trip_critical: critical {
temperature = <58000>;
hysteresis = <0>;
type = "critical";
};
cpu_trip_hot: hot {
temperature = <53000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active: active {
temperature = <48000>;
hysteresis = <2000>;
type = "active";
};
cpu_trip_passive: passive {
temperature = <30000>;
hysteresis = <2000>;
type = "passive";
};
};
cooling-maps {
cpu-critical {
cooling-device = <&fan 3 3>;
trip = <&cpu_trip_critical>;
};
cpu-hot {
cooling-device = <&fan 2 2>;
trip = <&cpu_trip_hot>;
};
cpu-active {
cooling-device = <&fan 1 1>;
trip = <&cpu_trip_active>;
};
cpu-passive {
cooling-device = <&fan 0 0>;
trip = <&cpu_trip_passive>;
};
};
};
};
}; };

View File

@@ -6,4 +6,26 @@
#include "tegra210b01-nx-common.dtsi" #include "tegra210b01-nx-common.dtsi"
/ { / {
model = "Nintendo Switch (2019)";
compatible = "nintendo,odin", "nintendo,nx", "nvidia,tegra210b01", "nvidia,tegra210";
i2c@7000d000 {
pmic@3c {
regulators {
avdd_1v05: ldo8 {
regulator-name = "AVDD_SATA_HDMI_DP_1V05";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
};
};
};
}; };

View File

@@ -6,4 +6,28 @@
#include "tegra210b01-nx-common.dtsi" #include "tegra210b01-nx-common.dtsi"
/ { / {
model = "Nintendo Switch Lite";
compatible = "nintendo,vali", "nintendo,nx", "nvidia,tegra210b01", "nvidia,tegra210";
i2c@7000d000 {
pmic@3c {
regulators {
vdd_sio: ldo8 {
regulator-name = "VDD_SIO";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2800000>;
regulator-disable-ramp-delay = <4000>;
regulator-enable-ramp-delay = <50>;
regulator-ramp-delay = <50000>;
regulator-always-on;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
maxim,active-fps-power-up-slot = <0>;
maxim,active-fps-power-down-slot = <0>;
maxim,ramp-rate-setting = <50000>;
};
};
};
};
}; };