# Jetson nano I2C pinmux

**URL:** <https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711>\
**Category:** Jetson Nano\
**Tags:** pinmux, board-design, device-tree\
**Created:** [March 12, 2024, 8:46am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711 "2024-03-12T08:46:29Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 12, 2024, 8:46am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/1 "2024-03-12T08:46:29Z")

</div>

Hi,  
I’m working on custom Nano board bsp and have a question about the I2C pinmux and device tree configuration.  
In Xavier NX, there is a file in `Jetson\r3531\hardware\nvidia\soc\t19x\kernel-dts\tegra194-soc\tegra194-soc-i2c.dtsi` to describe the i2c node and its register such as

```auto
i2c0 = &gen1_i2c;
gen1_i2c: i2c@3160000 {
		#address-cells = <1>;
		#size-cells = <0>;
		iommus = <&smmu TEGRA_SID_GPCDMA_0>;
		dma-coherent;
		compatible = "nvidia,tegra194-i2c";
		reg = <0x0 0x3160000 0x0 0x100>;
		nvidia,hw-instance-id = <0x0>;
		interrupts = <0 TEGRA194_IRQ_I2C1 0x04>;
		scl-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(I, 3) 0>;
		sda-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(I, 4) 0>;
		status = "disabled";
		clock-frequency = <400000>;
		clocks = <&bpmp_clks TEGRA194_CLK_I2C1
			&bpmp_clks TEGRA194_CLK_PLLP_OUT0>;
		clock-names = "div-clk", "parent";
		resets = <&bpmp_resets TEGRA194_RESET_I2C1>;
		reset-names = "i2c";
		dmas = <&gpcdma 21>, <&gpcdma 21>;
		dma-names = "rx", "tx";
	};

```

and I can find the specific name of this I2C controller in the device tree by the corresponding name in the excel spreadsheet, thus achieving the configuration just like this

 ![4](https://global.discourse-cdn.com/nvidia/original/4X/9/2/9/929f6a77b62b3eab75bbd98673e345840dc715ba.png)

```auto
    i2c@3160000 {
        uih_rtc: uih_rtc@68 {
            compatible = "dallas,ds1340";
            reg = <0x68>;
        };
    };

```

But in nano, there is no such a file to connect the device tree and pinmux excel. And in the Product Design Guide file does not have this information either.  
In my situation, I want to use these two I2C bus in pinmux excel

 ![3](https://global.discourse-cdn.com/nvidia/original/4X/f/e/2/fe285929e7f825e7fb469b779e256a9ac20cf6e9.png)  
But in bsp file, there is only unclear I2C name and I really don’t know which bus corresponds to the I2C in excel.

```auto
aliases {
		i2c0 = &i2c1;
		i2c1 = &i2c2;
		i2c2 = &i2c3;
		i2c3 = &i2c4;
		i2c4 = &i2c5;
		i2c5 = &i2c6;
		i2c6 = &i2c7;
		spi0 = &spi0;
		spi1 = &spi1;
		spi2 = &spi2;
		spi3 = &spi3;
		qspi6 = &qspi6;
		serial0 = &uarta;
		serial1 = &uartb;
		serial2 = &uartc;
		serial3 = &uartd;
		rtc0 = "/i2c@7000d000/max77620@3c";
		rtc1 = "/rtc";
	};

```

Can you show me the relationship between i2c0-6 and GEN1\_I2C?  
Thanks

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 12, 2024, 8:51am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/2 "2024-03-12T08:51:55Z")

</div>

By the way, the name method in jetson is too complicated. There is three name in Xavier NX’s pinmux excel. If the dtb file do not have this information, I can not know the correct register in module.

```auto
i2c0 = &gen1_i2c;
gen1_i2c: i2c@3160000

```

I know I can use I2C-tools to detect the device but this is inconvenient before our custom board production

---

<div class="post-metadata">

**Author:** ![ShaneCCC](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/shaneccc/32/14043_2.png) [@ShaneCCC](https://forums.developer.nvidia.com/u/ShaneCCC)\
**Post date:** [March 13, 2024, 4:10am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/4 "2024-03-13T04:10:56Z")

</div>

Suppose your are talking Orin Nano.  
You can check the TRM and subtract 1 to map to software bus number.  
For example GEN1 i2c is i2c0

 ![image](https://global.discourse-cdn.com/nvidia/original/4X/c/1/7/c1721c473b2bb53dc079508cb914a49fbf2243a6.png)  
a

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 13, 2024, 5:35am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/5 "2024-03-13T05:35:22Z")

</div>

Thanks for reply, but the object I talked about is just Nano not Orin Nano

---

<div class="post-metadata">

**Author:** ![ShaneCCC](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/shaneccc/32/14043_2.png) [@ShaneCCC](https://forums.developer.nvidia.com/u/ShaneCCC)\
**Post date:** [March 13, 2024, 6:16am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/6 "2024-03-13T06:16:45Z")

</div>

Suppose Nano is the same. You can check TRM of TX1.

Thanks

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 13, 2024, 7:35am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/7 "2024-03-13T07:35:35Z")

</div>

there is no this information in TX1’s TRM

> [@ShaneCCC](#):
>
> ![image](https://global.discourse-cdn.com/nvidia/original/4X/c/1/7/c1721c473b2bb53dc079508cb914a49fbf2243a6.png)

---

<div class="post-metadata">

**Author:** ![ShaneCCC](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/shaneccc/32/14043_2.png) [@ShaneCCC](https://forums.developer.nvidia.com/u/ShaneCCC)\
**Post date:** [March 13, 2024, 7:43am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/8 "2024-03-13T07:43:57Z")

</div>

You can check the pinmux file for example.  
The function field of SFIO0 tell the I2C1 that’s HW name and subtract 1 to get software bus number.

 ![image](https://global.discourse-cdn.com/nvidia/original/4X/1/6/0/160ea8ca0c02a3108c7516059771fa5c23fcffd2.png)

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 13, 2024, 7:53am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/9 "2024-03-13T07:53:36Z")

</div>

but in nano’s pinmux, they are shown as, so which bus is this controller connected, I2C2 or i2c1?

> [@854053437](#):
>
> ![4](https://global.discourse-cdn.com/nvidia/original/4X/9/2/9/929f6a77b62b3eab75bbd98673e345840dc715ba.png)
> 
> 4730×39 1.48 KB

---

<div class="post-metadata">

**Author:** ![ShaneCCC](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/shaneccc/32/14043_2.png) [@ShaneCCC](https://forums.developer.nvidia.com/u/ShaneCCC)\
**Post date:** [March 13, 2024, 8:27am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/10 "2024-03-13T08:27:22Z")

</div>

THe GEN1 i2c is i2c bus 0.

Thanks

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 13, 2024, 9:49am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/11 "2024-03-13T09:49:23Z")

</div>

so it means Nano’s I2C GEN1、GEN2、GEN3 is i2C bus 0\1\2？

 ![screenshot-20240313-171453](https://global.discourse-cdn.com/nvidia/original/4X/d/7/0/d7063cf6c9296f626578494eeb013e8521315dde.png)  
And the device tree node name is i2c@7000c000(i2c gen1)、i2c@7000c400(i2c gen2)、i2c@7000c500(i2c gen3)  
 ![screenshot-20240313-174703](https://global.discourse-cdn.com/nvidia/original/4X/8/b/2/8b2a7a18ba130ea0c66bc1ff38aff87480db6c1b.png)

Is that right?

---

<div class="post-metadata">

**Author:** ![ShaneCCC](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/shaneccc/32/14043_2.png) [@ShaneCCC](https://forums.developer.nvidia.com/u/ShaneCCC)\
**Post date:** [March 13, 2024, 3:48pm UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/12 "2024-03-13T15:48:38Z")

</div>

Yes, that’s correct.

Thanks

---

<div class="post-metadata">

**Author:** ![854053437](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/854053437/32/308637_2.png) [@854053437](https://forums.developer.nvidia.com/u/854053437)\
**Post date:** [March 14, 2024, 1:25am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/13 "2024-03-14T01:25:07Z")

</div>

ok，thank you！

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/system/32/68080_2.png) [@system](https://forums.developer.nvidia.com/u/system)\
**Post date:** [April 10, 2024, 7:16am UTC](https://forums.developer.nvidia.com/t/jetson-nano-i2c-pinmux/285711/15 "2024-04-10T07:16:01Z")

</div>

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