arm64: tegra: Device tree change for v4.21-rc1

These changes add a bunch of features for Tegra194 and Tegra186, such as
 wake events, on-die RTC, temperature sensors, HDA for audio over HDMI
 and fan support on Jetson Xavier to allow cooling of the device.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAlwKf7oTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zofceD/43trVxXm9WMt/mTWfVZuhJNmgnt8x2
 38m8cM09nw/E4sBMUfNwyUPo18swxZ1AEmluSkw1Rc6kzEU2S3xMv2lqJX70fyZE
 nl3Rt9NUu6YwWaackGZuqq4LWa6BhnMxuNPuEvapMIoFIpFT+wT+12M7CxK99Z2I
 0Du3Q0F/7v4Q9jvjMrdyerd/Jd43HkeysFR4hLJjaBkExVRfsntR7wb2P7kMWlRL
 A3rXhB5L9ZAze54z3jJyEayx8Eiq7qCh3iuKYZ3VeuOKcFbSUy4MjAg1ZoKrir2G
 6YbCmSURnnsj4A4OJD+P9g/0sWjE+9QWnnxeN5bFEcA4SnSLJT3F65z9G19p65/k
 Y2CDl7LAMFJN+1iYxWhQOfVw+LUGycs0eTrpNxoSSzZ/MSntexCTgFox1SCqfF/x
 fP9zmZGoZIQ/G9H+trhT1eRiE0l25gJjJGIcxRQTYtgVicK1YpsF8oBzl6k8sikI
 XpK0dO6kCsyLjfqw3VKoR3ZTLl4YJq6qQObaxtoFz94QaCudRcJ42AaHjdCOGhSP
 IXlp4/YFih9z2Uw58e09YcM0TawcAXS0h2twKMif7ktMBcO2Eo79c3cEapCgbo3e
 MN7yyoscNrIbl3PKhdj1J5VTU0li2EKZXfXPQZAf0NSPXJ9IZN0KWP5E23FgrpJB
 1+rrxD/8IhxoLg==
 =CDXO
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-4.21-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt

arm64: tegra: Device tree change for v4.21-rc1

These changes add a bunch of features for Tegra194 and Tegra186, such as
wake events, on-die RTC, temperature sensors, HDA for audio over HDMI
and fan support on Jetson Xavier to allow cooling of the device.

* tag 'tegra-for-4.21-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: (29 commits)
  arm64: tegra: Set reg property for display-hub on Tegra194
  arm64: tegra: Set reg property for display-hub on Tegra186
  arm64: dts: tegra186: Enable IOMMU for SDHCI
  arm64: tegra: Enable HDA controller on Jetson TX1
  arm64: tegra: Add CEC controller on Tegra194
  arm64: tegra: Enable HDA on Jetson Xavier
  arm64: tegra: Add HDA controller on Tegra194
  arm64: tegra: Add CEC controller on Tegra186
  arm64: tegra: Enable HDA on Jetson TX2
  arm64: tegra: Add HDA controller on Tegra186
  arm64: tegra: Add temperature sensor on P2888
  arm64: tegra: Add gpio-keys on Jetson Xavier
  arm64: tegra: Add AON GPIO controller on Tegra194
  arm64: tegra: p2888: Enable on-die RTC
  arm64: tegra: Add RTC support on Tegra194
  arm64: tegra: Enable PMC wake events on Tegra194
  arm64: tegra: p3310: Enable on-die RTC
  arm64: tegra: Add RTC support on Tegra186
  arm64: tegra: Enable PMC wake events on Tegra186
  arm64: tegra: Fix power key interrupt type on Jetson TX2
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2018-12-11 08:10:09 -08:00
commit 91eac9139e
8 changed files with 781 additions and 5 deletions

View File

@ -2,6 +2,7 @@
/dts-v1/; /dts-v1/;
#include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/input/gpio-keys.h>
#include "tegra186-p3310.dtsi" #include "tegra186-p3310.dtsi"
@ -50,6 +51,10 @@ sdhci@3400000 {
vmmc-supply = <&vdd_sd>; vmmc-supply = <&vdd_sd>;
}; };
hda@3510000 {
status = "okay";
};
pcie@10003000 { pcie@10003000 {
status = "okay"; status = "okay";
@ -121,6 +126,7 @@ power {
linux,input-type = <EV_KEY>; linux,input-type = <EV_KEY>;
linux,code = <KEY_POWER>; linux,code = <KEY_POWER>;
debounce-interval = <10>; debounce-interval = <10>;
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source; wakeup-source;
}; };

View File

@ -124,6 +124,10 @@ i2c@c250000 {
status = "okay"; status = "okay";
}; };
rtc@c2a0000 {
status = "okay";
};
pmc@c360000 { pmc@c360000 {
nvidia,invert-interrupt; nvidia,invert-interrupt;
}; };

View File

@ -237,6 +237,7 @@ sdmmc1: sdhci@3400000 {
clock-names = "sdhci"; clock-names = "sdhci";
resets = <&bpmp TEGRA186_RESET_SDMMC1>; resets = <&bpmp TEGRA186_RESET_SDMMC1>;
reset-names = "sdhci"; reset-names = "sdhci";
iommus = <&smmu TEGRA186_SID_SDMMC1>;
pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
pinctrl-0 = <&sdmmc1_3v3>; pinctrl-0 = <&sdmmc1_3v3>;
pinctrl-1 = <&sdmmc1_1v8>; pinctrl-1 = <&sdmmc1_1v8>;
@ -262,6 +263,7 @@ sdmmc2: sdhci@3420000 {
clock-names = "sdhci"; clock-names = "sdhci";
resets = <&bpmp TEGRA186_RESET_SDMMC2>; resets = <&bpmp TEGRA186_RESET_SDMMC2>;
reset-names = "sdhci"; reset-names = "sdhci";
iommus = <&smmu TEGRA186_SID_SDMMC2>;
pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
pinctrl-0 = <&sdmmc2_3v3>; pinctrl-0 = <&sdmmc2_3v3>;
pinctrl-1 = <&sdmmc2_1v8>; pinctrl-1 = <&sdmmc2_1v8>;
@ -282,6 +284,7 @@ sdmmc3: sdhci@3440000 {
clock-names = "sdhci"; clock-names = "sdhci";
resets = <&bpmp TEGRA186_RESET_SDMMC3>; resets = <&bpmp TEGRA186_RESET_SDMMC3>;
reset-names = "sdhci"; reset-names = "sdhci";
iommus = <&smmu TEGRA186_SID_SDMMC3>;
pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
pinctrl-0 = <&sdmmc3_3v3>; pinctrl-0 = <&sdmmc3_3v3>;
pinctrl-1 = <&sdmmc3_1v8>; pinctrl-1 = <&sdmmc3_1v8>;
@ -307,6 +310,7 @@ sdmmc4: sdhci@3460000 {
assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>; assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
resets = <&bpmp TEGRA186_RESET_SDMMC4>; resets = <&bpmp TEGRA186_RESET_SDMMC4>;
reset-names = "sdhci"; reset-names = "sdhci";
iommus = <&smmu TEGRA186_SID_SDMMC4>;
nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>; nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>;
nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>; nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>;
nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>; nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
@ -318,6 +322,22 @@ sdmmc4: sdhci@3460000 {
status = "disabled"; status = "disabled";
}; };
hda@3510000 {
compatible = "nvidia,tegra186-hda", "nvidia,tegra30-hda";
reg = <0x0 0x03510000 0x0 0x10000>;
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA186_CLK_HDA>,
<&bpmp TEGRA186_CLK_HDA2HDMICODEC>,
<&bpmp TEGRA186_CLK_HDA2CODEC_2X>;
clock-names = "hda", "hda2hdmi", "hda2codec_2x";
resets = <&bpmp TEGRA186_RESET_HDA>,
<&bpmp TEGRA186_RESET_HDA2HDMICODEC>,
<&bpmp TEGRA186_RESET_HDA2CODEC_2X>;
reset-names = "hda", "hda2hdmi", "hda2codec_2x";
power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
status = "disabled";
};
fuse@3820000 { fuse@3820000 {
compatible = "nvidia,tegra186-efuse"; compatible = "nvidia,tegra186-efuse";
reg = <0x0 0x03820000 0x0 0x10000>; reg = <0x0 0x03820000 0x0 0x10000>;
@ -336,6 +356,15 @@ gic: interrupt-controller@3881000 {
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
}; };
cec@3960000 {
compatible = "nvidia,tegra186-cec";
reg = <0x0 0x03960000 0x0 0x10000>;
interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA186_CLK_CEC>;
clock-names = "cec";
status = "disabled";
};
hsp_top0: hsp@3c00000 { hsp_top0: hsp@3c00000 {
compatible = "nvidia,tegra186-hsp"; compatible = "nvidia,tegra186-hsp";
reg = <0x0 0x03c00000 0x0 0xa0000>; reg = <0x0 0x03c00000 0x0 0xa0000>;
@ -395,6 +424,16 @@ uartg: serial@c290000 {
status = "disabled"; status = "disabled";
}; };
rtc: rtc@c2a0000 {
compatible = "nvidia,tegra186-rtc", "nvidia,tegra20-rtc";
reg = <0 0x0c2a0000 0 0x10000>;
interrupt-parent = <&pmc>;
interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA186_CLK_CLK_32K>;
clock-names = "rtc";
status = "disabled";
};
gpio_aon: gpio@c2f0000 { gpio_aon: gpio@c2f0000 {
compatible = "nvidia,tegra186-gpio-aon"; compatible = "nvidia,tegra186-gpio-aon";
reg-names = "security", "gpio"; reg-names = "security", "gpio";
@ -407,7 +446,7 @@ gpio_aon: gpio@c2f0000 {
#interrupt-cells = <2>; #interrupt-cells = <2>;
}; };
pmc@c360000 { pmc: pmc@c360000 {
compatible = "nvidia,tegra186-pmc"; compatible = "nvidia,tegra186-pmc";
reg = <0 0x0c360000 0 0x10000>, reg = <0 0x0c360000 0 0x10000>,
<0 0x0c370000 0 0x10000>, <0 0x0c370000 0 0x10000>,
@ -415,6 +454,9 @@ pmc@c360000 {
<0 0x0c390000 0 0x10000>; <0 0x0c390000 0 0x10000>;
reg-names = "pmc", "wake", "aotag", "scratch"; reg-names = "pmc", "wake", "aotag", "scratch";
#interrupt-cells = <2>;
interrupt-controller;
sdmmc1_3v3: sdmmc1-3v3 { sdmmc1_3v3: sdmmc1-3v3 {
pins = "sdmmc1-hv"; pins = "sdmmc1-hv";
power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>; power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
@ -660,6 +702,7 @@ i2c-bus {
display-hub@15200000 { display-hub@15200000 {
compatible = "nvidia,tegra186-display", "simple-bus"; compatible = "nvidia,tegra186-display", "simple-bus";
reg = <0x15200000 0x00040000>;
resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>, resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>,
<&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>, <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>,
<&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>, <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>,

View File

@ -66,6 +66,10 @@ sdhci@3460000 {
vmmc-supply = <&vdd_emmc_3v3>; vmmc-supply = <&vdd_emmc_3v3>;
}; };
rtc@c2a0000 {
status = "okay";
};
pmc@c360000 { pmc@c360000 {
nvidia,invert-interrupt; nvidia,invert-interrupt;
}; };
@ -163,7 +167,7 @@ regulators {
in-ldo4-6-supply = <&vdd_5v0_sys>; in-ldo4-6-supply = <&vdd_5v0_sys>;
in-ldo7-8-supply = <&vdd_1v8ls>; in-ldo7-8-supply = <&vdd_1v8ls>;
sd0 { vdd_1v0: sd0 {
regulator-name = "VDD_1V0"; regulator-name = "VDD_1V0";
regulator-min-microvolt = <1000000>; regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>; regulator-max-microvolt = <1000000>;
@ -171,7 +175,7 @@ sd0 {
regulator-boot-on; regulator-boot-on;
}; };
sd1 { vdd_1v8hs: sd1 {
regulator-name = "VDD_1V8HS"; regulator-name = "VDD_1V8HS";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
@ -244,6 +248,17 @@ ldo7 {
}; };
}; };
}; };
temperature-sensor@4c {
compatible = "ti,tmp451";
reg = <0x4c>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA194_MAIN_GPIO(H, 2)
IRQ_TYPE_LEVEL_LOW>;
#thermal-sensor-cells = <1>;
};
}; };
}; };
@ -262,5 +277,16 @@ vdd_5v0_sys: regulator@0 {
regulator-always-on; regulator-always-on;
regulator-boot-on; regulator-boot-on;
}; };
vdd_hdmi: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "VDD_5V0_HDMI_CON";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio TEGRA194_MAIN_GPIO(A, 3) GPIO_ACTIVE_HIGH>;
enable-active-high;
};
}; };
}; };

View File

@ -1,10 +1,13 @@
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/input/gpio-keys.h>
#include "tegra194-p2888.dtsi" #include "tegra194-p2888.dtsi"
/ { / {
model = "NVIDIA Tegra194 P2972-0000 Development Board"; model = "NVIDIA Jetson AGX Xavier Development Kit";
compatible = "nvidia,p2972-0000", "nvidia,tegra194"; compatible = "nvidia,p2972-0000", "nvidia,tegra194";
cbb { cbb {
@ -12,5 +15,157 @@ cbb {
sdhci@3400000 { sdhci@3400000 {
status = "okay"; status = "okay";
}; };
ddc: i2c@31c0000 {
status = "okay";
};
pwm@c340000 {
status = "okay";
};
hda@3510000 {
status = "okay";
};
host1x@13e00000 {
display-hub@15200000 {
status = "okay";
};
dpaux@155e0000 {
status = "okay";
};
sor@15b80000 {
status = "okay";
avdd-io-supply = <&vdd_1v0>;
vdd-pll-supply = <&vdd_1v8hs>;
hdmi-supply = <&vdd_hdmi>;
nvidia,ddc-i2c-bus = <&ddc>;
nvidia,hpd-gpio = <&gpio TEGRA194_MAIN_GPIO(M, 2)
GPIO_ACTIVE_LOW>;
};
};
};
fan: fan {
compatible = "pwm-fan";
pwms = <&pwm4 0 45334>;
cooling-levels = <0 64 128 255>;
cooling-min-state = <0>;
cooling-max-state = <3>;
#cooling-cells = <2>;
};
gpio-keys {
compatible = "gpio-keys";
force-recovery {
label = "Force Recovery";
gpios = <&gpio TEGRA194_MAIN_GPIO(G, 0)
GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
linux,code = <BTN_1>;
debounce-interval = <10>;
};
power {
label = "Power";
gpios = <&gpio_aon TEGRA194_AON_GPIO(EE, 4)
GPIO_ACTIVE_LOW>;
linux,input-type = <EV_KEY>;
linux,code = <KEY_POWER>;
debounce-interval = <10>;
wakeup-event-action = <EV_ACT_ASSERTED>;
wakeup-source;
};
};
thermal-zones {
cpu {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
cpu_trip_critical: critical {
temperature = <96500>;
hysteresis = <0>;
type = "critical";
};
cpu_trip_hot: hot {
temperature = <70000>;
hysteresis = <2000>;
type = "hot";
};
cpu_trip_active: active {
temperature = <50000>;
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>;
};
};
};
gpu {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
gpu_alert0: critical {
temperature = <99000>;
hysteresis = <0>;
type = "critical";
};
};
};
aux {
polling-delay = <0>;
polling-delay-passive = <500>;
status = "okay";
trips {
aux_alert0: critical {
temperature = <90000>;
hysteresis = <0>;
type = "critical";
};
};
};
}; };
}; };

View File

@ -4,6 +4,8 @@
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/mailbox/tegra186-hsp.h> #include <dt-bindings/mailbox/tegra186-hsp.h>
#include <dt-bindings/reset/tegra194-reset.h> #include <dt-bindings/reset/tegra194-reset.h>
#include <dt-bindings/power/tegra194-powergate.h>
#include <dt-bindings/thermal/tegra194-bpmp-thermal.h>
/ { / {
compatible = "nvidia,tegra194"; compatible = "nvidia,tegra194";
@ -209,6 +211,90 @@ gen9_i2c: i2c@31e0000 {
status = "disabled"; status = "disabled";
}; };
pwm1: pwm@3280000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x3280000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM1>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM1>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm2: pwm@3290000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x3290000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM2>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM2>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm3: pwm@32a0000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x32a0000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM3>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM3>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm5: pwm@32c0000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x32c0000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM5>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM5>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm6: pwm@32d0000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x32d0000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM6>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM6>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm7: pwm@32e0000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x32e0000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM7>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM7>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pwm8: pwm@32f0000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0x32f0000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM8>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM8>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
sdmmc1: sdhci@3400000 { sdmmc1: sdhci@3400000 {
compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci"; compatible = "nvidia,tegra194-sdhci", "nvidia,tegra186-sdhci";
reg = <0x03400000 0x10000>; reg = <0x03400000 0x10000>;
@ -242,6 +328,22 @@ sdmmc4: sdhci@3460000 {
status = "disabled"; status = "disabled";
}; };
hda@3510000 {
compatible = "nvidia,tegra194-hda", "nvidia,tegra30-hda";
reg = <0x3510000 0x10000>;
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_HDA>,
<&bpmp TEGRA194_CLK_HDA2CODEC_2X>,
<&bpmp TEGRA194_CLK_HDA2HDMICODEC>;
clock-names = "hda", "hda2codec_2x", "hda2hdmi";
resets = <&bpmp TEGRA194_RESET_HDA>,
<&bpmp TEGRA194_RESET_HDA2CODEC_2X>,
<&bpmp TEGRA194_RESET_HDA2HDMICODEC>;
reset-names = "hda", "hda2codec_2x", "hda2hdmi";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
status = "disabled";
};
gic: interrupt-controller@3881000 { gic: interrupt-controller@3881000 {
compatible = "arm,gic-400"; compatible = "arm,gic-400";
#interrupt-cells = <3>; #interrupt-cells = <3>;
@ -255,6 +357,15 @@ gic: interrupt-controller@3881000 {
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
}; };
cec@3960000 {
compatible = "nvidia,tegra194-cec";
reg = <0x03960000 0x10000>;
interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_CEC>;
clock-names = "cec";
status = "disabled";
};
hsp_top0: hsp@3c00000 { hsp_top0: hsp@3c00000 {
compatible = "nvidia,tegra186-hsp"; compatible = "nvidia,tegra186-hsp";
reg = <0x03c00000 0xa0000>; reg = <0x03c00000 0xa0000>;
@ -313,7 +424,44 @@ uartg: serial@c290000 {
status = "disabled"; status = "disabled";
}; };
pmc@c360000 { rtc: rtc@c2a0000 {
compatible = "nvidia,tegra194-rtc", "nvidia,tegra20-rtc";
reg = <0x0c2a0000 0x10000>;
interrupt-parent = <&pmc>;
interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_CLK_32K>;
clock-names = "rtc";
status = "disabled";
};
gpio_aon: gpio@c2f0000 {
compatible = "nvidia,tegra194-gpio-aon";
reg-names = "security", "gpio";
reg = <0xc2f0000 0x1000>,
<0xc2f1000 0x1000>;
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pwm4: pwm@c340000 {
compatible = "nvidia,tegra194-pwm",
"nvidia,tegra186-pwm";
reg = <0xc340000 0x10000>;
clocks = <&bpmp TEGRA194_CLK_PWM4>;
clock-names = "pwm";
resets = <&bpmp TEGRA194_RESET_PWM4>;
reset-names = "pwm";
status = "disabled";
#pwm-cells = <2>;
};
pmc: pmc@c360000 {
compatible = "nvidia,tegra194-pmc"; compatible = "nvidia,tegra194-pmc";
reg = <0x0c360000 0x10000>, reg = <0x0c360000 0x10000>,
<0x0c370000 0x10000>, <0x0c370000 0x10000>,
@ -321,6 +469,356 @@ pmc@c360000 {
<0x0c390000 0x10000>, <0x0c390000 0x10000>,
<0x0c3a0000 0x10000>; <0x0c3a0000 0x10000>;
reg-names = "pmc", "wake", "aotag", "scratch", "misc"; reg-names = "pmc", "wake", "aotag", "scratch", "misc";
#interrupt-cells = <2>;
interrupt-controller;
};
host1x@13e00000 {
compatible = "nvidia,tegra194-host1x", "simple-bus";
reg = <0x13e00000 0x10000>,
<0x13e10000 0x10000>;
reg-names = "hypervisor", "vm";
interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_HOST1X>;
clock-names = "host1x";
resets = <&bpmp TEGRA194_RESET_HOST1X>;
reset-names = "host1x";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x15000000 0x15000000 0x01000000>;
display-hub@15200000 {
compatible = "nvidia,tegra194-display", "simple-bus";
reg = <0x15200000 0x00040000>;
resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_MISC>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP0>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP1>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP2>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP3>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP4>,
<&bpmp TEGRA194_RESET_NVDISPLAY0_WGRP5>;
reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
"wgrp3", "wgrp4", "wgrp5";
clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_DISP>,
<&bpmp TEGRA194_CLK_NVDISPLAYHUB>;
clock-names = "disp", "hub";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x15200000 0x15200000 0x40000>;
display@15200000 {
compatible = "nvidia,tegra194-dc";
reg = <0x15200000 0x10000>;
interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P0>;
clock-names = "dc";
resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD0>;
reset-names = "dc";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
nvidia,head = <0>;
};
display@15210000 {
compatible = "nvidia,tegra194-dc";
reg = <0x15210000 0x10000>;
interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P1>;
clock-names = "dc";
resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD1>;
reset-names = "dc";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPB>;
nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
nvidia,head = <1>;
};
display@15220000 {
compatible = "nvidia,tegra194-dc";
reg = <0x15220000 0x10000>;
interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P2>;
clock-names = "dc";
resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD2>;
reset-names = "dc";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPC>;
nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
nvidia,head = <2>;
};
display@15230000 {
compatible = "nvidia,tegra194-dc";
reg = <0x15230000 0x10000>;
interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_NVDISPLAY_P3>;
clock-names = "dc";
resets = <&bpmp TEGRA194_RESET_NVDISPLAY0_HEAD3>;
reset-names = "dc";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISPC>;
nvidia,outputs = <&sor0 &sor1 &sor2 &sor3>;
nvidia,head = <3>;
};
};
vic@15340000 {
compatible = "nvidia,tegra194-vic";
reg = <0x15340000 0x00040000>;
interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_VIC>;
clock-names = "vic";
resets = <&bpmp TEGRA194_RESET_VIC>;
reset-names = "vic";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_VIC>;
};
dpaux0: dpaux@155c0000 {
compatible = "nvidia,tegra194-dpaux";
reg = <0x155c0000 0x10000>;
interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_DPAUX>,
<&bpmp TEGRA194_CLK_PLLDP>;
clock-names = "dpaux", "parent";
resets = <&bpmp TEGRA194_RESET_DPAUX>;
reset-names = "dpaux";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
state_dpaux0_aux: pinmux-aux {
groups = "dpaux-io";
function = "aux";
};
state_dpaux0_i2c: pinmux-i2c {
groups = "dpaux-io";
function = "i2c";
};
state_dpaux0_off: pinmux-off {
groups = "dpaux-io";
function = "off";
};
i2c-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};
dpaux1: dpaux@155d0000 {
compatible = "nvidia,tegra194-dpaux";
reg = <0x155d0000 0x10000>;
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_DPAUX1>,
<&bpmp TEGRA194_CLK_PLLDP>;
clock-names = "dpaux", "parent";
resets = <&bpmp TEGRA194_RESET_DPAUX1>;
reset-names = "dpaux";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
state_dpaux1_aux: pinmux-aux {
groups = "dpaux-io";
function = "aux";
};
state_dpaux1_i2c: pinmux-i2c {
groups = "dpaux-io";
function = "i2c";
};
state_dpaux1_off: pinmux-off {
groups = "dpaux-io";
function = "off";
};
i2c-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};
dpaux2: dpaux@155e0000 {
compatible = "nvidia,tegra194-dpaux";
reg = <0x155e0000 0x10000>;
interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_DPAUX2>,
<&bpmp TEGRA194_CLK_PLLDP>;
clock-names = "dpaux", "parent";
resets = <&bpmp TEGRA194_RESET_DPAUX2>;
reset-names = "dpaux";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
state_dpaux2_aux: pinmux-aux {
groups = "dpaux-io";
function = "aux";
};
state_dpaux2_i2c: pinmux-i2c {
groups = "dpaux-io";
function = "i2c";
};
state_dpaux2_off: pinmux-off {
groups = "dpaux-io";
function = "off";
};
i2c-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};
dpaux3: dpaux@155f0000 {
compatible = "nvidia,tegra194-dpaux";
reg = <0x155f0000 0x10000>;
interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_DPAUX3>,
<&bpmp TEGRA194_CLK_PLLDP>;
clock-names = "dpaux", "parent";
resets = <&bpmp TEGRA194_RESET_DPAUX3>;
reset-names = "dpaux";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
state_dpaux3_aux: pinmux-aux {
groups = "dpaux-io";
function = "aux";
};
state_dpaux3_i2c: pinmux-i2c {
groups = "dpaux-io";
function = "i2c";
};
state_dpaux3_off: pinmux-off {
groups = "dpaux-io";
function = "off";
};
i2c-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};
sor0: sor@15b00000 {
compatible = "nvidia,tegra194-sor";
reg = <0x15b00000 0x40000>;
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_SOR0_REF>,
<&bpmp TEGRA194_CLK_SOR0_OUT>,
<&bpmp TEGRA194_CLK_PLLD>,
<&bpmp TEGRA194_CLK_PLLDP>,
<&bpmp TEGRA194_CLK_SOR_SAFE>,
<&bpmp TEGRA194_CLK_SOR0_PAD_CLKOUT>;
clock-names = "sor", "out", "parent", "dp", "safe",
"pad";
resets = <&bpmp TEGRA194_RESET_SOR0>;
reset-names = "sor";
pinctrl-0 = <&state_dpaux0_aux>;
pinctrl-1 = <&state_dpaux0_i2c>;
pinctrl-2 = <&state_dpaux0_off>;
pinctrl-names = "aux", "i2c", "off";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
nvidia,interface = <0>;
};
sor1: sor@15b40000 {
compatible = "nvidia,tegra194-sor";
reg = <0x155c0000 0x40000>;
interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_SOR1_REF>,
<&bpmp TEGRA194_CLK_SOR1_OUT>,
<&bpmp TEGRA194_CLK_PLLD2>,
<&bpmp TEGRA194_CLK_PLLDP>,
<&bpmp TEGRA194_CLK_SOR_SAFE>,
<&bpmp TEGRA194_CLK_SOR1_PAD_CLKOUT>;
clock-names = "sor", "out", "parent", "dp", "safe",
"pad";
resets = <&bpmp TEGRA194_RESET_SOR1>;
reset-names = "sor";
pinctrl-0 = <&state_dpaux1_aux>;
pinctrl-1 = <&state_dpaux1_i2c>;
pinctrl-2 = <&state_dpaux1_off>;
pinctrl-names = "aux", "i2c", "off";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
nvidia,interface = <1>;
};
sor2: sor@15b80000 {
compatible = "nvidia,tegra194-sor";
reg = <0x15b80000 0x40000>;
interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_SOR2_REF>,
<&bpmp TEGRA194_CLK_SOR2_OUT>,
<&bpmp TEGRA194_CLK_PLLD3>,
<&bpmp TEGRA194_CLK_PLLDP>,
<&bpmp TEGRA194_CLK_SOR_SAFE>,
<&bpmp TEGRA194_CLK_SOR2_PAD_CLKOUT>;
clock-names = "sor", "out", "parent", "dp", "safe",
"pad";
resets = <&bpmp TEGRA194_RESET_SOR2>;
reset-names = "sor";
pinctrl-0 = <&state_dpaux2_aux>;
pinctrl-1 = <&state_dpaux2_i2c>;
pinctrl-2 = <&state_dpaux2_off>;
pinctrl-names = "aux", "i2c", "off";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
nvidia,interface = <2>;
};
sor3: sor@15bc0000 {
compatible = "nvidia,tegra194-sor";
reg = <0x15bc0000 0x40000>;
interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_SOR3_REF>,
<&bpmp TEGRA194_CLK_SOR3_OUT>,
<&bpmp TEGRA194_CLK_PLLD4>,
<&bpmp TEGRA194_CLK_PLLDP>,
<&bpmp TEGRA194_CLK_SOR_SAFE>,
<&bpmp TEGRA194_CLK_SOR3_PAD_CLKOUT>;
clock-names = "sor", "out", "parent", "dp", "safe",
"pad";
resets = <&bpmp TEGRA194_RESET_SOR3>;
reset-names = "sor";
pinctrl-0 = <&state_dpaux3_aux>;
pinctrl-1 = <&state_dpaux3_i2c>;
pinctrl-2 = <&state_dpaux3_off>;
pinctrl-names = "aux", "i2c", "off";
status = "disabled";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
nvidia,interface = <3>;
};
}; };
}; };
@ -435,6 +933,44 @@ psci {
method = "smc"; method = "smc";
}; };
thermal-zones {
cpu {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_CPU>;
status = "disabled";
};
gpu {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_GPU>;
status = "disabled";
};
aux {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_AUX>;
status = "disabled";
};
pllx {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_PLLX>;
status = "disabled";
};
ao {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_AO>;
status = "disabled";
};
tj {
thermal-sensors = <&{/bpmp/thermal}
TEGRA194_BPMP_THERMAL_ZONE_TJ_MAX>;
status = "disabled";
};
};
timer { timer {
compatible = "arm,armv8-timer"; compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 interrupts = <GIC_PPI 13

View File

@ -1330,6 +1330,10 @@ sata@70020000 {
phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>; phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>;
}; };
hda@70030000 {
status = "okay";
};
padctl@7009f000 { padctl@7009f000 {
status = "okay"; status = "okay";

View File

@ -879,6 +879,8 @@ usb@70090000 {
resets = <&tegra_car 89>, <&tegra_car 156>, resets = <&tegra_car 89>, <&tegra_car 156>,
<&tegra_car 143>; <&tegra_car 143>;
reset-names = "xusb_host", "xusb_ss", "xusb_src"; reset-names = "xusb_host", "xusb_ss", "xusb_src";
power-domains = <&pd_xusbhost>, <&pd_xusbss>;
power-domain-names = "xusb_host", "xusb_ss";
nvidia,xusb-padctl = <&padctl>; nvidia,xusb-padctl = <&padctl>;