arm64: t210: add initial support for nx
The Nintendo Switch is a video game console based on the Tegra X1 (T210) and X1+ (T210B01). Signed-off-by: Thomas Makin <halorocker89@gmail.com>
This commit is contained in:
@@ -26,7 +26,11 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p3450-0000.dtb
|
|||||||
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p3541-0000.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p3541-0000.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2894-0050-a08.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2894-0050-a08.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-odin.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-p2894-0050-a08.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-p2894-0050-a08.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-odin.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-vali.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210b01-fric.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p3509-0000+p3636-0001.dtb
|
||||||
dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
|
dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
|
||||||
|
|||||||
944
arch/arm64/boot/dts/nvidia/tegra210-nx.dtsi
Normal file
944
arch/arm64/boot/dts/nvidia/tegra210-nx.dtsi
Normal file
@@ -0,0 +1,944 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <dt-bindings/mfd/max77620.h>
|
||||||
|
#include <dt-bindings/gpio/tegra-gpio.h>
|
||||||
|
#include <dt-bindings/thermal/thermal.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/soc/tegra-pmc.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/pwm/pwm.h>
|
||||||
|
#include <dt-bindings/pinctrl/pinctrl-tegra.h>
|
||||||
|
|
||||||
|
#include "tegra210.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
i2c1 = "/i2c@7000c000";
|
||||||
|
i2c2 = "/i2c@7000c400";
|
||||||
|
i2c3 = "/i2c@7000c500";
|
||||||
|
i2c5 = "/i2c@7000d000";
|
||||||
|
rtc0 = "/i2c@7000d000/max77620@3c";
|
||||||
|
rtc1 = "/rtc@7000e000";
|
||||||
|
serial0 = &uarta;
|
||||||
|
serial1 = &uartb;
|
||||||
|
serial2 = &uartc;
|
||||||
|
serial3 = &uartd;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "root=/dev/mmcblk0p2 rw rootwait fbcon=rotate:3 printk.synchronous=1 loglevel=4 console=fb0 console=ttyGS0 earlycon";
|
||||||
|
stdout-path = "serial1:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cpu@0 {
|
||||||
|
vdd-cpu-supply = <&cpu_max_reg>;
|
||||||
|
};
|
||||||
|
|
||||||
|
idle-states {
|
||||||
|
cpu-sleep {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu@57000000 {
|
||||||
|
status = "okay";
|
||||||
|
vdd-supply = <&gpu_max_reg>;
|
||||||
|
};
|
||||||
|
|
||||||
|
host1x@50000000 {
|
||||||
|
dsia: dsi@54300000 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
panel@0 {
|
||||||
|
compatible = "jdi,lpm062m326a";
|
||||||
|
reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
|
||||||
|
backlight = <&backlight>;
|
||||||
|
vdd1-supply = <&v_pavdd_5v0>;
|
||||||
|
vdd2-supply = <&v_navdd_5v0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* tegradc.0: DSI */
|
||||||
|
dc@54200000 {
|
||||||
|
status = "okay";
|
||||||
|
pavdd_lcd-supply = <&v_pavdd_5v0>;
|
||||||
|
navdd_lcd-supply = <&v_navdd_5v0>;
|
||||||
|
dvdd_lcd-supply = <&max77620_sd3>;
|
||||||
|
vdd_lcd_bl_en-supply = <&lcd_bl_en>;
|
||||||
|
nvidia,outputs = <&dsia>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* tegradc.1: DP */
|
||||||
|
dc@54240000 {
|
||||||
|
status = "okay";
|
||||||
|
avdd_hdmi-supply = <&max77620_ldo8>; /* 1V05 */
|
||||||
|
avdd_hdmi_pll-supply = <&max77620_sd3>; /* 1V8 */
|
||||||
|
// vdd_hdmi_5v0-supply = <&vdd_hdmi>; /* 5V0 GPIO_PCC7 fixed reg */
|
||||||
|
|
||||||
|
vdd-dp-pwr-supply = <&vdd_3v3>;
|
||||||
|
avdd-dp-pll-supply = <&max77620_sd3>;
|
||||||
|
vdd-dp-pad-supply = <&max77620_ldo8>;
|
||||||
|
|
||||||
|
extcon-cables = <&bm92t 3>;
|
||||||
|
extcon-cable-names = "typec1";
|
||||||
|
|
||||||
|
nvidia,outputs = <&sor1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
dpaux1: dpaux@54040000 {
|
||||||
|
status = "okay";
|
||||||
|
vdd-supply = <&v_pavdd_5v0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sor1: sor@54580000 {
|
||||||
|
status = "okay";
|
||||||
|
nvidia,dpaux = <&dpaux1>;
|
||||||
|
|
||||||
|
avdd-io-hdmi-dp-supply = <&max77620_ldo8>;
|
||||||
|
vdd-hdmi-dp-pll-supply = <&max77620_sd3>;
|
||||||
|
|
||||||
|
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1) GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vi: i2c@546c0000 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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 = <&cpu_max_reg>;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
/delete-node/ vpr-carveout;
|
||||||
|
/delete-node/ iram-carveout;
|
||||||
|
};
|
||||||
|
|
||||||
|
r2p {
|
||||||
|
compatible = "tegra-r2p";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* debug port */
|
||||||
|
serial@70006000 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* joycon ports:
|
||||||
|
invert TXD and RTS via IRDA_CSR
|
||||||
|
start @ 1000000 baud, switch to 3000000
|
||||||
|
when they are >= 3000000 baud, use 2 stop bits
|
||||||
|
use flow control
|
||||||
|
Note: hsuart driver is required for flow control
|
||||||
|
*/
|
||||||
|
/* right joycon */
|
||||||
|
serial@70006040 {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
|
||||||
|
nvidia,invert-txd;
|
||||||
|
nvidia,invert-rts;
|
||||||
|
reset-names = "serial";
|
||||||
|
|
||||||
|
joyconr {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nintendo,joycon-serdev";
|
||||||
|
charger-supply = <&en_vdd_jcr_chgr>;
|
||||||
|
detect-en-gpios = <&gpio TEGRA_GPIO(G, 0) GPIO_ACTIVE_HIGH>;
|
||||||
|
detect-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* left joycon */
|
||||||
|
serial@70006200 {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
|
||||||
|
nvidia,invert-txd;
|
||||||
|
nvidia,invert-rts;
|
||||||
|
reset-names = "serial";
|
||||||
|
|
||||||
|
joyconl {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nintendo,joycon-serdev";
|
||||||
|
charger-supply = <&en_vdd_jcl_chgr>;
|
||||||
|
detect-en-gpios = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
|
||||||
|
detect-gpios = <&gpio TEGRA_GPIO(E, 6) GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* bluetooth */
|
||||||
|
serial@70006300 {
|
||||||
|
dma-names = "tx";
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
|
||||||
|
reset-names = "serial";
|
||||||
|
|
||||||
|
bluetooth {
|
||||||
|
compatible = "brcm,bcm43438-bt";
|
||||||
|
vbat-supply = <&battery_reg>;
|
||||||
|
vddio-supply = <&battery_reg>;
|
||||||
|
shutdown-gpios = <&gpio TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
|
||||||
|
device-wakeup-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_LOW>;
|
||||||
|
max-speed = <3000000>; /* Max supported 4 MBaud */
|
||||||
|
sco-routing = <1>; /* Over HCI */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
clk32k_in: clock-32k {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
clock-frequency = <32768>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight: backlight {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm 0 33898>;
|
||||||
|
pwm-names = "backlight";
|
||||||
|
brightness-levels = <
|
||||||
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
|
17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
||||||
|
31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
||||||
|
45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
||||||
|
59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
||||||
|
73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
||||||
|
87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
||||||
|
>;
|
||||||
|
default-brightness-level = <50>;
|
||||||
|
enable-gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
|
||||||
|
power-supply = <&max77620_sd3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Fixed regulators */
|
||||||
|
battery_reg: vdd-ac-bat {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
status = "okay";
|
||||||
|
regulator-name = "vdd-ac-bat";
|
||||||
|
regulator-min-microvolt = <4800000>;
|
||||||
|
regulator-max-microvolt = <4800000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
vdd_3v3: vdd-3v3 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-3v3";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-always-on;
|
||||||
|
gpio = <&max77620 3 0>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-enable-ramp-delay = <160>;
|
||||||
|
regulator-disable-ramp-delay = <10000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
max77620_gpio7: avdd-dsi-csi-1v2 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "max77620-gpio7";
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <1200000>;
|
||||||
|
regulator-boot-on; /* Must be set for seamless display */
|
||||||
|
gpio = <&max77620 7 0>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-enable-ramp-delay = <240>;
|
||||||
|
regulator-disable-ramp-delay = <11340>;
|
||||||
|
vin-supply = <&max77620_ldo0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lcd_bl_en: lcd-bl-en {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
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 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "en-vdd-sd";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
gpio = <&gpio TEGRA_GPIO(E, 4) 0>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-enable-ramp-delay = <472>;
|
||||||
|
regulator-disable-ramp-delay = <4880>;
|
||||||
|
vin-supply = <&vdd_3v3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* LCD Power Enable +5V. Rohm BD8316GWL. */
|
||||||
|
v_pavdd_5v0: v-pavdd-5v0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "v_pavdd_5v0";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
gpio = <&gpio TEGRA_GPIO(I, 0) 0>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-boot-on; /* Must be set for seamless display */
|
||||||
|
regulator-enable-ramp-delay = <232>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* LCD Power Enable -5V. Rohm BD8316GWL. */
|
||||||
|
v_navdd_5v0: v-navdd-5v0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "v_navdd_5v0";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
gpio = <&gpio TEGRA_GPIO(I, 1) 0>;
|
||||||
|
enable-active-high;
|
||||||
|
regulator-boot-on; /* Must be set for seamless display */
|
||||||
|
regulator-enable-ramp-delay = <232>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Joycon/Fan power (battery). Maxim MAX8969EWL53+. */
|
||||||
|
v_vdd50_a: v-vdd50-a {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
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: v-vdd50-b {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "v_vdd50_b";
|
||||||
|
regulator-min-microvolt = <5000000>;
|
||||||
|
regulator-max-microvolt = <5000000>;
|
||||||
|
gpio = <&gpio TEGRA_GPIO(CC, 4) 0>;
|
||||||
|
enable-active-high;
|
||||||
|
};
|
||||||
|
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vdd3v3_gc: vdd3v3-gc {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* TI TCR2EE48 4.8V */
|
||||||
|
en_vdd_jcl_chgr: left-joycon-charger {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
status = "okay";
|
||||||
|
regulator-name = "left-joycon-charger";
|
||||||
|
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 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
status = "okay";
|
||||||
|
regulator-name = "right-joycon-charger";
|
||||||
|
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 */
|
||||||
|
mmc@700b0600 {
|
||||||
|
status = "disabled";
|
||||||
|
bus-width = <8>;
|
||||||
|
max-frequency = <200000000>;
|
||||||
|
|
||||||
|
cap-mmc-highspeed;
|
||||||
|
mmc-ddr-1_8v;
|
||||||
|
mmc-hs200-1_8v;
|
||||||
|
mmc-hs400-1_8v;
|
||||||
|
non-removable;
|
||||||
|
|
||||||
|
vqmmc-supply = <&max77620_sd3>;
|
||||||
|
vmmc-supply = <&vdd_3v3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* SDMMC3 Not Used */
|
||||||
|
mmc@700b0400 {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
vqmmc-supply = <&max77620_sd3>;
|
||||||
|
vmmc-supply = <&vdd_3v3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* SDMMC2 for Gamecard */
|
||||||
|
mmc@700b0200 {
|
||||||
|
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;
|
||||||
|
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;
|
||||||
|
|
||||||
|
cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
vmmc-supply = <&en_vdd_sd>;
|
||||||
|
vqmmc-supply = <&max77620_ldo2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
hda@70030000 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* i2c1 @ 100000hz
|
||||||
|
1c: realtek 5639
|
||||||
|
18: rohm usb-pd
|
||||||
|
4c: ti temperature sensor
|
||||||
|
6b: ti charger
|
||||||
|
36: maxim fuel gauge
|
||||||
|
*/
|
||||||
|
i2c@7000c000 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
|
||||||
|
bq24193@6b {
|
||||||
|
compatible = "ti,bq24193";
|
||||||
|
reg = <0x6b>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(Z, 0) IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
|
||||||
|
monitored-battery = <&fuel_gauge>;
|
||||||
|
#extcon-cells = <1>;
|
||||||
|
|
||||||
|
omit-battery-class;
|
||||||
|
|
||||||
|
battery_charger: charger {
|
||||||
|
regulator-name = "batt_regulator";
|
||||||
|
regulator-max-microamp = <4500000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
usb0_vbus: usb-otg-vbus {
|
||||||
|
regulator-name = "vbus_regulator";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fuel_gauge: fuel-gauge@36 {
|
||||||
|
compatible = "maxim,max17050";
|
||||||
|
status = "okay";
|
||||||
|
reg = <0x36>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(Y, 0) IRQ_TYPE_NONE>;
|
||||||
|
|
||||||
|
/* Actual is 5000 but driver does not account for CGAIN */
|
||||||
|
/* And does not take into account Rsense and CGAIN for capacity */
|
||||||
|
maxim,rsns-microohm = <10000>;
|
||||||
|
maxim,over-heat-temp = <600>;
|
||||||
|
maxim,dead-volt = <3000>;
|
||||||
|
maxim,over-volt = <4208>; /* Actual: 4258 mV */
|
||||||
|
|
||||||
|
#thermal-sensor-cells = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rt5639: audio-codec@1c {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "realtek,rt5639";
|
||||||
|
reg = <0x1c>;
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(BB, 4) IRQ_TYPE_EDGE_RISING>;
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* PD Chip */
|
||||||
|
bm92t: bm92t@18 {
|
||||||
|
compatible = "rohm,bm92t";
|
||||||
|
reg = <0x18>;
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(K, 4) IRQ_TYPE_EDGE_RISING>;
|
||||||
|
#extcon-cells = <1>;
|
||||||
|
pd_bat_chg-supply = <&battery_charger>;
|
||||||
|
vbus-source-supply = <&v_vdd5v3>;
|
||||||
|
vbus-supply = <&usb0_vbus>;
|
||||||
|
|
||||||
|
rohm,dp-lanes = <2>;
|
||||||
|
rohm,dp-signal-toggle-on-resume;
|
||||||
|
|
||||||
|
/* Absolute max is 2.4A, constrained by BQ24193 ILIM */
|
||||||
|
rohm,pd-5v-current-limit-ma = <2000>;
|
||||||
|
rohm,pd-9v-current-limit-ma = <2000>;
|
||||||
|
rohm,pd-12v-current-limit-ma = <1500>;
|
||||||
|
rohm,pd-15v-current-limit-ma = <1200>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
usb_con_ep: endpoint {
|
||||||
|
remote-endpoint = <&usb_port_0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tmp451: temperature-sensor@4c {
|
||||||
|
compatible = "ti,tmp451";
|
||||||
|
status = "okay";
|
||||||
|
reg = <0x4c>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(X, 4) IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
vcc-supply = <&battery_reg>;
|
||||||
|
|
||||||
|
#thermal-sensor-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* i2c3 @ 400000hz
|
||||||
|
49: stm touchscreen controller
|
||||||
|
*/
|
||||||
|
i2c@7000c500 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
touchscreen@49 {
|
||||||
|
compatible = "stm,ftm4_fts";
|
||||||
|
status = "okay";
|
||||||
|
reg = <0x49>;
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
vdd-tp-2v9-supply = <&max77620_ldo6>;
|
||||||
|
stm,vio-gpio = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_HIGH>;
|
||||||
|
stm,irq_type = <0x2000>; /* IRQF_ONESHOT */
|
||||||
|
stm,regulator_avdd = "vdd-tp-2v9";
|
||||||
|
stm,max_coords = <1280 720>;
|
||||||
|
stm,max-real-coords = <1264 704>;
|
||||||
|
stm,edge-offset = <15 15>;
|
||||||
|
stm,delayed-open;
|
||||||
|
stm,delayed-open-time = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* i2c2 @ 400000hz
|
||||||
|
29: rohm ambient light sensor
|
||||||
|
*/
|
||||||
|
i2c@7000c400 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
bh1730fvc: bh1730fvc@29 {
|
||||||
|
status = "disabled";
|
||||||
|
compatible = "rohm,bh1730fvc";
|
||||||
|
reg = <0x29>;
|
||||||
|
als-vid-supply = <&max77620_ldo6>;
|
||||||
|
als-vdd-supply = <&vdd_3v3>;
|
||||||
|
rohm,integration-cycle = <38>;
|
||||||
|
rohm,lux-multiplier = <3600>;
|
||||||
|
|
||||||
|
rohm,opt-win-coeff = < 500 5002 7502
|
||||||
|
754 2250 2000
|
||||||
|
1029 1999 1667
|
||||||
|
1373 884 583
|
||||||
|
1879 309 165>;
|
||||||
|
|
||||||
|
rohm,gain-coeff = < 2500 0
|
||||||
|
1600 7800
|
||||||
|
10 50000
|
||||||
|
0 1000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spi@7000da00 {
|
||||||
|
status = "disabled"; /* Disabled for Vali */
|
||||||
|
num-cs = <1>;
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
// spi-cs-setup-delay-ns = <2>;
|
||||||
|
// spi-cs-hold-delay-ns = <2>;
|
||||||
|
// spi-cs-inactive-delay-ns = <2>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Model WHOAMI:
|
||||||
|
* LSM6DS3H 0x69, LSM6DSE 0x6A, LSM6DSO 0x6C, ICM40607 0x38.
|
||||||
|
*/
|
||||||
|
gyroscope: imu@0 {
|
||||||
|
reg = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
compatible = "st,lsm6ds3h";
|
||||||
|
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <8000000>;
|
||||||
|
|
||||||
|
/* SPI Mode-3 */
|
||||||
|
spi-cpha;
|
||||||
|
spi-cpol;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpio>;
|
||||||
|
interrupts = <TEGRA_GPIO(X, 2) IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
|
vdd-supply = <&battery_reg>;
|
||||||
|
vddio-supply = <&battery_reg>;
|
||||||
|
|
||||||
|
st,drdy-int-pin = <2>;
|
||||||
|
|
||||||
|
nvidia,rx-clk-tap-delay = <0x1f>;
|
||||||
|
nvidia,tx-clk-tap-delay = <0x0>;
|
||||||
|
|
||||||
|
|
||||||
|
mount-matrix =
|
||||||
|
"1", "0", "0", /* X: x */
|
||||||
|
"0", "1", "0", /* Y: y */
|
||||||
|
"0", "0", "1"; /* Z: z */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
key-volume-down {
|
||||||
|
label = "Volume Down";
|
||||||
|
gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
|
||||||
|
linux,input-type = <EV_KEY>;
|
||||||
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
|
debounce-interval = <10>;
|
||||||
|
};
|
||||||
|
|
||||||
|
key-volume-up {
|
||||||
|
label = "Volume Up";
|
||||||
|
gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>;
|
||||||
|
linux,input-type = <EV_KEY>;
|
||||||
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
|
debounce-interval = <10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio@6000d000 {
|
||||||
|
boot-default-output-high {
|
||||||
|
gpio-hog;
|
||||||
|
output-high;
|
||||||
|
gpios = <TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>; /* Wi-Fi Reset. Powered on by default. */
|
||||||
|
line-name = "boot-default-output-high";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm@7000a000 {
|
||||||
|
status = "okay";
|
||||||
|
#pwm-cells = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sound {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "nvidia,tegra-audio-rt5640-tx1",
|
||||||
|
"nvidia,tegra-audio-rt5640";
|
||||||
|
nvidia,model = "Nintendo Switch";
|
||||||
|
|
||||||
|
nvidia,audio-codec = <&rt5639>;
|
||||||
|
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||||
|
// nvidia,hp-det-gpios = <&gpio 143 0>;
|
||||||
|
|
||||||
|
clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
|
||||||
|
<&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
|
||||||
|
<&tegra_car TEGRA210_CLK_CLK_M>;
|
||||||
|
clock-names = "pll_a", "plla_out0", "mclk";
|
||||||
|
|
||||||
|
assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
|
||||||
|
<&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
|
||||||
|
<&tegra_car TEGRA210_CLK_D_AUDIO>,
|
||||||
|
<&tegra_car TEGRA210_CLK_EXTERN1>;
|
||||||
|
assigned-clock-rates = <368640000>, <36864000>,
|
||||||
|
<36864000>, <12288000>;
|
||||||
|
|
||||||
|
nvidia,audio-routing =
|
||||||
|
"Headphones", "HPOL",
|
||||||
|
"Headphones", "HPOR",
|
||||||
|
"Speakers", "SPORP",
|
||||||
|
"Speakers", "SPORN",
|
||||||
|
"Speakers", "SPOLP",
|
||||||
|
"Speakers", "SPOLN",
|
||||||
|
"IN1P", "Mic Jack",
|
||||||
|
"IN1P", "Mic Jack";
|
||||||
|
};
|
||||||
|
|
||||||
|
thermal-zones {
|
||||||
|
cpu {
|
||||||
|
polling-delay-passive = <250>;
|
||||||
|
polling-delay = <500>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
/* Based on Console profile SoC: 95% (100% at Handheld) */
|
||||||
|
coefficients = <95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>;
|
||||||
|
thermal-sensors = <&tmp451 1>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
cpu_critical: cpu-critical {
|
||||||
|
temperature = <102500>;
|
||||||
|
hysteresis = <0>;
|
||||||
|
type = "critical";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_heavy: cpu-heavy {
|
||||||
|
temperature = <98500>;
|
||||||
|
hysteresis = <1000>;
|
||||||
|
type = "hot";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_throttle: cpu-throttle {
|
||||||
|
temperature = <89000>;
|
||||||
|
hysteresis = <2000>;
|
||||||
|
type = "passive";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_cap_trip1: cpu-cap-trip1 {
|
||||||
|
temperature = <58000>;
|
||||||
|
hysteresis = <2000>;
|
||||||
|
type = "active";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_floor_trip1: cpu-floor-trip1 {
|
||||||
|
temperature = <53000>;
|
||||||
|
hysteresis = <2000>;
|
||||||
|
type = "active";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_cap_trip0: cpu-cap-trip0 {
|
||||||
|
temperature = <48000>;
|
||||||
|
hysteresis = <2000>;
|
||||||
|
type = "active";
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_floor_trip0: cpu-floor-trip0 {
|
||||||
|
temperature = <43000>;
|
||||||
|
hysteresis = <2000>;
|
||||||
|
type = "active";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cooling-maps {
|
||||||
|
map0 {
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
trip = <&cpu_critical>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map1 {
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
trip = <&cpu_heavy>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map2 {
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
trip = <&cpu_throttle>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map3 {
|
||||||
|
cooling-device = <&fan 1 1>;
|
||||||
|
trip = <&cpu_cap_trip1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map4 {
|
||||||
|
cooling-device = <&fan 2 2>;
|
||||||
|
trip = <&cpu_floor_trip1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map5 {
|
||||||
|
cooling-device = <&fan 3 3>;
|
||||||
|
trip = <&cpu_cap_trip0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
map6 {
|
||||||
|
cooling-device = <&fan 4 4>;
|
||||||
|
trip = <&cpu_floor_trip0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu {
|
||||||
|
polling-delay-passive = <250>;
|
||||||
|
polling-delay = <500>;
|
||||||
|
status = "okay";
|
||||||
|
thermal-sensors = <&tmp451 1>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
gpu_critical: gpu-critical {
|
||||||
|
temperature = <103000>;
|
||||||
|
hysteresis = <0>;
|
||||||
|
type = "critical";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu_heavy: gpu-heavy {
|
||||||
|
temperature = <100000>;
|
||||||
|
hysteresis = <1000>;
|
||||||
|
type = "hot";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu_throttle: gpu-throttle {
|
||||||
|
temperature = <90500>;
|
||||||
|
hysteresis = <0>;
|
||||||
|
type = "passive";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cooling-maps {
|
||||||
|
map0 {
|
||||||
|
trip = <&gpu_critical>;
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
};
|
||||||
|
map1 {
|
||||||
|
trip = <&gpu_heavy>;
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
};
|
||||||
|
map2 {
|
||||||
|
trip = <&gpu_throttle>;
|
||||||
|
cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pmic {
|
||||||
|
status = "okay";
|
||||||
|
polling-delay-passive = <250>;
|
||||||
|
polling-delay = <500>;
|
||||||
|
thermal-sensors = <&max77620>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
pmic_die_warn_temp_thresh: hot-die {
|
||||||
|
temperature = <120000>;
|
||||||
|
type = "hot";
|
||||||
|
hysteresis = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pmic_die_cirt_temp_thresh: critical-die {
|
||||||
|
temperature = <140000>;
|
||||||
|
type = "critical";
|
||||||
|
hysteresis = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cooling-maps {
|
||||||
|
map0 {
|
||||||
|
trip = <&pmic_die_warn_temp_thresh>;
|
||||||
|
cooling-device = <&throttle_heavy 1 1>;
|
||||||
|
contribution = <100>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_vreg {
|
||||||
|
status = "okay";
|
||||||
|
polling-delay-passive = <250>;
|
||||||
|
polling-delay = <500>;
|
||||||
|
thermal-sensors = <&cpu_max_reg>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
cpu_vreg_die_warn_temp_thresh: hot-die {
|
||||||
|
temperature = <120000>;
|
||||||
|
type = "hot";
|
||||||
|
hysteresis = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cooling-maps {
|
||||||
|
map0 {
|
||||||
|
trip = <&cpu_vreg_die_warn_temp_thresh>;
|
||||||
|
cooling-device = <&throttle_heavy 1 1>;
|
||||||
|
contribution = <100>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpu_vreg {
|
||||||
|
status = "okay";
|
||||||
|
polling-delay-passive = <250>;
|
||||||
|
polling-delay = <500>;
|
||||||
|
thermal-sensors = <&gpu_max_reg>;
|
||||||
|
|
||||||
|
trips {
|
||||||
|
gpu_vreg_die_warn_temp_thresh: hot-die {
|
||||||
|
temperature = <120000>;
|
||||||
|
type = "hot";
|
||||||
|
hysteresis = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cooling-maps {
|
||||||
|
/*
|
||||||
|
* There are currently no cooling maps,
|
||||||
|
* because there are no cooling devices.
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
2253
arch/arm64/boot/dts/nvidia/tegra210-odin.dts
Normal file
2253
arch/arm64/boot/dts/nvidia/tegra210-odin.dts
Normal file
File diff suppressed because it is too large
Load Diff
9
arch/arm64/boot/dts/nvidia/tegra210b01-fric.dts
Normal file
9
arch/arm64/boot/dts/nvidia/tegra210b01-fric.dts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "tegra210b01-nx.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Nintendo Switch (OLED model)";
|
||||||
|
compatible = "nvidia,fric", "nintendo,aula", "nintendo,nx", "nvidia,tegra210b01";
|
||||||
|
};
|
||||||
70
arch/arm64/boot/dts/nvidia/tegra210b01-nx.dtsi
Normal file
70
arch/arm64/boot/dts/nvidia/tegra210b01-nx.dtsi
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
#include "tegra210b01.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
serial0 = &uarta;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@80000000 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x80000000 0x0 0xc0000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
serial@70006000 {
|
||||||
|
/delete-property/ dmas;
|
||||||
|
/delete-property/ dma-names;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
mmc@700b0600 {
|
||||||
|
bus-width = <8>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
psci {
|
||||||
|
compatible = "arm,psci-1.0";
|
||||||
|
method = "smc";
|
||||||
|
};
|
||||||
|
};
|
||||||
10
arch/arm64/boot/dts/nvidia/tegra210b01-odin.dts
Normal file
10
arch/arm64/boot/dts/nvidia/tegra210b01-odin.dts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "tegra210b01-nx.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
|
||||||
|
model = "Nintendo Switch (2019)";
|
||||||
|
compatible = "nvidia,modin", "nvidia,odin", "nintendo,iowa", "nintendo,nx", "nvidia,tegra210b01";
|
||||||
|
};
|
||||||
52
arch/arm64/boot/dts/nvidia/tegra210b01-vali.dts
Normal file
52
arch/arm64/boot/dts/nvidia/tegra210b01-vali.dts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "tegra210b01-nx.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Nintendo Switch Lite";
|
||||||
|
compatible = "nvidia,vali", "nintendo,hoag", "nintendo,nx", "nvidia,tegra210b01";
|
||||||
|
|
||||||
|
/* Joycon/Fan power (usb) */
|
||||||
|
v_vdd50_b: v-vdd50-b {
|
||||||
|
status = "disabled"; /* Only enabled on Odin/Modin */
|
||||||
|
};
|
||||||
|
|
||||||
|
en_vdd_jcl_chgr: left-joycon-charger {
|
||||||
|
status = "disabled"; /* Only enabled on Odin/Modin/Fric */
|
||||||
|
};
|
||||||
|
|
||||||
|
en_vdd_jcr_chgr: right-joycon-charger {
|
||||||
|
status = "disabled"; /* Only enabled on Odin/Modin/Fric */
|
||||||
|
};
|
||||||
|
|
||||||
|
spi@7000da00 {
|
||||||
|
status = "disabled"; /* Disabled for Vali since Sio uses it */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Right Joycon */
|
||||||
|
serial@70006040 {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
joyconr {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Left Joycon / Sio */
|
||||||
|
serial@70006200 {
|
||||||
|
status = "okay";
|
||||||
|
/delete-property/ nvidia,invert-txd;
|
||||||
|
/delete-property/ nvidia,invert-rts;
|
||||||
|
|
||||||
|
joyconl {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
sio {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user