// SPDX-License-Identifier: GPL-2.0-only // SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include #include #include "tegra234-dcb-p3971-0000+p3701-0000.dtsi" #include / { bus@0 { aconnect@2900000 { ahub@2900800 { i2s@2901300 { ports { port@1 { endpoint { dai-format = "i2s"; remote-endpoint = <&rt5640_ep>; }; }; }; }; }; }; hda@3510000 { nvidia,model = "NVIDIA IGX500 Orin HDA"; status = "okay"; }; i2c@3160000 { status = "okay"; eeprom@56 { compatible = "atmel,24c02"; reg = <0x56>; label = "system"; vcc-supply = <&vdd_1v8_cvb>; address-width = <8>; pagesize = <8>; size = <256>; read-only; }; }; i2c@31b0000 { status = "okay"; }; host1x@13e00000 { tsec@15500000 { status = "okay"; }; }; i2c@31c0000 { status = "okay"; rt5640: audio-codec@1c { compatible = "realtek,rt5640"; reg = <0x1c>; clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>; clock-names = "mclk"; realtek,dmic1-data-pin = ; realtek,dmic2-data-pin = ; realtek,jack-detect-source = ; /* Codec IRQ output */ interrupt-parent = <&gpio>; interrupts = ; #sound-dai-cells = <1>; sound-name-prefix = "CVB-RT"; status = "okay"; port { rt5640_ep: endpoint { remote-endpoint = <&i2s4_dap>; mclk-fs = <256>; }; }; }; }; /* SPI1 in 40 pin conn */ spi@3210000 { status = "okay"; spi@0 { /* chip select 0 */ compatible = "tegra-spidev"; reg = <0x0>; spi-max-frequency = <50000000>; }; spi@1 { /* chips select 1 */ compatible = "tegra-spidev"; reg = <0x1>; spi-max-frequency = <50000000>; }; }; /* SPI3 is connected to Aurix */ spi@3230000 { status = "disabled"; }; pwm@3280000 { status = "okay"; }; pwm@32f0000 { status = "okay"; }; /* Enable fan PWM */ pwm@32a0000 { status = "okay"; }; /* * This is on 40-pin header (pin-18) * On Orin, the pad control configures it as GPIO/SDMMC. * No pwm support. */ pwm@32c0000 { status = "disabled"; }; tachometer@39c0000 { status = "okay"; }; pcie@14100000 { status = "okay"; vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; phys = <&p2u_hsio_3>; phy-names = "p2u-0"; }; pcie@14160000 { status = "okay"; vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>, <&p2u_hsio_7>; phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3"; }; pcie@141a0000 { status = "okay"; vddio-pex-ctl-supply = <&vdd_3v3_ao_cvb>; 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_3v3_ao_cvb>; phys = <&p2u_gbe_0>, <&p2u_gbe_1>, <&p2u_gbe_2>, <&p2u_gbe_3>, <&p2u_gbe_4>, <&p2u_gbe_5>, <&p2u_gbe_6>, <&p2u_gbe_7>; phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4", "p2u-5", "p2u-6", "p2u-7"; }; ufshci@2500000 { status = "okay"; }; }; chosen { bootargs = "console=ttyTCU0,115200n8"; stdout-path = "serial0:115200n8"; }; display@13800000 { status = "okay"; }; eeprom-manager { data-size = <0x100>; bus@0 { i2c-bus = <&gen1_i2c>; eeprom@1 { slave-address = <0x56>; label = "cvb"; }; }; }; fan: pwm-fan { compatible = "pwm-fan"; pwms = <&pwm3 0 45334>; #cooling-cells = <2>; }; /* fan_nvme is no-stuff, same PWM instance is routed to 40-pin header */ fan_nvme: pwm-fan-nvme { compatible = "pwm-fan"; pwms = <&pwm8 0 45334>; #cooling-cells = <2>; status = "disabled"; }; gpio-keys { compatible = "gpio-keys"; key-force-recovery { label = "Force Recovery"; gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; }; key-power { label = "Power"; gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; wakeup-event-action = ; wakeup-source; }; }; vcc_src_20v_cvb: regulator-vcc-src-fet { compatible = "regulator-fixed"; reg = <1>; regulator-name = "VCC_SRC_FET"; regulator-min-microvolt = <20000000>; regulator-max-microvolt = <20000000>; regulator-always-on; regulator-boot-on; }; vdd_5v_cvb: vdd_5v_ao_cvb: regulator-vdd-5v-ao { compatible = "regulator-fixed"; reg = <2>; regulator-name = "VDD_5V_AO"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; }; vdd_3v3_cbv: regulator-vdd-3v3 { compatible = "regulator-fixed"; reg = <3>; regulator-name = "VDD_3V3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; vdd_3v3_ao_cvb: regulator-vdd-3v3-ao { compatible = "regulator-fixed"; reg = <4>; regulator-name = "VDD_3V3_AO"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; vdd_1v8_cvb: regulator-vdd-1v8 { compatible = "regulator-fixed"; reg = <5>; regulator-name = "VDD_1V8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; vdd_12v_cvb: regulator-vdd-12v { compatible = "regulator-fixed"; reg = <6>; regulator-name = "VDD_12V"; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; gpio = <&gpio TEGRA234_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>; regulator-always-on; }; vdd_3v3_dp_en: regulator-vdd-3v3-dp-en { compatible = "regulator-fixed"; reg = <7>; regulator-name = "VDD_3V3_DP_EN"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) GPIO_ACTIVE_HIGH>; regulator-always-on; enable-active-high; }; 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 IGX500 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"; }; };