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.

[参考译文] 如何将 Bq24725和 MAX172011G IC 集成到内核/Android 9中?

Guru**** 1144270 points
Other Parts Discussed in Thread: BQ24725, BQ24257
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/925071/how-to-integrate-bq24725-and-max172011g-ics-into-kernel-android-9

主题中讨论的其他器件:BQ24725BQ24257

大家好、

我们使用 Bq24725和 MAX172011G 为运行 Android 9的 NXP IMX8M 处理器板设计充电和电源管理电路。 任何人都可以指导我集成操作系统的组件 Android 9 (内核)以与这两个 IC 交互:设备树、示例代码...  

如何显示这两个 IC 在 Android/Linux 操作系统上的输出中的电池百分比?

这些 IC 和 IMX8M 处理器之间的引脚连接如下:

Bq24725

SoC IMX8M

I2C_sda          

I2C_SDa4

I2C_SCL

I2C_scl4

ACOK

GPIO1_15

输出电流

GPIO1_13

MAX172011G

SoC IMX8M

I2C_sda          

I2C_SDa4

I2C_SCL

I2C_scl4

ALRT1

SAI5_MCLK (GPIO3_25)

此致、

谢谢!

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

    Luc、

    我们确实有一个为内核4.4开发的 BQ24725驱动程序(这应该可以很好地与 Android 9配合使用)。 充电器和驱动器无法报告电池百分比、因为 IC 无法确定电池百分比。 我提供了指向以下提交和补丁的链接:

    https://git.ti.com/gitweb?p=bms-linux/bms-kernel-4-4.git;a=commit;h=0b49522b0e11fc9f67d091998d5fc62af3ab5ec8

    您提到的 Maxim 电量监测计应能够报告电池电量百分比、但我们不支持 Maxim 产品。 我们确实为许多 TI 电量监测计提供支持和驱动程序。 如果您想了解有关 TI 电池电量监测计 IC 的更多信息、请与 TI 电池电量监测计团队创建新主题。

    我希望这可以解决您的问题、

    Ricardo

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

    您好、 Ricardo、

    我正在查看 Linux 内核 elixir.bootlin.com/.../bq24257.txt 中的文档文件
    我想知道、要通过此驱动程序与 IC 通信、我是否必须在内核器件树中声明任何内容? 本教程中的一个示例段落如下:
    bq24257{
    兼容="ti、bq24257";
    reg =<0x6a>;
    interrupt-parent =<& GPIO1>;
    中断=<16 IRQ_TYPE_EDGE_Bot>;

    PG-GPIO =<& GPIO1 28 GPIO_ACTIVE_HIGH_>;

    TI、电池稳压电压=<4200000>;
    TI、充电电流=<1000000>;
    TI、终止电流=<50000 >;
    };

    非常感谢您的帮助!

    此致

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

    Luc、

    你是对的。 通过查看下面的代码、您可以看到驱动程序在    devicetree 中查找 ti、ac-detect-gpos、ti、充电电流、ti、充电电压、ti、输入电流和 ti、enable-wdt。 您可以按照您发布的示例操作、但删除 pg-gpos (替换为 ti、ac-detect-gpos)、删除 ti、电池稳压电压(替换为 ti、充电电压)、并删除 ti、终止电流。

    449 静态 结构 bq24725_platform * bq24725_pars_dt_data (struct i2c_client *客户端)
    450
    451         struct bq24725_platform *pdata;
    452         struct device_node *np = client->dev.for_node;
    453u32          val;
    454         内 径;
    455         枚举 的 GPIO_FLAGS 标志;
    457         pdata = devm_kzalloc (&client->dev、 sizeof (*pdata)、 GFP_kernel);
    458         if (!pdata) {
    459                 DEV_ERR(&CLIENT->DEV,
    460"bq24725                             数据的内存分配 失败\n");
    461                 返回 空;
    462         }
    464         pdata->status_gpio = of_get_named_gpio_flags (np、 "ti、ac-detect-gpio"、
    465                                                      0、 标志(&F);
    467         IF (flags & of_GPIO_ACTIVE_LOW)
    468                 pdata->status_gpio_active_low = 1;
    470         ret = of _property_read_u32 (np、 "ti、充电电流"、 &val);
    471         IF (!ret)
    472                 pdata->charge 电流 = val;
    474         ret = of _property_read_u32 (np、 "ti、充电电压"、 &val);
    475         IF (!ret)
    476pdata->charge 电                 压 = val;
    478         ret = of _property_read_u32 (np、 "ti、input-currue"、 &val);
    479         IF (!ret)
    480pdata->input_current                  = val;
    482         pdata->enable_wdt = of _property_read_Bool (np、 "ti、enable-wDT");
    484         返回 pdata;
    485
    我希望这可以解决您的问题、
    Ricardo