Modifying CAM_I2C_SDA and SCL to work at 1.8v instead o 3.3v CSI Connector

I have JP6 installed on a Orin Nano (36.2). I am developing on the nano itself. I am trying to create an overlay to update the pinmux and have used the Orin excel template to generate the dtsi files. I removed the 2.2k pullups thinking this will lower the pads from 3.3v to 1.8v. When I run jetson-io to add the hardware it errors stating that it cannot configure pin3. Below is the fragment dts file for the overlay. I am not sure on the formatting but it seems that the jetson-io does not parse the header properly to begin with.

// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

/dts-v1/;
/plugin/;

include <dt-bindings/tegra234-p3767-0000-common.h>

include <dt-bindings/clock/tegra234-clock.h>
include <dt-bindings/gpio/tegra234-gpio.h>
include <dt-bindings/pinctrl/pinctrl-tegra.h>
include <dt-bindings/gpio/tegra234-gpio.h>
include “./orin-nano-1_8_i2c-gpio-default.dtsi”

/ {
overlay-name = “I2C Level Shift pinmux”;
jetson-header-name = “Jetson Nano CSI Connector”;
compatible = “nvidia,p3768-0000+p3767-0005”;

    fragment@0 {
            target-path ="&pinmux";
            __overlay__ {
				pinctrl.names = "default";
				pinctrl-0 = <&pinmux_default>;

                pinmux_default: common {  
			                       
		            csi-pin3 {  
			        nvidia,pins = "cam_i2c_scl_pp2";
			        nvidia,function = "i2c3";
			        nvidia,pull = <TEGRA_PIN_PULL_NONE>;
			        nvidia,tristate = <TEGRA_PIN_DISABLE>;
			        nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			        nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
			        nvidia,lpdr = <TEGRA_PIN_DISABLE>;
		            };
				
			
		            csi-pin2 {
			        nvidia,pins = "cam_i2c_sda_pp3";
			        nvidia,function = "i2c3";
			        nvidia,pull = <TEGRA_PIN_PULL_NONE>;
			        nvidia,tristate = <TEGRA_PIN_DISABLE>;
			        nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			        nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
			        nvidia,lpdr = <TEGRA_PIN_DISABLE>;
		            };
				
                };
            };
    };

};

What do you mean? Please give much more detail informaiton.

You can’t change voltage level of cam_i2c by pinmux setting. You need to add level shift on board in your design to convert 3.3v to 1.8v.

I am definitely looking at a hardware level shifter. I was just thinking that if I removed the 2.2K pullups per the configuration template would change the I2C pins to a 1.8v rail since they are being pulled up to 3.3v and the block voltage is 1.8?

No, it is not supported.

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