Dynamic I2C Slave Address Configuration on i.MX95 LPI2C

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Dynamic I2C Slave Address Configuration on i.MX95 LPI2C

215件の閲覧回数
arun16598
Contributor II

Hello Experts,

I am working on the i.MX95 platform and using the LPI2C controller in I2C slave mode under Linux.

Currently, the I2C slave address is defined statically in the Device Tree. My requirement is to determine the slave address dynamically based on an external GPIO input (for example, a board ID or address-select GPIO) instead of hardcoding it in the Device Tree.

I would like to know:

  1. Does the i.MX95 LPI2C hardware support changing the I2C slave address dynamically at runtime?
  2. Does the NXP BSP/Linux LPI2C slave driver support updating the slave address after boot, or would it require driver modifications?
  3. Is there any recommended mechanism from the SoC or BSP perspective to select the slave address based on an external GPIO before or during slave registration?
  4. Are there any reference implementations or examples demonstrating dynamic I2C slave address configuration?

Any guidance or recommended approach would be appreciated.

BR,

Arun Kumar

0 件の賞賛
返信
1 返信

184件の閲覧回数
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

1. Yes, is possible with LPI2C module of i.MX95.

2. No, driver modifications are needed.

The current NXP BSP Linux driver supports both master and slave modes but, the slave address is read once from the Device Tree.

3. The best approach for this modify driver to read the GPIO address and change line during probe.

https://github.com/nxp-imx/linux-imx/blob/b096ce610e956cc2596006343df8a2a26ed6e019/drivers/i2c/busse...

4. We have an slave DTS example that uses i2c-imx-lpi2c.c driver but the address cannot be changed in runtime using GPIOs. You can take a look in the next link:

https://github.com/nxp-imx/linux-imx/blob/74521e3f425001c27a54323ee8de4f7c59ee88dc/arch/arm64/boot/d...

Best regards.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2399205%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Ei.MX95%20LPI2C%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E5%8B%95%E7%9A%84I2C%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%A7%8B%E6%88%90%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399205%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E5%B0%82%E9%96%80%E5%AE%B6%E3%81%AE%E7%9A%86%E6%A7%98%E3%80%82%3C%2FP%3E%3CP%20class%3D%22%22%3E%E7%A7%81%E3%81%AFi%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E5%8F%96%E3%82%8A%E7%B5%84%E3%82%93%E3%81%A7%E3%81%84%E3%81%BE%E3%81%99%3CSTRONG%3E%E3%80%82MX95%3C%2FSTRONG%3E%20%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%A7%E3%80%81%20%3CSTRONG%3ELinux%E4%B8%8A%E3%81%A7LPI2C%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%82%92I2C%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%3C%2FSTRONG%3E%20%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%8F%BE%E5%9C%A8%E3%80%81I2C%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%84%E3%83%AA%E3%83%BC%E5%86%85%E3%81%A7%E9%9D%99%E7%9A%84%E3%81%AB%E5%AE%9A%E7%BE%A9%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E7%A7%81%E3%81%AE%E8%A6%81%E4%BB%B6%E3%81%AF%E3%80%81%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%84%E3%83%AA%E3%83%BC%E3%81%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E3%83%8F%E3%83%BC%E3%83%89%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%80%81%E5%A4%96%E9%83%A8GPIO%E5%85%A5%E5%8A%9B%EF%BC%88%E4%BE%8B%E3%81%88%E3%81%B0%E3%80%81%E3%83%9C%E3%83%BC%E3%83%89ID%E3%82%84%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E9%81%B8%E6%8A%9EGPIO%EF%BC%89%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%8B%95%E7%9A%84%E3%81%AB%E6%B1%BA%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%9F%A5%E3%82%8A%E3%81%9F%E3%81%84%E3%81%AE%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%82%B9%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3COL%3E%3CLI%3E%3CSTRONG%3Ei.MX95%20LPI2C%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%3C%2FSTRONG%3E%E3%81%AF%E3%80%81%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%ABI2C%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%8B%95%E7%9A%84%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FLI%3E%3CLI%3E%3CSTRONG%3ENXP%20BSP%2FLinux%20LPI2C%E3%81%AE%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%3C%2FSTRONG%3E%E3%81%AF%E3%80%81%E8%B5%B7%E5%8B%95%E5%BE%8C%E3%81%AB%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E5%A4%89%E6%9B%B4%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FLI%3E%3CLI%3ESoC%E3%81%BE%E3%81%9F%E3%81%AFBSP%E3%81%AE%E8%A6%B3%E7%82%B9%E3%81%8B%E3%82%89%E3%80%81%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E7%99%BB%E9%8C%B2%E5%89%8D%E3%81%BE%E3%81%9F%E3%81%AF%E7%99%BB%E9%8C%B2%E4%B8%AD%E3%81%AB%E5%A4%96%E9%83%A8GPIO%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FLI%3E%3CLI%3E%E5%8B%95%E7%9A%84%E3%81%AAI2C%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A%E3%82%92%E7%A4%BA%E3%81%99%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E5%AE%9F%E8%A3%85%E3%82%84%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E4%BD%95%E3%81%8B%E3%81%94%E5%8A%A9%E8%A8%80%E3%82%84%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%8C%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81%E3%81%9C%E3%81%B2%E3%81%8A%E8%81%9E%E3%81%8B%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3CP%3EBR%E3%80%81%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%AB%E3%83%B3%E3%83%BB%E3%82%AF%E3%83%9E%E3%83%BC%E3%83%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2399307%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Dynamic%20I2C%20Slave%20Address%20Configuration%20on%20i.MX95%20LPI2C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2399307%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%0A%3CP%3E1.%20%E3%81%AF%E3%81%84%E3%80%81i.MX95%E3%81%AELPI2C%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E2.%20%E3%81%84%E3%81%84%E3%81%88%E3%80%81%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%AE%E6%94%B9%E9%80%A0%E3%81%AF%E4%B8%8D%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%8F%BE%E5%9C%A8%E3%81%AENXP%20BSP%20Linux%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%AF%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A8%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%A1%E6%96%B9%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%84%E3%83%AA%E3%83%BC%E3%81%8B%E3%82%89%E4%B8%80%E5%BA%A6%E3%81%A0%E3%81%91%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E3.%20%E3%81%93%E3%81%AE%E3%83%A2%E3%83%A2%E3%83%87%E3%82%A3%E3%83%83%E3%83%88%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%8C%E3%83%97%E3%83%AD%E3%83%BC%E3%83%96%E4%B8%AD%E3%81%ABGPIO%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%81%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%9C%80%E8%89%AF%E3%81%AE%E6%96%B9%E6%B3%95%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2Fb096ce610e956cc2596006343df8a2a26ed6e019%2Fdrivers%2Fi2c%2Fbusses%2Fi2c-imx-lpi2c.c%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2Fb096ce610e956cc2596006343df8a2a26ed6e019%2Fdrivers%2Fi2c%2Fbusses%2Fi2c-imx-lpi2c.c%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E4.%20i2c-imx-lpi2c.c%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%96%20DTS%20%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81GPIO%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E6%AC%A1%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%8B%E3%82%89%E3%81%94%E8%A6%A7%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2F74521e3f425001c27a54323ee8de4f7c59ee88dc%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx95-15x15-evk-i2c-spi-slave.dts%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2F74521e3f425001c27a54323ee8de4f7c59ee88dc%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx95-15x15-evk-i2c-spi-slave.dts%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E