Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

arm64: tegra: Device tree changes for v6.4-rc1

This adds support for the Jetson Orin NX and includes updates for Jetson
AGX Orin (audio codec, USB Type-C support).

* tag 'tegra-for-6.4-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
arm64: tegra: Add vccmq on Jetson TX2
arm64: tegra: Populate USB Type-C Controller for Jetson AGX Orin
arm64: tegra: Audio codec support on Jetson AGX Orin
arm64: tegra: Support Jetson Orin NX reference platform
arm64: tegra: Support Jetson Orin NX
dt-bindings: tegra: Document Jetson Orin NX reference platform
dt-bindings: tegra: Document Jetson Orin NX
arm64: tegra: Add DSU PMUs for Tegra234
arm64: tegra: Drop serial clock-names and reset-names

Link: https://lore.kernel.org/r/20230406124804.970394-6-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+717 -25
+9
Documentation/devicetree/bindings/arm/tegra.yaml
··· 167 167 - const: nvidia,p3737-0000+p3701-0000 168 168 - const: nvidia,p3701-0000 169 169 - const: nvidia,tegra234 170 + - description: Jetson Orin NX 171 + items: 172 + - const: nvidia,p3767-0000 173 + - const: nvidia,tegra234 174 + - description: Jetson Orin NX Engineering Reference Developer Kit 175 + items: 176 + - const: nvidia,p3768-0000+p3767-0000 177 + - const: nvidia,p3767-0000 178 + - const: nvidia,tegra234 170 179 171 180 additionalProperties: true
+2
arch/arm64/boot/dts/nvidia/Makefile
··· 9 9 DTC_FLAGS_tegra194-p3509-0000+p3668-0000 := -@ 10 10 DTC_FLAGS_tegra194-p3509-0000+p3668-0001 := -@ 11 11 DTC_FLAGS_tegra234-p3737-0000+p3701-0000 := -@ 12 + DTC_FLAGS_tegra234-p3768-0000+p3767-0000 := -@ 12 13 13 14 dtb-$(CONFIG_ARCH_TEGRA_132_SOC) += tegra132-norrin.dtb 14 15 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb ··· 25 24 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb 26 25 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb 27 26 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb 27 + dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3768-0000+p3767-0000.dtb
-8
arch/arm64/boot/dts/nvidia/tegra132.dtsi
··· 338 338 reg-shift = <2>; 339 339 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 340 340 clocks = <&tegra_car TEGRA124_CLK_UARTA>; 341 - clock-names = "serial"; 342 341 resets = <&tegra_car 6>; 343 - reset-names = "serial"; 344 342 dmas = <&apbdma 8>, <&apbdma 8>; 345 343 dma-names = "rx", "tx"; 346 344 status = "disabled"; ··· 350 352 reg-shift = <2>; 351 353 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 352 354 clocks = <&tegra_car TEGRA124_CLK_UARTB>; 353 - clock-names = "serial"; 354 355 resets = <&tegra_car 7>; 355 - reset-names = "serial"; 356 356 dmas = <&apbdma 9>, <&apbdma 9>; 357 357 dma-names = "rx", "tx"; 358 358 status = "disabled"; ··· 362 366 reg-shift = <2>; 363 367 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 364 368 clocks = <&tegra_car TEGRA124_CLK_UARTC>; 365 - clock-names = "serial"; 366 369 resets = <&tegra_car 55>; 367 - reset-names = "serial"; 368 370 dmas = <&apbdma 10>, <&apbdma 10>; 369 371 dma-names = "rx", "tx"; 370 372 status = "disabled"; ··· 374 380 reg-shift = <2>; 375 381 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 376 382 clocks = <&tegra_car TEGRA124_CLK_UARTD>; 377 - clock-names = "serial"; 378 383 resets = <&tegra_car 65>; 379 - reset-names = "serial"; 380 384 dmas = <&apbdma 19>, <&apbdma 19>; 381 385 dma-names = "rx", "tx"; 382 386 status = "disabled";
+1
arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
··· 145 145 /* SDMMC3 (SDIO) */ 146 146 mmc@3440000 { 147 147 status = "okay"; 148 + vqmmc-supply = <&vddio_sdmmc3>; 148 149 }; 149 150 150 151 /* SDMMC4 (eMMC) */
-2
arch/arm64/boot/dts/nvidia/tegra186.dtsi
··· 610 610 reg-shift = <2>; 611 611 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 612 612 clocks = <&bpmp TEGRA186_CLK_UARTA>; 613 - clock-names = "serial"; 614 613 resets = <&bpmp TEGRA186_RESET_UARTA>; 615 - reset-names = "serial"; 616 614 status = "disabled"; 617 615 }; 618 616
-4
arch/arm64/boot/dts/nvidia/tegra194.dtsi
··· 745 745 reg-shift = <2>; 746 746 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 747 747 clocks = <&bpmp TEGRA194_CLK_UARTA>; 748 - clock-names = "serial"; 749 748 resets = <&bpmp TEGRA194_RESET_UARTA>; 750 - reset-names = "serial"; 751 749 status = "disabled"; 752 750 }; 753 751 ··· 755 757 reg-shift = <2>; 756 758 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 757 759 clocks = <&bpmp TEGRA194_CLK_UARTB>; 758 - clock-names = "serial"; 759 760 resets = <&bpmp TEGRA194_RESET_UARTB>; 760 - reset-names = "serial"; 761 761 status = "disabled"; 762 762 }; 763 763
-8
arch/arm64/boot/dts/nvidia/tegra210.dtsi
··· 618 618 reg-shift = <2>; 619 619 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 620 620 clocks = <&tegra_car TEGRA210_CLK_UARTA>; 621 - clock-names = "serial"; 622 621 resets = <&tegra_car 6>; 623 - reset-names = "serial"; 624 622 dmas = <&apbdma 8>, <&apbdma 8>; 625 623 dma-names = "rx", "tx"; 626 624 status = "disabled"; ··· 630 632 reg-shift = <2>; 631 633 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 632 634 clocks = <&tegra_car TEGRA210_CLK_UARTB>; 633 - clock-names = "serial"; 634 635 resets = <&tegra_car 7>; 635 - reset-names = "serial"; 636 636 dmas = <&apbdma 9>, <&apbdma 9>; 637 637 dma-names = "rx", "tx"; 638 638 status = "disabled"; ··· 642 646 reg-shift = <2>; 643 647 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 644 648 clocks = <&tegra_car TEGRA210_CLK_UARTC>; 645 - clock-names = "serial"; 646 649 resets = <&tegra_car 55>; 647 - reset-names = "serial"; 648 650 dmas = <&apbdma 10>, <&apbdma 10>; 649 651 dma-names = "rx", "tx"; 650 652 status = "disabled"; ··· 654 660 reg-shift = <2>; 655 661 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 656 662 clocks = <&tegra_car TEGRA210_CLK_UARTD>; 657 - clock-names = "serial"; 658 663 resets = <&tegra_car 65>; 659 - reset-names = "serial"; 660 664 dmas = <&apbdma 19>, <&apbdma 19>; 661 665 dma-names = "rx", "tx"; 662 666 status = "disabled";
+122 -1
arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
··· 3 3 4 4 #include <dt-bindings/input/linux-event-codes.h> 5 5 #include <dt-bindings/input/gpio-keys.h> 6 + #include <dt-bindings/sound/rt5640.h> 6 7 7 8 #include "tegra234-p3701-0000.dtsi" 8 9 #include "tegra234-p3737-0000.dtsi" ··· 50 49 51 50 i2s1_dap: endpoint { 52 51 dai-format = "i2s"; 53 - /* placeholder for external codec */ 52 + remote-endpoint = <&rt5640_ep>; 54 53 }; 55 54 }; 56 55 }; ··· 2018 2017 status = "okay"; 2019 2018 }; 2020 2019 2020 + i2c@31e0000 { 2021 + status = "okay"; 2022 + 2023 + audio-codec@1c { 2024 + compatible = "realtek,rt5640"; 2025 + reg = <0x1c>; 2026 + interrupt-parent = <&gpio>; 2027 + interrupts = <TEGRA234_MAIN_GPIO(AC, 5) GPIO_ACTIVE_HIGH>; 2028 + clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>; 2029 + clock-names = "mclk"; 2030 + realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>; 2031 + realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>; 2032 + realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>; 2033 + sound-name-prefix = "CVB-RT"; 2034 + 2035 + port { 2036 + rt5640_ep: endpoint { 2037 + remote-endpoint = <&i2s1_dap>; 2038 + mclk-fs = <256>; 2039 + }; 2040 + }; 2041 + }; 2042 + }; 2043 + 2021 2044 pwm@32a0000 { 2022 2045 assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>; 2023 2046 assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>; ··· 2098 2073 usb2-0 { 2099 2074 mode = "host"; 2100 2075 status = "okay"; 2076 + port { 2077 + hs_typec_p1: endpoint { 2078 + remote-endpoint = <&hs_ucsi_ccg_p1>; 2079 + }; 2080 + }; 2101 2081 }; 2102 2082 2103 2083 usb2-1 { 2104 2084 mode = "host"; 2105 2085 status = "okay"; 2086 + port { 2087 + hs_typec_p0: endpoint { 2088 + remote-endpoint = <&hs_ucsi_ccg_p0>; 2089 + }; 2090 + }; 2106 2091 }; 2107 2092 2108 2093 usb2-2 { ··· 2128 2093 usb3-0 { 2129 2094 nvidia,usb2-companion = <1>; 2130 2095 status = "okay"; 2096 + port { 2097 + ss_typec_p0: endpoint { 2098 + remote-endpoint = <&ss_ucsi_ccg_p0>; 2099 + }; 2100 + }; 2131 2101 }; 2132 2102 2133 2103 usb3-1 { 2134 2104 nvidia,usb2-companion = <0>; 2135 2105 status = "okay"; 2106 + port { 2107 + ss_typec_p1: endpoint { 2108 + remote-endpoint = <&ss_ucsi_ccg_p1>; 2109 + }; 2110 + }; 2136 2111 }; 2137 2112 2138 2113 usb3-2 { ··· 2234 2189 <&p2u_nvhs_6>, <&p2u_nvhs_7>; 2235 2190 phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4", 2236 2191 "p2u-5", "p2u-6", "p2u-7"; 2192 + }; 2193 + 2194 + i2c@c240000 { 2195 + status = "okay"; 2196 + typec@8 { 2197 + compatible = "cypress,cypd4226"; 2198 + reg = <0x08>; 2199 + interrupt-parent = <&gpio>; 2200 + interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>; 2201 + firmware-name = "nvidia,jetson-agx-xavier"; 2202 + status = "okay"; 2203 + #address-cells = <1>; 2204 + #size-cells = <0>; 2205 + ccg_typec_con0: connector@0 { 2206 + compatible = "usb-c-connector"; 2207 + reg = <0>; 2208 + label = "USB-C"; 2209 + data-role = "host"; 2210 + ports { 2211 + #address-cells = <1>; 2212 + #size-cells = <0>; 2213 + port@0 { 2214 + reg = <0>; 2215 + hs_ucsi_ccg_p0: endpoint { 2216 + remote-endpoint = <&hs_typec_p0>; 2217 + }; 2218 + }; 2219 + port@1 { 2220 + reg = <1>; 2221 + ss_ucsi_ccg_p0: endpoint { 2222 + remote-endpoint = <&ss_typec_p0>; 2223 + }; 2224 + }; 2225 + }; 2226 + }; 2227 + ccg_typec_con1: connector@1 { 2228 + compatible = "usb-c-connector"; 2229 + reg = <1>; 2230 + label = "USB-C"; 2231 + data-role = "dual"; 2232 + ports { 2233 + #address-cells = <1>; 2234 + #size-cells = <0>; 2235 + port@0 { 2236 + reg = <0>; 2237 + hs_ucsi_ccg_p1: endpoint { 2238 + remote-endpoint = <&hs_typec_p1>; 2239 + }; 2240 + }; 2241 + port@1 { 2242 + reg = <1>; 2243 + ss_ucsi_ccg_p1: endpoint { 2244 + remote-endpoint = <&ss_typec_p1>; 2245 + }; 2246 + }; 2247 + }; 2248 + }; 2249 + }; 2237 2250 }; 2238 2251 }; 2239 2252 ··· 2396 2293 <&dmic3_port>; 2397 2294 2398 2295 label = "NVIDIA Jetson AGX Orin APE"; 2296 + 2297 + widgets = "Microphone", "CVB-RT MIC Jack", 2298 + "Microphone", "CVB-RT MIC", 2299 + "Headphone", "CVB-RT HP Jack", 2300 + "Speaker", "CVB-RT SPK"; 2301 + 2302 + routing = /* I2S1 <-> RT5640 */ 2303 + "CVB-RT AIF1 Playback", "I2S1 DAP-Playback", 2304 + "I2S1 DAP-Capture", "CVB-RT AIF1 Capture", 2305 + /* RT5640 codec controls */ 2306 + "CVB-RT HP Jack", "CVB-RT HPOL", 2307 + "CVB-RT HP Jack", "CVB-RT HPOR", 2308 + "CVB-RT IN1P", "CVB-RT MIC Jack", 2309 + "CVB-RT IN2P", "CVB-RT MIC Jack", 2310 + "CVB-RT SPK", "CVB-RT SPOLP", 2311 + "CVB-RT SPK", "CVB-RT SPORP", 2312 + "CVB-RT DMIC1", "CVB-RT MIC", 2313 + "CVB-RT DMIC2", "CVB-RT MIC"; 2399 2314 }; 2400 2315 };
+14
arch/arm64/boot/dts/nvidia/tegra234-p3767-0000.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + 3 + #include "tegra234-p3767.dtsi" 4 + 5 + / { 6 + compatible = "nvidia,p3767-0000", "nvidia,tegra234"; 7 + model = "NVIDIA Jetson Orin NX"; 8 + 9 + bus@0 { 10 + hda@3510000 { 11 + nvidia,model = "NVIDIA Jetson Orin NX HDA"; 12 + }; 13 + }; 14 + };
+172
arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + 3 + #include "tegra234.dtsi" 4 + 5 + / { 6 + compatible = "nvidia,p3767", "nvidia,tegra234"; 7 + 8 + bus@0 { 9 + i2c@3160000 { 10 + status = "okay"; 11 + 12 + eeprom@50 { 13 + compatible = "atmel,24c02"; 14 + reg = <0x50>; 15 + 16 + label = "module"; 17 + vcc-supply = <&vdd_1v8_hs>; 18 + address-width = <8>; 19 + pagesize = <8>; 20 + size = <256>; 21 + read-only; 22 + }; 23 + }; 24 + 25 + spi@3270000 { 26 + status = "okay"; 27 + 28 + flash@0 { 29 + compatible = "jedec,spi-nor"; 30 + reg = <0>; 31 + spi-max-frequency = <136000000>; 32 + spi-tx-bus-width = <4>; 33 + spi-rx-bus-width = <4>; 34 + }; 35 + }; 36 + 37 + /* 38 + * This only exists on Jetson Orin Nano Developer Kit (SKU 5) 39 + * but UEFI needs this and will remove it on devices where it 40 + * doesn't exist. 41 + */ 42 + mmc@3400000 { 43 + status = "okay"; 44 + bus-width = <4>; 45 + cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_HIGH>; 46 + disable-wp; 47 + }; 48 + 49 + hda@3510000 { 50 + status = "okay"; 51 + }; 52 + 53 + padctl@3520000 { 54 + vclamp-usb-supply = <&vdd_1v8_ao>; 55 + avdd-usb-supply = <&vdd_3v3_ao>; 56 + }; 57 + 58 + rtc@c2a0000 { 59 + status = "okay"; 60 + }; 61 + 62 + pmc@c360000 { 63 + nvidia,invert-interrupt; 64 + }; 65 + }; 66 + 67 + vdd_5v0_sys: regulator-vdd-5v0-sys { 68 + compatible = "regulator-fixed"; 69 + regulator-name = "VDD_5V0_SYS"; 70 + regulator-min-microvolt = <5000000>; 71 + regulator-max-microvolt = <5000000>; 72 + regulator-always-on; 73 + }; 74 + 75 + vdd_1v8_hs: regulator-vdd-1v8-hs { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "VDD_1V8_HS"; 78 + regulator-min-microvolt = <1800000>; 79 + regulator-max-microvolt = <1800000>; 80 + regulator-always-on; 81 + }; 82 + 83 + vdd_1v8_ao: regulator-vdd-1v8-ao { 84 + compatible = "regulator-fixed"; 85 + regulator-name = "VDD_1V8_AO"; 86 + regulator-min-microvolt = <1800000>; 87 + regulator-max-microvolt = <1800000>; 88 + regulator-always-on; 89 + vin-supply = <&vdd_5v0_sys>; 90 + }; 91 + 92 + vdd_3v3_ao: regulator-vdd-3v3-ao { 93 + compatible = "regulator-fixed"; 94 + regulator-name = "VDD_3V3_AO"; 95 + regulator-min-microvolt = <33000000>; 96 + regulator-max-microvolt = <33000000>; 97 + regulator-always-on; 98 + vin-supply = <&vdd_5v0_sys>; 99 + }; 100 + 101 + thermal-zones { 102 + /* 103 + * This monitoring is far from optimal, but it's good enough 104 + * at this stage. 105 + */ 106 + cpu-thermal { 107 + polling-delay = <1000>; 108 + polling-delay-passive = <1000>; 109 + status = "okay"; 110 + 111 + trips { 112 + critical { 113 + temperature = <104500>; 114 + hysteresis = <0>; 115 + type = "critical"; 116 + }; 117 + 118 + hot { 119 + temperature = <99000>; 120 + hysteresis = <1000>; 121 + type = "hot"; 122 + }; 123 + 124 + board_trip_passive: passive { 125 + temperature = <95000>; 126 + hysteresis = <2000>; 127 + type = "passive"; 128 + }; 129 + 130 + board_trip_active2: active-2 { 131 + temperature = <80000>; 132 + hysteresis = <4000>; 133 + type = "active"; 134 + }; 135 + 136 + board_trip_active1: active-1 { 137 + temperature = <65000>; 138 + hysteresis = <4000>; 139 + type = "active"; 140 + }; 141 + 142 + board_trip_active0: active-0 { 143 + temperature = <50000>; 144 + hysteresis = <4000>; 145 + type = "active"; 146 + }; 147 + }; 148 + 149 + cooling-maps { 150 + passive { 151 + cooling-device = <&fan 3 3>; 152 + trip = <&board_trip_passive>; 153 + }; 154 + 155 + active2 { 156 + cooling-device = <&fan 2 3>; 157 + trip = <&board_trip_active2>; 158 + }; 159 + 160 + active1 { 161 + cooling-device = <&fan 1 2>; 162 + trip = <&board_trip_active1>; 163 + }; 164 + 165 + active0 { 166 + cooling-device = <&fan 0 1>; 167 + trip = <&board_trip_active0>; 168 + }; 169 + }; 170 + }; 171 + }; 172 + };
+134
arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767-0000.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /dts-v1/; 3 + 4 + #include <dt-bindings/input/linux-event-codes.h> 5 + #include <dt-bindings/input/gpio-keys.h> 6 + 7 + #include "tegra234-p3767-0000.dtsi" 8 + #include "tegra234-p3768-0000.dtsi" 9 + 10 + / { 11 + compatible = "nvidia,p3768-0000+p3767-0000", "nvidia,p3767-0000", "nvidia,tegra234"; 12 + model = "NVIDIA Jetson Orin NX Engineering Reference Developer Kit"; 13 + 14 + aliases { 15 + serial0 = &tcu; 16 + }; 17 + 18 + chosen { 19 + stdout-path = "serial0:115200n8"; 20 + }; 21 + 22 + bus@0 { 23 + serial@31d0000 { 24 + current-speed = <115200>; 25 + status = "okay"; 26 + }; 27 + 28 + pwm@32a0000 { 29 + assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>; 30 + assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>; 31 + status = "okay"; 32 + }; 33 + 34 + hda@3510000 { 35 + nvidia,model = "NVIDIA Jetson Orin NX HDA"; 36 + status = "okay"; 37 + }; 38 + 39 + padctl@3520000 { 40 + status = "okay"; 41 + }; 42 + 43 + /* C1 - M.2 Key-E */ 44 + pcie@14100000 { 45 + status = "okay"; 46 + 47 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 48 + 49 + phys = <&p2u_hsio_3>; 50 + phy-names = "p2u-0"; 51 + }; 52 + 53 + /* C4 - M.2 Key-M */ 54 + pcie@14160000 { 55 + status = "okay"; 56 + 57 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 58 + 59 + phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>, 60 + <&p2u_hsio_7>; 61 + phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3"; 62 + }; 63 + 64 + /* C8 - Ethernet */ 65 + pcie@140a0000 { 66 + status = "okay"; 67 + 68 + num-lanes = <2>; 69 + 70 + phys = <&p2u_gbe_2>, <&p2u_gbe_3>; 71 + phy-names = "p2u-0", "p2u-1"; 72 + 73 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 74 + vpcie3v3-supply = <&vdd_3v3_pcie>; 75 + }; 76 + 77 + /* C7 - M.2 Key-M */ 78 + pcie@141e0000 { 79 + status = "okay"; 80 + 81 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 82 + 83 + phys = <&p2u_gbe_0>, <&p2u_gbe_1>; 84 + phy-names = "p2u-0", "p2u-1"; 85 + }; 86 + }; 87 + 88 + gpio-keys { 89 + compatible = "gpio-keys"; 90 + 91 + key-force-recovery { 92 + label = "Force Recovery"; 93 + gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>; 94 + linux,input-type = <EV_KEY>; 95 + linux,code = <BTN_1>; 96 + }; 97 + 98 + key-power { 99 + label = "Power"; 100 + gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>; 101 + linux,input-type = <EV_KEY>; 102 + linux,code = <KEY_POWER>; 103 + wakeup-event-action = <EV_ACT_ASSERTED>; 104 + wakeup-source; 105 + }; 106 + 107 + key-suspend { 108 + label = "Suspend"; 109 + gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>; 110 + linux,input-type = <EV_KEY>; 111 + linux,code = <KEY_SLEEP>; 112 + }; 113 + }; 114 + 115 + fan: pwm-fan { 116 + compatible = "pwm-fan"; 117 + pwms = <&pwm3 0 45334>; 118 + cooling-levels = <0 95 178 255>; 119 + #cooling-cells = <2>; 120 + }; 121 + 122 + vdd_3v3_pcie: regulator-vdd-3v3-pcie { 123 + compatible = "regulator-fixed"; 124 + regulator-name = "VDD_3V3_PCIE"; 125 + regulator-min-microvolt = <3300000>; 126 + regulator-max-microvolt = <3300000>; 127 + gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>; 128 + enable-active-high; 129 + }; 130 + 131 + serial { 132 + status = "okay"; 133 + }; 134 + };
+245
arch/arm64/boot/dts/nvidia/tegra234-p3768-0000.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + 3 + / { 4 + compatible = "nvidia,p3768-0000"; 5 + 6 + aliases { 7 + serial0 = &tcu; 8 + }; 9 + 10 + chosen { 11 + stdout-path = "serial0:115200n8"; 12 + }; 13 + 14 + bus@0 { 15 + i2c@3160000 { 16 + status = "okay"; 17 + 18 + eeprom@57 { 19 + compatible = "atmel,24c02"; 20 + reg = <0x57>; 21 + 22 + label = "system"; 23 + vcc-supply = <&vdd_1v8_sys>; 24 + address-width = <8>; 25 + pagesize = <8>; 26 + size = <256>; 27 + read-only; 28 + }; 29 + }; 30 + 31 + serial@31d0000 { 32 + current-speed = <115200>; 33 + status = "okay"; 34 + }; 35 + 36 + pwm@32a0000 { 37 + assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>; 38 + assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>; 39 + status = "okay"; 40 + }; 41 + 42 + padctl@3520000 { 43 + status = "okay"; 44 + 45 + pads { 46 + usb2 { 47 + lanes { 48 + usb2-0 { 49 + nvidia,function = "xusb"; 50 + status = "okay"; 51 + }; 52 + 53 + usb2-1 { 54 + nvidia,function = "xusb"; 55 + status = "okay"; 56 + }; 57 + 58 + usb2-2 { 59 + nvidia,function = "xusb"; 60 + status = "okay"; 61 + }; 62 + }; 63 + }; 64 + 65 + usb3 { 66 + lanes { 67 + usb3-0 { 68 + nvidia,function = "xusb"; 69 + status = "okay"; 70 + }; 71 + 72 + usb3-1 { 73 + nvidia,function = "xusb"; 74 + status = "okay"; 75 + }; 76 + }; 77 + }; 78 + }; 79 + 80 + ports { 81 + /* recovery port */ 82 + usb2-0 { 83 + mode = "otg"; 84 + vbus-supply = <&vdd_5v0_sys>; 85 + status = "okay"; 86 + usb-role-switch; 87 + }; 88 + 89 + /* hub */ 90 + usb2-1 { 91 + mode = "host"; 92 + vbus-supply = <&vdd_1v1_hub>; 93 + status = "okay"; 94 + }; 95 + 96 + /* M.2 Key-E */ 97 + usb2-2 { 98 + mode = "host"; 99 + vbus-supply = <&vdd_5v0_sys>; 100 + status = "okay"; 101 + }; 102 + 103 + /* hub */ 104 + usb3-0 { 105 + nvidia,usb2-companion = <1>; 106 + status = "okay"; 107 + }; 108 + 109 + /* J5 */ 110 + usb3-1 { 111 + nvidia,usb2-companion = <0>; 112 + status = "okay"; 113 + }; 114 + }; 115 + }; 116 + 117 + usb@3550000 { 118 + status = "okay"; 119 + 120 + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, 121 + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>; 122 + phy-names = "usb2-0", "usb3-1"; 123 + }; 124 + 125 + usb@3610000 { 126 + status = "okay"; 127 + 128 + phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, 129 + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>, 130 + <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>, 131 + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>, 132 + <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>; 133 + phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", 134 + "usb3-1"; 135 + }; 136 + 137 + /* C1 - M.2 Key-E */ 138 + pcie@14100000 { 139 + status = "okay"; 140 + 141 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 142 + 143 + phys = <&p2u_hsio_3>; 144 + phy-names = "p2u-0"; 145 + }; 146 + 147 + /* C4 - M.2 Key-M */ 148 + pcie@14160000 { 149 + status = "okay"; 150 + 151 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 152 + 153 + phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>, 154 + <&p2u_hsio_7>; 155 + phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3"; 156 + }; 157 + 158 + /* C8 - Ethernet */ 159 + pcie@140a0000 { 160 + status = "okay"; 161 + 162 + num-lanes = <2>; 163 + 164 + phys = <&p2u_gbe_2>, <&p2u_gbe_3>; 165 + phy-names = "p2u-0", "p2u-1"; 166 + 167 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 168 + vpcie3v3-supply = <&vdd_3v3_pcie>; 169 + }; 170 + 171 + /* C7 - M.2 Key-M */ 172 + pcie@141e0000 { 173 + status = "okay"; 174 + 175 + vddio-pex-ctl-supply = <&vdd_1v8_ao>; 176 + 177 + phys = <&p2u_gbe_0>, <&p2u_gbe_1>; 178 + phy-names = "p2u-0", "p2u-1"; 179 + }; 180 + }; 181 + 182 + gpio-keys { 183 + compatible = "gpio-keys"; 184 + 185 + key-force-recovery { 186 + label = "Force Recovery"; 187 + gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>; 188 + linux,input-type = <EV_KEY>; 189 + linux,code = <BTN_1>; 190 + }; 191 + 192 + key-power { 193 + label = "Power"; 194 + gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>; 195 + linux,input-type = <EV_KEY>; 196 + linux,code = <KEY_POWER>; 197 + wakeup-event-action = <EV_ACT_ASSERTED>; 198 + wakeup-source; 199 + }; 200 + 201 + key-suspend { 202 + label = "Suspend"; 203 + gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>; 204 + linux,input-type = <EV_KEY>; 205 + linux,code = <KEY_SLEEP>; 206 + }; 207 + }; 208 + 209 + fan: pwm-fan { 210 + compatible = "pwm-fan"; 211 + pwms = <&pwm3 0 45334>; 212 + cooling-levels = <0 95 178 255>; 213 + #cooling-cells = <2>; 214 + }; 215 + 216 + vdd_1v8_sys: regulator-vdd-1v8-sys { 217 + compatible = "regulator-fixed"; 218 + regulator-name = "VDD_1V8_SYS"; 219 + regulator-min-microvolt = <1800000>; 220 + regulator-max-microvolt = <1800000>; 221 + regulator-always-on; 222 + }; 223 + 224 + vdd_1v1_hub: regulator-vdd-1v1-hub { 225 + compatible = "regulator-fixed"; 226 + regulator-name = "VDD_AV10_HUB"; 227 + regulator-min-microvolt = <1100000>; 228 + regulator-max-microvolt = <1100000>; 229 + vin-supply = <&vdd_5v0_sys>; 230 + regulator-always-on; 231 + }; 232 + 233 + vdd_3v3_pcie: regulator-vdd-3v3-pcie { 234 + compatible = "regulator-fixed"; 235 + regulator-name = "VDD_3V3_PCIE"; 236 + regulator-min-microvolt = <3300000>; 237 + regulator-max-microvolt = <3300000>; 238 + gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>; 239 + enable-active-high; 240 + }; 241 + 242 + serial { 243 + status = "okay"; 244 + }; 245 + };
+18 -2
arch/arm64/boot/dts/nvidia/tegra234.dtsi
··· 676 676 reg = <0x0 0x03100000 0x0 0x10000>; 677 677 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 678 678 clocks = <&bpmp TEGRA234_CLK_UARTA>; 679 - clock-names = "serial"; 680 679 resets = <&bpmp TEGRA234_RESET_UARTA>; 681 - reset-names = "serial"; 682 680 status = "disabled"; 683 681 }; 684 682 ··· 3398 3400 cache-sets = <2048>; 3399 3401 cache-level = <3>; 3400 3402 }; 3403 + }; 3404 + 3405 + dsu-pmu0 { 3406 + compatible = "arm,dsu-pmu"; 3407 + interrupts = <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>; 3408 + cpus = <&cpu0_0>, <&cpu0_1>, <&cpu0_2>, <&cpu0_3>; 3409 + }; 3410 + 3411 + dsu-pmu1 { 3412 + compatible = "arm,dsu-pmu"; 3413 + interrupts = <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>; 3414 + cpus = <&cpu1_0>, <&cpu1_1>, <&cpu1_2>, <&cpu1_3>; 3415 + }; 3416 + 3417 + dsu-pmu2 { 3418 + compatible = "arm,dsu-pmu"; 3419 + interrupts = <GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>; 3420 + cpus = <&cpu2_0>, <&cpu2_1>, <&cpu2_2>, <&cpu2_3>; 3401 3421 }; 3402 3422 3403 3423 pmu {