This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: Multiple entry for I2C0

Part Number: AM625
Other Parts Discussed in Thread: SYSCONFIG

Hi TI team,

I have one more doubt.

As discussed in https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1350152/am625-pmic-interface-on-i2c/5146565#5146565 query.

We are also connected to the RTC on I2C0 and I Know how to add multiple child I2C nodes for it. But How is the pin assigned to it that I have doubt?

Like in PMIC, we have assigned as below.

	pmic_irq_pins_default: pmic-irq-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (B16) EXTINTn */
		>;
	};

Than how to assign pin for RTC.

In the below link, I can see the example.
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1293774/am625-error-with-external-rtc?tisearch=e2e-sitesearch&keymatch=AM625%252525252520RTC%252525252520on%252525252520I2c0#

But they used below pin configurations.

main_i2c0_pins_default: main-i2c0-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
AM62X_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
>;
};
  • Hello Abhishek,

    I am not sure I understand the question. Are you asking how to figure out what pinmux settings to use?

    Please refer to this thread for information on how to use the SysConfig Pinmux tool to generate the pinmux settings for your Linux devicetree file.
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1348153/re-am625-how-to-set-pinmuxing-for-pru-subsystem

    Regards,

    Nick

  • Hi Team,

    I have made the changes in the DTS file, Can anyone suggest if the changes are correct or not?

    &main_pmx0 {
    
    ...
    
            &main_i2c0_pins_default {
                   pinctrl-single,pins = <
     			AM62X_IOPAD(0x01e0, PIN_INPUT, 0) /* (B16) I2C0_SCL */
     			AM62X_IOPAD(0x01e4, PIN_OUTPUT, 0) /* (A16) I2C0_SDA */
                   >;
            };
            
    ...
    
    };
    
    
    
    
    
    &main_i2c0 {
            status = "okay";
            clock-frequency = <400000>;
            
            
            pca85073a:rtc@51{
            	pinctrl-names = "default";
    		pinctrl-0 = <&main_i2c0_pins_default>;
    		compatible = "nxp,pcf85063a";
    		reg = <0x51>;
    		status = "okay";
            };
            
            tps65219: pmic@30 {
    		compatible = "ti,tps65219";
    		reg = <0x30>;
    		buck1-supply = <&vcc_3v3_sys>;
    		buck2-supply = <&vcc_3v3_sys>;
    		buck3-supply = <&vcc_3v3_sys>;
    		ldo1-supply = <&vcc_3v3_sys>;
    		ldo2-supply = <&buck2_reg>;
    		ldo3-supply = <&vcc_3v3_sys>;
    		ldo4-supply = <&vcc_3v3_sys>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_i2c0_pins_default>;
    
    		interrupt-parent = <&gic500>;
    		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
    
    		regulators {
    			buck1_reg: buck1 {
    				regulator-name = "VDD_CORE";
    				regulator-min-microvolt = <750000>;
    				regulator-max-microvolt = <750000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck2_reg: buck2 {
    				regulator-name = "VCC1V8_SYS";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck3_reg: buck3 {
    				regulator-name = "VDD_LPDDR4";
    				regulator-min-microvolt = <1100000>;
    				regulator-max-microvolt = <1100000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo1_reg: ldo1 {
    				regulator-name = "VDDSHV_SDIO";
    				regulator-min-microvolt = <3300000>;
    				regulator-max-microvolt = <3300000>;
    			};
    
    			ldo2_reg: ldo2 {
    				regulator-name = "VDDAR_CORE";
    				regulator-min-microvolt = <850000>;
    				regulator-max-microvolt = <850000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo3_reg: ldo3 {
    				regulator-name = "VDDA_1V8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo4_reg: ldo4 {
    				regulator-name = "VDD_1V2";
    				regulator-min-microvolt = <1200000>;
    				regulator-max-microvolt = <1200000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    		};
    	};
    };
    

    Regards.

    Abhishek

  • Hello Abhishek,

    Are you using the ALW package? And do you specifically NOT want an internal pullup resistor on the I2C lines?

    If the answer to both of those questions is yes, then the pinmuxing looks fine to me. This is what the Pinmux tool generated when I selected the ALW package and I2C0:

    Regards,

    Nick