mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-03 17:51:23 +00:00

Some discrete graphics cards such as the NVIDIA RTX A6000 support resizable BARs. When connecting an A6000 card to the NVIDIA IGX Orin platform, resizing the BAR1 aperture to 8GB fails because the current device-tree configuration for the PCIe C5 slot cannot support this. Fix this by updating the device-tree 'reg' and 'ranges' properties for the PCIe C5 slot to support this. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/20250116151903.476047-1-jonathanh@nvidia.com Signed-off-by: Thierry Reding <treding@nvidia.com>
477 lines
11 KiB
Plaintext
477 lines
11 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/dts-v1/;
|
|
|
|
#include <dt-bindings/input/linux-event-codes.h>
|
|
#include <dt-bindings/input/gpio-keys.h>
|
|
#include <dt-bindings/sound/rt5640.h>
|
|
#include "tegra234-p3701-0008.dtsi"
|
|
|
|
/ {
|
|
model = "NVIDIA IGX Orin Development Kit";
|
|
compatible = "nvidia,p3740-0002+p3701-0008", "nvidia,p3701-0008", "nvidia,tegra234";
|
|
|
|
aliases {
|
|
serial0 = &tcu;
|
|
serial1 = &uarta;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
bus@0 {
|
|
aconnect@2900000 {
|
|
ahub@2900800 {
|
|
i2s@2901300 {
|
|
ports {
|
|
port@1 {
|
|
endpoint {
|
|
dai-format = "i2s";
|
|
remote-endpoint = <&rt5640_ep>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
i2s@2901500 {
|
|
ports {
|
|
port@1 {
|
|
endpoint {
|
|
bitclock-master;
|
|
frame-master;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
serial@3100000 {
|
|
compatible = "nvidia,tegra194-hsuart";
|
|
reset-names = "serial";
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@3160000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@3180000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@3190000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@31b0000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@31c0000 {
|
|
status = "okay";
|
|
|
|
rt5640: audio-codec@1c {
|
|
compatible = "realtek,rt5640";
|
|
reg = <0x1c>;
|
|
interrupt-parent = <&gpio>;
|
|
interrupts = <TEGRA234_MAIN_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
|
|
clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
|
|
clock-names = "mclk";
|
|
|
|
realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
|
|
realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
|
|
realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
|
|
|
|
sound-name-prefix = "CVB-RT";
|
|
|
|
port {
|
|
rt5640_ep: endpoint {
|
|
remote-endpoint = <&i2s4_dap>;
|
|
mclk-fs = <256>;
|
|
};
|
|
};
|
|
};
|
|
|
|
/* carrier board ID EEPROM */
|
|
eeprom@55 {
|
|
compatible = "atmel,24c02";
|
|
reg = <0x55>;
|
|
|
|
label = "system";
|
|
vcc-supply = <&vdd_1v8_ls>;
|
|
address-width = <8>;
|
|
pagesize = <8>;
|
|
size = <256>;
|
|
read-only;
|
|
};
|
|
};
|
|
|
|
i2c@31e0000 {
|
|
status = "okay";
|
|
};
|
|
|
|
spi@3270000 {
|
|
status = "okay";
|
|
};
|
|
|
|
hda@3510000 {
|
|
nvidia,model = "NVIDIA IGX Orin HDA";
|
|
status = "okay";
|
|
};
|
|
|
|
padctl@3520000 {
|
|
status = "okay";
|
|
|
|
pads {
|
|
usb2 {
|
|
lanes {
|
|
usb2-0 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-1 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-2 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-3 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
|
|
usb3 {
|
|
lanes {
|
|
usb3-0 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
|
|
usb3-1 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
|
|
usb3-2 {
|
|
nvidia,function = "xusb";
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
ports {
|
|
usb2-0 {
|
|
mode = "otg";
|
|
usb-role-switch;
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-1 {
|
|
mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-2 {
|
|
mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
usb2-3 {
|
|
mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
usb3-0 {
|
|
nvidia,usb2-companion = <2>;
|
|
status = "okay";
|
|
};
|
|
|
|
usb3-1 {
|
|
nvidia,usb2-companion = <0>;
|
|
status = "okay";
|
|
};
|
|
|
|
usb3-2 {
|
|
nvidia,usb2-companion = <1>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
|
|
usb@3550000 {
|
|
status = "okay";
|
|
|
|
phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
|
|
phy-names = "usb2-0", "usb3-0";
|
|
};
|
|
|
|
usb@3610000 {
|
|
status = "okay";
|
|
|
|
phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
|
|
<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
|
|
phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
|
|
"usb3-0", "usb3-1", "usb3-2";
|
|
};
|
|
|
|
fuse@3810000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@c240000 {
|
|
status = "okay";
|
|
};
|
|
|
|
i2c@c250000 {
|
|
status = "okay";
|
|
|
|
power-sensor@41 {
|
|
compatible = "ti,ina3221";
|
|
reg = <0x41>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
input@0 {
|
|
reg = <0x0>;
|
|
label = "CVB_ATX_12V";
|
|
shunt-resistor-micro-ohms = <2000>;
|
|
};
|
|
|
|
input@1 {
|
|
reg = <0x1>;
|
|
label = "CVB_ATX_3V3";
|
|
shunt-resistor-micro-ohms = <2000>;
|
|
};
|
|
|
|
input@2 {
|
|
reg = <0x2>;
|
|
label = "CVB_ATX_5V";
|
|
shunt-resistor-micro-ohms = <2000>;
|
|
};
|
|
};
|
|
|
|
power-sensor@44 {
|
|
compatible = "ti,ina219";
|
|
reg = <0x44>;
|
|
shunt-resistor = <2000>;
|
|
};
|
|
};
|
|
|
|
host1x@13e00000 {
|
|
nvdec@15480000 {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
pcie@140e0000 {
|
|
status = "okay";
|
|
vddio-pex-ctl-supply = <&vdd_1v8_ls>;
|
|
phys = <&p2u_gbe_4>, <&p2u_gbe_5>;
|
|
phy-names = "p2u-0", "p2u-1";
|
|
};
|
|
|
|
pcie@14100000 {
|
|
status = "okay";
|
|
vddio-pex-ctl-supply = <&vdd_1v8_ao>;
|
|
vpcie3v3-supply = <&vdd_3v3_wifi>;
|
|
phys = <&p2u_hsio_3>;
|
|
phy-names = "p2u-0";
|
|
};
|
|
|
|
pcie@14160000 {
|
|
status = "okay";
|
|
vddio-pex-ctl-supply = <&vdd_1v8_ao>;
|
|
phys = <&p2u_hsio_7>, <&p2u_hsio_6>, <&p2u_hsio_5>,
|
|
<&p2u_hsio_4>;
|
|
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
|
|
};
|
|
|
|
pcie@141a0000 {
|
|
reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */
|
|
0x00 0x3a000000 0x0 0x00040000 /* configuration space (256K) */
|
|
0x00 0x3a040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
|
|
0x00 0x3a080000 0x0 0x00040000 /* DBI reg space (256K) */
|
|
0x2e 0x20000000 0x0 0x10000000>; /* ECAM (256MB) */
|
|
|
|
ranges = <0x81000000 0x00 0x3a100000 0x00 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */
|
|
0x82000000 0x00 0x40000000 0x2e 0x30000000 0x0 0x08000000 /* non-prefetchable memory (128MB) */
|
|
0xc3000000 0x28 0x00000000 0x28 0x00000000 0x6 0x20000000>; /* prefetchable memory (25088MB) */
|
|
|
|
status = "okay";
|
|
vddio-pex-ctl-supply = <&vdd_1v8_ls>;
|
|
phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
|
|
<&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
|
|
<&p2u_nvhs_6>, <&p2u_nvhs_7>;
|
|
phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
|
|
"p2u-5", "p2u-6", "p2u-7";
|
|
};
|
|
|
|
pcie@141e0000 {
|
|
status = "okay";
|
|
vddio-pex-ctl-supply = <&vdd_1v8_ls>;
|
|
phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
|
|
phy-names = "p2u-0", "p2u-1";
|
|
};
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
status = "okay";
|
|
|
|
key-force-recovery {
|
|
label = "Force Recovery";
|
|
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <BTN_1>;
|
|
};
|
|
|
|
key-power {
|
|
label = "Power";
|
|
gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <KEY_POWER>;
|
|
wakeup-event-action = <EV_ACT_ASSERTED>;
|
|
wakeup-source;
|
|
};
|
|
|
|
key-suspend {
|
|
label = "Suspend";
|
|
gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
|
|
linux,input-type = <EV_KEY>;
|
|
linux,code = <KEY_SLEEP>;
|
|
};
|
|
};
|
|
|
|
serial {
|
|
status = "okay";
|
|
};
|
|
|
|
sound {
|
|
status = "okay";
|
|
|
|
compatible = "nvidia,tegra186-audio-graph-card";
|
|
|
|
dais = /* ADMAIF (FE) Ports */
|
|
<&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
|
|
<&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>,
|
|
<&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>,
|
|
<&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>,
|
|
<&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>,
|
|
/* XBAR Ports */
|
|
<&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s4_port>,
|
|
<&xbar_i2s6_port>, <&xbar_dmic3_port>,
|
|
<&xbar_sfc1_in_port>, <&xbar_sfc2_in_port>,
|
|
<&xbar_sfc3_in_port>, <&xbar_sfc4_in_port>,
|
|
<&xbar_mvc1_in_port>, <&xbar_mvc2_in_port>,
|
|
<&xbar_amx1_in1_port>, <&xbar_amx1_in2_port>,
|
|
<&xbar_amx1_in3_port>, <&xbar_amx1_in4_port>,
|
|
<&xbar_amx2_in1_port>, <&xbar_amx2_in2_port>,
|
|
<&xbar_amx2_in3_port>, <&xbar_amx2_in4_port>,
|
|
<&xbar_amx3_in1_port>, <&xbar_amx3_in2_port>,
|
|
<&xbar_amx3_in3_port>, <&xbar_amx3_in4_port>,
|
|
<&xbar_amx4_in1_port>, <&xbar_amx4_in2_port>,
|
|
<&xbar_amx4_in3_port>, <&xbar_amx4_in4_port>,
|
|
<&xbar_adx1_in_port>, <&xbar_adx2_in_port>,
|
|
<&xbar_adx3_in_port>, <&xbar_adx4_in_port>,
|
|
<&xbar_mix_in1_port>, <&xbar_mix_in2_port>,
|
|
<&xbar_mix_in3_port>, <&xbar_mix_in4_port>,
|
|
<&xbar_mix_in5_port>, <&xbar_mix_in6_port>,
|
|
<&xbar_mix_in7_port>, <&xbar_mix_in8_port>,
|
|
<&xbar_mix_in9_port>, <&xbar_mix_in10_port>,
|
|
<&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
|
|
<&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
|
|
<&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
|
|
<&xbar_asrc_in7_port>,
|
|
<&xbar_ope1_in_port>,
|
|
/* HW accelerators */
|
|
<&sfc1_out_port>, <&sfc2_out_port>,
|
|
<&sfc3_out_port>, <&sfc4_out_port>,
|
|
<&mvc1_out_port>, <&mvc2_out_port>,
|
|
<&amx1_out_port>, <&amx2_out_port>,
|
|
<&amx3_out_port>, <&amx4_out_port>,
|
|
<&adx1_out1_port>, <&adx1_out2_port>,
|
|
<&adx1_out3_port>, <&adx1_out4_port>,
|
|
<&adx2_out1_port>, <&adx2_out2_port>,
|
|
<&adx2_out3_port>, <&adx2_out4_port>,
|
|
<&adx3_out1_port>, <&adx3_out2_port>,
|
|
<&adx3_out3_port>, <&adx3_out4_port>,
|
|
<&adx4_out1_port>, <&adx4_out2_port>,
|
|
<&adx4_out3_port>, <&adx4_out4_port>,
|
|
<&mix_out1_port>, <&mix_out2_port>, <&mix_out3_port>,
|
|
<&mix_out4_port>, <&mix_out5_port>,
|
|
<&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
|
|
<&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
|
|
<&ope1_out_port>,
|
|
/* BE I/O Ports */
|
|
<&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
|
|
<&dmic3_port>;
|
|
|
|
label = "NVIDIA IGX Orin APE";
|
|
|
|
widgets = "Microphone", "CVB-RT MIC Jack",
|
|
"Microphone", "CVB-RT MIC",
|
|
"Headphone", "CVB-RT HP Jack",
|
|
"Speaker", "CVB-RT SPK";
|
|
|
|
routing = /* I2S4 <-> RT5640 */
|
|
"CVB-RT AIF1 Playback", "I2S4 DAP-Playback",
|
|
"I2S4 DAP-Capture", "CVB-RT AIF1 Capture",
|
|
/* RT5640 codec controls */
|
|
"CVB-RT HP Jack", "CVB-RT HPOL",
|
|
"CVB-RT HP Jack", "CVB-RT HPOR",
|
|
"CVB-RT IN1P", "CVB-RT MIC Jack",
|
|
"CVB-RT IN2P", "CVB-RT MIC Jack",
|
|
"CVB-RT IN2N", "CVB-RT MIC Jack",
|
|
"CVB-RT IN3P", "CVB-RT MIC Jack",
|
|
"CVB-RT SPK", "CVB-RT SPOLP",
|
|
"CVB-RT SPK", "CVB-RT SPORP",
|
|
"CVB-RT SPK", "CVB-RT LOUTL",
|
|
"CVB-RT SPK", "CVB-RT LOUTR",
|
|
"CVB-RT DMIC1", "CVB-RT MIC",
|
|
"CVB-RT DMIC2", "CVB-RT MIC";
|
|
};
|
|
|
|
vdd_3v3_dp: regulator-vdd-3v3-dp {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "VDD_3V3_DP";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
vin-supply = <&vdd_3v3_sys>;
|
|
gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) 0>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
};
|
|
|
|
vdd_3v3_sys: regulator-vdd-3v3-sys {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "VDD_3V3_SYS";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
vdd_3v3_wifi: regulator-vdd-3v3-wifi {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "VDD_3V3_WIFI";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio TEGRA234_MAIN_GPIO(G, 3) GPIO_ACTIVE_HIGH>;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
};
|
|
};
|