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.

[参考译文] PROCESSOR-SDK-AM62X:AM62x EVM I2C 器件

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1321478/processor-sdk-am62x-am62x-evm-i2c-devices

器件型号:PROCESSOR-SDK-AM62X

大家好、

我正在尝试与 I2C 器件、即温度传感器和 LED 驱动器进行通信、但当我运行"I2cdetect -l "时、我无法看到两个器件都被检测到。  

    

您能告诉我需要做哪些更改才能访问两个器件吗?  

我使用 https://www.ti.com/tool/PROCESSOR-SDK-AM62X 中提供的默认图像

此致、

A·库马尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kumar:

    我会将您的问题发送给我们的 Linux I2C 专家以征求意见。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ashutosh:

    这是我对 SoC_I2C1在从地址设置为0x48和0x49时不显示温度传感器的原因的理解。

    我在此附上部分有关如何在器件树文件中定义 SoC_I2C1的信息。

    &main_i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <100000>;
    
    	exp1: gpio@22 {
    		compatible = "ti,tca6424";
    		reg = <0x22>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
    				   "PRU_DETECT", "MMC1_SD_EN",
    				   "VPP_LDO_EN", "EXP_PS_3V3_En",
    				   "EXP_PS_5V0_En", "EXP_HAT_DETECT",
    				   "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn",
    				   "UART1_FET_BUF_EN", "WL_LT_EN",
    				   "GPIO_HDMI_RSTn", "CSI_GPIO1",
    				   "CSI_GPIO2", "PRU_3V3_EN",
    				   "HDMI_INTn", "TEST_GPIO2",
    				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
    				   "MCASP1_FET_SEL", "UART1_FET_SEL",
    				   "TSINT#", "IO_EXP_TEST_LED";
    
    		interrupt-parent = <&main_gpio1>;
    		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
    		interrupt-controller;
    		#interrupt-cells = <2>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
    	};
    
    	sii9022: sii9022@3b {
    		#sound-dai-cells = <0>;
    		compatible = "sil,sii9022";
    		reg = <0x3b>;
    
    		clocks = <&hdmi_mstrclk>;
    		clock-names = "mclk";
    
    		interrupt-parent = <&exp1>;
    		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
    
    		sil,i2s-data-lanes = < 0 >;
    
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    
    				sii9022_in: endpoint {
    					remote-endpoint = <&dpi1_out>;
    				};
    			};
    
    			port@1 {
    				reg = <1>;
    
    				sii9022_out: endpoint {
    					remote-endpoint = <&hdmi_connector_in>;
    				};
    			};
    		};
    	};
    
    	tlv320aic3106: audio-codec@1b {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3106";
    		reg = <0x1b>;
    		ai3x-micbias-vg = <1>;		/* 2.0V */
    		status = "okay";
    
    		/* Regulators */
    		AVDD-supply = <&vcc_3v3_sys>;
    		IOVDD-supply = <&vcc_3v3_sys>;
    		DRVDD-supply = <&vcc_3v3_sys>;
    		DVDD-supply = <&vcc_1v8>;
    	};
    };

    因此、上面的声明指出、考虑 I2C1总线时、只会寻址/检测三个此类从器件。 它们是0x22、0x3b 和0x1b

    如果我们要探测它们、还需要添加其他参数。

    对于唤醒 I2C0、我建议您使该节点启用。

    这可以通过将 STATUS 指示为"正常"来实现

    若要对 SoC_I2C1进一步发表评论、请等待分配的专家发表评论。

    此致、

    瓦伊布哈夫

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我对 Vaibhav 已经说过的话没有任何进一步的评论。 一般而言、您需要在预期与 Linux 进行通信之前告诉 Linux 某些内容已经存在。

    如果您有后续问题、请随时给予答复。

    此致、

    尼克