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.

[参考译文] Linux/TPS659037:器件树/Linux 中支持 TPS659037看门狗

Guru**** 2782485 points

Other Parts Discussed in Thread: AM5748, TPS659037

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/804847/linux-tps659037-tps659037-watchdog-support-in-device-tree-linux

器件型号:TPS659037
主题中讨论的其他器件:AM5748

工具/软件:Linux

你(们)好

我们将 http://www.ti.com/product/TPS659037 与 AM5748搭配使用、并希望在此 PMIC 上使用看门狗组件。

在参考 IDK 的器件树中、我们可以找到多个 PMIC 额外功能的子树、例如 RTC、但看门狗没有子节点:

tps659038: tps659038@58 {

compatible = "ti,tps659038";

reg = <0x58>;

interrupts-extended = <&gpio6 16 IRQ_TYPE_LEVEL_HIGH

       &dra7_pmx_core 0x418>;

#interrupt-cells = <2>;

interrupt-controller;

ti,system-power-controller;

ti,palmas-override-powerhold;

 

tps659038_pmic {

compatible = "ti,tps659038-pmic";

…..

tps659038_rtc: tps659038_rtc {

compatible = "ti,palmas-rtc";

interrupt-parent = <&tps659038>;

interrupts = <8 IRQ_TYPE_EDGE_FALLING>;

wakeup-source;

};

 

tps659038_pwr_button: tps659038_pwr_button {

compatible = "ti,palmas-pwrbutton";

interrupt-parent = <&tps659038>;

interrupts = <1 IRQ_TYPE_EDGE_FALLING>;

wakeup-source;

ti,palmas-long-press-seconds = <12>;

};

 

tps659038_gpio: tps659038_gpio {

compatible = "ti,palmas-gpio";

gpio-controller;

#gpio-cells = <2>;

};

 

extcon_usb2: tps659038_usb {

compatible = "ti,palmas-usb-vid";

ti,enable-vbus-detection;

ti,enable-id-detection;

/* ID & VBUS GPIOs provided in board dts */

};

听从您的意见

-如何启用看门狗,如何设置看门狗模式/时间/锁定

-如果我们需要自行编写一个中断处理程序来重置看门狗,或者这是由驱动程序完成的

谢谢、Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chris、
    默认情况下禁用看门狗。 软件可以启用看门狗和锁定(写保护)看门狗寄存器(看门狗)。
    看门狗定时器有两种运行模式:周期模式和中断模式。
    在周期模式中、一个由安全装置定时器设置定义的固定周期 N 生成中断。 该中断在周期开始时(当看门狗内部计数器等于1时)生成。 只有在定义的时间范围(0至 N)内没有清除中断时、IC 才会在周期结束时(当内部计数器达到 N 时)启动关断。 在该模式下、当中断被清除时、内部计数器不会复位。 计数器将继续计数、直到达到最大值(由定时器设置定义)、并自动回滚到0以开始新的计数周期。 无论中断在给定的周期(N)内何时被清除、只有在持续的周期完成(达到 N)时才会产生下一个中断。 只要 RESET_OUT 引脚为低电平、内部看门狗计数器就会初始化并保持为0。 一旦 RESET_OUT 引脚被释放、计数器就开始计数。
    在中断模式中、任何中断源都会复位看门狗计数器并开始计数。 如果在预定义周期 N 结束之前未清除中断源(释放 INT 线路)(由 watchdog.timer 设置进行设置)、则器件会启动关断。 如果在预定义的周期内清除了中断源、那么看门狗计数器将被丢弃(DC)、并且不会启动关断序列。
    另请参阅下面链接的寄存器映射的第3.7.5节中的"看门狗定时器寄存器";有关寄存器和位定义的详细信息:
    www.ti.com/.../sliu015b.pdf。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Phil、

    谢谢。 我知道这一点。 如果我们希望直接通过 I2C 使用控制看门狗、则此操作有效。

    问题 更在于 PMIC 器件树节点中是否支持此看门狗、因为 RTC 等其他 PMIC 功能就是这种情况

    当 I2C 直接控制看门狗时 、恐怕会发生资源冲突:

    1) 1) PMIC 器件树节点是 I2C1总线节点的子节点。 因此 、当  我们直接通过 I2C 写入 PMIC 节点地址时、驱动程序可能会同时写入 PMIC 节点地址。

    2) 2)在 PMIC 器件树节点中定义了 PMIC 中断、因此   已经存在针对此中断的处理程序。 那么、我们如何连接清除看门狗位的路由呢?

    此致、Chris

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

    尊敬的 Christian:

    处理器团队开发了 TPS659037的驱动程序、但我在网上搜索时发现了这一点:

    lore.kernel.org/.../

    如果您有疑问、我建议您在 AM57xx 论坛上发布新帖子、但我们也可以尝试提供帮助。

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

    您好!

    我将 在 AM57xx 论坛上发布新帖子。 lore.kernel.org/.../ 代码似乎不是当前内核的一部分。

    此致、Chris