Skip to content

[bsp][imxrt1180-nxp-evk]add I2C adapter support#11510

Open
HonestQiao wants to merge 2 commits into
RT-Thread:masterfrom
HonestQiao:imxrt1180-nxp-evk-i2c-v1
Open

[bsp][imxrt1180-nxp-evk]add I2C adapter support#11510
HonestQiao wants to merge 2 commits into
RT-Thread:masterfrom
HonestQiao:imxrt1180-nxp-evk-i2c-v1

Conversation

@HonestQiao

Copy link
Copy Markdown
Contributor

拉取/合并请求描述:(PR description)

[

为什么提交这份PR (why to submit this PR)

add I2C adapter support

你的解决方案是什么 (what is your solution)

add I2C driver for RT-Thread

请提供验证的bsp和config (provide the config and bsp)

  • BSP: bsp\nxp\imx\imxrt\imxrt1180-nxp-evk\cm33

  • BSP: bsp\nxp\imx\imxrt\imxrt1180-nxp-evk\cm7

  • .config: bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/board/Kconfig

        menuconfig BSP_USING_I2C
            bool "Enable I2C"
            select RT_USING_I2C
            default n
            if BSP_USING_I2C
                config BSP_USING_I2C2
                    bool "Enable I2C2"
                    default y

                config BSP_USING_I2C3
                    bool "Enable I2C3"
                    default n

                choice
                    prompt "Select I2C2 badurate"
                    default HW_I2C2_BADURATE_100kHZ

                    config HW_I2C2_BADURATE_100kHZ
                        bool "Badurate 100kHZ"

                    config HW_I2C2_BADURATE_400kHZ
                        bool "Badurate 400kHZ"
                endchoice

                choice
                    prompt "Select I2C3 badurate"
                    default HW_I2C3_BADURATE_100kHZ

                    config HW_I2C3_BADURATE_100kHZ
                        bool "Badurate 100kHZ"

                    config HW_I2C3_BADURATE_400kHZ
                        bool "Badurate 400kHZ"
                endchoice
            endif
  • .config: bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm7/board/Kconfig
        menuconfig BSP_USING_I2C
            bool "Enable I2C"
            select RT_USING_I2C
            default n
            if BSP_USING_I2C
                config BSP_USING_I2C2
                    bool "Enable I2C2"
                    default y

                config BSP_USING_I2C3
                    bool "Enable I2C3"
                    default n

                choice
                    prompt "Select I2C2 badurate"
                    default HW_I2C2_BADURATE_100kHZ

                    config HW_I2C2_BADURATE_100kHZ
                        bool "Badurate 100kHZ"

                    config HW_I2C2_BADURATE_400kHZ
                        bool "Badurate 400kHZ"
                endchoice

                choice
                    prompt "Select I2C3 badurate"
                    default HW_I2C3_BADURATE_100kHZ

                    config HW_I2C3_BADURATE_100kHZ
                        bool "Badurate 100kHZ"

                    config HW_I2C3_BADURATE_400kHZ
                        bool "Badurate 400kHZ"
                endchoice
            endif
  • action: To be added

]

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • [ x ] 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • [ x ] 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • [ x ] 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • [ x ] 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • [ x ] 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • [ x ] 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • [ x ] 代码是高质量的 Code in this PR is of high quality
  • [ x ] 已经使用formatting 等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification
  • 如果是新增bsp, 已经添加ci检查到.github/ALL_BSP_COMPILE.json 详细请参考链接BSP自查

@HonestQiao HonestQiao requested a review from Rbb666 as a code owner June 23, 2026 04:03
@github-actions

Copy link
Copy Markdown

👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread!

为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。
To ensure your code complies with RT-Thread's coding style, please run the code formatting workflow by following the steps below (If the formatting of CI fails to run).


🛠 操作步骤 | Steps

  1. 前往 Actions 页面 | Go to the Actions page
    点击进入工作流 → | Click to open workflow →

  2. 点击 Run workflow | Click Run workflow

  • 设置需排除的文件/目录(目录请以"/"结尾)
    Set files/directories to exclude (directories should end with "/")
  • 将目标分支设置为 \ Set the target branch to:imxrt1180-nxp-evk-i2c-v1
  • 设置PR number为 \ Set the PR number to:11510
  1. 等待工作流完成 | Wait for the workflow to complete
    格式化后的代码将自动推送至你的分支。
    The formatted code will be automatically pushed to your branch.

完成后,提交将自动更新至 imxrt1180-nxp-evk-i2c-v1 分支,关联的 Pull Request 也会同步更新。
Once completed, commits will be pushed to the imxrt1180-nxp-evk-i2c-v1 branch automatically, and the related Pull Request will be updated.

如有问题欢迎联系我们,再次感谢您的贡献!💐
If you have any questions, feel free to reach out. Thanks again for your contribution!

@github-actions github-actions Bot added BSP: NXP Code related with NXP BSP labels Jun 23, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个文件不用修改添加用户代码

if rtconfig.PLATFORM in ['iccarm']:
CPPDEFINES += ['NDEBUG']

if GetDepend(['BSP_USING_I2C']):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这段不应该添加到这里,这部分是软件包去添加的,要添加也要给这提交PR:https://github.com/RT-Thread-packages/nxp-imxrt-sdk/blob/master/MIMXRT1180/SConscript

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IOMUXC_SetPinMux(
IOMUXC_GPIO_AON_09_LPUART1_RX, /* GPIO_AON_09 is configured as LPUART1_RX */
0U); /* Software Input On Field: Input Path is determined by functionality */
1U); /* Software Input On Field: Force input path of pad GPIO_AON_09 */

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这边应该不需要修改

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已处理

if GetDepend(['BSP_USING_I2C']):
src += ['../packages/nxp-imxrt-sdk-latest/MIMXRT1180/MIMXRT1189/drivers/fsl_lpi2c.c']
CPPPATH += [cwd + '/../packages/nxp-imxrt-sdk-latest/MIMXRT1180/MIMXRT1189/drivers']

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这边麻烦更新package对应的repo:https://github.com/RT-Thread-packages/nxp-imxrt-sdk

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IOMUXC_SetPinMux(
IOMUXC_GPIO_AON_09_LPUART1_RX, /* GPIO_AON_09 is configured as LPUART1_RX */
0U); /* Software Input On Field: Input Path is determined by functionality */
1U); /* Software Input On Field: Force input path of pad GPIO_AON_09 */

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这边应该也不用改

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已处理

bool "Enable I2C2"
default y

config BSP_USING_I2C3

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

似乎没看到I2C3的pin mux初始化?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已处理

@nxp-ran

nxp-ran commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

I2C2的读写似乎有问题,麻烦修改后测试并提供测试方式。

@HonestQiao

HonestQiao commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

I2C2的读写似乎有问题,麻烦修改后测试并提供测试方式。

已更新,测试代码:
main_i2c_test.c
fxl8974_sensor.c

file fxl8974_sensor.h: (不让上传)

#ifndef __FXL8974_SENSOR_H__
#define __FXL8974_SENSOR_H__

int fxl8974_sensor_test(void);

#endif /* __FXL8974_SENSOR_H__ */

接线请参考:https://github.com/nxp-mcuxpresso/mcuxsdk-examples/blob/main/_boards/evkmimxrt1180/driver_examples/flexio/i2c/read_accel_value_transfer/example_board_readme.md

@HonestQiao HonestQiao requested a review from Rbb666 July 10, 2026 10:16
@Rbb666

Rbb666 commented Jul 12, 2026

Copy link
Copy Markdown
Member

@nxp-ran 请帮忙确认

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BSP: NXP Code related with NXP BSP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants