Unable to Enable ethernet@2310000 (RGMII) on AGX Orin Custom Carrier – DT Status Ignored on R36.4.4

Hello, I’m trying to enable Gigabit Ethernet on my AGX O-RIN custom motherboard, using RGMII. My hardware configuration is as follows:

Host PC: Ubuntu 22.04.5
Jetson Linux: Release 36.4.4
Module: P3701-0004 (AGX Orin standalone module)
Carrier Board: Custom carrier designed by me (schematics nearly identical to the original devkit carrier, Gigabit Ethernet with RGMII interface, note that empty EEPROM)

Device tree file I’m working with directly: tegra234-p3737-0000+p3701-0000.dts
Location:

/home/ryhew/jetson-r36.4.4/Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/tegra234-p3737-0000+p3701-0000.dts

I’m using the device with sku 0004 in jetson-agx-orin-devkit.conf for flashing. (It can be seen that it uses tegra234-p3737-0000+p3701-0004-nv.dtb)

I make direct changes to tegra234-p3737-0000+p3701-0000.dts and then compile. I directly replace the resulting dtb files with the ones in the main bsp file.

My problem is that after adding the ethernet@2310000 { } node for rgmii, I can’t see it in the logs after booting. Therefore, after compiling the device tree, I convert it back to dts and check if I’m getting the correct output with the following commands.

cd /home/ryhew/jetson-r36.4.4/Linux_for_Tegra/source/kernel-devicetree/generic-dts/dtbs
dtc -I dtb -O dts \
-o /home/ryhew/Desktop/Packages/tegra234-p3737-0000+p3701-0004-nv.dts \
tegra234-p3737-0000+p3701-0004-nv.dtb

The problem is that the added @2310000 { } node remains disabled, even though I changed the status to okay in tegra234-p3737-0000+p3701-0000.dts.

I had disabled the typec@8 { node, which changes as it should, but I haven’t been able to enable the node for gigabit ethernet. Is there something I’m missing?

My custom board doesn’t have a USB PD integrated circuit, which was causing the USBs to malfunction. I modified the existing Device tree to disable it, which then enabled it to work.

However, the changes I made for the Gigabit Ethernet node aren’t reflected in the device tree. Frankly, I don’t want to completely change the device tree because my current custom board’s pinmux structure is exactly the same (except multigigabit ethernet (ım using rgmii interface with gigabit ethernet))

The relevant dependency is most likely causing my code to disable it again.But ı couldnt find dependency.

*** Please note that this reply is generated by LLM automatically ***

To enable Gigabit Ethernet on your custom AGX ORIN motherboard using RGMII, you need to make changes to the device tree file. You are working with the tegra234-p3737-0000-p3701-0000.dts file, which is the correct file for your module (P3701-0004).

You have made direct changes to the tegra234-p3737-0000-p3701-0000.dts file and compiled it to generate the dtb files. However, after adding the ethernet@2310000 node for RGMII, you are unable to see it in the logs after booting.

The issue you are facing is that the added ethernet@2310000 node remains disabled even though you changed the status to “okay” in the tegra234-p3737-0000-p3701-0000.dts file.

To resolve this issue, you need to check the dependencies that might be causing the node to be disabled. You can start by checking the ODMDATA configuration, which is used to configure the PHY settings for the Ethernet interface.

In your case, you need to update the ODMDATA configuration to enable the RGMII interface. You can do this by adding the following configuration to the ODMDATA string:

ODMDATA="gbe-uphy-config-22,nvhs-uphy-config-0,hsio-uphy-config-0,gbe0-enable-10g,hsstp-lane-map-3"

This configuration enables the RGMII interface and sets the PHY settings for the Ethernet interface.

Additionally, you need to make sure that the ethernet@2310000 node is enabled in the device tree file. You can do this by adding the following line to the ethernet@2310000 node:

status = "okay";

This will enable the ethernet@2310000 node in the device tree file.

After making these changes, you need to recompile the device tree file and update the dtb files. You can then flash the updated dtb files to your custom board and verify that the Gigabit Ethernet interface is enabled.

In comparison to your previous changes, you had disabled the typec8 node, which changed as expected. However, the changes you made for the Gigabit Ethernet node were not reflected in the device tree. This is because the ODMDATA configuration was not updated to enable the RGMII interface.

By updating the ODMDATA configuration and enabling the ethernet@2310000 node in the device tree file, you should be able to enable the Gigabit Ethernet interface on your custom AGX ORIN motherboard using RGMII.

Here is an example of the updated ODMDATA configuration and the ethernet@2310000 node:

&ethernet {
    status = "okay";
};

ODMDATA="gbe-uphy-config-22,nvhs-uphy-config-0,hsio-uphy-config-0,gbe0-enable-10g,hsstp-lane-map-3"

Note that you need to update the ODMDATA configuration and the ethernet@2310000 node in the tegra234-p3737-0000-p3701-0000.dts file and recompile the device tree file to generate the updated dtb files.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

This does not affect the device tree result.

How many search result did you see in your device tree with keyword “2310000”?

I found .tegra234-p3737-0000+p3701-0004-nv.dts includes and has dependecy with

#include “staging/tegra234-p3737-0000+p3701-0004.dts”
#include“tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi”
#include“tegra234-p3701-0000.dtsi”

After retrieving the relevant node and inputs from staging/tegra234-p3737-0000+p3701-0004.dts,

“tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi”
“tegra234-p3701-0000.dtsi”

modifies the values ​​entered in p3737-0000+p3701-0004.dts
———————————————————————————————————————————————

tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi –
its brokes

ethernet@6800000 {
status = “okay”;
};
—————————————————————————————————
tegra234-base-overlay.dtsi

	ethernet@2310000 {
		compatible = "nvidia,nveqos";
		reg = <0x0 0x02310000 0x0 0x10000>,    /* EQOS Base Register */
		      <0x0 0x023D0000 0x0 0x10000>,    /* MACSEC Base Register */
		      <0x0 0x02300000 0x0 0x10000>;    /* HV Base Register */
		reg-names = "mac", "macsec-base", "hypervisor";
		interrupts = <0 194 0x4>,       /* common */
			     <0 186 0x4>, /* vm0 */
			     <0 187 0x4>, /* vm1 */
			     <0 188 0x4>, /* vm2 */
			     <0 189 0x4>, /* vm3 */
			     <0 190 0x4>, /* MACsec non-secure intr */
			     <0 191 0x4>; /* MACsec secure intr */
		interrupt-names = "common", "vm0", "vm1", "vm2", "vm3",
				  "macsec-ns-irq", "macsec-s-irq";
		resets = <&bpmp TEGRA234_RESET_EQOS>,
			 <&bpmp TEGRA234_RESET_EQOS_MACSEC>; /* MACsec non-secure reset */
		reset-names = "mac", "macsec_ns_rst";
		clocks = <&bpmp TEGRA234_CLK_PLLREFE_VCOOUT>,
			 <&bpmp TEGRA234_CLK_EQOS_AXI>,
			 <&bpmp TEGRA234_CLK_EQOS_RX>,
			 <&bpmp TEGRA234_CLK_EQOS_PTP_REF>,
			 <&bpmp TEGRA234_CLK_EQOS_TX>,
			 <&bpmp TEGRA234_CLK_AXI_CBB>,
			 <&bpmp TEGRA234_CLK_EQOS_RX_M>,
			 <&bpmp TEGRA234_CLK_EQOS_RX_INPUT>,
			 <&bpmp TEGRA234_CLK_EQOS_MACSEC_TX>,
			 <&bpmp TEGRA234_CLK_EQOS_TX_DIVIDER>,
			 <&bpmp TEGRA234_CLK_EQOS_MACSEC_RX>;
		clock-names = "pllrefe_vcoout", "eqos_axi", "eqos_rx",
			      "eqos_ptp_ref", "eqos_tx", "axi_cbb",
			      "eqos_rx_m", "eqos_rx_input",
			      "eqos_macsec_tx", "eqos_tx_divider",
			      "eqos_macsec_rx";

#if TEGRA_IOMMU_DT_VERSION >= DT_VERSION_2
interconnects = <&mc TEGRA234_MEMORY_CLIENT_EQOSR>,
<&mc TEGRA234_MEMORY_CLIENT_EQOSW>;
interconnect-names = “dma-mem”, “write”;


iommus = <&smmu_niso1 TEGRA234_SID_EQOS>;
nvidia,num-dma-chans = <8>;
nvidia,num-mtl-queues = <8>;
nvidia,mtl-queues = <0 1 2 3 4 5 6 7>;
nvidia,dma-chans = <0 1 2 3 4 5 6 7>;
nvidia,tc-mapping = <0 1 2 3 4 5 6 7>;
/* Residual Queue can be any valid queue except RxQ0 /
nvidia,residual-queue = <1>;
nvidia,rx-queue-prio = <0x2 0x1 0x30 0x48 0x0 0x0 0x0 0x0>;
nvidia,tx-queue-prio = <0x0 0x7 0x2 0x3 0x0 0x0 0x0 0x0>;
nvidia,rxq_enable_ctrl = <2 2 2 2 2 2 2 2>;
nvidia,vm-irq-config = <&eqos_vm_irq_config>;
status = “disabled”;
nvidia,dcs-enable = <0x1>;
nvidia,macsec-enable = <0>;
nvidia,pad_calibration = <0x1>;
/ pad calibration 2’s complement offset for pull-down value /
nvidia,pad_auto_cal_pd_offset = <0x0>;
/ pad calibration 2’s complement offset for pull-up value /
nvidia,pad_auto_cal_pu_offset = <0x0>;
nvidia,rx_riwt = <512>;
nvidia,rx_frames = <64>;
nvidia,tx_usecs = <256>;
nvidia,tx_frames = <5>;
nvidia,promisc_mode = <1>;
nvidia,slot_num_check = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
nvidia,slot_intvl_vals = <0x0 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D 0x7D>;
nvidia,ptp_ref_clock_speed = <208333334>;
nvidia,instance_id = <4>; / EQOS instance */
nvidia,ptp-rx-queue = <3>;
pinctrl-names = “mii_rx_disable”, “mii_rx_enable”;
pinctrl-0 = <&eqos_mii_rx_input_state_disable>;
pinctrl-1 = <&eqos_mii_rx_input_state_enable>;
nvidia,dma_rx_ring_sz = <1024>;
nvidia,dma_tx_ring_sz = <1024>;
dma-coherent;
};


Without touching these, what changes or procedures should I follow to modify the top layer and tegra234-p3737-0000+p3701-0004-nv.dts? Changing these relationships fixed my device tree output.
I’m new to Linux, so I’d appreciate your help.

Hi,

Your early method sounds partially correct but you probably add the ethernet@2310000 in wrong location.

The key problem here is you mentioned that "The problem is that the added @2310000 { } node remains disabled, ".

You “added” a node which should be there by default. It means you probably added a dummy node there because the correct ethernet@2310000 should be under a node called “bus@0”.

What I mean here is you should not need to add “ethernet@2310000” because that thing is already there. Default device tree has all the things when it includes tegra234-base-overlay.dtsi.

The only thing you need to do is not “add a node” but “find where is ethernet@2310000 located in your converted dts” and then set the status to “okay”.

That was why I asked you to search “2310000” after using dtc.

This is the file I modified. tegra234-p3737-0000+p3701-0000.dts ;

The code I added is inside the curly braces bus@0.

// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/input/gpio-keys.h>

#include "tegra234-p3701-0000.dtsi"
#include "tegra234-p3737-0000.dtsi"

/ {
	model = "NVIDIA Jetson AGX Orin Developer Kit";
	compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3701-0000", "nvidia,tegra234";

	aliases {
		serial0 = &tcu;
		serial1 = &uarta;
	};

	chosen {
		bootargs = "console=ttyTCU0,115200n8";
		stdout-path = "serial0:115200n8";
	};

	bus@0 {
		serial@3100000 {
			compatible = "nvidia,tegra194-hsuart";
			reset-names = "serial";
			status = "okay";
		};

		serial@31d0000 {
			current-speed = <115200>;
			status = "okay";
		};

		pwm@32a0000 {
			assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
			status = "okay";
		};

		hda@3510000 {
			nvidia,model = "NVIDIA Jetson AGX Orin HDA";
			status = "okay";
		};

		padctl@3520000 {
			status = "okay";

			pads {
				usb2 {
					lanes {
						usb2-0 {
							status = "okay";
						};

						usb2-1 {
							status = "okay";
						};

						usb2-2 {
							status = "okay";
						};

						usb2-3 {
							status = "okay";
						};
					};
				};

				usb3 {
					lanes {
						usb3-0 {
							status = "okay";
						};

						usb3-1 {
							status = "okay";
						};

						usb3-2 {
							status = "okay";
						};
					};
				};
			};

			ports {
				usb2-0 {
					mode = "host";
					
					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 = <1>;
					status = "okay";
					
				};

				usb3-1 {
					nvidia,usb2-companion = <0>;
					status = "okay";
					
				};

				usb3-2 {
					nvidia,usb2-companion = <3>;
					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";
		};

		ethernet@6800000 {
			status = "disabled";

			phy-handle = <&mgbe0_phy>;
			phy-mode = "10gbase-r";

			mdio {
				#address-cells = <1>;
				#size-cells = <0>;

				mgbe0_phy: phy@0 {
					compatible = "ethernet-phy-ieee802.3-c45";
					reg = <0x0>;

					#phy-cells = <0>;
				};
			};
		};
		
		
ethernet@2310000 {
			status = "okay";
			phy-mode = "rgmii-id";
			phy-handle = <&phy>;
			
			nvidia,phy-reset-gpio = <&gpio TEGRA234_MAIN_GPIO(G, 5) 0>;

			nvidia,mac-addr-idx = <0>;
			nvidia,skip_mac_reset = <0>;
			nvidia,mdio_addr = <0>;
			nvidia,pause_frames = <0>;

			mdio {
				compatible = "nvidia,eqos-mdio";
				#address-cells = <1>;
				#size-cells = <0>;

				phy: phy@0 {
					reg = <0>;
					nvidia,phy-rst-pdelay-msec = <224>; /* msec */
					nvidia,phy-rst-duration-usec = <10000>; /* usec */
					interrupt-parent = <&gpio>;
					interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
					marvell,copper-mode;
					marvell,reg-init = <0x3 0x12 0x7fff 0x880>;

				};
			};
};


		i2c@c240000 {
			status = "okay";

			typec@8 {
				compatible = "cypress,cypd4226";
				reg = <0x08>;
				interrupt-parent = <&gpio>;
				interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>;
				firmware-name = "nvidia,jetson-agx-xavier";
				status = "disabled";

				#address-cells = <1>;
				#size-cells = <0>;

				ccg_typec_con0: connector@0 {
					compatible = "usb-c-connector";
					reg = <0>;
					label = "USB-C";
					data-role = "host";

			
				};

				ccg_typec_con1: connector@1 {
					compatible = "usb-c-connector";
					reg = <1>;
					label = "USB-C";
					data-role = "host";

				
				};
			};
		};

		pcie@14100000 {
			status = "okay";

			vddio-pex-ctl-supply = <&vdd_1v8_ao>;

			phys = <&p2u_hsio_3>;
			phy-names = "p2u-0";
		};

		pcie@14160000 {
			status = "okay";

			vddio-pex-ctl-supply = <&vdd_1v8_ao>;

			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_1v8_ls>;
			vpcie3v3-supply = <&vdd_3v3_pcie>;
			vpcie12v-supply = <&vdd_12v_pcie>;

			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-ep@141a0000 {
			status = "disabled";

			vddio-pex-ctl-supply = <&vdd_1v8_ls>;

			reset-gpios = <&gpio TEGRA234_MAIN_GPIO(AF, 1) GPIO_ACTIVE_LOW>;

			nvidia,refclk-select-gpios = <&gpio_aon
						      TEGRA234_AON_GPIO(AA, 4)
						      GPIO_ACTIVE_HIGH>;

			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";
		};
	};

	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>;
		};
	};

	pwm-fan {
		cooling-levels = <66 215 255>;
	};

	serial {
		status = "okay";
	};

	sound {
		compatible = "nvidia,tegra186-audio-graph-card";
		status = "okay";

		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 Jetson AGX Orin APE";

		widgets = "Microphone",	"CVB-RT MIC Jack",
			  "Microphone",	"CVB-RT MIC",
			  "Headphone",	"CVB-RT HP Jack",
			  "Speaker",	"CVB-RT SPK";

		routing = /* I2S1 <-> RT5640 */
			  "CVB-RT AIF1 Playback",	"I2S1 DAP-Playback",
			  "I2S1 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 SPK",			"CVB-RT SPOLP",
			  "CVB-RT SPK",			"CVB-RT SPORP",
			  "CVB-RT DMIC1",		"CVB-RT MIC",
			  "CVB-RT DMIC2",		"CVB-RT MIC";
	};

	thermal-zones {
		tj-thermal {
			cooling-maps {
				map-active-0 {
					cooling-device = <&fan 0 1>;
					trip = <&tj_trip_active0>;
				};

				map-active-1 {
					cooling-device = <&fan 1 2>;
					trip = <&tj_trip_active1>;
				};
			};
		};
	};
};


I converted the dtb back to dts for analysis. Are you saying I need to make changes from the dtb to dts and recompile it? I don’t think that’s a healthy approach.

If you just add a random string to your ethernet@2310000 in your tegra234-p3737-0000+p3701-0000.dts , will it appear in your final dtb? (convert it back to dts to check)

The unfortunately, no. Due to dependency, according to the hierarchy:


#include "staging/tegra234-p3737-0000+p3701-0004.dts" // --> the place we changed

#include "tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi" --> ignores the previous change because it was included later 
#include "tegra234-p3701-0000.dtsi"

OK. Just simple rule.

ethernet@2310000 is defined in tegra234-base-overlay.dtsi and then included by tegra234-p3737-0000+p3701-xxxx-nv-common.dtsi, so your previous setting would be overwritten.

It would always be better to put status change in the last layer of your dts.

The previous layer would be more like a general setting for all the platforms on same SoC.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.